Archives: 'Tech'

Note: Originally posted on someone else’s Google+ post, but figured I’d cross post it here, since hey, I have a blog that needs content, and this way I can link to it on Facebook

Background: I’ve used Grooveshark for around a year now, and have been paying for VIP since September. I’ve been getting increasingly frustrated with disappearing songs from my playlists and the unavailability of “key” songs like Rolling in the Deep. Grooveshark’s “host music until we receive a DMCA” model stops working when record companies start caring and start DMCAing.

I splurged last night on the Unlimited ($5) subscription and spent 4-5 hours setting up my entire “collection” on Spotify. It’s great. All the music is “legit”, ie actually licensed as opposed to Grooveshark’s mostly illegal model. A couple albums are missing here and there, namely all of Arcade Fire, and Daft Punk’s Discovery, but they had just abut everything else I wanted available, including many “rare” Muse B-sides, “indie” artists, and random dance remixes of stuff. It automatically scans your hard drive for music files and adds them to your library, which is AWESOME, and perfect for someone who doesn’t want to abandon their extensive catalog, or if you have super rare stuff that the Spotify catalog doesn’t have, or if you like The Beatles. Unfortunately it doesn’t like my WMA lossless files (probably not FLAC either), but I have most of them transcoded to v0 VBR on a separate hard drive which I’ll move around and import eventually.

Sound quality is 160 kbps Ogg Vorbis at the free and Unlimited level, 320kbps at Premium ($10 a month). It sounds fine (on RPI TV’s stereo monitors), much better than Grooveshark. Albums do NOT play back gaplessly. I do prefer Grooveshark’s “now playing” bar, but Spotify does allow you to queue things on-demand with a simple right-click -> Queue. It also shows the list of upcoming shuffled songs, which is a wonderful feature Grooveshark neglected. However, it doesn’t shuffle “queued” songs, only songs from whatever source you’re “playing from”. Additionally, you’re only able to reorder songs you’ve queued, so if you’re playing from a playlist you can’t reorder the songs in your “play queue”, like you can in Grooveshark. The workaround is to queue the whole playlist instead of playing from the playlist, but that’s slightly awkward and counter-intuitive, and then you can’t shuffle. So, some improvements to be made to the Now Playing interface.

Social networking integration, blah blah, I see Jeff in my right panel. It’s missing a “music discovery” tool like Grooveshark’s Radio, but I suppose there are enough other tools out there to help with that (Grooveshark mostly suggests garbage anyway).

I’m already considering upgrading to the $10 a month plan, namely for the mobile app. 320kbps and offline support would be nice too, but I’d be mostly paying for the mobile app.

While it’s been some time since I worked on stupichat, I felt compelled to add a new program to my growing set of stupiprograms. The addition is stupishell, a programming assignment from my OpSys class.

Below is an example screenshot from a stupishell session:

Do note that the prompt (penis) grows in size until the shell exits, at which point it ejaculates.

I woke up Sunday evening at around 9:00 PM after spending around 16 hours “frontloading” sleep. Amusingly the first thing I did was to check to see what finals I had on Monday. Probably should’ve checked earlier. After determining I had Biology at 8:00 AM and CompOrg at 3:00 PM, I ate dinner, put on a suit with a red tie, and headed off to my lair for Finals week, the RPI TV closet. I wasn’t very worried about either Biology or CompOrg; the Biology final would be inconsequential to my final grade and the CompOrg tests thus far have been extremely easy. I allotted four hours of studying to each final, giving me plenty of time to pursue other ventures.

I spent a bit of time working on the RPI TV DVDs for the PakSA show (which I had edited Friday), and in no time at all I had 10 freshly burned DVDs in cases with Marc Ebuna designed, Kyle Mackenize printed labels. Next up, the Dance Club Recital. We had shot this production on Saturday in the EMPAC theater using a completely digital 1080p workflow. After coaxing Final Cut into accepting the video in ProRes format, I quickly touched up a couple live-editing mistakes with the stationary wide shot, and called it good. 85 GB file for 90 minutes of video! Once the recital was exported, I went to work on its DVDs. The Dance Club had ordered 30 (!) DVDs. While the DVD was building (took a bit for it to downscale from 1080p), I began work on Biology.

5:00 AM rolled around, the DVD was done building, and substantial progress had been made on the Biology front. I left the closet to print some labels in the VCC. However, the VCC printers were unfriendly, so I went to the CII instead. I found some weird empty classroom with a color laser printer, and rattled off 30 covers. I then traveled to the SGS, where I had supreme fail cutting the covers out with Marc Ebuna’s package cutter. Discouraged, I returned to the closet to continue Biology.

Fueled by a pair of Red Bulls, a pair of Vitamin Water Energys, and a large amount of Tostitos Scoops (with both spicy cheese and salsa dips!), I finished covering the required Biology course matter at 7:34 AM. This meant it was time for celebration, so I fired up my Zune on RPI TV’s stupidly expensive stereo monitors (speakers) and blasted some motivational Muse.

The Biology final was taken in a manner that I was satisfied with.

Post-Biology, I returned to the RPI TV closet and set up my new base of operations. After cutting the DVD covers on the Admin Office paper cutter, it was time to start mass producing! I fired up the Mac Pro’s dual CD/DVD burners and revved them up until they were redlining. DVDs were flying all over the place. DVDs traveled from a spindle to one of two drives. After 3-4 minutes of intense burning heat, they found themselves thrust into a DVD player for quality control before being slapped down hard into a waiting case at which point they were hurtled across the room onto a bookshelf where they would await the arrival of Sara Brown.

Between DVD flights, I also started Public Relationing. I gathered three of the RPI TV bins and stacked them outside the door. Atop this pile of gray bin goodness sat one of our field monitors (this time its a TV, not speakers, stupid terminology). The DVD/HDD recorder was placed above the monitor, however it refused to output video in the requisite 16:9 format, so it was sidelined for even more impressive technology. Since Bin 1, which contains BNC, was at the bottom of the bin stack, I had to found another source of cabling. I grabbed a 25′ XLR from Bin 2 (which was not part of the stack), and after some supreme adapter fail had rigged up a video connection over XLR from the DVD player on the desk to the pile of bins outside. At some later point, I decided the stack needed another monitor, so grabbed a smaller field monitor, and after some T-junction goodness I had two functional displays. Not wanting to run additonal XLR and suffering through additional adapter fests, I resigned to just blasting audio from the stereo monitors in the room. The setup looped footage from the Dance Club Recital all day.

Once the DVD fest was over, I began work on my CompOrg crib sheet. I was helped with the advent of an additional Vitamin Water Energy and two slices of pizza. At around 2:00 PM, I received a call from Akamai Technologies about their CDN services for the RPI TV website. I didn’t like the cut of his jib, nor his accent, nor the price that he offered ($300 a month), so I refused his services. Several DVD purchases took place, and I found myself with $90 that needs depositing.

The CompOrg final went swimingly.

Post CompOrg final, I returned once again to the RPI TV closet to finalize a couple things. I also gave Limelight Networks (another CDN) a call. The representative had a very nice jib cut, and was much more interested in providing a solution for RPI TV. However, I fear that the price may still be too much for our poor Union funded club. Despues de la llama de telefono, y un conversacion con Mike DiTore sobre la futura de la sitio web de RPI TV, fue tiempo para dormir. Hoy desperte a dos en la manana, y fui al armario de RPI TV para editar “Asian Awareness Week”. Y ahora es tiempo por yo para editar mas antes de la examen final de DSA.

Also, just thought I’d throw it out there that when I returned to my room Saturday Night/Sunday Morning PETER HAJAS was in my room. He had apparently bought his netbook from an extremely sketchy Hungarian site. AMANDA GEORGE was not in the room, however.

Okay, so I think I’ve hammered enough bugs out of Stupichat that its ready for some preliminary testing/chatting. Dropped connections on either end should now be handled properly, and neither client nor server maxes out the CPU (which is probably a good thing for a text-based chat program).

Stupichat Client 0.1 should connect to my server from anywhere on the RPI campus. First, the client will handshake with the server over port 555, then the server will assign you to your primary port in the 1000s range, and close the port 555 connection. From then, messages sent from any client are relayed back from the server to all clients. I hope to be able to add features and functionality to Stupichat without making many modifications to the client. For example, nickname changing and rudimentary slash commands are some of my early goals.

I’ve finally started my first personal programming project at RPI. That is, something I’m doing on my own time, something that’s useful, and something that’s fun.

I’m calling my first project Stupichat. It’s a (very) lightweight command-line based chatroom supporting multiple clients, supported by a central server. Things got off to a good start; in just a couple hours I’m able to support multiple clients communicating with my server.

I figure a programming project is a good reason to go to classes and pretend to listen. Perhaps I’ll be in DSA tomorrow!

Within the last two days, I’ve noticed a salvo of Scott Murphy ads appearing on just about every web page I visit. If you’re not from the Capitol region, Scott Murphy is the democratic candidate for New York’s 20th congressional seat. He’s running against Jim Tedisco for the seat vacated by Kirsten Gillibrand when she was selected to become Hillary Clinton’s successor in the senate. The special election takes place today (March 31st).

Murphy appears to have spent a small fortune on these google ads. I literally see them everywhere. I usually don’t pay attention to ads, and there’s usually enough variation in the ads I look at. But Google seems to be targeting this ads to Capitol region IPs rather extensively; as literally one out of every two Google ads I see is from Scott Murphy. Jalopnik, ScoreHero, Ten-Tenths, VirtualR, YouTube… It’s really astounding. I wasn’t even aware the Google Ads API allowed for targeting by region like this.

This form of localized online advertising will probably become the norm in elections to come. It’s kind of interesting that its all starting with this special election near my college home. Rather ironically, however, I’d like to point out that RPI doesn’t actually sit in New York’s 20th, meaning Google’s geo-location algorithm is either a little off, or intentionally broad (so that it encompasses work places whose employees may live in the 20th but work in the 21st).

As part of being an RPI student, I am required to have a new laptop! RPI’s laptop program this year chose the Lenovo Thinkpad T61p to be the laptop of choice for distribution! I received my laptop yesterday, and slowly but surely it’s becoming “my laptop”.

Over Spring Break I became somewhat obsessed with Guitar Hero. But being that I’m a frugal guy (well, rather I have no money at the moment), I couldn’t afford a real guitar. So I decided to build my own for the PC version!

Initially, I toyed around with just a normal keyboard. But there were a number of problems: the ideal place for the frets is the F1-5 keys, however there’s a nasty gap between F4 and F5 that makes hitting orange notes difficult. Additionally, there aren’t optimal buttons to strum on. So, I decided I wanted to build a custom solution. I taped one of my old keyboard and my Speedpad to a board, attached a bit of string for the shoulder strap, and my first iteration was done. While crude and extremely ugly, it worked. The speedpad worked marvelously for frets. However, I wasn’t able to strum very well on fast songs, as I have to press buttons rather than move the strum bar (still haven’t fixed this).

I decided I wanted to make my solution a little less makeshift. I wanted it to look nice as well. So, I drew up a quick plan: I’d take apart the keyboard, create a body, then make the whole thing look nice. I decided on a Flying V type design, but the proportions are quite off due to the size of the keyboard. Here’s some WIP shots of attaching the styrofoam body to the wooden frame:

Gluing the back

Another shot, old keyboard bezel in the background

“V” pieces waiting to be attached.

Some of the keys that were removed from the keyboard

After the glue has dried. The black thing is the keyboard stripped of keys

After gluing everything together, I was quite happy with the design. But it was still rather ugly, and it needed some sort of finish. Since I had ample amounts of Aluminim tape, I decided to coat the guitar in the tape to create a chrome-esque finish. Here’s some shots of the final result:

The guitar in its entirety.

SpeedPad is attached with screws for easy removal (I still need it to play other games).

Detail of the two strum keys

Ta-da! It plays quite well, though its still hampered by the lack of the ability to strum up and down. It makes quick notes hard, but if I use two fingers (ie pointer and middle) it works out fine. The closer (and more responsive) frets make it easier to play on than most other guitars. It’s pretty sweet!