JS Ext

Monday, November 25, 2013

Toshiba Satellite u925t

My Acer laptop died (after only one year!), so I was in the market for a new laptop.  I decided to keep an eye out for a replacement for my wife's Toshiba netbook.  Her netbook had an unfortunate disagreement with the floor.  The device ran fine.....the screen was just cracked.  I was originally going to wait for Black Friday/Cyber Monday deals to come out, but Woot had a one day sale on a refurbished Toshiba Satellite u925t.  I did some googling and watched some Youtube videos and decided it would work for both of us, so I bought two.

I won't go into specs, since you can get that from any website/review.  Here are a few things to consider that the specs don't always get into.  The screen is on a unique track design that won't allow it to close like a standard clamshell.  Instead of closing it, you lay it all the way back.  Once it is all the way back, it slides over the keyboard.  This unique design means the keyboard is completely hidden when in tablet mode (which I like a lot) but also means the screen is always showing (which is bad when putting it in backpack).  The screen is Gorilla Glass, but you will still want to buy some sort of mini-laptop case before putting it into an actual laptop bag.

I don't benchmark my hardware, so I don't have any raw numbers, but the performance seemed fine.  I tend to run hardware a lot harder than most non-IT people, but I also run Linux so the performance is always better.  Subjectively, the performance seems fine for what I am doing.  My wife kept the Windows 8 install while I immediately installed Ubuntu.  In a future post I will dive into detail on how Ubuntu works on a Tablet PC.

What surprised me the most was how much both my wife and I leave the laptop in tablet mode.  The on screen keyboards for both operating systems work really well.  The only "every day" tasks that I use laptop mode for is programming and blogging.  Everything else that I do using the on screen keyboard.  Since my emails tend to be a lot shorter, I will use the on screen keyboard for email.  Most websites work perfectly fine in tablet mode.  Although my wife was not happy about being forced to use Windows 8, she has come around.  Windows 8 on a Tablet PC is far better than Windows 8 on a laptop.

The touchpad is actually pretty annoying.  To save space, almost the entire surface of the touchpad can be used to move the mouse.  That includes the space on top of the buttons.  This means you regularly move the mouse while trying to click on something.  This gets annoying really fast.  If you look/feel around the touchpad, you will see/feel a horizontal line across the very bottom of the pad.  That line is the bottom of the "touch area" of the track pad.  If you use the tip of your finger, you can left-click without moving the mouse.  Another thing that is annoying about this design is you can't keep your finger on your left mouse button.  I have a habit of keeping my finger on the bottom while moving my mouse.  If you do that, you will find that the mouse doesn't move at all.  The touchpad disables the mouse movement when you have two fingers on the touchpad.  Rick click is also frustrating.  When you try to right click after positioning the mouse, you will often get a left click instead of a right click.  This is because the mouse moved slightly causing the "tap" to register instead of the click.  The tap is a left click.  Since the tap happened first, you get a left click instead of a right click.  I am a little more used to left and right clicking properly on this touchpad, but it isn't that much of an issue, since I use the tablet mode over 90% of the time.

We have only had the laptops for less than a month, but so far, we are very happy with them.  I have played around a lot with the touch interface and will be posting more details about that.

Thursday, November 21, 2013

Uninstall as Administrator....Seriously Microsoft?

I installed some software on my wife's Windows 7 netbook.  The software didn't work out so I decided to uninstall it.  That is when I had to fight the uphill battle of uninstalling the software.  I got an error about not being an Administrator.  This was weird since we never set up multiple accounts on my wife's netbook.  There was only one user.  Eventually I found an answer on Microsoft's site.  Apparently you have to open up a command window and enable the administrator account.  Once you do that, you can log into the administrator account to uninstall the program.  After you do that, you can re-disable the administrator account.  Seriously?

Wednesday, November 13, 2013

Technology can't win against Big Media

When Intel announced that it was putting together an Internet TV service, I was really excited.  I really want Internet TV to kick off.  I believe it is a new model of media that will lead to a revolution in how we look at content.  It looks like that revolution won't happen any time soon.

I was looking forward to Intel's offering because Intel is a big name company.  Thanks to the Blue Man Group, even grandmothers know who Intel is.  I was sure that big media couldn't ignore such a recognizable brand.  I was wrong.  It appears that this technology giant is failing to deliver.  It is failing not because of a technology limitation or due to bad programming or due to bad project management.  The entire technology part is off the hook.  It is failing because the current media distribution companies (your cable TV providers) have been actively trying to prevent Intel from acquiring media for its service.

You see, companies like Time Warner Cable make lots of money on crap.  By crap, I mean 200 hundred channels with nothing but cats.  It is worse than that though.  The internet has proven that people love cats!  With cable TV, you get hundreds of unorganized channels with no ability to watch on your own schedule.  This is exactly what they want, since those money is made on a per-channel basis.  So, if you only want 20 channels, but you are forced to get 200, you end up paying for the 200 channels.  Profit!

The whole point of Internet TV is to reduce the channel concept and help you find things that you actually would enjoy.  You like MythBusters but you don't like Ghost Hunters...you know (since you like real science) then the Internet TV service recommends shows and/or episodes that match your tastes.  You might find a new show that is good but isn't paying a whole lot for advertising (imagine that!).  You might find an episode of a show that you haven't liked in the passed, but you really enjoy that episode, so it causes you to give it a second look (my wife hated Bones the first time she saw it; now she loved it...pre jumping the shark).

Imagine a system that promotes shows without forcing them to pay large amounts of money for advertising.  Imagine content producers having the ability to reach wide audiences without a lot of startup capital.  Imagine a system where you sit down on the couch, and all the content that you want to watch is sitting in a queue for you to watch, finish, then move on to non-TV related activities.

Youtube and Netflix have a lot of these qualities and features.  I was hoping Intel's service would be a superset of Youtube and Netflix features, plus the only thing that is really required to take on the content distributers.....content.  It looks like the big media empire will continue to live on, though.

Sunday, November 10, 2013

JSP Limitations

I have previously posted about the limitation of jsps where they can't be read out of the classpath.  In that scenario, I had a library that wanted to have a simple user interface.  I have a new scenario where I am using a tiny servlet container.  I am writing server application that has a user interface.  This server application is small enough that it technically can run on an Android device.  The catch is jsps won't run on Android.  This is because the JSP spec says jsp files are translated into java files, then compiled into class files.  Android can't run class files.  Android doesn't support the JSP spec.

On top of that, you still can't easily unit/integration test webapps that are implemented in jsps.  Although some people have been able to run some sort of automated test case (using tools like Selenium), they usually start up a Tomcat instance as part of the build process.  Now you have to worry about configuring Tomcat as part of your build process.  You can also kiss mocking goodbye.  Now, you are connecting to a real database.

These types of limitations can be pretty damaging in this day and age.  The combination of HTML, custom JSP tags and JSLT inside of a JSP is really helpful when it comes to developing an HTML webpage.  It just isn't as portable and testable as it used to be.  The definition of "portable" has increased and developers are doing more automated testing.

I have tried a few times to invent technology that tries to solve problems like these.  I have never come up with anything that does it in a very good way, though.  Maybe the next generation of UI technology will solve these problems.

Thursday, November 7, 2013

Minix Neo x7 didn't live up to the hype

In a previous post I talked about possibly buying the Minix Neo x7 as my next Android TV.  This turned out to be a disaster.  While some apps that I use on a regular basis did work (very well), others did not work.  I will go through some of the apps that I tried on the x7.  I tried the stock rom as well as various finless roms.

MX Player Pro - Works

MX Player Pro ran fine on the x7.  I even installed a true 1080p kernel and it ran fine.  This app is really important to me since my wife and I use it to watch our video collection.

Youtube - Works

The Youtube app worked fine.  The interface did run noticable faster on the x7 than my MK802 III.  Double the cores really did help here.  There was less lag when moving between pages.

Netflix - Works

The Netflix app worked fine.

Skype - Does not work

For some weird reason, I was not able to log into Skype.  The app launched, but I couldn't log in.  Since I couldn't log in, I wasn't able to test if the camera I have actually worked.

Hulu Plus - Does not work

I tried various version of the Hulu Plus app and they all ran into the same problem.  As soon as you tried to play video, the device crashed.  The key word here is the device, not the app.  My TV went blue, saying there was no signal coming from the HDMI cable.  I had to unplug the device to force a restart to recover.  This behavior was not exclusive to Hulu Plus.

CBS - Does not work

One of the driving factors behind upgrading to the x7 was the CBS app.  While I knew the app wasn't officially supported, I was pretty sure it would run on most modern Android TVs.  I was running out of "app space" on my MK802 III, though.  The upgrade to the x7 was supported to give me more breathing room since more and more media apps were coming out.

Unfortunately the CBS app exhibited almost the same behavior as the Hulu Plus app, with one minor difference.  While the Hulu Plus app crashed right away, the CBS app would crash after the first set of commercials played.  I wonder if the crash is related to DRM.

ABC - Does not work

The CBS and ABC apps were released around the same time.  While it would be nice to have the ABC app, it wasn't as important as the CBS app.  Everything we watch on ABC is already available on Hulu Plus.  The ABC app crashed in a similar way as the CBS app.  The app would play the commercials, but the actual video would crash.


Overall, the hardware is much butter.  Quad cores really makes a difference.  The external antenna was nice as well.  The unit also stayed a lot cooler than my MK802 III.  I'm disappointed mostly because the x7 is a really capable machine.  Maybe a future rom will fix the issues.

Tuesday, November 5, 2013

IBM Kicks Twitter in the Patents (Ouch)

In another example of patent absurdness, IBM is suing Twitter for patent infringement right before Twitter's IPO.  I'm a technical person, so I like to read the information about the patents whenever a software patent is filed.  I read some details about the first patent: 6,957,224.  That is when I noticed something really interesting.  I just invented that!

Now I'm not saying I'm the original inventor.  Far from it.  What I am saying is the patent isn't anything revolutionary.  At the highest level, it is just applying a lookup table to url shortening.  It has a bit about "proxying", which I did as well.  Here is how I infringed on this patent:

I am writing a new video on demand system.  This is the 3rd server rewrite that I'm going.  Right before I started to write this version, I stumbled upon thetvdb.com.  TVDB provides an API that allows me to get episode descriptions and screenshots.  I also get banners for shows and seasons.  I decided that my new VOD system would display these banners and screenshots but I didn't want to consume too much of TVDB's bandwidth.  I decided to cache the images.

I came up with a url shortening scheme.  I created a simple lookup table.  One column is the url of the image I want to cache.  The second column is the MD5 hash of the url.  This column has an index on it.  I chose MD5 because it is fast and I didn't need it to be cryptographically secure.  When the VOD frontend calls my server, the server gives a shortend url.  That url looks like /cache/${MD5_HASH}.jpg.  I wrote a servlet that maps to /cache/*.  That servlet will take the MD5 hash and see if a file exists in the cache directory with that name.  If it does not exist, then the servlet will perform a lookup in the lookup table to figure out which url maps to that MD5 hash.  The servlet then downloads the url to the cache directory.  Now that the cache file exists, it will send back the file (or a 304 to allow browser caches to work).  The VOD frontend can now "download" the image over and over again without impacting the availability of TVDB.

This is not a unique problem that I solved.  Also, this is not a unique solution.  This is why Twitter implemented it.  It is a good way of handling shortened urls.  Using a lookup table is an obvious step.  Adding an index to the lookup table is also obvious.  Putting a proxy service is once again an obvious step.  All of these elements makes it easier to use the system.  It is just good software design.  It is a shame that using all of those together to make urls shorter constitutes patent infringement.