If you're the smartest person in the room, you're in the wrong room.

Power User Series – Tip 1 — December 22, 2016

Power User Series – Tip 1

Hey there!

Have you ever felt that you use too many messengers and accounts for comfort? Do you have different friends on different sites? Is checking each app on your phone consuming too much of your time? At work, do you constantly switch back-and-forth between your phone and your desktop?

Today, I will talking about a few desktop applications that will enhance and optimize the way you use your  smartphone (and tablet). I will be covering Franz, Pushbullet and SHAREIt.

1. Franz

Franz is a desktop application that aggregates all your social media, email and communication into one interface. It spawns one WebView-style tab for all of the accounts you configure and handles notifications for each account.

Image result for franz screenshots

As of 22nd December 2016, it supports 34 communication applications, from WhatsApp, Telegram and Messenger to Hangouts, Gmail, and Slack.

The best part is, since each application within it lives in a sandbox, (a WebView instance) the application does not read your messages, which are processed only via the service that you are using at the moment. Personally, it has spared me from having to check for new messages and posts every so often, which has saved me a ton of time.

Get Franz over here. It is compatible with Windows, Mac and Linux.

2. Pushbullet

Image result for pushbullet screenshot

Pushbullet is a service that mirrors phone notifications on your computer. It helps you transfer files to and from phone to phone and phone to computer. Next, the in-built messenger helps you contact friends and even share links among devices. Furthermore, the “Quick-reply” feature helps you respond to text messages from your device (be it through SMS or IM).

Messages appear as part of “chat heads”, similar to the ones on Facebook Messenger, ensuring the conversation thread remains visible always.

Another cool feature is the ability to follow feeds such as comics and news. Content updates continue to come in on all the screens on which the app is installed.

To work effectively, Pushbullet needs to be installed on all devices that need to be connected. Distributions are available for Android, iOS and Windows and for Chrome, Firefox, Safari and Opera (as add-ons / extensions).

There are a few API limitations though:

  • Sending and receiving text messages through a computer works for Android only
  • iPhone notifications can be seen only on Mac devices whereas Android notifications are viewable on all devices

3. SHAREit

Image result for shareit screenshots

SHAREit is a file-sharing app that works using WiFi-Direct standards through temporary personal hotspots. You can use it to send and receive files between phones and between a phone and a computer. Since it works on WiFi and does not use mobile data, it offers blazing fast transfer speeds, purported to be 200 times that of Bluetooth.

Ever gone on a trip and during the journey, wanted to play a LAN game you see others playing and don’t want to waste money consuming precious mobile data? Then SHAREit (or Xender xD) is the solution for you. You can use SHAREit to transfer the application from someone else’s device to yours and start playing the compelling game. It’s perfect for sharing apps (particularly large ones that you absolutely cannot download), photos, videos and any other files. In fact, because of the Group Sharing feature, you can set up a group and invite some more gamers to join in (the more the merrier, don’t you agree?). Anyone on the group will have access to the file, which is faster than sending files individually to everyone.

Don’t have SHAREit? No problem… as long as the person who has the app you want, has it. SHAREit can create a server on a temporary hotspot with a link to download files. Anyone who connects to the hotspot and visits a particular site, can easily download the apps (and SHAREit too, ’cause why not?).

Through the remote view feature, you can view files that are on your computer, on your phone. Photos on your phone can also be viewed on your desktop, with a nice transition effect. As you swipe right, the picture on the computer changes accordingly.

Finally, SHAREit also comes with a PPT control feature that does exactly what you’d think: change slides.

This is what I call a feature-packed app.

With these three apps in your arsenal, you’re well on your way to becoming a smartphone power user. Using all three in synchrony will ensure that the only reason you need to pick up your phone is to answer calls or to game (tasks which can also be emulated on your computer through other apps not covered in this post).

Hat tip: If you have Xender on your phone, SHAREit won’t display it in the app selection screen, thus preventing you from sharing Xender over SHAREit. That’s just evil, don’t you think so?! Think of it like Apple’s controversial and anti-competitive strategy of blocking certain Spotify features (to favor its own Apple Music service).

SHAREit official website

The app is compatible with Android, iOS, Windows Phone, Windows and MacOS.

That’s all, folks.
This is Prad signing off for the day.

Ahead Stop - XKCD No. 781
Ahead Stop(XKCD No. 781) They actually started the reversed-text practice in 1977 — not for ease-of-reading reasons, but because too many people were driving backward down the highway blasting the Star Wars opening theme.
Easter Eggs — October 31, 2016

Easter Eggs

Hey there!

Easter eggs, what scrumptious things! Mmmm. Yet, this isn’t a post about the ones you eat guys! I’m talking about the hidden pages of the Book of Mozilla (ooooh!).

I’m talking about Easter eggs in programs. The ones, which, when you accidentally find (or when Google helps 😉 ), you have a eureka moment.

Easter eggs are usually triggered by pressing hidden buttons or keys in a certain order. Here are some other ways they can be hidden:

  • A secret message having the same font color and background color (white-on white, black-on-black etc.)
  • Become visible only when particular gestures repeated a given number of times (e.g. Chrome for Android)
  • Specific search queries (e.g. Google search has loads)

For the unaware, easter eggs, in context of software, are little bits of undocumented code developers add to an application. They could encompass anything, from a hidden credits screen to a jumping object(Spoiler Alert: WinRAR) to a hitherto unheard of 256th level in Pac-Man to even a whole flight simulator.

They are often included to display the eccentricities of particular developers or just to add light humour to an otherwise mundane program.

Unfortunately, Microsoft doesn’t include them anymore, because of a policy called Trustworthy Computing that they introduced in 2002. Nevertheless, their earlier products have tons of them! Here’s an exhaustive list of the ones discovered (so far).

Do comment if you find one!

And here’s the comic of the day, from XKCD!

They'll pick music and culture that they know annoys you. Building in behavioral Easter eggs is a fair retaliation!
Parental Trolling. Now isn’t that just cool! Click on the image to see a larger version.
Formulaic — May 29, 2016


Hey guys!

I’m super excited to announce the (non-commercial)release of my new single “Formulaic”. It’s been sitting on my computer for weeks and I’d been itching to finish it, but I was busy.

Anyway, this is called Formulaic because I wanted to try out how sticking to a formula would help. I think this track sounds closer to mainstream electro house than my other sounds. What I found was that it helped me quicken my workflow since I didn’t have to constantly focus on the final song  structure. I also realized that I was stumped for ideas less often. Usually, I end up splitting the production over several periods over a week so I can be inspired by the things happening around me.

As always, I’m pleased and eager to hear feedback and suggestions! So please comment.
If you like it please vote for it on the Spinnin’ Talent Pool here. Stay tuned, new post on my latest coding adventure coming soon.

See ya!

TextCMS —



This week, I resolved to code. I hadn’t done anything serious for a while and I decided that the right time had come. So I sat down, wondering what to do. I started surfing the Internet. I ended up reading an article comparing web frameworks and CMSes (I had recently been exploring Drupal and WordPress). An idea slowly spawned about making my own CMS type software. Something simple, like a proof-of-concept.

What I ended up making was a Python script capable of taking a directory full of posts, with content in text files, and laying out a page depending on the desired template. After writing what looked like a very specific case, I paused and realized that I could abstract this. Soon, I refactored it to make more extensible.

Then, came along an object with template functions to handle each component of the web page separately. I had been using a text file with a list of posts with each post to be included on a new line. This became inconvenient when I wished to handle metadata. Soon, this list became a JSON file which would be easier to access and modify than a database but would add scope for easy-to-edit metadata. Using Python’s JSON module, I eliminated storing any post info in separate run-time variables and just dumped (literally) the whole JSON into a dictionary.

Here is where I took a break. I still haven’t resumed work on it, but I’m toying with the idea of adding a plugin-manager and handling images more elegantly (actually, showing images at all, without the user having to code markup, I haven’t started handling images yet :P).

Right now, it’s a script that you have to call, that generates static pages. Soon, I’d want to convert it into a server, so that the posts are served real-time. I don’t want to have to re-run the script every time I edit post or create a new one, somewhat like a smart build tool. The page template functions should be part of the HTTP response probably a GET query.

The header image is a screenshot of it – taken immediately after a fresh run of the generator script. I am hoping open-source it on my GitHub soon.

The original goal was to make a lightweight web publishing tool, so that anyone who wanted to publish their writings, would just need to write a few text files. The styling is done separately with CSS – the generator has classes assigned to important sections. Including stylesheets in the package so the publishing process becomes instantaneous would be a good idea. I should seriously consider adding a media-library. Oh wait! How about a GUI front-end to edit the metadata.

Ideally, there would be an online marketplace where content writers could find stylesheets (free as well as paid) that they can easily integrate into their site.

It would work pretty well as part of a web server. All users would have to do would be to enter information about each post in the (proposed) GUI tool, and have their content ready. I feel like getting my hands dirty again.

See you soon!

Regular Expressions — May 11, 2016

Regular Expressions

Hello there.

Knowledge is power. Data is king! And knowing how to manage data, process it and analyze it always shows you areas of improvement and interesting trends, regardless of your occupation. Be it feedback, suggestions, personal information, browsing habits, server logs, financial data, scientific observations, presentations or even books and news that we encounter every day, our lives are filled with information. That is sitting on a computer, maybe on a cloud, who knows where. But it is there to be used and to help you stay at the top of your job. Nonetheless, just as the connections between neurons in your brain weaken, data gets misplaced, lost and potentially jumbled. Thus, organizing it is a recurring task we must undertake.

Regexps or regexes, however you like to call them, comprise a pattern matching system for text, like an advanced find and replace tool as seen in word processors. I won’t go over how to use them in this article, as there are tons of cheatsheets and guides all over the Net.

Using signs and symbols, like asterisks, brackets and other special characters, a regex engine or a library will enable you to find patterns in large swathes of text by processing a source expression, entered by you. It, effectively, decomposes the whole into delimited sections analogous to how vectors in Math and Physics enable one to separate one action into independent components which can be dealt with separately.

Regular expressions are ubiquitous; you can find them in web forms, validating email addresses, in web server directives(for example, to show you a page without you needing to type in the .html or .php after the web pages name), in advanced text editors like Notepad++ to sort text and even while batch renaming files and folders through a command-line.

A well-crafted regular expression, can save you a lot of time spent manually making changes(such as ensuring that all commas in a file are only followed by 1 space) and dramatically .

Learning how to wield the magic wand that is RegEx will take you one step closer to being a power user.

An aside here. I couldn’t leave you without giving you this link to the now wildly famous answer on StackOverflow on why you shouldn’t parse HTML with RegExps and this one that refutes the first one.


Now I’m AWKing for searches that involve greps. That’s what she she sed!


Motifs in Electro House — May 10, 2016

Motifs in Electro House


Being a huge big room, electro and progressive house fan, I love finding patterns and themes in tracks To the unfamiliar ear, most songs of Big Room and house in general sound same – an intro, the rising action, the break and THE DROPPP 🙂 (it’s become all we listen to nowadays, seriously). Rinse. Shower. Repeat(rather Eat Sleep Rave Repeat 😉 )for producers , DJs and fans alike.

But all drops are different. Whether they are unusually long – Higher Places – Dimitri Vegas and Like Mike (Bassjackers Remix), minimal – Akufen – Skidoos and Coldplay – Fix It(Datsik Remix), meta and self-referential drops – [Drop It Like Drop It Like Drop It] Like That – Bassjackers or even every single siren-swept Martin Garrix drop, each drop has infused in it, the style of the producer which unfortunately leads many to think that all, say Armin van Buuren songs are the same. . I think that while exploring new genres and artists in in EDM, consistency in terms of song structure is by no means the only criterion and a crowd-satisfying and  assured euphoric drop is definitely something producers need to always keep in mind. In the below video, DJs Mashd N Kutcher, bored of playing drop after drop(really? how is that even possible?), to see crowds going crazy regardless of whether they liked the song or not, … well, I’ll let you see it.

I can really feel the frustration and crushed hearts after that underhand swap-out. I mean they’ve paid for a rave and their night has literally just been ruined.

Anyway, I digressed a bit over there. Being a huge +X fan, I had this intriguing idea of swapping drops among songs. After surfing on YouTube, I found several people who’ve done something similar – play several of Martijn’s songs together, aligned drop-wise.

A cursory listening makes it look like the drops are swappable, but the basslines would sound weird, the style unnatural, and moreover a rude shock. All of them playing together sounds like a mess. Even if it showed the futility of such an action, at least we confirmed that consistency and repetition in  sounds are still cornerstones of a great house track.

A few other observations, if I may. Many Big Room and Electro House tracks have this 8 or 16 bar synth variation after the intro, followed by a 8 bar bridge usually with the low pass filter opened way up. This seems to help in filling up the sound spectrum and to prepare for the drop. The bridge is also the time for a siren or wobble bass to be slowly introduced that serves as a complement to the bassline after the drop. In several “In The Studio” videos, such as those by Future Music and the like, producers comment that using particular EQing techniques and other quality improving effects and specific sample packs such as Vengeance for this purpose keeps the recording from becoming too loose and from disintegrating in the ears of listeners.

Another thing producers have been doing is creating a short section of their signature loop or an effect which they use in every song. This helps in standing out from the arguably crowded community of producers. It’s often a very enticing hook, such as a few synth blasts, wobble basses, air horns, repeated snare rolls, or even just a chant. I find that these characteristic riffs work wonders in pulling new listeners and in retaining old followers. This often results in the branding of a track and a style of producing.

I hope you learned something new, got some food for thought and started appreciating this splendid genre more!

Cheerio and as always, keep “Getting Your, Getting Your Hands Up”!


The endless classification debate rages on…(Seattle EDM on Pinterest, retrieved from


Mau5heads rock! (quickmeme, retrieved from

itertools in Python — May 9, 2016

itertools in Python

Hi there! At one point, while using Python, have you felt the need of a syntactically short way to quickly perform an operation on a list, and you’ve wondered, with Python’s excellent built-in functions(fine, “methods” – OK, Java developers ;)), if functions exist to do things like, get all of the permutations or combinations of a list with or without replacement; evaluate a common function(a higher-order function) to every element in a list; get a tuple of all possible outfits, given lists of shirts, trousers and ties?

If you have, then itertools is the module for you! With functions that perform operations taught frequently in high-school math classes, like Cartesian Products, Permutations, Combinations and Set-Building, itertools enables you to succinctly produce a list from another list, without getting your head flipped with nested listcomps and complex generator expressions. I’m going to go through a few useful functions here. Check out the Python Docs for more info:

  1. itertools.imap(function, *iterables)
    Some of you may recall map(), that in Python 3 has been relegated to functools from the global namespace. This function applies a given function(including lambda/anonymous functions) to a set. The difference between imap and map is that imap is evaluated lazily and returns an iterator. You need to keep calling next on the iterator to get each value, whereas, map evaluates the function on all elements of the specified list immediately. Thus, imap is suitable for situations in which you have large lists but don’t need the values all at once.
  2. itertools.product(*iterables[, repeat])
    This returns the cartesian product of lists passed to it. This is quite handy while filling out a form automatically through a script.

    >>> import itertools
    >>> shirts = ['green shirt','red shirt']
    >>> trousers = ['corduroy trousers', 'pinstriped trousers']
    >>> ties = ['bow tie', 'cravate']
    >>> outfits = itertools.product(shirts, trousers, ties)
    >>> for e in outfits:
    print e('green shirt', 'corduroy trousers', 'bow tie')
    ('green shirt', 'corduroy trousers', 'cravate')
    ('green shirt', 'pinstriped trousers', 'bow tie')
    ('green shirt', 'pinstriped trousers', 'cravate')
    ('red shirt', 'corduroy trousers', 'bow tie')
    ('red shirt', 'corduroy trousers', 'cravate')
    ('red shirt', 'pinstriped trousers', 'bow tie')
    ('red shirt', 'pinstriped trousers', 'cravate')
  3. itertools.combinatoric(iterable, r) where combinatoric stands for any of the following – combinations, combinations_with_replacement or permutations,
    and r is the length of each subsequence. For example,

    >>> comb= itertools.combinations([1,2,3], 2)
    >>> [x for x in comb]
    [(1, 2), (1, 3), (2, 3)]
  4. itertools.ifilter(predicate, iterable) and itertools.ifilterfalse(predicate, iterable)These two functions generate iterators that filter based on the expression ‘predicate’. ‘ifilter’ returns elements for which the predicate/condition is true and ‘ifilterfalse’ returns elements for which the predicate/condition evaluates to false.

I hope this helped you increase your program efficiency and added to your list of tools that you can use while tackling a problem. Don’t forget to check out the Python Docs for the other nifty functions.

And now for something completely different…

XKCD No. 163

For those of you may point point out the elegance of list comprehensions, wait up! New posts are coming soon.




LMMS(previously Linux MultiMedia Studio) is my digital audio workstation(DAW) of choice. It’s FOSS(free and open-source), easy-to-use, cross-compatible and has a lot of cool features.

What I like most is the interface. Designed to be used on a single screen, it is much less crowded than those of other DAWs. It’s really simple to choose samples(a recording of an instrument playing a note or a series of notes)  from the sidebar, add it to the beat and bassline editor and prototype your loops immediately. In fact, users of FL Studio(previously FruityLoops) will find themselves very much at home as LMMS is designed to replace such commercial DAWs.

What’s more, you ask? The whole interface is, wait for it…. themeable and you can upload themes to as well as download one of 59 user-created themes from the Sharing Platform.

It comes with a lot of built-in software synthesizers/instruments, most famous of all, ZynAddSubFX, a hybrid synth, originally developed by Nasca Octavian Paul. I use this a lot to create Big Room Saws and String Pads. Apart from this, it comes with an eclectic range of audio and MIDI effects in the form of LADSPA plugins. These really add that touch of originality to your music and help you create a signature sound.

Using VesTiGe, one can use VST instrument plugins to emulate instruments and expedite the creation of your track without having to focus on creating your own sounds.

What’s more, it’s super simple to connect it to MIDI equipment like an Oxygen 49 keyboard or even an Akai LPD8 pad so you can record your compositions and improvs directly from your instrument. All you need are the latest MIDI drivers for your instrument installed and a usb-midi cable. Turn off your instrument, connect it to your computer and turn it back on. Now, you can change the note input on any instrument to your instrument’s name in the drop-down menu and voilà! Remember to turn your instrument off before you try to remove the cable.

You’ve been warned.

On a lighter note, you can get LMMS for your desktop OS, here. Good luck on your music making journey!

LMMS(default theme), running on Ubuntu, with the sequencer open in the top left, the effects(FX) mixer on the top right, the notes editor or ‘Piano Roll’ on the bottom left and a drum loop being edited in the ‘Beat and Bassline editor’ at the bottom right.

Check out my recent track Speeding Moment, on my SoundCloud, below. I’d love to hear feedback on it and on my other tracks.