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”?

    Combining jUnit’s @Ignore and @AfterClass

    Posted January 26th, 2010 in Commentary by jayshao

    Interesting – in jUnit 4.4 – combining @Ignore and @AfterClass (haven’t tried the other static’s like @BeforeClass) don’t seem to do what I’d expect – e.g. the @AfterClass annotated method seems to execute regardless.

    [FIXED] Eclipse Issues with Clicking on Ubuntu/GNOME

    Posted January 25th, 2010 in Commentary by jayshao

    For the last few months, have moved most of my work programming from the Mac to Ubuntu (first convenience via VMs, recently because I switched jobs and at the new employer it was that or Windows) which has mostly gone will, though there were some issues around Eclipse UI gotchas, notably:

    • Sometimes buttons wouldn’t let you click them (though keyboard focus mostly worked find)
    • Sometimes windows wouldn’t paint properly – contents, toolbars, etc.

    At first I thought it might have been Virtualbox’s mouse driver, but it looks like it’s a generic Eclipse/GTK issue, with some notes at http://blogs.gurulabs.com/dax/2009/10/what-gdk-native.html on the root cause, and how to fix it. For the time being I’ve created scripts to launch Eclipse (and STS) and before I fire off Eclipse, do a:

    1
    export GDK_NATIVE_WINDOWS=1

    This seems to resolve the painting issues, though it feels a bit less smooth/fast (UBUNTU+GNOME+COMPIZ) – still usable, though admittedly have tried this on a pretty fast machine (recent 2xQuad-Core w/lots of RAM)

    Loadtesting on EC2 – in all cloud++

    Posted December 20th, 2009 in Commentary by jayshao

    Recently at work, had a need to rerun some load-testing numbers, but got stick since our internal servers all had builds we were looking at, or weren’t setup, or yada, yada… so we turned to EC2, with overall pretty positive results.

    Some background – we build a web-based portal application that runs on a lightweight J2EE stack (Tomcat, Spring, Liferay) and do most of our testing w/jMeter. So, the process of setting up to loadteest on Amazon looked like:

    • Build AMIs using Centos + our Applications (this took a bunch of hours, coming up to speed with Amazon’s tools for images – mostly the usual self-signed cert woes) — this was much easier since we have a one-click build for probably 80% of our full-machine footprint (that last 20% is a doozy though)
    • Add a local LDAP server (OpenDS) to the image – was faster than troubleshooting some odd connectivity issues to our usual infrastructure
    • Fire up some Amazon instances
    • Grab one of the existing public AMIs w/Linux + Jmeter (Ubuntu in this case)
    • Upload our scripts and start running

    Net cost: ~ $40

    Thoughts on the experience:

    • Running jMeter inside EC2 is probably one of the things that makes this economically viable. Since our loadruns generate GBs, and GBs of traffic per minute in peak scenarious, paying per GB bandwidth can rapidly get expensive — but we were able to keep all the traffic in-cluster
    • The fact that AMIs don’t by default have persistent storage (though EBS or new AWS features get around this – for more $$$) is actually a plus. We can run a test, shut down the image, bring it back up, and we have a clean image again to run to re-verify
    • We were looking for stress/soak/smoke testing – so general benchmarks. For this need, we were not yet at the stage of verifying performance in a particular hardware or other environment, we just needed rough approximate numbers
    • We chose not to use Amazon’s loadbalancing infrastructure, but might in the future
    • EC2 actually let us run all our test scenarios (we have 3-4 main ones) in parallel, on spun-up instances – this cut our time to completion from something like 24-48 hours if we ran them serially to closer to 5hrs after setup was done – a big savings, especially for multiple runs)

    All in all, it was positive experience, with some next steps we’re looking to incorporate:

    1. Automate building AMIs – we did this by hand, and it was far and away the most time-expensive part (8 hours) and when we got errors early on we were immediately suspicious of configuration errors
    2. Incorporate this into our Continuous Integration system (Hudson) – if construction of AMIs was automated (and Amazon’s tooling looks easy to automate) we could schedule this to run automatically, on a nightly/weekly basis – which would be nice, since right now this is a pretty heavily manual process – also, paying by the hour, the overall cost is a lot less than trying to manage with dedicated systems (and coordinate scheduling for the same)

    Compiling Java 1.6 projects using Maven on Mac OS X

    Posted December 1st, 2009 in Personal by jayshao

    Compiling Java 1.6 projects using Maven on Mac OS X

    This makes much sense (took a few minutes though) had my JVM defaulted to JDK 5 from Eclipse 3.4 which wouldn’t run on the 64-bit Java 6 VM – easy fix though – personally I prefer changing the symlinks in /System/Library/Frameworks/JavaVM.Framework/ to point to the JDK version myself…

    More Google Wave Invites

    Posted November 29th, 2009 in Personal by jayshao

    Got another batch of Google Wave invites – drop me a line if you need them.