Programming
When you get bit by precision & scale in PL/SQL…
· ☕ 2 min read · ✍️ Sathya
I got a bug assigned to me where my application was returning an incorrect value. Some background: The function was an age check function which takes in date of birth & start date and returns the age. In this specific case, the date of birth was 05.01.1951 and start date was 01.01.2016 - the expected age that was to be returned(after round off to 4) was 64.9892. The application, however was returning 65.

Download your Spotify My Music songs as MP3
· ☕ 1 min read · ✍️ Sathya
I wanted a way to download my Spotify songs for offline listening. Ideally I’d subscribe to Spotify to make use of Offline feature, but they haven’t officially launched here so that’s out of the question. A while back, I’d used spotify_to_mp3 which made use of Grooveshark to download, but Grooveshark shut down, leaving the script defunct. This gave me an idea to build something similar. With this as the motivation, I built Spotify-dl to scratch an itch as well as to improve my Python skills.

An Indian developer’s way of handling merge conflict
· ☕ 1 min read · ✍️ Sathya
So this happened just now with a colleague. He’s been working for few months now. My way of handling merge conflict: Open WinMerge to diff See the conflicting part Correct the conflicting part by copying the changes to the destination file in WinMerge His way Open WinMerge to diff See the conflicting part Opens the source file in Windows notepad Copies the entire contents to clipboard Opens a new tab in Notepad++ </div> Pastes the contents Goes to the line to be corrected.

Salute to Fabrice Bellard
· ☕ 2 min read · ✍️ Sathya
I probably top the ranks of lazy arses who procrastinate like there’s no tomorrow - and then there’s Fabrice Bellard Amongst others, he’s created/led A 4G LTE base station running entirely in software on a standard PC. A new ASN1 compiler generating small and efficient C code. A PC emulator in Javascript: how much time takes your browser to boot Linux ? 2700 billion decimal digits of Pi computed with a desktop computer.

Animated GIFs the Hard Way & Using Them For Realtime text communication
· ☕ 1 min read · ✍️ Sathya
When doing the new website for the Sublime Text 2.0 launch, instead of just screenshots, I wanted to have animations to demonstrate some of its features. Animated GIF files would have been a candidate, except for two issues: the 256 color limitation, which would have made the animations ugly, and the encoders I tried spat out huge files, at almost 1MB per-animation. Instead, I wrote a small Python script that takes a collection of PNG frames as input, and emits a single packed PNG file as output, which contains all the differences between the frames, and some JSON meta-data specifying which bits of the packed PNG file correspond to each frame.

Hackershelf: A curated collection of legally free books
· ☕ 1 min read · ✍️ Sathya
Hackershelf is curated collection of legally free books. Check it out. On a related topic of programming books - check out Stack Overflow’s tag wiki on books. Related: HN-Books: a listing all the books that hackers recommended to each other from the site HackerNews.

10 minute bug fixes & web conference bloopers
· ☕ 3 min read · ✍️ Sathya
Came across this article via HN and I’m pretty sure most who work for Enterprise companies would’ve come across this at least once. Incredibly detailed post. Boss: Hey Ed, Sue in Detroit says that sometimes, the wrong Invoice Part Number is showing up on the Product History Screen. Can you help us figure this out. Ed: I’m busy with something else at the moment. Put the ticket in my queue.