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.

[Microsoft] Day 1 Morning

"An open and honest dialog" - that's what the goal of this shindig is. Most of these sessions aren't really interesting to me. If there's APIs I can talk to, I'm cool with that, but as far as SQL Server 2005 and Windows Architecture ... I'm not interested. The thing I'm looking forward to today more than anything is meeting Scoble.

Most of the folks in this room seem to be community leaders, i.e. JUG Founders and architects. There's also a fair amount of "Developer Evangelists" in the room. Probably half the room is MS people. I wonder what the hell a Developer Evangelist does? Do they write any code? I'm guessing there's no MS coders in the room.

Michael Howard - Improving Security at Microsoft by changing the process

Michael Howard is the co-author of the "Writing Secure Code" book that we all received this morning. He's writing a new book called the "19 Deadly Sins of Software Security" - which apparently covers everything: Windows, Linux, OS X, Java, JSP, MySQL, Oracle, etc. Sounds like a pretty good book - it's got some open-source guy as a co-author too. It's a McGraw Hill book and should be short-n-sweet at 300 pages. Michael is the Senior Security Program Engineer and sounds like a champion of the "Trustworthy Computing" mantra here at Microsoft.

zone-h.org tracks the number of web server attacks. Michael is talking about the fact that IIS 6.0 has had one security bug in 2 years, while Apache 1.3 has 13 and Apache 2.0 has had over 20. "Apache has more security bugs than IIS."

Everyone has security bugs, we're the only ones doing something about it.

Application compatibility is now a #2 priority at Microsoft, Security is #1. They're willing to break application compatibility, a.k.a. "app compat", for the sake of security.

Threat Modeling - they do a lot of research on skills vs. motivations. They're basically trying to understand not only how, but why hackers attack.

OK, this is a pretty boring talk - mostly because it doesn't interest me. There's a lot of talk about security in "Whidbey", which is the next version of Visual Studio.NET. Apparently, it's now got some tools to detect security issues and memory leaks. My boredom has caused me to start working on AppFuse, and to try out the USB Flash Memory Drive they gave us. It's kinda funny - the box it came in has a link to where you can download the drivers for Windows 98/SE. No driver is needed for ME/2000/XP. I also discovered that it works great on the Mac. Cool - too bad it's pretty much useless if you're always online like I am.

Heh, shortly after writing the above, I yanked out the device and it killed both Keynote and BBEdit. It's definitely a useless device!

Don Box - Microsoft Messaging Futures Using Indigo

Don is taking an interesting approach to his presentation - and typing it all in notepad. He wants us to tell him why we think MSFT sucks. Don works on the XML messaging stack. Specifically, he's an architect on Indigo and he worked on the WS-* specs. An audience member puts a stop to the typing because he's legally blind and can't read anything. Here comes the talking. How does Microsoft suck?

Audience feedback:

  • Community Involvement sucks
  • Need to do security by default
  • COM+ isms not there - transactions more mature in J2EE
  • Does MS believe in managed code?
  • 2 year platform cycles, re-invention w/ every release
  • Dependency hairball - shouldn't have to buy other products to make simple things work
  • Dependency Injection, IoC, ORM

I brought up the fact that MSFT crushes or buys their competition more often then not. Don spent some time answering this question, defending MSFT a bit, but also saying that we're in a new decade now and it's a very competitive industry. For the record, I don't really believe MSFT is the "Evil Empire" like many hard-core Linux and open-source guys. I have quite a few MSFT certifications, but I've found most of them useless in my career - except that I can easily troubleshoot and fix most of the issues I have on Windows. I use Windows and prefer it over OS X for the most part, but that's because I'm more efficient using Windows, and because my Windows box is much faster than my PowerBook. ;-)

Don reminds me of a good friend of mine - Chad Shoup - but he's about 10 years older. For those of you who know Chad, you know he's fun to listen to. I don't have much interest in the talk (I don't even know what Indigo is), but it's an enjoyable talk - mainly because he's enthusiastic about what he's talking about - and he's walking around the room, keeping the audience involved.

RelaxNG is better than XSD. The primary goal of Indigo is to satisfy the customers and consolidating the choices in .NET so that choices are easy and explicitly - instead of having a number of different products that do the same thing. They don't plan on taking choices away - they just plan on making the choice easy and explicit. If you're working with .NET, there might actually appear to be an architect behind it all.

Don goes on to address all the audience feedback and explain MSFT's position and what they're doing to address this. Sorry, I tuned out as I wasn't that interested. The one interesting quote I got out of this session is "I believe we're going to be more than competitive in O/R Mapping. Soon."

Richard Monson-Haefel asks "Is there a place for AOP in .NET or is it too sophisticated for your developers." Don's take is "My development platform should allow me to write code w/ a couple of beers in me." He ragged a bit on Java developers and said their main problem is they think they're smarter than they are. He also said that if he could change on thing at MSFT, it would be that Ruby becomes the language of choice.

Break time: yogurt and granola. I got a picture with Don and will post that as soon as I find a cable. I'm also going to see what this "Double Strength, Double Size, Rockstar Energy Drink" is all about. It sounds poisonous, but it's likely to give me a wicked buzz or make me throw up. Seems like a good experiment.

Looking outside, it's raining now - which seems appropriate now that we're going to have a Programming Language Design Panel. The rain goes with my depression that I have to sit through this session. I doubt it'll be of any interest to me.

Programming Language Design Panel: Jim Miller (CLR Architect), Herb Sutter (C++ Architect), Jim Hugunin (Lead for IronPython and dynamic languages on CLR)

Jim Miller: The five programming languages that Microsoft ships: C#, VB.NET, C++, J# and JScript. Generics are now a part of the run-time environment. Closures and light-weight code-generation will also be available.

Herb Sutter: Only guy on the panel that cares about managed and native code.

C# Guy: C# 2.0 features: Generics - code looks a lot like Java, but implementation is very different in CLR. Closures so you can pass methods as arguments. Iterators - lazy enumeration of collections like Python and Ruby. Partial types or structured include files - multiple files make up one class (good for code generation).

Jim Hugunin: Used to be a Java Developer, working with AspectJ and other dynamic languages. He wanted to see why .NET was such a horrible platform for dynamic languages. A year later, he found himself working for Microsoft. He's found that .NET is a good platform for dynamic languages (of course, right?). His current job is getting IronPython to 1.0.

Dion asks about Ruby on .NET and about AOP in .NET. Jim doesn't know of any major projects that are addressing Ruby on .NET. C# guy says that we have a lot we can learn from dynamic languages and thinks the best thing is to allow less typing (i.e. declare type once) in strongly-typed languages like C# and Java. As far as AOP, the C# guy is still in the wait-and-see mode.

Rockstar Energy Drink Status: I made it about 1/3 of the way through it before the stomach ache kicked in. Now I'm jittery and nauseous... <great/>

IronPython will likely be an open-source project b/c the Python Community will probably reject it otherwise.

Will Java 5.0 code be able to easily port into J#? The panel doesn't know and thinks it's more of a legal question. J# currently supports JDK 1.4 syntax and they don't think there current license allows supporting JDK 5.0.

Mono - they've been taking a wait-and-see approach to see the commercial uptake on it. So far, they haven't seen a whole lot of commercial interest in Mono, nor any licensing requests from Novell.

Posted in Java at Mar 17 2005, 12:29:00 AM MST 4 Comments

[Microsoft] Day 1 Begins

We arrived at the Microsoft Campus on a beachliner this morning at 7:30. They served us a nice buffet breakfast and now we're waiting for the first talk to start. They handed us a book titled "Writing Secure Code", which is a monster at 700+ pages and has a quote from Bill Gates on the bottom: "Required reading at Microsoft." I have a hard time believing that.

The worst part? No internet access - wireless or wired. I'm uploading this via Bluetooth on my phone - which is about to die. I forgot the charger at home, so hopefully I can borrow one from someone.

FYI, I e-mailed Scoble about a cord for my camera (forgot that at home too). He's going to try to hook me up with a replacement so I should be able to upload pictures later this afternoon.

Posted in General at Mar 16 2005, 09:09:19 AM MST 1 Comment

So who's at this Developer Summit?

I expected that this place would be filled with Java Developers and Experts that I know from conferences and open-source mailing lists. Not so - there's only a handful of guys I know. Here's the list of folks I actually recognize. I apologize to anyone I forgot.

  • Ben Galbraith
  • Dion Almaer
  • Jay Zimmerman
  • Matthew Schmidt
  • Richard Monson-Haefel
  • Rick Ross

After talking with a lot of Microsoftees (including the lady who came up the idea), this whole week seems pretty harmless. They want us to critique their products and strategies and tell them what they're doing wrong. We had fun ragging on some guys tonight about IE7 and TDD. They admitted that the test-driven development we're doing is very interesting to them. With any luck, we'll get to rag on IE7 enough so it's actually better than Firefox.

Posted in Java at Mar 15 2005, 11:01:02 PM MST 1 Comment

This is gonna be good

So far this definitely looks like a wine and dine event. Jay Zimmerman was on my same flight from Denver, so we got to sit around the airport and wait for a ride together. I fully expected a Limo and a guy holding a "Raible" sign. No such luck - it took an hour for a car to show up and we had to call them several times.

We're staying at the Willows Lodge, which is definitely a luxury hotel. It's probably the nicest room I've stayed in outside of Vegas. King size bed, huge jacuzzi, nice stereo (playing when I entered the room). Not only that, but incidentals are covered. That's right folks, apparently we can go get a massage on Microsoft if we like. I'll be testing those waters in short order for sure. I talked with the guys at the front desk, and there's apparently 49 people staying here for this shindig.

The Lodge is out in the country, and right next door to the Red Hook Brewery and the Columbia Winery. ;-)

Update: The wine-ing has begun. I just got a knock on the door with a guy handing me a "present from Microsoft". A box full of crackers, cheese, chocolates and a bottle of wine. Let's hope there's a wine opener in here. Found it.

Update 2: Damn, after looking at the agenda, it doesn't look like there's any time for a massage. The worst part so far? The shuttle leaves for the M$ Campus tomorrow at 6:45 a.m.!

Posted in General at Mar 15 2005, 04:23:38 PM MST 6 Comments

Microsoft's Agenda at the Competitive Influentials Summit

They said I could blog everything about the conference I'm going to tomorrow, so let's see how far they're willing to go. ;-) A lot of folks have asked me what the agenda is, and until now - I've had no clue. However, today I was sent an e-mail and I'm happy to let y'all know what's going to happen. One thing I noticed is that the Word document's title was "Competitive Influentials Summit". Heh - I guess I'm an "influential" now.

I'm really looking forward to this event. I think we're really going to get wined and dined, and maybe even learn something. It'll be the first time in my life that someone will be picking me up from the airport with a "Raible" sign. I'm leaving at noon on Thursday to do a little St. Patty's day celebrating with my sister (it's her birthday), so I'll miss the "Open Source and Microsoft" session. Hopefully someone else will blog that so we see what they're thinking.

Wednesday, March 16
Time Topic
7:30am-8:00am Registration/ Breakfast
8:00am-8:30am Welcome Keynote
8:30am-9:00am Attendee Introductions
9:00am-10:00am Improving Security at Microsoft by changing the process
10:00am-11:00am Microsoft Messaging Futures Using Indigo
11:00am-11:15am Break
11:15am-12:15pm Programming Language Design Panel: Jim Miller/Jim Hugunin/Herb Sutter
12:15pm-1:00pm Lunch / Channel9.MSDN.com Discussion
1:00pm-2:00pm Developer Community Outreach Efforts
2:00pm-3:00pm SQL 2005 and the Developer
3:00pm-4:00pm Product Development Process
4:00pm-4:15pm Break
4:15pm-5:45pm Windows Architecture
5:45pm-10:00pm Shuttles depart for Teatro ZinZanni
Thursday, March 17
Time Topic
7:30am-8:00am Welcome / Breakfast
8:00am-9:00am Morning Keynote
9:00am-10:00am .NET CLR Architecture
10:00am-10:15am Break
10:15am-11:15am ASP.NET 2.0
11:15am-12:15pm VS.NET 2005
12:15pm-1:45pm Lunch / Microsoft Research and Innovation
1:45pm-2:45pm Smart Client Futures
2:45pm-3:45pm Guidance Through Patterns and Practices
3:45pm-4:00pm Break
4:00pm-5:00pm Open Source and Microsoft
5:00pm-6:00pm Company Store Visit
6:00pm Shuttle departs for Willows Lodge
7:00pm-10:00pm Evening Event at Red Hook Brewery
Friday, March 18
Time Topic
8:00am-8:45am Welcome / Breakfast
8:45am-9:15am Closing Keynote
9:15am-10:15am Windows CE and Mobility
10:15am-10:30am Break
10:30am-11:30am Visual StudioTeam System
11:30pm-12:00pm Closing Remarks
12:00pm Lunch / Departure for airport/hotel

Posted in Java at Mar 14 2005, 12:53:52 PM MST 7 Comments

Firefox and the lack of a developer community

Joe points to some interesting news about Firefox. The part that struck a cord with me is Mike Griffin's post about free products and burn-out.

As a co-author of a free product myself I know the kind of burn-out issues these folks are going through. Most folks working on free products need real jobs to pay the bills. This means they work on these free products late into the evenings and on weekends if it's a product of any real worth.

At first the thrill of a new project and the recognition that goes with it carries you through those tiresome evenings. You are creating something new and there are no bean-counters around to mess everything up. However, as time goes on, as with most things, the thrill begins to wax and wane, and after months of getting no more than 4 hours of sleep per night it begins to affect your health. You get sick more often than you used to, and you're main goal quickly becomes to merely get through each day. And then there's the guilt of spending too much time on it, when the basement needs painting, things need fixed around the house, and you're not spending enough quality time with your kids (and when you do you're the walking dead so it doesn't count). Finally, and much to your surprise, the project doesn't really turn out to be the big career booster you thought it was going to be. In fact, perspective employers are hesitant to hire you when they find out you have a mistress on the side pulling at your time and resources.

In the end, it's a matter of commitment. You've created something folks have come to rely on and they need you, you cannot walk away from it. You realize how foolish you were thinking that it was all going to be good times and not tough times (like at work) and then you hunker down for the long haul. There are ups and there are downs, in the end you a providing a free product and you have to pace yourself. There isn't a day that goes by that I didn't wish my free product was my real and only job, but it isn't, and I knew that when we started it.

I couldn't have said it better myself. I've definitely experienced the "affects your health" part, but I can't agree with the career booster part. Maybe I've just been lucky, but I believe my extra-curriculars continue to help my career.

That being said, I'm burned out on both AppFuse and Spring Live at the moment. Luckily, I'm committed and will be able to find motivation for both of these projects in the near future. There are sooo many nights when I work on these projects and I'd much rather just go to bed or weekends when I wish I could goof off and play with the kids. The nice thing is that I can choose to do this stuff. Users may scream and readers may complain, but sanity and family must have a higher priority.

I've only stayed up late once in the last two weeks and I didn't touch the computer for more than 5 minutes this last weekend. With this week being a 1-day work-week (the rest being spent at Microsoft and on vacation), I should be rejuvenated and enthusiastic about working for free again soon. ;-)

Brian McCallister hits the nail on the head with his comment. For an open-source project to remain successful long-term, it needs a strong developer community. "A project with a truck number of two is in deep trouble." Seems like recruiting new developers might be more important than new releases. Something to think about...

Posted in Java at Mar 14 2005, 07:41:57 AM MST 4 Comments

Sun, Hockey, Snow and Skiing

This weekend was another great example of why it rocks to live in Denver. On Saturday, Holly (Julie's sister) hosted a house-warming/birthday party and we enjoyed a few Coors Lights in the 70 degree weather. Saturday night, I took Abbie and a couple of friends to the DU Hockey game, and when we left it was snowing. Sidenote: Abbie has switched from calling it "Hockey" to "DU Hockey" and she's becoming very well versed in "Go DU!".

I woke up early yesterday morning, picked up a friend and after 2 hours of nasty roads and traffic, we were skiing Keystone at 10. There was 5 inches of fresh powder and the sun was out - meaning it was a beautiful day to be on the slopes. This morning it's still snowing and expected to continue for a few more days. I'm sure we'll get spring weather again soon, but not soon enough for Julie.

Posted in General at Mar 14 2005, 06:15:20 AM MST 2 Comments

Discrimination by Light Rail

After a late night wrestling with AppFuse and Acegi Security, I decided to take it easy this morning and ride my bike to the Light Rail, then ride it downtown. I figured it might be a bit faster, and it'd also be nice to relax a bit more on the "commute". I arrived at the station as my train was leaving, so I quickly realized that it was probably not going to be faster, but it would probably take the same amount of time. I was still determined to be a sissy and not ride my bike to work. When the next train pulled up, the conductor got on the loud speaker and said "30th and Downing Station, No Bikes Sir." WTF?! I gave the guy a boboli1 and grumbled to myself.

So I ended up riding to work today anyway. I took the Platte River Trail2, which was a nice change of pace, but it was also closed in one spot, so I had to take a detour. Long story short: every time I try to cheat the ride to work by driving, taking the bus or light rail, it always backfires. Riding to work using the Wash Park/Cherry Creek Trail route is simply the fastest way to get here, bar none. Took me an hour to get here via Platte River. Oh well, at least it's a nice trail.

1 Throw your hand in the air like you're flipping a pizza.
2 Most of these pictures were actually on my ride, save the last one.

Posted in General at Mar 11 2005, 07:47:44 AM MST 7 Comments

Spring MVC vs. WebWork Smackdown at OSCON

Matthew Porter and I are going to try something a bit different at this year's OSCON. Rather than just getting up in front of the crowd and spewing our technical know-how, we're actually going to make a go at providing some entertainment. I've been to a lot of conferences and I'm tired of just watching someone talk - I'd rather see a good presenter over a knowledgeable presenter. This has inspired our OSCON 2005 talk:

This presentation has a unique delivery style. Rather than one person doing a comparison, there are two presenters - each which is an expert in the framework they're defending. The presentation is delivered as a friendly comparison/debate, which hopes to add some humor in to make it fun for the audience.

Java web developers often have a difficult choice when choosing a web framework these days. There are currently more than 35 open-source Java web frameworks available. How do you which one to use for your project? This presentation picks two of the most popular frameworks, Spring MVC and WebWork and compares and contrasts their features. Topics will include:

1. View options - i.e. Velocity, JSP, HTML Templates (ala XMLC), etc.
2. Testability - How easy is it to unit test with JUnit, with examples
3. Type conversion - i.e. Date, Integer, etc.
4. Validation - How do do it, stengths and weaknesses
5. Tools Support
6. Strengths and Weaknesses

Now the pressure's on - we have to both teach and entertain the audience. Please feel free to post your experiences with Spring or WebWork and why you think one is better than the other.

Posted in Java at Mar 09 2005, 09:31:36 AM MST 25 Comments

Display Tag being ported to Ruby/Rails

Found via Brian McCallister - a codefest grant has been awarded to Dave Tiu to reproduce the Display Tag in Ruby/Rails.

Codefest Grant recipients:

1. Ruby Displaytag (Dave Tiu)

A port to Ruby/Rails of a popular Java/Struts library for displaying
and interacting with HTML table presentations.

Maybe if I wait a little longer to write my first Rails app - they'll add client-side validation too. ;-)

Posted in Java at Mar 08 2005, 10:07:52 PM MST Add a Comment