Tuesday, January 19, 2016

A year of trying different music services

Over the past year I've gone through and sampled a handful of paid and unpaid music streaming services. At one time I was researching these services to get an idea of what features they had and how easy it would be, as a software developer, to tie into their services programmatically. I was interested to see how accessible each one was for sharing data:  Could I take my data from one service to another, with or without restriction? What data was available? My concern here is that if I create a profile of my favorite artists, wouldn't it be a huge pain to leave that behind- and start over? If I could export this data, it would be simple to import into another service- as long as both the export and import functions exist. Besides data availability I've also made some comparisons based on the similarities between service offerings; quality of music, availability of different artists, and how robust and polished their user interfaces are.

Rather than writing a boring analysis of what I liked and didn't for each service I'll just write about where I landed. The winner for me is Google Play music. The service did not offer the data sharing that I was initially investigating, but after manually switching between several services I realized it doesn't matter. Almost all of the streaming services I had sampled were great at guessing the type of music I am interested in and making interesting recommendations for me to discover new artists. Since I don't really care about maintaining or porting individual tracks or playlists it wouldn't make much sense to make a fuss about leaving them behind, as long as I have fresh new music, good sound quality, and bug free software.

I made this switch to Google after using Spotify for several months, which really did meet all my requirements as a great quality set of products and services. The data accessibility from Spotify also the best, having a large, clearly documented API for 3rd party application integration. But ultimately what drove me to Google was that it included, at no extra charge, YouTube Red.  The primary reason I decided to pay for streaming music was for the removal of ads, and now I have two services that I use regularly, ad free, for the price of one.

There are plenty of high quality streaming services that are about $10 a month service. Each one has great software and selection for music.  Head to head, comparing Google with Spotify they are very similar in quality, except now Google throws in ad free YouTube (among other features) for free. I miss being able to program against Spotify and I never like using an unofficial API for Google, however after using Google I've realized my music porting app was moot anyway.

If you had read my previous post about Tidal you may be asking, what happened? Initially I was very happy with Tidal- sound quality, music selection, and accessibility were great. So why did I switch? Back then the switch was to Spotify. I liked how Spotify provided their recommendations, and I found a lot of new music. Using Tidal it felt that I had to work too hard to play music that I'd want to hear. I think Tidal is great for people who know the artists and tracks they wish to listen to, but for discovery I felt Spotify did a much better job. As far as the sound quality goes:  If you don't have an ear for it, or if your music equipment is not high quality, you won't know the difference (test yourself here). My music needs had also changed since using Tidal: the time I listen to music the most is now during my commuting, which due to so much outside noise I wouldn't appreciate the loss-less. At work I've started to prefer white noise over music. Since now my streaming would be mostly over cellular, a lossless service would eat a lot of bandwidth and may not always be able to stream at lossless.

Monday, August 17, 2015

15 Years of using Linux, Revisiting Mandrake 7.1

The first time I permanently installed Linux was in late 2000. This was before I had any much programming experience but had already developed an interest in computers and computation. One of my buddies, Anton, had interested me in some of the things he was studying at the time so I started looking into Linux. Mostly it was just a curiosity. I had little exposure to anything besides DOS and then Windows, and the intrigue of Linux being a free operating system developed by like-minded hackers in their spare time was why I decided to re-partition my 450mhz Pentium III Dell with Windows 98 and install Mandrake 7.1 on the re-sized partition. This wasn't my first Linux (Redhat 5.1 being the first) but this was my first permanent install. I had learned and grew with this install and spent many hours getting it configured just right, reconfiguring, rebuilding the kernel from source, and just all around tinkering and learning the facets of the system. I also used this environment to take baby steps in different programming paradigms and realized what I would be doing with the rest of my life (profound, I know).

It was 15 years ago this month that I purchased the August/September 2000 issue of Maximum Linux, a now defunct Linux magazine that bundled Linux CD's or other software with it's issues. Only a few months later on February 15, 2001 the magazine announced it was shutting down. I feel lucky, because at the time I had dial-up and the prospect of downloading hundreds of megs of Linux CD's just to give it a try would have been discouraging. Considering that to download this would take days for a single .iso file and I'm sure someone would have to use the phone in the mean time.


Setting up my vm. 384mb was what my Dell had
Times really have changed. Today I can try new Linux almost immediately: With a few clicks I can spin up remote instances using Amazon EC2, or use any number of tools to get a working Linux on a local virtual machine. Mandrake 7.1 was before the days of the Live CD, so to try it you must have it installed. And since virtualization was still relatively new and expensive, I had no choice but to resize my windows partition. However today is much different, since today I'm installing an old version from an old CD-ROM to a virtual environment using VirtualBox,  an environment that is mostly usable and friendly to just about any operating system version. With VirtualBox I had to set up an IDE disk instead of the default SCSI. This time, instead 384mb I cranked it up to 4096mb. I don't think Mandrake supported SMP for multi-core processors out of the box, so I didn't bother to assign additional cores. And of course this is 32bit operating system so I chose the 32-bit Mandriva Logo for my VM.


Booting Linux
Mandrake 7.1 CD boot screen
So after booting my virtual machine and selecting my D: drive to load the physical media I'm now staring at the Mandrake 7.1 boot screen, prompting me to install a fresh copy of fifteen year old software. What will I find? What will I remember? Well, I do remember this splash screen and those happy looking penguin icons, and the ephemeral splash screen star logo and output that fills the screen when I pressed enter to start my install. I recall the feeling I had when this occurred: I thought it was really cool to see this much output of what was happening with my computer. Not just a logo, but a logo and a lot of stuff I had no idea about at the time.


Install Screen
The install process was quite smooth. This set of steps has become more streamlined in recent years, and I remember that only within the past few years distributions will start the installation earlier and prompt questions while it is writing packages to disk. Back when this version was released that was not the case: there are a bunch of questions before and after the files are transferred, which is a bit frustrating and an obvious waste of time.

The one part of the install that stood out the most was formatting. In modern operating systems this takes very little time, but here it took quite a while. I didn't get an accurate count but it was at least a few minutes.

Formatting took a while..
As the file transfer of the packages being installed progressed I was  excited to see the packages names for software I wanted to check out- gcc, qt, netscape.

Setting up partition table
Installing packages

Logging In

A few minutes later my system boots and I'm presented the a crude and very old looking login prompt. All of the colors are basic, and icons look old as well. I log in and run uname -a to see what version of the kernel this is: Linux 2.2.15-4mdkfb, compiled May 10, 2000. I think my first impression of looking at an old window manager for the first time in so many years: everything looked great in a retro way. I was expecting to see something that was out dated and non-functional, but the blocky old style fonts and icons gave it a retro feel that so many games and software are now starting to imitate. I'm quite impressed how well everything seems to just work.

Window Managers

I didn't try them all out or even go into much depth, just logged into gnome and KDE get a feel for the old icons. I later took a look at enlightenment which not surprisingly looks almost identical to what e16 does today. My take away was that the Gnome icon's back then were way too dark and ugly, where the KDE icons had that isometric projection that made it felt like a Commander Keen game.


Now this was really blast to take a look at, even though I was unable to load any network adapter that Mandrake would recognize. I remember using an ISA 3com 10baseT card for networking with this OS, but unfortunately VirtualBox is limited on what it provides for emulation. All the technical aside, I decided to load up Netscape and look at some local content just to get a feel for turn of the century web content.

KDevelop 1.1, Qt 2.1
In the many years since my first experiences using a GNU/Linux based OS I've learned quite a bit about software development, and for the most recent 5 or 6 years I've been doing a lot with Qt. When I last used Mandrake I had known nothing about building large Qt based C++ applications and had only basic experience with programming in general.  I didn't use the IDE back then, so today I'm very interested to see an open source IDE from 15 years ago.

KDevelop 1.1 is incredible to start using, because again what caught my eye were those big blocky icons and ugly generic font for the text editor. I created a new project using a wizard and took a look at the Qt 2.1 MDI project. It was really cool to see some old school Qt code and how similar it is to what is currently used today, but unfortunately GL is missing from the default install, so I couldn't see QGL in action. I'm actually lucky that at least KDevelop was included by default on the install CD, along with Qt development libraries. After playing with KDevelop a bit more extending the sample project I started to get a feel for how incomplete the editor is today compared to any modern IDE. At work recently I recently built a Python editor and runtime environment, and I already have some more advanced features than this version of KDevelop sorely lacks (which were probably not yet imagined at the time).

Seeing that this project is just to poke around, and that I am not actually planning to ship Qt 2.1 software, I reluctantly decided to stop playing and move on.


Just to get a wider feel for the system of the day I decided to search for these popular tools of the day that survived to today. Seeing as though I'm just getting my feet wet with python, I decided to fire up the interpreter in an interactive session and found out that this version is at 1.5.2. I really don't know what that means for the language in general: what changed from 1 to 2? I haven't even learned the difference between 2 and 3, and those are still in use today. All the basic stuff (the stuff I know) seems to work! Next I start up a Perl interactive session just to check out the version number, 5.6.0, and then run locate to find mod_php3 using version 3.0.16.

Final thoughts

I really liked reminiscing on my early days, especially with this experience that I had today. I didn't know if I would recognize what I was seeing but with some time it all came back. It was also quite fun to be able to now be able to use and understand the entire system, where as when I was first introduced to these new tools I was unable to utilize them. However, times have changed and even though I could probably hack away at this all night, my time is probably best spent on real projects on modern software. With it's nostalgic look and feel I really wished I could just keep using this as my daily dev box, however I already spent more time than I thought I would just loading and screen shotting so I decided call it a day. 

I never did resolve the network issue with VirtualBox, but when looking for solutions I came across a website that hosts old Linux CD's. They even had a listing for of Mandrake 7.1 disks but unfortunately the files were missing.

On a final note about Mandrake: Mandrake Linux doesn't  exist anymore, and had since been re-named to Mandriva. And since 2015, Mandriva has been liquidated. I think this was quite unfortunate, since Mandrake was one of the staple distributions that sparked interest in Linux and free software for a long time, but looking back now I realize that even if your roots were bleeding edge- the landscape is now completely different than it was back when I first got started.

Saturday, August 1, 2015

A month in with Project Fi

Earlier this year in April I received an invite to join Project Fi, a new wireless service from Google. I had been using T-mobile for at least few years and had no problems with their service, however after reading an enticing list of features promised by Fi I accepted the invite. Those features include:

  • $20 per month unlimited talk and text
  • $10 per month per GB of data. Any unused data is refunded the following billing cycle
  • Connects to multiple cellular networks: automatically switches to the fastest network
  • Tight integration with Hangouts- make & receive calls, text and voicemail for your number through hangouts on all platforms
  • Lower cost international calls, free calling the US using the hangouts dialer (VOIP)

The updated invite to start service came in June. What I wasn't expecting at this time was that the product page noted that the only compatible device on the market was the Nexus 6. This was discouraging because I already had a sweet phone, my Nexus 5, and I didn't want to pay $650 for a new device just to switch carriers. I was also kinda put off by the Nexus 6 device due to it's dimensions: this is probably the largest phone on the market and with the case, it dwarfs any other phone I've physically compared it to. However, I decided to bite the bullet and jump on the phablet hype. I also calculated in my head the total cost of ownership of the device and realized that I'd probably end up saving quite a bit on the service after the phone was paid off: those months that I'm primarily on WiFi (winter especially) I'll probably see a pretty decent refund on my data bill using this new service.

Nexus 6: After my first month with Fi I'm feeling a bit better about switching phones and services. My worst fear, that the Nexus 6 would be too clunky for day to day use, was not really an issue. It took a couple weeks to adjust but now I don't notice. What helped me is that my hands are larger than average so I'm able to use the device one handed, but someone with small hands would probably be concerned that it could be bumped out of their grasp in a crowded area. The device software itself wasn't much different from my Nexus 5, only larger. Same operating system version and all my apps transferred over. I later decided to change the DPI setting to 360. This forces the device to think it is a tablet, so it presents the apps in tablet mode as well as the operating system. For me this was nice because I hated the giant icons on a giant screen and I am able to use the device in landscape for all apps, even the lock and operating system menu's (as shown below).

Service: As far as service goes I felt that it worked very well, even outside of the NYC area.  When I would go upstate for the weekend and for a trip deep in the woods of Pennsylvania it wasn't so bad, probably no worse than other local providers but still gave me 4G in small pockets that I thought it didn't exist. I think my initial impression was that it took slightly longer to negotiate which network it would use- even in areas completely blanked by 4G (when exiting a subway in brooklyn) it first switched to 3G. I only really noticed this glitch when I first started the service and haven't really noticed anything since- it may have been a glitch.

Integration: I think my favorite aspect of Fi so far is integration with hangouts. Now I can receive phone calls and text messages directly in hangouts- which is super convenient since I now never have to take out my phone to see any communication. Even if my phone is in another room I can answer my phone and view and respond to texts through any other device that I'm signed in to gmail. I've since set my phone to priority calls only- which means it won't ring unless it is from a number on my contact list. Before having Fi I had this disabled because I would then have to check my voicemail to see if any of those calls were actually important, instead I would just answer them all. With Fi I can see a text transcript of the voicemail or play back without having to dial the voicemail service. The integration with hangouts is great, however there were some confusing aspects: I was expecting a phone call and my computer started to ring, but my phone didn't. I really wanted to take it from the handset instead of a speakerphone but the handset wasn't ringing. When I got on the line I mentioned to the other party that my phone must be going through Voice Over IP (VOIP), so their may be a delay on the call- to which he responded the same, that he calling me using a VOIP service.  If an incoming call is VOIP it doesn't ring the handset if it knows I'm on a computer? This wasn't the first time that the service seems to try to guess which device I would like to have ring and either rings the wrong device or rings all of the devices: my computer in my office, my cell phone, my tablet- all ringing with different ring tones for the same voice call.

Billing: Of course all these integration niceties were great but they didn't make Fi stand out from the competition. There are other 1st and 3rd party apps
and services that provide most, if not all of the functionality that Fi provides. It wasn't until I received my first bill that I was genuinely impressed with the service. I was unsure how the refund would be reflected on my bill or if the savings would be significant savings in normal day-to-day use. On my first bill they refunded for the data I had not used, which for this billing cycle was $18.74. What made the billing even nicer was how it was presented. I didn't have to go to some cluttered website trying to sell me a phone to see or pay my bill. There was no up-sell to any other offers or services that I'd have to run into. And unlike T-Mobile, I'm not receiving any text messages throughout the month reminding me to consider their new products and services. The simplicity of the service and app have made the service stand so much that I feel this is the biggest sale point of their service. Simplicity is tremendous value.

Conclusion: Overall I'm quite happy with the new service and the Nexus 6. I highly recommend this service because overall it provides a better value than any other service provider. The only reason I wouldn't recommend it for everyone is because of the phone size and cost. If new, smaller devices compatible with Fi are released (New Nexus 5) I can see this service being disruptive for the carrier market.

Tuesday, May 5, 2015

Motorists vs Cyclists: comparing the rates of injury to pedestrians in NYC

I recently saw this link on reddit which shows cyclists running red lights, almost colliding with pedestrians. After reading through the comments I realized that many redditors in NYC are themselves cyclists. The discussion in the comments was quite shocking and divisive. The fact that other cyclists were defending this behavior seemed quite annoying since I also read quite often about cyclists injuring pedestrians, and even kill them more often that I can feel comfortable about. My girlfriend is often complaining to me about the citi bikes going the wrong way almost plowing her over on a regular basis. I got to thinking: how often do cyclists seriously injure pedestrians? I took a look for some stats on the subject and found an interesting study on the subject. In 2011 the rate of serious injury of a pedestrian by a cyclist in NYC was 6.06 per 100,000. What I did like to see from this study was that at least the numbers were in decline over the last few years of the study. However, knowing that I have a real chance of being hospitalized by a cyclist got me to not only worry, but wonder: what are the rates for motorists? How do they compare?

Please note: I'm not a statistician. My analysis may be inaccurate so please check for yourself.

Motorists v Cyclists: populations

First I wanted to get a good apples to apples comparison as much as I could. I wanted to find out the total number of motorsits and cyclists and to compare the numbers I found.  A few easy google searches on the subject lead me to nyc.gov sites with DOT stats and reports on motorists, cyclists, and incidents. The best stat I could get for motorists were the DOT registration numbers. In 2013 there were approximately 2 million registered motorists in the five boroughs. For the cyclists I found a document that has counts for cyclist reported from six different cycling hot spots. The average number of cyclists for all months for all six hot spots was about 20 thousand. Given the two numbers I have for both motorists and cyclists and that they are not accounted for the same way, I'm not sure if these numbers are a good basis for comparison however I have no alternative. Assuming that these numbers are comparable, there are 100:1 motorists to each cyclist in NYC.

Motorists v Cyclist: incidents

Likewise for incidents it was very easy to find data on the subject but I was similarly uneasy using what I found as a basis for comparison. For incidents of motor vehicles injuring pedestrians I found a page that summarized the NYPD reports for 2013. Assuming that their reporting is correct I found 12014 pedestrian injuries and 168 deaths for a total of 12182. For cyclists I couldn't find a 2013 set of numbers but I turned back to the 2011 study from the first paragraph to pull the totals. In 2011 there were 501 total injuries by cyclists. Although I can't match apples to apples since the years are different I can only make a broad assumption: there were approximately 24:1 incidents, motorist to cyclist.


Based on the numbers above and taken with some salt you may agree that cyclists are more dangerous to pedestrians than motorists. Based on the data, a cyclist is 4x as likely to injure a pedestrian than a motorist.

Tuesday, March 31, 2015

Tidal: Finally, lossless streaming audio

At first I saw Tidal with their pretentious launch event and group of highly overpaid artists/owners  I couldn't help but feel the commercialization. The feeling I always get from these superstars that over sell themselves as a product is that I'm being over sold. Have I bought in to what they have to sell me? Alicia Keys, Beyonce, Daft Punk, Kanye West, Deadmau5, Calvin Harris, Madonna.. the list goes on. All of the big names that you would associate with "mainstream", and as a consequence sold out and in more way than one. However, It wasn't this list of owners that sold me on the service, It was the service. I've often read that the first rule to starting a tech company is to make something that people want. In so many ways, this is really hard to do. The main reason I can see is that yes, it is easy to think of something that will definitely take off- but for most of us is that we don't have the money or connections to put it all together.
  One thing that I've always wanted since streaming services started appearing was to have a streaming service that did away with all of the ads and provided the highest quality content. For video this is still an issue- you can't get a high cost all you can consume video service with a completely full catalog of movies streaming high quality video. It just doesn't exist. And with some services, like Hulu, you pay a monthly fee and still get ads!  Thankfully for music, Tidal exists. I love my music but ever since lossy music became the standard I haven't been entirely satisfied. My journey with compression started when I was the first kid at school (and for a while, the only) with a mini-disc player.  This was not CD quality but incredibly good at 292kbps. While kids at my school were making mixes on tape (this was even before burning CD's was an option) I was cutting tracks with sub-second precision. I loved the sound that my mini-disc player had. And the fact that I could put all that awesome sound into something that fit snug in my pocket was immensely satisfying. Then I remembered seeing the first article for solid state players. The first one I recall was 16mb and cost $500.  Even though I knew it would still be a few years before solid state would become viable, the writing was on the wall. Years later I got my first player. I acquired a 256mb Rio from a kid at my school who I found later later had stolen it from his brother. This was the first time I felt the squeeze of not being able to bring or access the music I wanted at the quality I wanted due to space constraints. I wanted to bring enough music with me so, so I would choose a lower quality (128kbps). The quality was passable but I would often defer listening to new music until I had the CD in my hands to play in my car. Today the quality I've become used to has been the 256kbps from Amazon prime. Still no where near the clarity of CD quality, it has become the norm for me. Up until last year I had a CD player in my car and would still buy CD's for the higher quality audio and I would still defer listening to new tracks until I had the hard copy in the CD player. Since then I've traded in my old car for a shiny new 2014 model that comes without a CD player. Needless to say, I've missed high quality music. This is the reason I've tried Tidal, to re-live high quality music that I've been missing and so often gone out of my way to re-capture. And so far, so good. I've only been using the service for a few hours now but the quality is definitely worth it. I hear so much more to each note that the music leaves me feeling full.

So is it worth the hefty $20 a month? More than twice what I pay for Netflix? Maybe, but not for me. I do enjoy my music but I also enjoy silence. I doubt I can listen to as much music for as much time as I spend on Netflix, and again- it is less than half the cost. But this isn't an apples to apples comparison. Compared to other music services I have to say it is does compete nicely- but double the cost for a high quality option seems a bit stretched. I can see a 50% premium but as a whole the service is barely affected. I think if it were a $5 option far more people would opt in and never think twice. For me, I'll see how much I actually use the service but I feel it is all or none for me. Either I'm in it with HIFI or I'm out. There isn't really a compelling reason to use the service besides the HIFI. As I mentioned above, the software is functional but I don't really enjoy using it as I have with other software. And as far as software goes, if I'm paying a premium I expect a premium experience all around- not just with what is coming from my headphones.

Monday, April 28, 2014

Apple finder: where are my files?

A few months ago I decided it would be best to upgrade my Mac computers at the office with Mavericks. Since then my icons and folders have all but disappeared. I thought maybe this was just me when it first happened. I even resorted to reinstalling the entire OS when various methods to fix the situation either failed or only fixed the issue for a short period of time. This hasn't really been an issue for me the past few months only because I hardly use these Mac computers: every so often I create a new version of our software for Mac or I test some bugs that are not reproducible on Windows or Linux. I all but ignored this issue on both our Mac server and Macbook Pro because these computers were not my primary computer and so had little effect on me. About a month ago I decided I needed a new workstation and started looking into the Mac Pro, the reason being that not having a Mac as my workstation lead me to neglect the Mac specific issues of our software. I assumed the disappearing files issues were due to installing Mavericks as an upgrade or not from factory so I went ahead with the order and received my Mac Pro about a month later.

I was pretty happy, up until I had to contact Apple support... because my files were gone.

This thing is quite fast: 6 cores and a PCI-Express hard drive, I'm able to run 2 virtual machines very smoothly with a lot of stuff going on in both of them, as well as running a full dev environment on the Mac itself. Everything was great until my files were completely gone in finder when I went to "Reveal in Finder" from my SVN client. A brand new machine with the same old problem. After exploring a bit further online my coworker discovered another quick fix that appears to resolve the issue again, for now: Relaunch Finder. This can be done by option clicking Finder and selecting "Relaunch" from the menu.

Below, a picture of my new trash can Mac Pro.

Friday, January 10, 2014

Google+ Endorsements = Profit?

I recently read a Business Insider Article article which explains how to opt-out of displaying my ratings and feedback I had provided to apps and services found across the Google ecosystem- I assume this mostly means search results and profile pages in the App store, Maps, etc. What I found quite telling and annoying is that I'll assume this only works one-way; only positive endorsements will be displayed.

My reaction to this is simple- why would I care? I can only imagine google would share with me positive feedback, not negative feedback. For me to make an informed decision I would need to have both- to understand the pro's and the con's. I'll assume that Google makes money on the pro's and has a real risk of losing money (through litigation) by displaying the con's.