Java without the Crap

I got sick of Java updates on Windows trying to trick me into installing McAfee or the Ask toolbar, so I went searching for a solution.  I found a different build of Java from Oracle that solves the issue.

Go to this page: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Click on the top Download button in the JRE column.

Accept the License Agreement, then choice to download Windows x86 Offline.

This can then be installed and it will not try to get you to install crapware. It can even be installed from the command line without requiring any further user interaction (see: http://java.com/en/download/help/silent_install.xml).

I want to see a 100% open source android distro. The first pass could be AOSP or CyanogenMod without the closed source GApps. F-Droid would be pre-installed, along with a selection of basic apps like K9 Mail and aCal.

I found this post: http://www.jethrocarr.com/2012/01/04/100-pure-freedom-phone/ talking about the same thing, but I don’t see anyone who is actually doing it.

Postgres Upgrade

I just upgraded from PostgreSQL 8.3 to 9.2.  In doing so, I also went from a Sun optimized build (since I installed their supplied version before) to a self built version where I didn’t fiddle with optimization at all (the documentation suggests -O5, but I let it go with the default of -O3).  Despite the lazy build, it seems a lot faster in terms of the queries some of my python code executes.

The Javacript Compiler I Want

There are a number of compilers that in something and output Javascript. A few of the more well known ones seem to be CoffeeScript, Dart, and emscripten.

What I really want though is a Javascript to Javascript compiler that will run in Javascript. Here is the practical application. Top in mind is that I want to write code for ECMAScript 5 or even use Harmony features, and have it compile to output that will run on IE7 (which only supports ECMAScript 3). A few features that come to mind are generators (the yield keyword), array comprehensions, getters and setters, and block scoping. A lot of this stuff has been around since Firefox 2! I think that getters/setters have been around even longer.

Once we have an AST, I can picture how to implement some features (getters/settings, maybe block scoping).

Two pieces that I think could be useful, if someone were to implement this are esprima and escodegen . When looking at esprima, be sure to check out the harmony branch.

Another related project is Narcissus (https://github.com/mozilla/narcissus/wiki). Narcissus is a meta-cirular evaluator rather than a compiler, which I take to mean that there will be a performance hit likely to make it unacceptable for use with IE 7 & 8. However, performance on IE isn’t relevant anyway since this implementation relies on features only found in recent SpiderMonkey engines (and thus also won’t run in Chrome be default).

While on the topic, I should probably mention re-using some of the shims and polyfills out there (such as harmony-collections), as well as Traceur. Traceur is ECMAScript 6 input and ECMAScript 5 output.

One question I have is should the compiled output include polyfills, which can effect other libraries you use and would be unsafe in facebook apps, or should it all hide behind a function like Facebook’s ES5 library.  As you can see in Facebook’s blog post, the ES5 wrapped code is less pleasant to read and they mention a performance hit.  I suppose for extra work, such a compiler could support both.

Nexus 7

Two years after my last attempt at getting an Android tablet (the Eken M001, see here and here), I got a new tablet, the Nexus 7.

In short, the Nexus 7 is everything I wanted then. Of course expectations have risen over the last two years, but the Nexus 7 generally rose the occasion there as well.  I think this sets the bar for all other Android tablets.  Many tablets will fail to meet it.

Broadly speaking, I’m not sure there is any other 7″ tablet as good.

So, if a tablet wanted to beat the Nexus 7, what could it do?  They could include a rear facing camera and a microSD slot.  For some people, a 10″ tablet would be an improvement.  I find that larger tablets lack portability.  7″ fits great in cargo shorts, and for me it also fits in the front and back pockets of most of my pairs of jeans (but I can’t sit with it in either pocket).

By the way, the Blurex Ultra-Slim Case for Google Nexus 7 inch Tablet  is a nice case for the Nexus 7.

Zoup (but not salad)

A resturant chain called Zoup is about to open at Park City (local mall). Deb and I got invited for a pre-opening meal. In case the following sounds like an endorsement, I will comment that they did bribe us with free food.

Zoup is a soup, sandwich, and salad place. Deb and I got a cup of soup and a half sandwich. David got the kids special with is a grilled cheese sandwich and gold fish. He seemed to like it.

Deb got the Fire Roasted Tomato Bisque and the Chicken Toscana sandwich. I tried bites of both and thought they were fairly good.

I got the Mulligatawny soup and 4 Cheese Melt sandwich. I very much liked my choice. I’ve never had Mulligatawny before and was pleasantly surprised at the curry flavor. This sandwich paired with this soup wasn’t the best pairing, so I just ate them one after the other. Originally I was thinking to dip the sandwich in the soup.

Overall, we all rather liked the place. However, most commonly we don’t go out for soup and sandwich’s so it could be quite some time until we go there again, but I imagine that we will return.

Video Game High-School, Episode 9 (spoiler alert)

I enjoyed the Video Game High-School web series. There first episode can be found here.

The series is 9 episodes long. The final one came out yesterday here. However, I don’t think that it ended as well as it could have.

To summarize what happened in the final episode (limiting myself to what I’m going to comment on), protagonist BrianD is back for FPS (first person shooter) tryouts and his chance to stay in VGHS. The game being played in the tryouts is a CTF (capture the flag) game. Antagonist, The Law, finds out that BrianD is playing and rushes into the auditorium and takes over a computer to try and humiliate and banish BrianD. BrianD and friends lay a trap where he appears to sacrifice himself to The Law, then he shoots the law and goes on to win the game.

Now, lets go back to the beginning. In episode 1, BrianD gets into VGHS because of The Law showing off (on national TV) while BrianD is AFK (away from keyboard). The Law spends a long time setting up a trick shot and BrianD gets back to his keyboard just in time to foil the trick shot, kill The Law, and embarass him on national TV.

In Episode 2, we meet the principle of VGHS, Dean Ernie Calhoun. Dean Calhoun says here “Its all about the game”. That is a line that he repeats throughout the series. In the final episode, BrianD says it back to the Dean while talking his way back into the tryouts.

In Episode 5, BrianD is in a CTF scrimmage on the JV team against varsity. He plays badly and loses the match because of he is trying endlessly to kill The Law rather than playing with the team at CTF.

So then, back to episode 9. We have a theme so far that BrianD needs to play the game rather than be distracted by personal conflict with the antagonist. This theme is repeated in this episode during Dean Calhoun and BrianD’s exchange, with BrianD indicating that he has gained insight.

Then in the game to claim victory from The Law, JV lays a trap. BrianD acts like he is going to sacrifice himself. At this point, the episode was setup for a great ending. Instead of killing The Law, BrianD could have just been stalling The Law while his teammates grabbed the flag and scored the winning point. That would have been playing the game. Instead, the trap is just to kill The Law. Killing The Law does clear an obstacle so that they can then win the game, but the way it was played out reeks of once again being distracted from the game in the way that he was supposed to have just gotten over.

New Tech Meetup, Central PA

My notes from the 06/04/2012 New Tech Meetup of Central PA Monthly Meetup. In general the Lancaster meetings last for an hour. They then adjourn to the nearby Iron Hill Brewery. I don’t usually go to the Hershey or Harrisburg meetings.

AppNowGo – Eric Katherman

Now called Knack (http://www.knackhq.com/).

Recoded in Node/Mongo.

iFormBuilder – Ryan Coleman

Now have an appliance to sync iOS devices to.
Have Android app now (soon?)
Interface with portable printers

Chris Felpel

You have to work for the money.

Generalization: Consultants get higher rates than contractors (but
shorter contracts).

Should have personal liability insurance, even if just an employee.

Winter Banner

And now I have a new Winter themed banner. See the code and assets for it in my processing banners git repo here (
https://github.com/jd-boyd/processingjs-banners
). Processing.js can be found here

This expands out into working with particles as objects, which I’ve done before, but is stretching further into the processing.js language further than I’ve been before.

I’m thinking for the next banner to get rid of the processing language and just write directly in Javascript against the processing.js API. As a general rule, I don’t like systems that force a class system on top of Javascript. I personally rather like prototypical object systems (like Javascript or Self).