iPhone/Droid Sales Comparison Misleading

Posted March 17th, 2010 in Commentary by jayshao

A number of news sources seem to be publishing comparisons between initial sales numbers for the Apple iPhone, Motorola Droid, and Google Nexus One.

Some quick comparisons are being made trying to compare the DROID & iPhone numbers head on, but I’m surprised not to see any sidebars noting that the original iPhone launched at 499/599 – whereas the DROID has been fully subsidized from the get go.

Spring wiring private init-method

Posted March 16th, 2010 in ContextWeb, Work by jayshao
This entry is part 1 of 1 in the series Springframework Tricks

While adding some unit tests to older Spring code, I noticed that the production Spring configuration was wiring together some pretty simple Factory objects that had private init() methods (took a few minutes to figure out why I kept getting wavy lines), that looked like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void init(){
try {
StringBuilder sb = new StringBuilder();
for(String server : servers){
sb.append(server.trim());
sb.append(BLANK_SPACE_DELIMITER);
}

memCacheClient = new MemcachedClient(AddrUtil.getAddresses(sb.toString()));
} catch (IOException e) {
log.error("Unable to Connect to memCache " ,e);
throw new RuntimeException("Unable to Connect to memCache " , e);
}
}

It turns out that AbstractAutowireCapableBeanFactory does a bit of reflection when processing ‘init-method’ to allow it to invoke private methods (assuming you don’t have any SecurityMangers running, which you probably don’t)

1
2
3
4
ReflectionUtils.makeAccessible(initMethod);
try {
initMethod.invoke(bean, (Object[]) null);
}

So… magic…

IntelliJ and JRebel

Posted March 10th, 2010 in ContextWeb, Work by jayshao
This entry is part 3 of 3 in the series Eclipse2Intellij

So, after enduring some abuse from colleagues who miss VisualStudio (I have to admit – that feature to move the program counter does look really cool) I spent a bit of time the other day setting up with a trail-run of JRebel. So far the experience has been pretty fantastic – I can use maven to jetty:run a project, hit ctrl+F9 to recompile, and F5 in the browser and see changes reflected – even with changed method sigs and the other goodies. It’s nice for test run, though I do admit, it makes it harder for me to force myself to write unit tests (not necessarily good)

I started with a couple internet tutorials:

One oddity I had to workaround w/hard coded paths – in Ubuntu I setup /etc/environment with refs to the JREBEL_HOME and to add it to MAVEN_OPTS, but when I run from IntelliJ it doesn’t seem to do the variable substitution, I get errors about not being able to run $JREBEL_HOME as a class – for the time being have just hard-coded paths and moved on, and it’s been great.

[Fixed] IntelliJ Ubuntu Launcher Problem

Posted March 4th, 2010 in ContextWeb, Work by jayshao
This entry is part 2 of 3 in the series Eclipse2Intellij

http://ubuntuforums.org/showthread.php?t=224100I had a bunch of trouble getting a GNOME launcher to successfully execute (interestingly enough, the Eclipse/STS launchers mostly worked fine) – turned out it was related to JDK_HOME not being recognized by GNOME. I’d gotten accustomed to setting up my environment variables in ~/.bashrc and sourcing that into .profile – apparently GNOME looks in /etc/environment.

Will write up some more thoughts based on a few days usage in a bit. All better for now. Links:

Trying IntelliJ, For Real this Time

Posted February 26th, 2010 in ContextWeb, Work by jayshao
This entry is part 1 of 3 in the series Eclipse2Intellij

So – have been getting an increasing amount of weirdness with Eclipse/m2Eclipse/STS recently, which has made experimenting w/Intellij increasingly attractive. Going to try doing a mostly turkey switch for a few days, and see – since many people I know and respect rave about it. Initial thoughts:

  • Maven import was real easy, and looks to have been clean. On the Mac, had to fix a: java.lang.UnsupportedClassVersionError that looks like it was caused by the Maven plugin not cleanly picking up my M2_HOME and JAVA_HOME properties, but pointing them all at JDK 6 seems to have fixed that
  • Having a “Make/Build” button again is a strange experience
  • Changes between dependent Mavne modules seem to propagate quickly – more quickly than Eclipse/M2Eclipe (with much less RAM for IDE too)
  • IntelliJ seems much happier playing with external Maven, SVN, other tools – touching files outside the IDE doesn’t seem to throw it for a loop like Eclipse
  • The Spring applicationContext.xml completion looks to be quite good, and *FAST*

So far it’s been mostly good, though highly frustrating until I figure things out. Interested to see what my velocity looks like after a few days, will probably be playing over the weekend.

What’s Jason Up to?

Posted February 25th, 2010 in ContextWeb, Personal, Work by jayshao

Some people have commented on updates to Facebook & Linked in, so thought I’d author a quick post detailing what I’m up to these days. For anyone who’s wondering, as of January of this year, I am no longer at CampusEAI – I’ve chosen to join ContextWeb, an advertising network/exchange vendor based in NYC, as a Sr. Java Developer. While I was very proud of some of the work that we were able to accomplish in the development group at CampusEAI, and will greatly miss both the team and many of the community members (and hope that we keep in touch), it was time for me to move on to doing something different (and possibly spending some time with my family, and especially my kids).

So far, ContextWeb is a pretty neat place – a strong technical team focused on Agile(Scrum) and trying to do the right thing. One of the interesting challenges is the company is currently in the process of moving much of the infrastructure from an ASP.Net/SQL Server backend to a cloud-friendly, Java, OpenSource, and Hadoop backed system. While the shift has been going on for a while, it’s accelerated recently due to a number of upcoming product offerings and business requirements (in fact, see previous posts, ContextWeb is hiring Java devs). So it’s exciting in a lot of ways, both being able to go back to doing real coding and hands on development (apparently I do mostly remember what all those buttons in Eclipse do…) as well as working with a pretty good group of guys (though, some of those C# conventions drive me batty).

If anyone noticed that I finally gave in and really added banner ads to my blog, well I do now work for an online advertising exchange… (It’s definitely not because this site is making me lots of money)

I will still definitely be following what happens with Jasig, Sakai, and Kuali, and am optimistic that it’s an exciting time for those projects and communities – and will eagerly read anything Google flags for me to look at.

[Fixed] Ubuntu 9.10 & Compiz Breaks VNC

Posted February 16th, 2010 in ContextWeb by jayshao

So, found out while trying to VNC into my work box, that the “Visual Effects” in Ubuntu breaks the built-in GNOME VNC server – what happens is you can input text, click on controls, but changes are not refreshed into the view (the view isn’t “Damaged”). The current workaround seems to be either moving back to Metacity or some other WM, or turning off visual effects.

Side Note: Jolly’s Fast VNC is an AWESOME VNC client – as it suggests, fast, and with a really cool zoom mode for handling well larger screens over VNC, much recommended (after you fix the compositing ;) )

ContextWeb is Hiring Java Developers in NYC

Posted February 12th, 2010 in ContextWeb by jayshao

For people who have heard, I recently started a new position as a developer at ContextWeb. ContextWeb is a targeted/contextual advertising provider and exchange, and recently embarked on a technical re-architecture moving from C# to Java, moving from DBs to Hadoop, running a SCRUM/Agile environment with a bunch of pretty sharp people, free coffee, soft drinks, and a decent benefits package.

If you’re interested in working in downtown NY, I’ve linked in some of the open spots below, you can apply directly or forward your resume through me – let me know either way and I’ll put a good word in for you, maybe get you in to meet some people:

    Buried Pretty Deep (Snow)

    Posted February 10th, 2010 in Personal by jayshao

    We’re buried pretty deep now – looks like a bit over 1 foot (hey, it’s a lot for NJ) and it’s still coming down. Lisa just asked how we’re going to handle digging out… uhh… yeah, a plan would be good.

    Kicker for today was the local newspaper: “Woodbridge Snow Plow Driver Finds Wandering Seal” – now that made if feel like it’s cold!

    Official Google Blog: Introducing Google Buzz

    Posted February 10th, 2010 in Commentary by jayshao

    Official Google Blog: Introducing Google Buzz: “We’ve relied on other services’ openness in order to build Buzz (you can connect Flickr and Twitter from Buzz in Gmail), and Buzz itself is not designed to be a closed system. Our goal is to make Buzz a fully open and distributed platform for conversations. We’re building on a suite of open protocols to create a complete read/write developer API, and we invite developers to join us on Google Code to see what is available today and to learn more about how to participate. “

    (Via Google Blog.)

    While this looks a lot like twitter/brightkite/facebook activities, I do wonder if the real game-changer is integrating with Email – e.g. making Lifestream activities mainstream (though Facebook has become pretty mainstream) – or mainstream for people who haven’t necessarily sought out social networks.

    I also wonder how this fits in with Wave? Is wave a technology platform under/in parallel to this? Slightly different? Just 2 teams at Google doing slightly different things “let a thousand flowers bloom and all that”?