Maven, Tools.jar, and Macs

Posted July 10th, 2009 in Commentary by jayshao

On the Mac, was using some maven build scripts (well, ANT wrapped in Maven) recently that had references to tools.jar. This is problematical on the mac, since Apple repackages tools.jar (some bits go in Classes.jar) and ironic since some of the classes are already available, so it’s an unecessary error. Some digging revealed a recipe for using profiles to fix this:

https://jira.jboss.org/jira/browse/JASSIST-44

Screening Resumes

Posted February 7th, 2009 in Commentary by jayshao

We’ve been looking at expanding our development team (contact me if you’re an awesome developer, passionate about what you do, and like people and work) and so I’ve been screening a lot of resumes and CVs recently. If you’re a candidate, keep reading and tell me in your interview you read this. If you’re just interested, keep reading, though this is really just my opinions, combined with some rants.

Things I look for in resumes:

  • Strong command of written & colloquial English (see below for more)
  • Experience spanning multiple vendors, platforms, open-source, etc
  • Specific accomplishments (less ‘managed/coordinated’ more ‘wrote/implemented’)

Things that are likely to put me off:

  • Excessive keywords/technologies (with no examples)
  • Cut and pasted roles/responsibilities for projects (e.g. every role listed)
  • More experience with a technology than it’s been in existence
  • Obvious grammatical/spelling/usage errors

It somewhat surprised me after thinking about it how little time/credence I give to scanning technologies listed by candidates. (I do read them, but mostly looking for items that show strong willingness to explore or personal preference; e.g. Grails, Git, IntelliJ). What really excites me for hiring say a Java developer is someone who’s also done, say Javascript, Ruby, scripting, C++, and has some great project samples of things they’ve done for projects where they came up with something clever, or leveraged a neat toolkit to solve some problem.

Really what I’m looking for generally boils down to 2 main factors: communication skills and passion.

Communication Skills: I increasingly view resumes/CVs as an expression of an individual’s ability to communicate in a technical forum. The quality of your resume reflects your ability to write requirements, express technical/design concepts, and communicate with customers. We work in an environment where the first impression people have of you increasingly comes via email, a written document, or some other non-verbal communication. With distributed teams becoming more common, the ability to clearly and accurately communicate without the luxury of all the bandwidth you have in personal settings becomes even more important.

Passion: I want to see some combination of jobs, project accomplishments, technologies, and familiarity with techniques that let me know you’re passionate for both delivering good software, and becoming better at the craft of software engineering. I like to see technologies like open-source libraries, frameworks, projects, and other tools that show you’ve investigated what’s out there in the course of your work. Practices like TDD, Agile, UCD, or others that show you’re continually looking to try, and adopt better ways of working are also a strong plus.

If those pieces are there, then I strongly believe the other fundamentals will follow, which makes it much more likely that someone will get an interview to see if things click in terms of team dynamics and the needs of a specific position.

FCKEditor config.js pain

Posted August 28th, 2008 in Sakai by jayshao

So… I was editing config.js to cut down the option from the default Sakai toolbar configuration for a Sakai build (which makes a huge diffence in being able to see stuff in the richTextAreas).

I got burned for a while (well, 10 minutes anyway) due to Firefox and some aggressive JS caching. Did a bunch of mvn deploys before I realized that was the problem.

Installed the Clear Cache Button which helped enormously.

Many thanks to Google, the FCKEditor docs, and the blogger who shared his pain (before me) about getting stuck due to Firefox’s caching.

Comments Off

Portlets2008 and CampusEAI Annual Conference Recap

Posted June 2nd, 2008 in Portals, Work by jayshao

ландшафт. the exhaustion that was the combined CampusEAI Portlets2008 and Annual conference is now behind us, and it seems like time for some reflections and observations. Hopefully some of these items will be items which I expand upon at a future date, but in no particular order, dumped straight from my brain:

  • JSR-168 is here! Everyone really wants to write good standards compliant portlets. Architecture and engineering is a harder sell (or at least the time/cost trade-off) but there’s wide consensus that standard portlets are the way forward — at least excepting a couple of us widget fans :)
  • SOA is something people are interested in, but that there’s been relatively little forward progress on. Some is governance. Some is tools (SOAP, WSDL, and what’s this REST thing?). Some is just that it’s big and strategic, and there’s many tactical must haves. I suspect some of it is also that much of our interesting data/services are locked in vendor platforms that have shown little interest in opening up. Though, a small trend does exist of creating SOA-style services to reach into vendor platforms and extract data from them
  • Mobile wasn’t as big as I thought it would be. Not sure why. Most people seem to be interested in the abstract, but with few concrete plans. Maybe my iPhone has clouded my vision, but I do wonder if we’re going to get blindsided come fall — our target demographic is basically 18-22 year olds, afterall…
  • AJAX in portlets is still hard. There are some tricks like wrapper divs, namespacing, and builtin support and integration patterns, but it’s still not a common practice.
  • Identity Management is big. Governance is a big thorny issue, though many IT departments are rolling out vendor products from big players (Oracle, Sun, a little IBM) in the interim, tho ugh the exact scope of those items is somewhat unclear.
  • Oracle is really putting portlets in lots of interesting places. Webcenter. Product mashups. Inside BI tools, and other GUI devices. I think they’ve probably embraced the architecture more than any other major vendor which is an interesting trend.
  • Lots of awareness, and wanting to look at uPortal 3. Ooohs and ahhs over both the AJAX D&D, and maybe more importantly the new content adding UI — good going Jen!
  • Really beautiful portals — some, though not all new portals really seem to be breaking out of the lots of boxes approach, or at least wrapping it in neat functionality like Boston College’s Agora design. Nifty trend. Sign of maturity?
  • Community Development is hard. Aligning roadmaps, agreeing on implementation strategies, and putting all the pieces together is challenging. Even more so, justifying “doing it right” (and fit to share) versus quick and dirty, or getting a student up and running was a big trend. Makes my inner-engineer quail, but my inner-economist says that throw-away code lowers the barrier for solving problems, which is a good thing. Evolution isn’t always pretty and all that.
  • Lots of desire for training, best practices, and advice on policy and governance. Real role for communities of practice, not just code and software.
  • Increasing interest in “Enterprise Learning Management”. Lots of worries about migration, but the beginning of seeds wondering whether our current platforms are sufficient for a foundation for the next 10-15 years, and University strategic goals. Of course, some of this is the “enterprise IT guys” getting pulled into the LMS discussion for perhaps the first time in many places.
  • Good beer is key to facilitating interesting non-session discussion. Content is king on the program, but largely only because it gets people in one place and produces interesting spontaneous interactions. Hands-on is something everyone wants, but it’s not clear a conference composed of many 1 hour sessions is the right format to deliver it.
  • University IT teams wear many, many hats.
  • British Universities seem to have a much richer and more abundent IT project management structure than (most) American schools. Really interesting thread about Imperial College in London blending ITIL and Agile methodologies.
Comments Off

On Google’s Malware List

Posted May 27th, 2008 in Personal by jayshao

A week or so ago, I got an email from a friend:

????????Just in case you haven’t noticed this yet, Google links to jay.shao.org now include warnings about malware: Jason E. Shao » Blog Archive » Sakai SVN Vendor Branch Outcome This site may harm your computer. Jul 17, 2007 … Soo… yesterday I completed my 2.3.1 Sakai vendor branch merge, … I had to use the trunk version of svn_load_dirs.pl and patch it — see Bug … jay.shao.org/archives/2007/07/17/sakai-svn-vendor-branch-outcome – Similar pages – Note this

The best kind of warnings are the ones you get about something you’re aware of, trying to fix, and hoping no one will notice. In this case, working through the baroque malware site removal process. How did I get dragged into it? Well…

I didn’t actually notice until I browsed to my blog using Firefox 3 (been my default browser for a while now — I really like Safari too, but Firefox 3 is not you’re daddy’s Mac Firefox) and got slammed with a really obnoxious error message noting that the site was suspected of malware. The page looks a lot like the kind you get nowadays when you visit a site with a self-signed certificate, except there was no way to dismiss it (but use Safari…). About the same time, I noticed that Google search results included the note referenced above. So, naturally I read in a bit to try and figure out how to get rid of it. Well…

  1. Visit stopmalware.org
  2. Read a pretty long written description
  3. Find no way to identify what triggered the malware warning on my site
  4. Submit a request to re-examine to try and get some contact.
  5. twiddle…
  6. Get a message back identifying a single problem with the site
  7. Fix said problem (bad iFrame, possibly copy & pasted)
  8. Submit a 2nd request to re-examine
  9. twiddle…
  10. Get another message back identifying a different, specific problem (not mentioned the first time)
  11. Fix said problem
  12. Submit a 3rd request to re-examine
  13. twiddle…
  14. exoneration (no notification though) all is well with the web

So, aside from my personal irritation at this process I thought I’d add some mentions based upon some customer service observations:

  • not being able to find out what you did wrong is really irritating
  • not being able to find out all the things you did wrong makes it worse
  • internet accessing processes that require real-people time makes them feel really frustrating

Flying

Posted February 28th, 2008 in Personal, Work by jayshao

(Actually from last night during the flight, but then I got home…)

As part of my new position for CampusEAI I’ve had a fairly aggressive travel schedule over the past few weeks (the cost of not relocating). It has however forced me to become much more closely acquainted with the airlines (and Continental in particular) and prompted a few observations:

  1. Upgrades: Getting upgraded is nice. The biggest problem? Generally people who travel enough to get upgraded are flying on business — and — hence flying at the same time as others flying on business (who fly even more). It’s almost disheartening to watch half the people waiting for the flight standup when they’re boarding Elite Access. Still, it’s nice when it happens.

  2. Delays: So far out of 6 flight segments between Newark (EWR) and Cleveland (CLE) I’ve been delayed 3 times. It doesn’t seem possible to get delayed by less than about an hour either, though so far I’ve been fortunate enough with nothing longer than about 2 1/2. Still, a 50% hit rate is pretty… good? bad?

  3. Airline Clubs: Worth every penny. If you travel a lot. Normally I try to cut my arrival at the airport pretty tight with my flight departure, to grab more time at home with the kids, but during those aforementioned delays… There’s a big difference between an hour delay in the concourse fighting it out with other grumpy bench residents, and an hour delay while sitting in the lounge on the wifi, by the bar, munching on an apple.

  4. Security: Surprisingly I’ve actually gotten used to security — to the point where someone I was traveling with was like “wow — that’s crazy” and my instinctual response was “eh”. Of course, I no longer travel with belts, a watch, coins in my pocket…

  5. Pricing: This is kind of a crazy subject. Right now — a Sun-Wed roundtrip between EWR-CLE is ~ $260. A Sun-Tue roundtrip? ~ $850. Whaaaat!?!?! I’m not sure that there’s any way to explain that other than trying to segment the market into business travelers,since who else would stay less than 3 days? Though, if I book 2 weeks at a time, with 2 weeklong stays that just happen to overlap… hmmm…

In general, business travel (especially regular, sustained travel) has been something to endure. It feels good to vent though :)

Jason’s Employment 2.0

Posted February 17th, 2008 in Personal, Portals, Sakai, Work by jayshao

Well the questions are pouring in (mostly due to my tardiness in writing this kind of announcement) and so, without farther ado…

What Happened?

While it still feels a little strange to say it, as of 2 Fridays ago (2/8) I am no longer employed at Rutgers University. Over the last 9 years as first a student, then staff member, I’ve had the chance to: first study under, and then work with some incredible people. I’ve gotten to watch projects and services grow and evolve into solutions that are used every day by tens of thousands of students, faculty, and staff.

Before addressing my personal situation, I feel the need to speak a bit about the Rutgers Sakai deployment which up until now has occupied so much of my thoughts and energy. I was fortunate enough to see myRutgers grew into a service providing tools and services to every student at Rutgers. Sakai usage is currently somewhere on that curve, with usage growing by leaps and bounds. This Spring’s semester in many ways feels like a qualitative shift in the nature of the service — marked by a huge increase in the number of students asking “where’s my class’s Sakai site.” This semester these questions are particularly significant, as many of them are coming from students in classes where either:

  1. Class was not yet in session. This is a big change from the dynamic in previous semesters where students typically visited the first meeting of their class, and were then directed to visit the Sakai site. Now students are looking to visit the Sakai site to see the syllabus, readings, and get a leg up on going to that first class.
  2. Their instructor had not created a site. Sakai seems poised to make the jump into ubiquity, as in some students minds it’s already there.

Now to handle the really common question — if the Rutgers Sakai deployment is so clearly poised for greatness, where am I going and why? Well…

Starting this past monday (2/11) I have taken a position with the CampusEAI Consortium, where I will be serving as the Director of Open Source Solutions. Recent years have seen a huge upswing in the popularity, and visibility of open and community source solutions in Higher Education. Sakai, uPortal, CAS, Kuali, and othes have garnered attention, awards, and deployments. Due to significant interest expressed by member institutions, CampusEAI is looking to complement its existing strengths on the Oracle platform with broader offerings in the open-source space.

Answers to some personal-ish questions:

Are you moving to Cleveland?

No, I’m going to be based out of NJ, though Continental is certainly getting a good chunk of my time for the next few months as I schlep back and forth.

What does Lisa think?

She’s excited. Well, more excited when I’ve been gone < 2 days as opposed to > 3 days…

What do the kids think?

The kids are still getting used to not picking me up at Rutgers. They think it’s really funny that daddy works somewhere they can’t see. Sunday nights are hard. Phone calls are bittersweet. Coming back is good.

Aren’t you on the JA-SIG Board?

Yes. When my career change became definite I notified the board at the January video call. JA-SIG has always been a community of volunteers (stellar volunteers more often than not) and particular given my new employer’s willingness to continue backing my involvement in JA-SIG it was felt that there were no significant barriers to my continuing to serve in this capacity. As always, JA-SIG

So… is your Rutgers job open?

Yes. Though (see below) I’m hiring too…

What’ll I be doing?

So what does this mean in concrete terms? My personal definition is pretty simple. We’re looking to help members deploy solutions built on open source software. Given my background, Sakai, uPortal, CAS, and maybe even Kuali are obvious possibilities. I think however, that it’s a broader story than just support for deploying a few specific products. Many institutions have experienced challenges in building around open-source due to shortages in staffing or specific skill-sets. Others have successfully deployed open-source solutions, but been burned trying to deepen integration, or due to staff turnover (a problem which I should note also happens around commercial solutions). So the goal of this new unit is to make deploying solutions built on open-source:

  1. Easy
  2. Cost Effective
  3. Low Risk
  4. Sustainable
  5. Did I say easy?

Basically the goal is to allow schools to leverage the strengths inherent in the open-source development model:

  • Try before buy
  • Rational licensing and cost-containment (instead of getting wracked with heavy licensing burdens as you get “too successful”)
  • Open implementations, generally of open standards
  • Economy of scale versus custom developed institution-specific software
  • Freedom from vendor roadmaps and strategy shifts — even to go as far as obtain competitive bids from multiple vendors on the same solutions
  • Peer interaction with really bright people working hard to solve the same problems you see

So that’s the goal. Make open-source easier, removing barriers for schools large & small — the kind of topics that have continually been commented on lists, in journals, and at conferences. Reducing installation pain. Helping with patch management. Providing support and training. Taking the pain and risk out of going open-source, all while working to make strategic contributions to enable the production of more good software.

It should be exciting.

P.S. Did I mention we’re hiring? Drop an email talking about your love for open-source, and how you really want to join in making it easier: jason_shao@campuseai.org. Oh, and mention you saw the posting in my blog ;)

Maven 2 tar.gz issues

Posted January 8th, 2008 in Sakai by jayshao

I reinstalled my local copy of maven2 recently, and thought I’d add into to google a problem I experienced trying to unarchive the tar.gz or tar.bz2 flavors of their binary distribution. (.zip files seem fine)

The problem shows itself while extracting — tar reports “tar: A lone zero block at 2970″. Some googling seems to trace the problem to a maven/ANT lib problem encoding tar files. I got this with both 2.0.8 and 2.0.7, possibly with other releases as well.

JA-SIG Unconf: Recap

Posted November 18th, 2007 in Portals by jayshao

So, the JA-SIG un-conference (even the working sessions) is over, giving me a chance to do some thinking and reflection about the event and its aftermath.

Overall, the attendance, interest, and excitement demonstrated by all of the participants was pretty overwhelming. We had both more individuals, institutions, and organizations represented than we ever would have anticipated for an inaugural event. Even JA-SIG product deployers like Collier from UMBC and FLUID were well represented. While everyone undoubtedly came away from the event with different thoughts, two items struck me as particularly exciting.

MyUMBC

Collier demonstrated the MyUMBC work he’s been doing. While not uPortal based, the reactions related to the functionality of his portal ranged from “wow, I want it” to “you built that yourself?” to “don’t show that to my users or they’ll want it.” A couple of thoughts on why everyone in attendance found Collier’s work so compelling:

  • Presentation: Collier threw away the assumption a portal must allow users to add/remove/re-arrange content. This dramatically simplified his problem domain, and allows him to capitalize on web-design techniques to tune his layout and presentation.
  • Focus: MyUMBC is focused on end-user tools, not building frameworks. While in many portal project 75% of the time seems to be spent bringing up the platform, and making changes there, Collier spent 75% of his time building tools for news, events, favorites, etc.
  • Integration: MyUMBC has a number of tools and concepts that serve to knit the experience together — the favorite stars, the dashboard on the start page, navigation cues all make the experience feel integrated
  • Feedback & Monitoring: MyUMBC built a feedback system integrated into every page, and a lightweight dashboard to extract key statistics from that system. As a result, feedback is easy (~6000 in less than 6 months) and mining the data for trends is also correspondingly easy. This combined with standard tools like Google Analytics support a nice feedback-response loop while requiring minimal custom tooling.

Portlets

JA-SIG and uPortal have always been very focused on building out uPortal as a portal Framework. A consistent thread throughout the un-conference however (partly sparked by MyUMBC) is a bubbling thread of focusing on portlets and tools. I think there’s a growing recognition in the community that the tools are what users are visiting a portal for in the first place — and an area we have not focused as much attention on in the past.

In particular, collaborative efforts in the portlet space received a lot of discussion at several different sessions. LMS, SIS, Library, and other areas all seem to be places where schools have repeatedly re-invented the wheel. Collier’s demonstration of the return from focusing on tools, and the timing related to the talk on JA-SIG project incubation I think have all contributed to an atmosphere where people are highly interested in collaborating higher up the stack.

Unlocking N75

Posted October 22nd, 2007 in Commentary by jayshao

I got into the UK and one of the first things I wanted to do was to unlock my AT&T cell phone so that I could use it with a local SIM card. Afterall, being able to take my phone internationally was one of the main benefits of switching to a GSM provider.

Getting the unlock code was relatively painless – especially compared to the pain I incurred with LNP because my current billing address is in a different market from the one I originally got my numbers from (my parent’s address). That particular saga took several weeks, 3 sets of temp numbers, and some account/address shenanigans, but eventually got resolved.

My biggest problem unlocking the N75 was actually figuring out how to enter the unlock code I was provided with — there’s a magic key combination you need to get the “enter unlock code” dialog to pop up, but Google proved to be my friend there. I would post here to share others pain, but unfortunately Google appears to only have liked me on that day…