Showing posts from July, 2015

Adding Stock Quotes to a BriteBlox Display

Background People interested in the stock market might be inclined to have a cool stock ticker in their room or office.  While it's not quite as useful as a whole bunch of monitors displaying entire panels of quotes and graphs, it does provide at least a mesmerizing distraction, not to mention your room now looks at least a little bit more like a real trading floor in a big office.  This was the original use case for BriteBlox , the modular LED marquee designed by #DoesItPew and myself.  Not only is the marquee itself modular (i.e. you can configure it in various lengths, heights, and shapes), but ideally the control software is modular, leading to a design where any coder can develop plugins to drive the board from any data source they can convert into animated pixels. Unfortunately, we haven't gotten the software quite to the point where it is incredibly easy for third-party developers to write plugins; right now, they would actually have to integrate the feature into t

I Finally Found an Application For My CUDA Cores!

During graduate school, I was exposed to the power of CUDA cores through my parallel computing class.  Back then, there was a relatively small number of such cores on the video card inside their shared server, something like 40 if I remember correctly.  With my NVIDIA GeForce GTX 650 Ti video card, however, I now have 768 CUDA cores at my disposal -- almost 20 times as many as in grad class 4 years ago! Not being much of a mathematician at heart, and generally spending time on logic problems, application testing, or new HTML5 & browser paradigms rather than crunching big data, I was never really inspired to do much with these cores.  This all changed when watching the Google I/O 2015 keynote address when they showed off the capability for you to draw (as best you can) an emoji, and Google's engine will try to recognize your scrawl and offer you up several profesionally-drawn emojis to represent whatever it is you're trying to express.  With recent changes in my life that

Restoring the Granddaddy of Modern Computers: the IBM 5150

It Was a Dinosaur Back Then... At some point a very long time ago in my life, I acquired an IBM 5150 PC from my grandfather.  I'm not sure why he wanted to give it to me at that time, but I did have fond memories of playing old games on 5.25" floppy such as Grand Prix Circuit and Wheel of Fortune with my cousins on hot summer days in Grandpa's garage in Houston (along with a similarly vintage Ferrari 308GTB which always remained under wraps -- I didn't even realize it was blue until after he died), so I was definitely happy to take it.  (The computer, of course. ;)  By most people's definition, the 5150 is the root of the modern personal computer, but in the late '90s when I received the machine, I did not have the right skills nor tools to get it up and working; moreover, with no expansion cards installed (no floppy disk controller nor video card in particular), it would not have been very useful nor even easy to triage and fix.  Fast forward 16 or 17 yea

Annoy mobile & desktop users through push notifications through the browser!

To say the least, the new power present in the combination of Google Chrome, Google Cloud Messaging (GCM), and a new HTML5 concept called service workers has the power to help you develop robust applications involving push notifications without the requiring the user to install an app from the App Store.   Do not abuse it.  You will make your users angry, and when you do that, then you make me angry. :-P  Be careful when you devise use cases for the new processes outlined below. Here's the scoop: GCM now works with a relatively nascent feature in modern Web browsers called service workers.  Service workers allow processes to continue running in the background even after a webpage is no longer open, thus allowing them to show push notifications, cache data, run background computations, and monitor various other system states.  Below, you will see the very basic mechanism for sending a plain push notification in the browser.  As you go along with this tutorial, you will