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.

Changes in the Languages of the Web with Dan Connolly

Web Directions North Logo Web Directions is held in Australia and Japan and now the US. A few months ago, they were a bit hesitant about doing it in Denver in the middle of winter. However, they've discovered our best-kept secret: it's beautiful and sunny all week. People are attending this conference from all around the world.

Dan Connolly is the keynote speaker. He's played some very important roles, such as Chairmain of the HTML Working Group during HTML 4. He's also a research scientist at the Computer Science and Artificial Intelligence Laboratory at MIT and a member of the technical staff at the W3C.

Dan's talk is titled Changes in the Languages of the Web and you can view it online at http://www.w3.org/2009/Talks/02wdn/slides.

Web Languages are like languages of the world. Like programming languages, web languages are artificial. Web-native languages are PHP and JavaScript. A Web Language is influenced by natural languages but are artificial. Learning languages is like reading music. With music, most learn from good ol' fashion sheet music. Nowadays, many are learning to read music from Rock Band (the game).

Is there a web language for music? It's not mp3/ogg and it's not Apple's GarageBand. ABC music notation is close and fake-book style cords mostly works. The problem is often these sites and specifications disappear because copyright holders come and scare them away.

Technology deployment rides on the practice of sharing media and culture. Open standards preserve freedom to tinker and supports cultural heritage. Lawrence Lessig at OSCON 2002:

  • Creativity and innovation always builds on the past.
  • The past always tries to control the creativity that builds upon it.
  • Free societies enable the future by limiting this power of the past.
  • Our is less and less a free society.

Lastly, Lawrence asked what have you done about it?

In 1991, some places would fire you for looking at code from the Net. At the time, Dan worked at Convex, who encouraged participation in Free Software. Convex did business with HP; HP used SGML; HTML was SGML (almost). When Dan read about the World Wide Web from Tim Berners-Lee, he had an excuse to look at HTML as part of his day job.

Computer Science students and hackers learn BNF and parse trees. SGML is a little funny looking, but works mostly like BNF. Feedback loop:

  1. Draft a DTD
  2. Run some tests, ask the computer if it matches the test cases
  3. Discover an issue; repeat

While Dan was at Hal in Austin in 1994, and adding HTML support in products, he:

  • Asked other HTML Working Group members to try James Clark's sgmls parser
  • Not many of them were in the habit of building software from source
  • Mark Gaither and Dan installed sgmls as a CGI service
  • Feedback loops works over the Web!

Dan was first the editor and then the chair of the standardization of HTML 4. HTML's standardization timeline:

  • November 1995: HTML 2.0
  • January 1997: HTML 3.2
  • December 1997: HTML 4.0
  • December 199: HTML 4.0.1

Browser marketplace explodes and then stagnates. Early 1990's - lots of little projects. In 1995, Netscape Navigator IPO rewrites the business books. In the late 90's IE takes over Netscape. After HTML, Dan started working on other stuff: Feb 98 (XML 1.0), Jan 99 (Namespaces in XML), Jan 00 (XHTML 1.0), Feb 04 (RDF and OWL), Apr 06 (SPARQL) and Sep 2007 (GRDDL).

W3C fostered many of the technologies of Ajax and Web 2.0:

  • HTML, CSS, DOM, XML from W3C circa 2000
  • JavaScript from Netscape, ECMA in 1995
  • XMLHttpRequest from Microsoft in 1999

W3C's efforts since then lacked clear deployment paths.

XHTML is not the solution to a problem that concerns anybody except the guys who have to write parsers that convert markup into DOM trees. It turns out that XHTML put the validation on the wrong end of the network. It turned out that the market didn't put much value in a document delivery system that could decide to not display the document because there was an unrecognized attribute on an invisible meta tag.
-- Doug Crockford Jan 2008

The web isn't just for computer geeks anymore. From The Future of Information by Ted Nelson in 1997:

The software world currently corresponds to the Pre-Director stage in movie-making (1893-1904). During those years, when short films were already being shown in theaters, the job of making the movie was given to the cameraman - because he knew how to work the equipment.

That is how it is with software today. Today's software designers are those who only understand the technicalities, and not - with rare exceptions - those who understand how to integrate the presentation of ideas to the mind and heart.

The Web facilitates a shift from mass media to participatory culture. Worth watching: An Anthropological Introduction to YouTube by Michael Wesch and the Digital Ethnography Working Group.

The W3C HTML Working Group charted in March 2007 and ended up with hundreds of participants (most prior working groups had 20-30 people). In November 2007, there was an HTML WG meeting at W3C Technical Plenary and was very much an unconference. The HTML 5 Working draft was published in January 2008. Goals for HTML 5:

  • Off-the-shelf parsers and tools for reading web pages like browsers do, including tag soup
  • Modern test materials
  • Standardize successful experiments in the Web Applications platform to balance the attraction of proprietary approaches:
    • <video>, <audio>
    • scripting details, security policies
    • offline storage

HTML 5 co-chairs: Chris Wilson (Microsoft) and Sam Ruby (IBM) with W3C staff support from Mike Smith and Dan Connolly.

Some ideas from the CSS validator roadmap:

  • JavaScript CSS parser
  • Support for CSS 2.1 forward-compatible grammar
  • Integrate test-result data showing browser support

The browser marketplace is moving again.

How about authors? How do they feel about HTML 5? Two days ago, Dan received support from Adobe to work on HTML 5 materials for authors.

Design Principles Last Through Change. From Zeldman on Twitter: Client who saves $5K buying cut-rate non-semantic HTML will later spend $25K on SEO consultant to compensate.

There's still something to the nothing behind XHTML+CSS Web Design. Kudos to whoever designed the Kansas Tax web site (Dan is from Kansas City).

Sharing data in documents is one of the original goals of the WWW. Dan has been investing some of his own time into microformats.

Tantek Çelik in June 2006: "XML formats in the long run are not better than propriety binary formats."

  • XML, both in technology (namespaces...) and as a "technical culture" is too biased towards Tower of Babel outcomes.
  • A few XML formats may survive and converge (RSS, maybe Atom).
  • But for now, XHTML is the only longterm reliable XML format that has more to do with it being based on HTML than it being XML.

And if longevity is not a goal, try JSON - it's yummy.

Microformats are not just technical ideas, but it's something that you can actually use in your life. XSPF - what if media players had used an XHTML dialect a la hMedia. RSS and hAtom - will feed readers grow native support for hAtom? Will calendar subscription clients grow native support for hCalendar? The process and the technology of microformats provide an 80% solution for global scale problems.

The Personal Information Disaster: The bane of my existence is doing things I know the computer could do for me. -- The XML Revolution, Nature Web Matters Oct 1998.

Let's find ways to make it cost-effective record and share knowledge formally, i.e. so that computers can manipulate it. How great would it be if your kid's soccer coach could distribute a schedule that would feed into everyone's calendaring system?

Flickr, Facebook and Twitter demonstrate the attraction of hosted services. Identi.ca supports federation (OpenMicroBlogging). Instant Messaging is much like e-mail used to be, where you couldn't e-mail folks that used a different provider.

Be careful not to delegate too much to machines!

  • A United Airlines near-bankruptcy item from 2002 appeared as 2008 news via Google News
  • Syndication continued up to a Bloomberg news flash.
  • UAL stock cratered from $12 to $3 ($1.14 billion in market cap).
  • The stock recovered within the day to $10 (down $300M in market cap)

Something to keep an eye on - SEC Interactive DATA and XBRL. Three dozen companies, representing more than $1 trillion of market value, have joined the SEC's test group. Have been working on this since 2005.

Conclusion
The balance between proprietary risk/reward and open standards is delicate. Media independence is more important than ever as mobile emerges. When content doesn't match specs, changing browsers is cheap compared to changing all the content, authors. Web technology is deeply intertwingled with social, economic context.

I enjoyed Dan's talk. He's obviously a smart guy and has been involved with the web since before it even existed. More than anything, I like the conference location. It's 1/2 block from my office and has excellent views. I hope to return for The State of the Web 2009 later this afternoon.

Posted in The Web at Feb 04 2009, 11:34:54 AM MST 3 Comments

Epic Weekend at Silverton Mountain

Hiking to White Wave This past weekend, I joined some of my best friends for a weekend of skiing at Silverton Mountain and Wolf Creek in south central Colorado. Most of the guys went last year and I knew I had to go this year after hearing about their thigh-deep powder experience.

The trip started out kinda rocky when we left on Friday afternoon. There were 3 different cars that drove and we were the last ones to leave Denver. We took my car, but I had a friend drive since I'd had a late night on Thursday night. About 2 hours into the trip, one of our friends called us to warn us about the speeding tickets the other cars had gotten. In fact, one of the guys had gotten two! I handed the phone to the driver so he could find out where, but he had to cut the conversation short as the police car's lights started flashing in the rear-view mirror. If only they'd called us 5 minutes earlier!

After the speeding ticket delay, we pulled into Pagosa Hot Springs around 11. With 18 soaking pools, this turned out to be the perfect place to stay.

All the way to the top On Saturday morning, we woke up at 5 and drove 2 hours to Silverton Mountain. I didn't know what to expect at first. I had it in my mind that we'd be hiking for 5 hours and get one run in the entire day. I was pleasantly surprised to find you 1) ride the lift up and 2) hike to your run. We had a guide named "Ronbo" and our first hike took 1.5 hours. It was very steep and steep like a ladder in some sections. The White Wave run was awesome in the middle, but somewhat skied off at the top. The powder was around boot-deep and the weather was beautiful.

After a 2nd run and a much shorter hike, 5 of us decided we had to take the leap and do a heli-drop. We rode to the top of the lift, got picked up by the chopper and rode for about 2 minutes to a neighboring peak. This was by far the best run of the day and one of my favorite ski experiences of my life.

We figured we couldn't top heli-skiing, so 3 of us called it a day around 3 o'clock. We did 3 runs all day and we were exhausted. A couple guys took a 4th run and the guys that didn't do heli-skiing got 5 runs in. A 2-hour drive back, some fireworks in Durango and a night of soaking at Pagosa Springs made us all very happy campers.

On Sunday, we woke up and headed to Wolf Creek for a few hours. It was Local Appreciation Day and tickets were a mere $31! We did some hiking, found some powder and enjoyed some of the best skiing weather of the year. We hopped in the car around 2, kept the cruise control on 5-over-the-speed-limit and made it home in time to catch the Super Bowl (thanks to my DVR).

If you're in shape and are an expert skier, I highly recommend you take a trip to Silverton Mountain. It's truly epic.

For more pictures from this trip, see my Silverton 2009 set on Flickr.

Posted in General at Feb 03 2009, 08:56:24 AM MST 3 Comments

Bye Bye Dream Machine

Mac Pro This evening, I'm shipping back one of my favorite machines of all time. I received a fully-loaded Mac Pro as part of my employment with LinkedIn last June. It was necessary to run the LinkedIn application locally and I thoroughly enjoyed using it for the last 6 months. With 12GB of RAM and two 23" monitors, it was a great employee perk.

When I became a contractor again, they let me take my dream machine home. I promptly plugged in my 30" monitor and I've been loving my home work environment ever since. I could have bought the machine from LinkedIn, but I discovered I can buy a brand new machine with similar specs for less than their asking price.

The good news is I'm now able to answer the question I asked a couple years ago: One 30" monitor or two 23" monitors? IMO, one 30" monitor is definitely better and two 30" monitors would be awesome.

In addition to the Mac Pro, I'll also be shipping back the 15" MacBook Pro they gave me. This leaves me with my 17" MacBook Pro and an old HP Pavilion with Windows XP. I was hoping to plug my 30" into the HP, but I discovered I don't have a DVI card that will handle it. Over the next few months, I do plan on buying a new MacBook Pro (for work) and a Mac Pro (for home). With my running commute, I need to leave one machine downtown and I like to have one at home for the kids + late night hacking.

I'm currently having a hard time deciding if I should buy a MacBook Pro now or make do with what I have and just buy a new DVI card for my Windows box. I'm leaning towards a new 15" MacBook Pro (17" is too big to travel with). If I could get one with a 256GB SSD, I'd definitely be sold.

What would you do?

Posted in Mac OS X at Jan 26 2009, 10:18:33 PM MST 19 Comments

Running to Work

A little over two weeks ago, my commuter bike was stolen. At the end of that entry, I wrote:

Rather than buying a new one, I think it's a good opportunity to take things up a notch and start running to work instead. It's 6 miles and surely doable with some practice. There's also a good chance it's the worst idea I've had in a long time.

The next day, I ran my first commute and discovered it was 5.1 miles instead of 6. It also took me just under an hour (with a 10 minute cool down at the end), indicating an average of 11 minute miles. Yeah, that's slow. Since then, I've run most of the time I've been in town. Currently, I'm only running 3 times per week because I've found back-to-back days make me ridiculously tired.

I do hope to make it up to 4-days per week and possibly even do a couple round trips. Why am I doing this? Part of me wants to get in better shape, and the other part is too stubborn to buy a new bike. Yes, I will buy a new commuter bike eventually. My current goal is to run until April 1st or until I lose 20 pounds, whichever comes first.

After the run home The downside of running is it's easily the worst part of my day. It's the part I dread the most, especially on nights like tonight. When I left the office, it was dark and 6°F (-10°F with wind chill). Amazingly, I didn't get cold thanks to good layering. My face did end up with a lot of ice on it as evidenced by the photo on the right. I know the next couple months aren't going to be easy, but I always like a good challenge.

How have you challenged yourself lately?

Posted in General at Jan 26 2009, 09:55:36 PM MST 7 Comments

The kids actually like skiing!

Helmet Stickers The kids and I had a blast skiing at Winter Park today. I can't remember a day I've been more proud of my kids and their willingness to ski. I woke them up just before 6 AM this morning. I was very impressed when they both popped out of bed with huge smiles on their faces. They were actually excited to go skiing. Their enthusiasm didn't end throughout the day and we had a ton of fun.

I was most impressed with Abbie - she now wants to ski blues all the time. Not only that, but when she falls she has no problem getting up herself. Jack, on the other hand, can barely do "Pizza" and says "I can't" and "I'm scared" most of the time. I somehow convinced Abbie that if you believe you can do something, you can do it. She's been using that mantra whenever we ski and it's worked awesome for her.

For the last run today, I told Abbie we could do a blue; Jack would only do it if I carried him. We rode to the top of Winter Park and skied down a steep blue/black. I imagine it was a pretty funny scene because it looked like I was in way over my head. Abbie was going slow, snow-plowing like mad, and I was skiing with Jack in my arms while he carried my poles. Several folks stopped to see if we needed help, but I told them it was all pre-planned. Abbie fell several times, but got up by herself every time and even got "the burn" towards the bottom. It's a good thing I've been running to work lately, carrying a 4-year-old top-to-bottom on a steep blue with 8" of powder can be quite a workout.

Posted in General at Jan 24 2009, 05:24:34 PM MST 1 Comment

Traveling to Tahoe without a Driver's License

View from our room This past weekend, I had quite the adventure traveling to Lake Tahoe. On Thursday night, I flew into Denver from LA and had a busy night tidying up loose ends. After 3 hours of sleep and a late start, I was on my way to DIA early Friday morning. As I was approaching the parking garage, the lights went on in my review mirror.

When the cop asked me for my license and registration, I opened my wallet and felt my heart sink.

My driver's license was missing.

I quickly realized I left it in my pants the night before and explained this to the officer. Luckily, I found my birth certificate in my car's console and was able to show him that. He still wasn't convinced. Then he looked at my coat and said "What about your ski pass?" It had a picture on it and seemed to satisfy his identification criteria.

The cop then asked me why I was speeding (63 in a 45) and I politely explained my flight was departing in 30 minutes and I was hoping to make it. He said, "You won't make it. They won't let you check-in." I said I checked in online. He seemed to know this might work and quickly filled out the rest of my ticket. At this point, I didn't think it was possible to make my flight. I felt defeated and dreaded waiting all day until the next Frontier flight to Sacramento.

I arrived at the counter (to check-in my skis) 20 minutes before the flight was scheduled for departure. Frontier was awesome - they checked in my bags and sent me on my way as fast as they could. TSA wasn't too bad; I just had to go through the extra screening. Of course, I had to run all the way through Terminal A to make my flight on time.

While taxiing to the runway, I reflected on how awesome it was that I was utterly defeated 30 minutes prior and how the good people of Frontier Airlines made it all possible. Of course, when I arrived in Sacramento, my adventures continued with late baggage and rental car issues.

The good news is it all worked out in the end and I had a great weekend of skiing at Heavenly and Kirkwood. The snow wasn't great, but we skied in t-shirts all weekend. The Tahoe Trip seems to have become an annual tradition. Next year I'll make sure and bring my license. ;-)

Posted in General at Jan 22 2009, 04:09:27 PM MST 7 Comments

LA Tech Meetup Tonight

If you live in LA - or just happen to be in town - you should join us for some beers and tech talk this evening. We're meeting at The Village Idiot around 7 and plan on being there until 9. Hope to see you there!

In other Tech Meetup News, it looks like we'll be doing one in Denver next Thursday (January 22nd). Venue TBD.

Posted in Java at Jan 14 2009, 11:40:12 AM MST Add a Comment

Choosing an Ajax Framework

This past week, my colleagues and I have been researching Ajax Frameworks. We're working on a project that's following SOFEA-style architecture principles and we want the best framework for our needs. I'm writing this post to see 1) if you, the community, agree with our selection process and 2) to learn about your experiences with the frameworks we're evaluating. Below is the process we're following to make our choice.

  1. Choose a short list of frameworks to prototype with.
  2. Create an application prototype with each framework.
  3. Document findings and create a matrix with important criteria.
  4. Create presentation to summarize document.
  5. Deliver document, presentation (with demos) and recommendation.

For #1, we chose Ext JS, Dojo, YUI and GWT because we feel these Ajax libraries offer the most UI widgets. We also considered Prototype/Scriptaculous, jQuery and MooTools, but decided against them because of their lack of UI widgets.

For #2, we time-boxed ourselves to 3 days of development. In addition to basic functionality, we added several features (i.e. edit in place, drag and drop, calendar widgets, transitions, charts, grid) that might be used in the production application. We all were able to complete most of the functionality of the application. Of course, there's still some code cleanup as well as styling to make each app look good for the demo. The nice thing about doing this is we're able to look at each others code and see how the same thing is done in each framework. None of us are experts in any of the frameworks, so it's possible we could do things better. However, I think it's good we all started somewhat green because it shows what's possible for someone relatively new to the frameworks.

For #3, we're creating a document with the following outline:

Introduction

Ajax Framework Candidates
(intro and explanation)

  Project Information
  (history)
  (license / cost)
  (number of committers)
  (support options)
  (mailing list traffic (nov/dec 2008))

Matrix and Notes

Conclusion

For the Matrix referenced in the outline above, we're using a table with weights and ranks:

Weight Criteria Dojo YUI GWT Ext JS Notes
# Important Criteria for Customer 0..1 0..1 0..1 0..1 Notes about rankings

Our strategy for filling in this matrix:

  • Customer adjusts the weight for each criteria (removing/adding as needed) so all weights add up to 1.
  • We rank each framework with 0, .5 or 1 where 0 = doesn't satisfy criteria, .5 = partially satisfies, 1 = satisfies.

The list of criteria provided to us by our client is as follows (in no particular order).

  • Quality of Documentation/Tutorials/Self Help
  • Browser support (most important browsers/versions based on web stats)
  • Testability (esp. Selenium compatibility)
  • Licensing
  • Project health/adoption
  • Performance
  • Scalability
  • Flexibility/extensibility
  • Productivity (app dev, web dev)
  • Richness of widget/component library
  • Charting capability
  • Ability to create new widgets
  • Match to existing Java team skill-set
  • Ease of deployment (on Ops, QA, Users)
  • Degree of risk generally
  • Ability to integrate with existing site (which includes Prototype)
  • Easy to style with CSS
  • Validation (esp. marking form elements invalid)
  • Component Theme-ing/Decoration
  • CDN Availability (i.e. Google's Ajax Libraries API or Ext CDN)

What do you think? How could this process be improved? Of course, if you have framework answers (0, .5 or 1) for our matrix, we'd love to hear your opinions.

Posted in Java at Jan 08 2009, 09:36:22 PM MST 39 Comments

R.I.P. Giant FCR3

This week, I started a new gig at a new office in downtown Denver. On the first day, I was disappointed to find our building doesn't allow bikes inside. The next day, I went out and bought a new lock. Today, I walked out for the ride home to discover my bike had been stolen. :'(

At first I was shocked, then pissed, and then I noticed my lock was still there. This means, 1) I didn't wrap it around a tube or 2) someone cracked the lock and re-locked it. Of course, I find it hard to believe after all these years that I'd miss the tube when locking my bike. However, it'd be pretty strange if someone stole it and then went through the trouble to lock the lock again. Regardless, the awesome commuter I bought over 3 years ago is gone. You will be missed my friend.

New Commuter - Giant FCR3

Rather than buying a new one, I think it's a good opportunity to take things up a notch and start running to work instead. It's 6 miles and surely doable with some practice. There's also a good chance it's the worst idea I've had in a long time.

Update: Running wasn't too bad.

Posted in General at Jan 08 2009, 09:08:37 PM MST 9 Comments

Happy Birthday Mom!

For the last couple weeks, I've been enjoying a great Christmas vacation in Oregon with most of my family. Abbie and Jack didn't join me, but they got to spend 3 weeks in West Palm Beach, Florida. Poor kids.

Mom on Playa Carrillo I made sure the end of my vacation would land on a very special person's birthday. My Mom. Not only is my mom one of the coolest people in the world, she also has an excellent job title: Burn Boss. Growing up in Montana, I was always proud that Barb Raible was my mom. She was famous for her kindness in the Swan Valley. I hope she's always famous for her story about nailing a bear's nuts to a tree.

My mom is a Montana Native who wasn't afraid to raise her kids in the backwoods at her family's homestead. It sounds like a crazy idea to me, but she made it happen - cooking over a wood stove every day and working at the Swan Valley Ranger Station to make ends meet. She was responsible for getting us out of Montana and onto Oregon. She went back to school in her early 40s, got a degree in Forestry from the University of Montana and moved the whole family to Oregon for a job with the BLM.

I moved to Oregon on June 14, 1990 driving a '73 Plymouth Duster with a homemade International trailer in tow. We certainly looked like we were from Montana when we rolled into town. We moved into a house on Felony Flats. My sister and I got jobs at McDonald's (Dad's advice) and started school at North Salem High school in the fall. I met many good friends at North Salem - Jess, Matt, Clint and Michelle becoming favorites over the years.

Sunrise in Bend For New Years, Jess, Clint and I rented a condo in Bend, Oregon. Matt joined us on Friday after most of us experienced an Epic Powder Day at Mt. Bachelor. It was the first time we'd all been together in 9 years. We had a blast.

This vacation in Oregon has been very special to me. I've reunited with many old friends, enjoyed 2 epic powder days and had a great time with my Mom, Dad, Sister and her fiancé Mya.

As much fun as I've had, I'm looking forward to getting back to Denver and hanging out with my kids. January 2009 is sure to be one for the books. I start a new gig at a new office tomorrow. On Wednesday, the kids return from Florida to a mountain of presents at my house. My parents are coming to town next weekend, followed by a trip to Tahoe and a weekend in Steamboat to finish out the month.

Yeah, 2009 is going to be a lot of fun. Maybe I'll see you on the slopes. ;-)

Posted in General at Jan 04 2009, 12:08:28 PM MST Add a Comment