Jan 29, 2015
In code, simplicity is a minimalism borne of competency in tool use. Elegance is a minimalism borne of insight into the problem. No solution will be truly beautiful until the problem is understood, from all angles and in its entirety.
In code, simplicity is a minimalism borne of competency in tool use. Elegance is a minimalism borne of insight into the problem. No solution will be truly beautiful until the problem is understood, from all angles and in its entirety.
Just wanted to give some visibility to a utility I discovered and contributed some code to called 23andme2vcf. This is a nifty little perl script that will transcribe 23andMe’s raw SNP codes into the much more industry-standardized VCF format, using the human genome reference.
It’s a really fast utility and helps to set up your SNP data for important into more powerful genetic analysis tools like SnpEff. I made some tweaks to the code to bring it up to date with VCFv4.2, which is the most recent standards revision, so it now works with some more picky software suites (my pull requests were merged just a few minutes ago :D).
New Chrome plugin!
I took a break during studying for midterms and decided to try and hammer out a Chrome plugin that would take me less than 20 minutes. I got down the first draft of Show MyMathLab Score in about 15, and spent about 2 hours slamming my head against a proverbial brick wall before understanding why what I was asking of Chrome was impossible (who needs spec documents? I’m a MAN. I’ll write my extension without reading the documentation for that feature. ugh. never again.)
I just received a spit kit from 23andMe, a biotech company that does genomic SNP analysis.
SNPs (pronounced snip; plural snips) are** single nucleotide polymorphisms**, which are sections of the genome that vary from person to person (humans share almost all of their genomic data with each other, as is common in a species). 23andMe detects your allele for these SNPs and reports it to you. They used to provide analysis and health predictions based on current studies of the impact of different SNPs, but were shut down by the FDA for providing medical advice. Now, they provide ancestry data (if I have any cousins who have also sequenced, I’ll be able to communicate with them through 23andMe — even if we’re fifth or sixth cousins.
I’m proud to announce my first Chrome extension — Regex Replace. It’s a simple engine to do regular expression replace on pages. No more cloud-to-butt and s/leopard/leopard extensions cluttering your valuable page load time! This extension rolls any regex replacement you want into a simple but elegant package!
Check it out in the Chrome Web Store! (And, as always, it’s open source — be forkful and multiply.)
I had a bit of a lazy morning in bed today, so in response to the surprisingly numerous emails I’ve gotten expressing thanks (or a desire for instructions of use) for the Twilio SMS and media deletion tool I wrote, I decided to tweak things a bit and make it a bit more usable.
Previously, media deletion occurred before SMS deletion, and while the async nature of node didn’t guarantee that everything would happen in the right sequence, the ordering of requests never led to issues until I started using it with larger sequences of texts, and the network bottlenecking threw the rhythm of the script off (obviously no script should have to work with a ‘rhythm’). The script would still run, but it was just messy.
I’ve been alternately happy and very unhappy with my service from Twilio, a well known company that provides easy SMS and voice capability to applications via its API. You can see a script I wrote to handle a similar but different issue from this post here.
When you send SMS to the service, it delivers it to your receiving application as a POST request (kind of webhook-ish). The POST request includes metadata about the message, the message itself, and, in the case of MMS, an URL where the image is publicly available on Twilio’s servers. This URL is randomized and decently secure, but nonetheless public.
I’m trying to get more and more comfortable with node.js, and I’m finding it really handy to put together quick command line apps I might otherwise be putting way too much cruft into if I would have used PHP.
Today’s utility was one I’ve been meaning to write for a while – it uses the Tumblr API to find tumblog posts that originated from the blog owner (i.e. NOT reblogs). This can be interesting to quickly go through thousands of posts and see content that the person personally wrote themselves.
Just got my grades back – all my classes passed! (WOO!)
Life’s been pretty busy the last few weeks coming into finals, so now that I’m on break, it’s weird not having a priority list in front of me.
Sometime in the coming weeks, I’ll be implanting my second magnet in my finger. This is particularly exciting because it’s NOT a parylene magnet; it’s a titanium nitride coated N52 from Dangerous Things — made just for biohackers! I’m super excited to set a date with Linda and get that puppy in there.
**TL;DR **twilio-sms-delete is a tool to iteratively delete all SMS and associated media from your Twilio account.
Twilio is a great tool for integrating SIP and SMS into your web applications. It’s got a great, simple interface, and API packages for many of the big languages (Python, PHP, JS, etc.).
When an SMS is sent with media (like a picture or audio; technically an MMS), Twilio makes it available to your application as a publically accessible (but very hard to guess) URL (the actual URL is provided in the JSON of the callback data; no non-text data is given in the callback).