Matt RaibleMatt Raible is a writer with a passion for software. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.
You searched this site for "matt". 1,142 entries found.

You can also try this same search on Google.

Happy Birthday Jack!

Jack's birthday was last Thursday (August 28th) and only now am I getting a chance to wish him a Happy Birthday on this blog. I told you it was a busy week last week. ;-)

Happy Birthday Jack!

On his birthday, I picked him up from Kindergarten at 11 and let him run the show for the day. Needless to say, we had a good time.

Jack on his 4th Birthday At the Zoo

4 and still loves trains Mmmmm... Ice Cream

On Saturday, we had a party to celebrate at my house. It was a great time with many old friends and lots of crazy kids.

Sophie and Jack - both 4 Jack's Birthday Cake

Ready for the Piñata Candy!

I woke up to quite the disaster area the next day. I was also quite impressed when Abbie showed up with her ears pierced.

A Disaster Area Abbie's New Earrings

The rest of the weekend I spent quite a bit of time enjoying A Taste of Colorado. When work began on Tuesday, the week intensified as I was the "Release Owner" for LinkedIn this week. We made a number of backend changes to reduce statefulness and improve performance. I'm proud to say it was one of the smoothest releases I've been a part of, mostly because of the high quality people involved.

As far as my schedule for the rest of the year, it seems like I'm going to be busier than ever. I have to complete my presentations for CSS this week. In two weeks, I'm speaking at the Colorado Springs Open Source User Group Meetup. The following week I'm heading to Munich for Oktoberfest. If I live through that, I'll be implementing Memcached, speaking at CSS, hunting with my Dad, celebrating Abbie's birthday, traveling to Costa Rica/Panama and keynoting the JavaEdge Conference in Israel. If you happen to be in Colorado Springs, Munich, Mountain View, Keystone, Montana, Costa Rica, Panama or Israel in the next few months, maybe we can enjoy a beer together. Cheers!

Posted in General at Sep 05 2008, 06:37:33 PM MDT 2 Comments

Why such a busy week?

Lance sent me the following e-mail this morning:

Just saw your status message, I think you'd better blog an explanation!

"Matt Raible is getting ready for one of the busiest weeks of his life."

I couldn't think of a good reason not to blog an explanation, so here goes.

I'm currently sitting at Denver's airport ready to hop on a flight to Mountain View. I'll be at LinkedIn's HQ for two days helping tidy up plans for a release in early September that I'm in charge of. It's my first time being a Release Owner, but it should be pretty painless so I'm not too worried. Whenever I travel to Mountain View, I always have a good time, but I'm constantly being pulled into meetings, or arranging meetings myself. I have a presentation to write that I'm delivering on Wednesday. It describes the changes we've made to make the backend of LinkedIn much more stateless and therefore better and faster.

In my hotel room at night, I'll be writing my presentations for the Colorado Software Summit. Having to write 3 presentations in one week always makes me feel super-busy.

On Wednesday night, I fly home late (likely after a game of hoops with co-workers). Thursday is Jack's birthday, so I hope to take the day off and spend the day with him. Thursday night is sleepover night. Being a single parent with two kids is never easy, but always fun. Friday it's back to work, wrapping up things for the week (status reports, bug fixes, etc.) and likely marveling at the traffic from the DNC.

Friday night there's a 9-hour cocktail party with a good friend from Vancouver, BC.

Saturday is the super-busy day. It's time for Jack's birthday party and if last year is any evidence, it's one of those 8-hour cleaning and decorating situations.

I'm sure I'll have a busier week sometime in the future, but this one will surely be one to remember (especially since it's blogged into history now ;-)).

Posted in General at Aug 25 2008, 07:54:18 AM MDT 2 Comments

My OSCON Aftermath

Last week, I had a great time at OSCON '08. However, I've been paying the toll ever since. For the 5 days prior to OSCON, I stayed up late working on my presentation. I was furiously trying to develop an application with Rails, Grails, Flex and GWT. In the ~30 hours I spent developing the application (Rich Resume), I was able to finish the Rails and Grails pieces, but didn't get much farther than "Hello World" with Flex and GWT.

Even though I had my kids the weekend before OSCON, I still managed to get 4 hours of sleep each night. The next couple nights were no better. On the day of my presentation, I started to feel sick. Luckily, it didn't affect my talk and it never really hit me until the next day. On Thursday, I woke up with swollen tonsils and the feeling of an oncoming cold. I attended the conference on Thursday and went to bed early to get lots of rest.

On Friday, things weren't improving, but they weren't getting any worse either. My family and I attended the Oregon Brewers Festival and had a great time. Yes, I actually survived taking my kids to a Beer Fest for several hours. That evening, we stayed the night at the Kennedy School and thoroughly enjoyed ourselves. Again, I went to bed early as the kids and I had a 7:30 AM flight the next morning.

On Saturday, I started to lose my voice and my cold was still bearing down on me like an avalanche. I drove up to Vail for a friend's wedding on Saturday night. Of course, I stayed up too late and drank too much, but I did have a heckuva a good time. ;-)

When I woke up Sunday, I was in bad shape. The hangover wasn't bad, it was the body aches (from the cold) and the fact that my right eye was draining and it hurt to open it. A friend had to drive me home because I couldn't put my contacts in. I went to bed when I got home (around 5) and didn't wake up until noon the next day (Monday). I called in sick yesterday and went to the ER in the afternoon (I couldn't find a doctor who'd have me). The doctor in the ER said it was Pink Eye and gave me some drops to make it better. I came home, took a nap and crashed for the night a couple hours later.

I called in sick again today. I woke up around 9 this morning, took a nap 10 minutes later and finally woke up around 1:30 this afternoon feeling halfway decent. The body aches aren't nearly as bad as they were and my eye is no longer draining.

The worst part of this whole thing is I lost my glasses a couple months ago so I've been living w/o good vision for 3 days. I can read things 12 inches from me, but watching TV doesn't work too well. Since I can't wear my contacts for 7 days, I hopped on my bike and rode to the nearest LensCrafters to get a new pair of glasses. Those are scheduled to be done in the next 5 minutes (I'm typing this at the Apple Store in Cherry Creek Mall) and I'll finally be able to see again.

Lessons Learned: Sleep is important, get lots of it. Don't get Pink Eye and a cold at the same time. If you wear contacts, make sure you have a backup pair of glasses for when you get Pink Eye.

Posted in General at Jul 29 2008, 06:08:58 PM MDT 5 Comments

[OSCON 2008] Even Faster Web Sites by Steve Souders

Steve works at Google on web performance and open source initiatives. To begin his talk, Steve is running YSlow in "autorun" mode. This runs YSlow Performance tests on the top 100 sites according to Alexa. Before Google, Steve was at Yahoo for 7 years. You can download Steve's slides from his site (don't ask me where).

iGoogle with an empty cache: 9% of the time is spent getting the HTML document. The % of time of what a webserver does is a pretty small percentage of the overall picture. If the cache is primed, the time goes up to 17% of the time.

80-90% of the end-user response time is spent on the frontend. Start there.

There's a greater potential of improvement on the frontend. If you improve the backend performance by 50%, chances are the end-user only sees a 5% improvement.

The 14 Rules are encapsulated in the YSlow plugin. At OSCON last year, Yahoo released YSlow. 500,000 downloads since it was released. Following the release of YSlow, Steve wrote High Performance Web Sites.

High Performance Web Sites, Vol 2. The 3 most important rules are:

  • Split the initial payload
  • Load scripts without blocking
  • Don't scatter inline scripts

Why focus on JavaScript? A lot of the top sites use JavaScript. For example, up until a few weeks ago, Facebook served up 1MB of JavaScript, uncompressed. Scripts block parallel downloads and page rendering. To see it in action, go to http://stevesouders.com/cuzillion/?ex=10008.

Any content below a <script> is blocked from rendering - even if it's already cached in the browser. Cuzillion is an open source project that Steve is releasing that allows you to add components to a page and test their performance.

Split your JavaScript between what's needed to render the page and everything else. Load "everything else" after the page is rendered. To do this, you can use Firebug to do it manually, or you can use Doloto from Microsoft to automate the splitting of your files.

MSN.com solves the script blocking problem by using JS DOM to allow for parallel downloading. There's 6 techniques for doing this:

  • XHR Eval (must have same domain as page)
  • XHR Injection (same domain)
  • Script in iFrame (same domain)
  • Script DOM Element (domains can differ)
  • Script Defer (only supported in IE, domains can differ)
  • document.write (not recommended, parallelization only works in IE)

How do these techniques cause "browser busy" indicators? XHR Eval and Injection don't trigger any indicators. You need to choose when you want to show busy indicators. It's good to show them when you want to show your users that something is processing (but not for lazy-loading JavaScript that's not required for load). For the different techniques, most don't ensure order of parsing.

Based on 3 factors, Steve can tell you which technique is best to use. These three factors are 1) the URL of the page and script 2) if you want busy indicators and 3) if you care about order. Steve thinks it would be awesome if web frameworks could support this to write out JavaScript appropriately for the developer's input.

Long executing inline scripts block rendering and downloads. If you know you're going to have scripts like this, you can solve it with a couple workarounds:

  • Initiate execution with setTimeout(>250 for Firefox)
  • Move JavaScript to enternal script with advanced downloading techniques
  • Use defer attribute for IE

In Firefox 2, stylesheets block parallel downloads just like scripts. IE doesn't. However, IE will block when you have a stylesheet followed by an inline script. To solve, it's best to move line scripts above stylesheets or below other resources. use <link>, not @import.

Takeaways: focus on the frontend, run YSlow, focus on JavaScript (split initial payload, load scripts w/o blocking, don't scatter inline scripts).

Three Announcements:

Posted in The Web at Jul 24 2008, 04:23:12 PM MDT 8 Comments

[OSCON 2008] The State of Lightning Talks

From this session's detail page:

As a repeat of the last 2 years, 15 open source project leaders will be given five minute lightning talk slots to bring the audience up to date on their projects.

This year’s speakers and projects include: Brian Aker: Memcached, Glynn Foster: OpenSolaris, OSI: Danese Cooper, MySQL: Monty Widenius, PostgreSQL: Bruce Momjian, GNOME: Dave Neary, Gentoo: Donnie Berkholz, OpenOffice.org: Louis Suarez-Potts, Jabber: Peter Saint-Andre, Mozdev: Brian King, OpenID: Scott Kveton, Open Scrum: James Dixon, and Cliff Schmidt for the Talking Book Project. A couple more projects may be added later.

Each speaker has exactly 5 minutes, and we use various “fun” tools to make sure they stick to their time. The session usually ends with a “zinger” presentation worth staying for.

Unlike the description above, apparently there's 17 projects instead of 15. This session is 95 minutes long (spans 2 normal sessions). I figure this will be the most challenging event for me to blog, so here we go!

OSI (Open Source Initiative), Danese Cooper
Danese has been on the board of OSI since 2001 and will be on the board for another 3 years. This year, they've been asking themselves "What are the ways to make OSI more effective?" The best answer they've come up with is that they should run OSI more like an open source project (with lots of transparency). Minutes are posted publicly on website and they have a public blog. They're also transferring their archives to a searchable system. They'll be using Trac to do more objective tracking of all the issues that've been brought to their attention.

They're also going to establish (formal) membership. They're going to use Apache as a model and allow Charter, Individual, Organizational and have an Annual Members Meeting. ASF currently has 300 members and these folks are in charge of making decisions for the foundation. There's a good chance you'll recognize all the Charter Members of OSI. The names will be announced in the next couple months (I believe). There will be opportunities to be individual or organizational members.

There's new board members this year with an international focus: Nnenna (Africa), Harshad Gune ...honk... out of time.

Open Scrum, James Dixon
James is the founder and Chief Geek at Pentaho. Pentaho recently took their products open source and they're releasing Open Scrum as an agile methodology for managing open source projects. Open Source is not a methodology, it is a set of principles.

Some agile principles are used in open source, but some are not. For instance, trusting developers and face-to-face contact can be difficult with open source projects. Simplicity sometimes comes out of open source projects, but usually only for projects with a large developer base. There's a 45% good fit between Agile and Open Source.

Open Scrum is based on Scrum, but geared towards open source projects. It's simple and flexible and template driven. It scales from single-geek, part-time, single-projects to massively multi-geek full-on and multi-layered undertakings.

MySQL, Monty Widenius
Monty is the Chief Fonder of MySQL and he's talking about what's new in MySQL. There's been no new releases for users, but internally they've been doing lots of bug fixes in 5.1. He expects to have a reasonable GA of 5.1 in 3-5 months. 5.0 will include online backup and optimizer changes for faster joins and sub queries. 5.1 has an InnoDB Plugin.

MySQL was acquired by Sun for $1 billion and 6 months later, life is good. MySQL Backup was announced to be crippleware by MySQL management, but later changed to be open source.

Switched to use Bazaar and Launchpad to increase community participation. Started public bug hunt for MySQL 5.1. Started using case competition for new features in 5.1. There's also a new MySQL forge. Please help MySQL get better by filing bugs!

Maria engine 1.0 and 1.5; now crashsafe and multi-versioned. Transactional part to follow soon.

OpenID, Scott Kveton
Scott is on the board of the OpenID Foundation and his son is on stage with him (with a Twitter shirt on). In terms of adoption, they have a hockey stick graph with the big upturn starting in February 2007. OpenID is only 3 years old and there's over 20,000 sites that now support it. There's about ~500 million OpenIDs (including every AOL, Yahoo, MySpace and LiveJournal user).

OpenID 2.0 was released as final 12/7/2007. What's next: usability (currently sucks), security (PAPE), integration with other protocols, more than just providing, and possibly OpenID 3.0. One of the biggest problems with usability is people just can't remember URLs, so they're trying to figure out a URL -> e-mail mapping.

OpenID Foundation has added 5 corporate board seats and has 7 community board seats and elections are in August. You can get code at openidenabled.com and you can get involved at openid.net.

Gentoo, Donnie Berkholz
Donnie is one of 7 people that's on the council that tries to make sure Gentoo is going in a good direction. In the last year, they've been struggling with community and releasing. Gentoo is just getting old enough where people are quitting and new developers are coming on board. In 2005, they had a lot of voters for their council. 2006 and 2007 were bad years from a community participation standpoint. This year, they've fixed "poisonous people" and participating is back up.

Rather than voting for single candidates, they use a "rank all the candidates" voting system. Community is very important and they've recently kicked out 3 people that didn't think community was important. They released 2008.0 a few weeks ago. It was supposed to be released in February. When they released, they made the front page of Digg, which made Donnie very happy. Gentoo news announcements were way down in 2007, but now they're back up.

Recommended books for community building: Good to Great, The No Asshole Rule, Getting to Yes.

PostgreSQL, Bruce Momjian
Bruce is a PostgreSQL core developer and works for EnterpriseDB. The future for PostgreSQL is going to be a lot different than the past. PostgreSQL's path to the future isn't a straight line. Rather, it's a meandering path like a road up a mountain with switchbacks. People would like a catapult to put features into to get things in, but it's not that easy. It's difficult to improve software that's been around for 20 years.

Companies have very clearly defined goals that usually revolve around money. With open source, it's a lot different. Goals are usually for a feature set, for adoption of open source or for the challenge and fun of it.

PostgreSQL 8.0 was released in January 2005 and had a lot of enterprise features: Win32, Savepoints, Point-In-Time Recovery, Tablespaces. The latest release (8.3 in February) was much different and much more exotic features. In the future, they're going to expand on running queries on multiple CPUs and maintaining their leadership in the open source database space.

Bazaar, Mark Shuttleworth
Mark's interest in distributed version control predates his interest in Ubuntu. If we can elevate our process of version control, we can elevate the entire open source community. Bazaar is a distributed version control system that's developed in Python. It focuses relentlessly on a couple of key values:

  • Cross-platform: Linux, Windows, Mac OS X
  • Performance: sub-second status on > 10,000 files
  • Being adaptive to the way that people want to work (can use it like Subversion if you want or you can have distributed branches or have a team checkout)
  • Extensibility and embeddable - has a plugin system
  • Python Hackable - people can easily modify

Projects that use Bazaar: GNU, MySQL, Twisted and Ubuntu.

Memcached, Alan "Dormando"
Memcached is a very simple project with a mailing list with very simple people on it that run very simple websites. They haven't had a release in 6 months. Memcached was written by a guy named Fitz that wrote it and left. They've only recently created a developer community that's all over the globe. Alan didn't bring any slides, but he did release 1.2.6 RC1 as he was standing on stage. They also hope to release 1.3.1 this week, but there's not a lot of documentation.

People fork Memcached a LOT, mostly because they need a new backend. They've added a new storage engine that's pluggable to hopefully fix the forking problem. Also, their new binary protocol should make it a lot faster for high traffic web sites.

The Talking Bridge Project, Cliff Schmidt
While the network at OSCON has been slow, the folks that live in rural areas around the world have an incredibly slow means of getting information. Their network is often roads that people travel on to communicate with each other.

They've created a Talking Book device that is an MP3 player that costs $5-10. They're also creating kiosks that people in rural areas can interact with to download new information (i.e. podcasts and other educational content). It also has a microphone and can be found at literacybridge.org. They're creating open source projects to help build the device and content around it. They'd love to have open source developers join their projects and help them make access to information easier for rural societies.

Open Source Lab at Oregon State University, Lance Albertson
Lance is a Kansas native and grew up on a farm. He's a Gentoo developer and joined OSL a year ago. OSL was created in 2003 to utilize "extra" unused bandwidth. They provide managed and co-located hosting for open source software projects. They also provide on-the-job learning opportunities for students in system administration and development.

In addition to hosting, they have a development and outreach side. They have 12 student employees that are given developers/sys admins are given real world practical opportunities. Their work is seen and used by many people and students are given extraordinary amounts of responsibility. They're working on a couple external OSS projects: Oregon Virtual School District and One Laptop Per Child.

Outreach wise, they have an Open Source Education Lab and they've been doing Drupal training for OSU employees. They've also helping organize GOSCON, which is an open source conference for governments.

They currently offer hosting for over 70 OSS projects. Services include, email relays, databases, web hosting, file mirroring and code repositories. Notable clients: ASF, Drupal, kernel.org (master), OpenOffice, Freenode, Gentoo Linux & Debian, phpBB and many others. Datacenter currently has 50 racks; they'll be moving to 75 in the near future.

OpenOffice
They've had 150 million downloads and believe there's around 1 million users. There's 350 committers and most of them work from Sun. Presently, their biggest focus is Desktop. In the future, they'll focus on the Web. The idea is that people will want to use OpenOffice from their mobile devices. ODF is a format that can be expressed by any application. OO 3.0 is about extensions, not bloat. They're adding linkage to a free PIM (Outlook replacement). They're also adding better interoperatbility with other suites and formats (e.g., Microsoft Office 2007). They're adding productivity tools and adding toolkits to make things easier for developers. In the next year, they expect to go way beyond 150 million downloads. They also expect to expand greatly internationally.

Mozdev, Brian King
Brian has been in the Mozilla Community since 1999. Mozdev.org is a community site that provides free hosting for Mozilla applications and extensions since 2000. Established as a non-profit organization in 2004. It has over 250 active projects today and there's over 500 developers discussing issues on the [email protected] list.

Services provided: source code hosting, bug tracking (Bugzilla), communication tools (lists, newsgroups, blogs, forums), file management tools, project tagging, wiki, statistics, permissions system and public planning.

They've experienced some grown pains in the last few years, but they're mostly solved now. They've added developer resources to help develop their site, but they need more. Up until Firefox, they were the #1 place to go for Mozilla projects. They're still working on letting people know that they're around and have projects that are interested. They're looking for new avenues for funding.

Moving forward: they'll be add more items to roadmap, making it easier for less technical folks to host and create extensions, solving the funding issue, and developing deeper relationship with Mozilla (MoFo and MoCo). Quite simply, they want to continue with their goal of supporting developers in order to proliferate Mozilla technologies.

Glen Foster, OpenSolaris
Hey - I had a beer with this guy last night at Kells! Rather than focusing on the older Solaris users, they want to move to focus on getting kids to learn and use it. A couple of months ago, they released 200805 and reduced 5 CDs down to a single live CD. The packaging system is now network based. They changes the default shell to bash and changed to GNU tools as they default as well.

They introduced a new site - opensolaris.com. Since Sun released the source code 3 years ago, they've had a long evolution of getting the source out the door. They were using Teamware and doing much of the development behind the door. Early next month, they're moving to Mercurial and they'll be moving all the source outside the firewall. They'll be using Bugzilla as their bug tracking system.

Similar to Gentoo, they've had quite a few people in their community that don't like change. They're working on fixing this and have had good progress. Several years ago, they created a governance system before they had a community. This was a mistake and their new community-driven governance system should work much better.

GNOME, Dave Neary
GNOME is a desktop environment and set of utilities. It's the default on Ubuntu and Fedora. It's the face of Linux on the Desktop. It's also a platform for development. They have a vibrant ISV community that includes Adobe, VMWare and IBM. In addition to desktop, GNOME is also a mobile platform. They also act as a big tent that provides an infrastructure for projects that are part of the GNOME ecosystem.

The most important thing to Dave is the shared vision of universal access to anyone and everyone. Very important things to the GNOME project: usability, internationalization and localization, accessibility (Sun and IBM have done a lot of work). Accessibility is something they've really focused on in the last year. They've created an Outreach Project for Accessibility and have gotten funding from Mozilla, Canonical and Google. Mozilla has done a lot to fund them and help provide accessibility for Rich Internet Applications. To see if a website is accessible, try it in lynx.

Subversion, John Mark Walker
John is the Community Manager for openCollabNet and is not a Subversion developer. Subversion 1.4 was released in September 2006. There was much anticipating for 1.5 and was released last month. The people rejoiced.

What's new in 1.5? Merge tracking: easier to merge changes from trunk to branch and vise versa. You can also do sparse checkouts (replaces -N). Interactive conflict resolution so you can do it from the command line client. It also add changelist support. svn:externals is no longer required to be absolute (sweet!) and you can add peg revisions in your URLs. FSFS repos never change a rev after written to disk. Clients many now perform chained copy/move operations locally. It also supports moving multiple sources for copy and move. Client operations are now significantly more responsive to canceling operations. "resolve" subcommand replaces "resolved" (deprecated). Delete (remove) now takes a --keep-local option.

Now it's time for the fun stuff...

Ken Drachnik had to leave for an emergency and is unable to give his talk on GlassFish. An audience member (Carl Fogel) volunteers to do his presentation. It's very funny, especially since he's not a Java Developer and has never heard of GlassFish. The only thing I got out of this presentation (besides lots of laughs) is that v3 will be released in June 2009.

Drizzle, Brian Aker
Stored procedures, triggers, prepared statements and many other things have been discarded. "One CPU to rule them, and in the query cache, bind them." If you have a query cache turned on in our database, turn it off or delete it.

Drizzle is currently ~420K. The Master Plan is to rethink everything and not assume everything was bad. Also, they can reuse many other libraries w/o writing them from scratch. They don't have to ship every library because many are present on operating systems. In with the new: C99, Posix, package-lib. They're moving to a MicroKernal design and moving code to the edge. No new features will be in core. To add interfaces you have to remove code so there's an equal amount of code.

Multi-Core support: no new locks, remove old locks. Think today (burn memory, messages scales). They can leverage Sun because they can build machines with more cores than anyone else.

Field Types: Less primitives - now there's just one "blob". Removed the 3 byte int and add UUID/IPV4(6). They dumped ACL because we authenticate in clouds. KISS.

You can get involved with Drizzle at http://launchpad.net/drizzle (bzr branch lp:drizzle) and http://launchpad.net/drizzle-discuss (mailing list).

Posted in Open Source at Jul 24 2008, 01:34:08 PM MDT 1 Comment

[OSCON 2008] Web Frameworks of the Future: Flex, GWT, Grails and Rails

Below is the presentation I'm delivering at OSCON today. Unfortunately, I had to remove slides on GWT and Flex to fit w/in the 45 minute time limit. I hope to expand this presentation in the future, as well as continue to develop the side project I'm working on using these technologies.

Posted in Open Source at Jul 23 2008, 04:25:23 PM MDT 19 Comments

GWT and REST

I've posted two message to the GWT Google Group in the last couple of days. However, new member messages are moderated and neither has shown up yet. I'm reposting my questions here in hopes of getting some answers.

Is there a way to easily use a REST backend with GWT? I tried GWT-REST. It works, but it seems to be centered towards Rails (I'm using Grails) and it suffers from the SOP issue.

JSONRequest looks promising for cross-domain support, but I can't get it to work either. The provided examples work, but not my simple hello world that returns:

{"response":"Hello World!"}

Also, the example implementation only has GET support, not PUT, DELETE or POST. I can post my REST backend on the public internet if anyone is interested in seeing the issues I'm having.

Thanks in advance for any advice.

Posted in Java at Jul 21 2008, 10:31:58 AM MDT 14 Comments

Happy Birthday to Me

Today I turned one year older. It's strange to look back and see that I didn't blog about my birthday in 2007 or 2006, but I did in all previous years. Reflecting back on things, my birthday celebrations have gotten better over the years (we do a golf tournament every year now), but the working-on-my-birthday thing has gotten worse.

From my first birthday post in 2003:

Ever since I worked at eDeploy.com, where they gave us our birthday's off, I've continued to take the day off.

As a contractor, it's pretty easy to say "I'm not working on Wednesday, it's my birthday". Last year was the beginning of the downturn - when I started working on my birthday. I'd just started working at LinkedIn the week before. My birthday was on the Tuesday of the 2nd week I was on-site. I found it hard to say, "I need Tuesday" off, so I worked through it. This year, as an employee, I worked through it again. I don't recommend it.

If you can, take your birthday off. I'm going to see what I can do at LinkedIn to make it a company policy that employees get their birthday off. Wish me luck. ;-)

Posted in General at Jul 16 2008, 08:57:50 PM MDT 6 Comments

My iPhone Review

iPhone Today I picked up a 16GB iPhone at the Park Meadows Apple Store. As far as I can tell, I got it with a stroke of luck. Last night, I was searching Apple's "Concierge" application to see which store (there's 4 in the region now) would look at my Mac Pro (averaging 4 GSOD per day). Most had a 24-hour lead time at the Genius Bar, but Park Meadows had an 8AM available.

This morning, I hauled the box into the mall and doubted the store would be open at such an early hour. Apparently, the store isn't really "open", but the Genius Bar is and they have a camp for kids from 8-10. After submitting my machine to the Genius Bar, I asked a guy about iPhones. He said they got a shipment the night before and they had 16GB White iPhones in stock.

LinkedIn has an Employee Discount for AT&T, so I asked the sales guy if I could use that. He said I needed to buy the phone from AT&T if I wanted to use any sort of "business" discount. I called the downtown AT&T store (they angrily told me they were out-of-stock) and walked by the one in Park Meadows Mall (didn't open until 10). I then rationalized that buying an iPhone from an AT&T store could take weeks. After an hour of contemplating, I decided to go ahead and purchase the white iPhone, even though I wanted black and I wouldn't get the employee discount. My reasoning:

  • Employee Discount is 8% which amounts to about $8/month. My last T-Mobile bill for my Blackberry Pearl was over $200. Going from $200 to under $100 makes $8 irrelevant.
  • When I bought my Escalade, I liked a black one more. When I bought my last iPod (May), I wanted a white one, but ended up with black (no white in stock). It seems fitting that I'd get a white one when I'd want black. My previous black vs. white purchases haven't bothered me post-purchase.
  • These things are hard to find - I should just buy the damn thing.

So yes, I thought about the decision way too much, but managed to talk myself into it. It's a good thing too - they were sold out by the time the store opened at 10. I bought mine at 9:30.

So what do I think of it? I like it, but not for the phone or fanciness of it.

Pros: The main reason I like it is for its iTunes Remote application. With an Airport Express + Bose System at home, I've been wanting this for quite some time. I would've paid $200 for this alone.

Cons: I love the Pandora app, but was disappointed to find it didn't work with my car's iPod connector. I was hoping for Pandora-in-the-car, but no dice. The iPod feature of the iPhone works, but charging via my car's iPod connector doesn't. The enabling-of-charging feature may be software related since there's a "charging won't work" message that pops up when I plug it in.

So 12 hours after purchasing the device, I'm happy with it, but not thrilled. However, it seems like the kind of thing that grows on you and someday you wonder how you lived without it. Should be a fun ride.

Update 24 hours later: I really like that the iPhone has a speaker. I've always wanted a radio in my bedroom at night and now I have one. On the downside, the battery life is abysmal: it was fully charged at 8AM this morning and completely dead by 8PM tonight.

Posted in Mac OS X at Jul 15 2008, 10:07:26 PM MDT 6 Comments

Bike to Work Day

My Commuter - Giant FCR3 Today is Denver's annual Bike to Work Day. While I try to bike to work everyday, it's fun to see others trying it. It's also fun to look back in this blog and see what past years were like.

In 2004, I'd just landed a gig with OpenLogic (when there was only 2 employees). The commute was great, but I only rode to work once that whole summer. I never returned to "the office" for the rest of that contract. In 2005, I'd just started working for Virtuas and didn't have a bike. Last year, I rode to The Hive.

This year, I'm riding to LinkedIn Denver (yes, we still need to decorate). I have to say, this seems like one of the best years yet. I've never enjoyed working in an office as much as I have this year. However, with 4 Mac Pros in one room, we might have to buy a window A/C unit. The room we all work in is a good 10-15 degrees warmer than the other rooms.

Posted in General at Jun 25 2008, 07:51:19 AM MDT 9 Comments