Matt RaibleMatt Raible is a Web Developer and Java Champion. 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 "appfuse". 771 entries found.

You can also try this same search on Google.

[Microsoft] Day 2 Morning

Looks like I'm going to miss the good stuff today. There's a Company Store visit this afternoon at 5:00 - and they're giving us $120 in credit. Damn, apparently the games are pretty cheap there. They've also arranged for a Longhorn Demo during the company store visit. I did manage to get internet access with my phone and Ben's charger - so I should be able to do some real-time updating this morning.

I think one of the coolest things about this conversation is we're learning about how software is developed on a huge scale. These guys develop more software than anyone else and they do it on a very large scale. Can you imagine developing software for 90% of the computer users out there?! That would be nuts.

Oh boy - now we have an audience member ragging on the guy for Windows. He thinks it should be open source because OSes are going to be commodities soon. Personally, I don't think there's anything wrong with having a closed-source Windows. But I also don't see a problem with closed-source Java. What's wrong with companies making money? The main reason I'm in this industry is to make money - so what's wrong with the corporations doing the same thing?

.NET CLR Architecture

Started work on the Component Object Runtime (COR) back in '97. It was a small incubation project in the MTS group round metadata and compiler integration. Several API's still use the "Cor" prefix and engine DLLs are named MSCOR???.DLL. Apparently, this was all announced at the '98 PDC in Denver. Lots of code/marketecture names to follow: COM3, COM+ Runtime, NGWS Runtime, Universal Runtime (URT) and finally the Common Language Runtime. The big unveiling of CLR was at PDC 2000 in Orlando.

CLR Design Goals: Simplify development and deployment for classic Win32 programmers. Unify programming models, provide managed environment and support multiple languages.

The CRL is Language Neutral and has a commons set of features (i.e. Generics) guaranteed to be in all languages. Supports strongly typed languages, dynamic languages and functional languages. Because compilers are always targeting MSIL and the metadata, you get for free: shared object layouts and cross-language inheritance, exception handling, reflection, remoting and integrated tools for debugging and profiling. MS is very excited about having Jim Hugunin and IronPython on board and they expect to add even more killer features for dynamic language authors in the future. I wouldn't be suprised to see an IronRuby implementation in the next year or two.

CRL Version 2.0: More class libraries: collection classes, serial port, etc. Generics, 64-bit support (IA64, x64). RAD support: Edit and Continue, Just My Code, single-click deployments. SQL Server: fiber mode, integrated security, loading. Avalon, Indigo and Windows Longhorn.

Is this a boring session? Yes, but I'm sitting in the front row today, so it's a bit easier to pay attention and take notes. I'm doing AppFuse development for the most part and taking notes while AppGen tests are running in the background.

The CLR will be hostable in numerous environments: ASP.NET, VSTO for Office, DB/2 Stinger, Oracle 11g and SQL Server 2005. Oracle and DB2 are out-of-process with v1.1, SQL Server will be in-process with v2.0.

ASP.NET 2.0 by Scott Gu

  • ASP.NET 2.0 Application Services APIs: Membership, Role Manager, Personalization, Site Navigation (XML and CMS-based), Database Caching, Health Monitoring. These are all based on a new "Provider Model Design Pattern" that seems to be a set of interfaces that you can easily switch or implement yourself. Out of the box providers: Windows, SQL Server, Access (ha!).
  • ASP.NET 2.0 "Page Framework" Features: Master Pages (like Tiles, moreso than SiteMesh), Themes/Skins, Localization, Client-Scripting (using XMLHttpRequest). Holy shit - the guy said that they're testing their controls, particularly the scripting ones on IE, Safari and Firefox! That's pretty surprising to me.

VS 2005 has a new feature - where you don't need to have a web server installed, it'll work off the file-system. A new project doesn't have any files in its directory - which is definitely an improvement. VS definitely looks pretty slick - you can switch the "compliance-mode" of your page from IE6 to XHTML Transitional. When you switch modes, it changes the code completion attributes - so you'll get much more options for IE6 than you will for XHTML. It also has full code-completion for JavaScript - and the options are based on your mode of operation. Accessibility checking is also included - you'll actually get underlines for elements that don't have all the required attributes. Java needs an IDE like this soooo bad it's not even funny. Can you imagine having full page/HTML validation and code-completion based on doctype?!

Scott did a master/detail screen with VS and made it look damn easy. Most of the audience oohed and aawed. It's cool and all, but the code in the .aspx pages is a lot like JSF - there's hardly any HTML in the pages! It does seem to have much better support for skins and themes - you can easily change the look and feel right in the IDE and there's a whole bunch of built-in themes. The one thing I really like is the page-backing classes have a pre-init() method that can use to initialize properties. JSF really needs something like this. It's a shame that frameworks like Shale have to provide this and it's not a part of the core JSF framework.

ASP 2.0 Beta 2 will ship in the next month. Heh, Scott just gave a demo adding security and authentication in about 20 seconds - complete with Remember Me. There's actually a "Login" control that doesn't everything for you, including validation. The membership system (database) will actually get generated on-the-fly. He follows it up by creating a signup page that creates new accounts in under a minute. I can't really bash on this, writing authentication for Java webapps is definitely harder than it needs to be. Of course, if you use AppFuse, you don't have to write it at all. ;-)

Time to run and catch up with my sister - have a good weekend y'all!

Posted in Java at Mar 17 2005, 09:08:33 AM MST 10 Comments

[Microsoft] Day 1 Afternoon

At lunch, I got to meet Scoble, which was pretty cool. He was wearing a blue Firefox shirt for those that are interested. During lunch, he and his co-worker talked about Channel 9 and what they're doing with it. Channel 9 is named "Channel 9" because this is the channel that United (the airline) uses to allow passengers to listen in on the pilot's conversations. It's supposed to be an avenue for folks to listen in on what's going on at Microsoft.

Now we're sitting in a talk titled Developer Community Outreach Efforts. The speaker is named Sanjay. He's the VP of Worldwide Developer Evangelists, of which there are around 1000. Sanjay believes that MSDN is way too large. It does have a lots of interop and migration content for those that are interested.

Sanjay's trying to get ideas from us on what they can do better. The general feeling from the room seems to be "why should we help you", "what's in it for us" and "why do you care now, but not before". It's a tough room for sure. I don't seem much point in this whole talk. A lot of folks are telling this guy what he (and Microsoft) can do to become better to be better citizens to the programmer community at large. A lot of the conversation is centered on accepting open-source and providing a clearer message about the platform (should be inclusive, not exclusive).

SQL 2005 and the Developer

Now we have a guy (missed his name) that's talking about how SQL Server 2005 will allow you to expose web services directly from your database, without IIS involved. Apparently, it exposes queries and stored procedures as web services using a native Windows DLL.

Ben asked about benchmarks for SQL 2005, specifically against MySQL and PostgreSQL. The MS guy says that these vendors will need to do the "standard" TCP benchmarks, and do the comparisons there. We all know that SQL Server would get their asses kicked, and that's why they don't do any direct comparisons. While we're on the subject of SQL Server, why are most SQL Server databases so screwed up? In my experience, SQL Server DBAs tend to be over-optimization freaks that are stored-procedure happy and don't know much about making a database application-friendly. Maybe it's because all you need is a SQL Server DBA Certification to get the job - and your knowledge is based on a book, not experience.

Next topic: Access. Access is not going away. "SQL Express" is supposedly the target replacement for Access. It's throttled to prevent users from using it for a full-blown database. "You can never write a bad query for SQL Server." This is a direct quote, and the guy's reasoning is because the optimizer will change the query to be performant. Sounds like a bunch of hoo-ey to me.

Today, you can write extended stored procedures in C++ with SQL Server. This code is not sandboxed, and can pretty much to whatever it wants. In SQL 2005, you can do this with C# and use VS.NET to write the code and debug it. Apparently, they have a whitepaper on SQL CLR vs. ADO.NET and when to use one over the other.

Product Development Process with Iain McDonald (Director, Windows Server)

Iain is from Australia, which naturally makes him fun to listen to, just because of his accent. The purpose of this talk is to explain how they do things. Cross-org at Microsoft means that that development is spread across 7 businesses, each organized under own leadership with individuals p&ls.

  • Business Solutions
  • Home & Entertainment
  • Information Worker
  • Mobile & Embedded Devices
  • MSN
  • Server & Tools
  • Windows Client

Each group has a lifecycle model that they try to follow. Microsoft has thee different stages: Product Definition, Product Development and then Product Servicing. I'm willing to bet their product development cycle follows the waterfall approach (confirmed: "How agile are we? We suck."). Actually, this brings up something I heard last night from one of the Microsoft Evengelists. Apparently, each developer has two QA folks that write tests (read: code) against their code.

Suite of Project Tools

  • Feature Inventory Tool: an inventory of features and their dependencies, tracks when the features will merge into the main branch.
  • Checkpoint Express: tracks all compliance throughout the project, requires sign-off prior to product being shipped.
  • Basics: list of fundamentals that product is expected/required to meet, examples include performance and manageability.
  • Change Management: uses an infopath form with links to the feature inventory tool and bug tracking database (product studio).

Iain admits that security in 2000 was an afterthought and the security guys were seen as some mangy dogs over in the corner. Bad RAM causes 20% of Windows crashes - who knew?! Bad RAM on OS X has certainly affected me in the past. I couldn't upgrade to Panther b/c I had 3rd party RAM in my PowerBook.

Microsoft is in a competitive battle against other companies, not the free world. No corporation in their right mind is going to download and install a free version of Linux - most are going to buy a distribution from companies like Red Hat or Novell. Iain claims that there's no way you can install Linux (at a corporation) for less money than Windows Server. It sounds to me like MSFT is willing to give you some discounts on Windows Server if you're thinking of buying Linux.

Break time. I'm definitely bored, but happy to have some time to work on AppFuse. Some guy asked me in the hall why I haven't asked more questions. I told him because I don't develop for Windows. For the most part, none of this stuff matters to me.

Windows Architecture

Now we're listening to two guys talk about Windows and how it's developed. Windows XP and Windows 2003 Server are two separate code bases. It's a nightmare to maintain b/c they have to patch one code base and the other one as well. Longhorn is componentized, so it should be easier to build client, embedded and server products. Someone asked about legal vs. technical reasons behind the componentization. Apparently, it's all for technical reasons, and they have to separate Windows Media Player for the EU, but that's about it. 40% of blue screens are from device drivers, and Longhorn has done a lot to handle this and reduce crashes.

This talk centered on XAML, WinFX and Longhorn - what they are, what they do and when they're scheduled for release. <Yawn/> While it has been a boring day (for me) technically, I do have to admit that the speakers have been great. They're dynamic and enthusiastic, which is more important IMO than good technical content. They also seem to be very open (as a whole) to ideas and criticisms. I think I'm just a bad audience member.

OK - here's something that's interesting. We're talking about IE 7 and its features. The top priorities are to stop spyware, fishing and any other security issues. #2 is tabs and #3 is CSS compliance. These priorities are based on user feedback and sound like good choices to me.

Posted in Java at Mar 17 2005, 12:40:56 AM MST 4 Comments

[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'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

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

Is Laszlo a waste of time?

According to Rife founder Geert Bevin, Laszlo ain't all it's cracked up to be:

It's a shame, I really had huge expectations about Laszlo and even tried to sell it to a customer. I'm glad that project was cancelled or I would be in deep trouble.

Under normal circumstances, I'd dismiss this as FUD, but Geert sounds like he did his homework on this one.

Posted in Java at Mar 08 2005, 10:44:02 AM MST 9 Comments

Simple Web Framework

You gotta admit, the Simple Web Framework does look interesting with all of the recent Ajax talk:

The Simple Web Framework (SWF) is an event based framework targeting Struts developers who want to build rich Web applications but do not want to migrate to JSF. The SWF is built upon the same Jakarta commons basis as Struts, but uses a different request processor (front controller.) The SWF event model supports form/submit style event posting, similar to VB.NET or JSF, as well as XmlHttpRequest based event posting with In place Page Updating (IPU) rather than page reloading, similar to the techniques underlying gMail. Read the SWF Overview for additional information.

My hope is that all web frameworks have some support for IPU by the end of the year. Then I won't have to build it into AppFuse. ;-)

Posted in Java at Mar 07 2005, 07:57:56 AM MST 3 Comments

[TSSS] BOFs, Booze and Benitar

On Friday night, I attended all three of the 7:30 Birds of a Feather sessions. The first one I went to was Spring, where Rod talked about what's coming in Spring 1.3. Rod did a 25 minute presentation on the new stuff and then opened the floor up to Q and A. The session was well attended and I skipped over to the Tapestry/Trails BOF when the Q and A started.

I was surprised to find that very few folks where at the other BOFs. While the Spring BOF had 50+ attendees, the Tapestry one only had around 15-20 and JSF had around 8. I quickly left the Tapestry/Trails BOF when Chris started walking through his Trails Video. He was doing a live version of it, and since I'd already seen it, I figured I wasn't going to learn anything new. I've also been following Trails since it first started, and was more interested in talking about Tapestry.

I walked into the JSF BOF as Ed was talking about JSF 1.2 and what's next for JSF 2.0. This was good timing as I had a few suggestions for 2.0: HTML Templates like Tapestry, bookmarkability (don't make everything a post) and thinking about tools like Tiles and SiteMesh. While neither tools is part of the spec, I think they should be remembered in case there's an opportunity to make integrating with them easier. Ed did mention that JSF 1.2 has pretty much solved the content-interweaving problem, so putting HTML in your JSF JSPs should be better supported.

The very interesting part of this BOF is that Ajax capabilities are very much on the radar for JSF 2.0. They plan on providing native XMLHttpRequest capabilities. My suggestion for this was to provide the setup and registration of requestable class methods as part of the framework, and leave writing the JavaScript to the developer. This was a good BOF and I'm pumped to see that JSF is embracing the next-gen way of developing webapps. Let's just hope JSF 2.0 is released this year and not 2 years from now.

After the BOFs, I joined Matt and Jim to wait for one of Matt's buddies (Scott) to come into town. After he arrived, we headed over to the OpenSymphony open bar at the Bellagio. There, I got to meet Patrick Lightbody and enjoyed several beers and good conversation with the likes of Seth Ladd, Thomas Risberg, Mike, Dion and Christian.

After the open bar closed, Jim, Matt, Scott and I headed just off the strip to the Gold Coast Casino. Matt and Scott wanted to find some poker (tables had a 2-hour wait on the strip) and Jim and I wanted cheap Blackjack. We were pleased to find $5 tables and stayed there for several hours. I don't know what time we headed back to our hotel, but I'm guessing 1 or 2. The rest of the night was pretty funny. Jim and I gambled until 7 in the morning at several blackjack tables. Our hotel had this "celebrity theme", so we had dealers like Pat Benitar and Stevie Wonder throughout the morning. Both of these dealers were great and I got "hooked up" on several occasions. There were at least 10 times where I asked for a card and they didn't give it to me (after which I won b/c they busted). We ended the night at 7:00-7:30 with 5 crisp $100 bills in my pocket. Total cost of the whole trip: $100. Not bad eh?

Getting home yesterday was quite an adventure. After going to bed at 7:30, I woke up by some miracle at 11:00. I don't know if I had a wake up call or what, but my buzz was still in full swing. I caught a cab and headed to the airport. I paid the cabbie with a $25 chip, which he didn't like, but after I told him to keep the change (it was a $6 cab ride) - he happily obliged. At the airport, I took a nap while waiting for my flight to board and almost missed it. They called my name over the intercom b/c I was the only passenger left to board. Luckily, I was awake and made the flight. Upon arriving in Denver, I walked to my car and promptly locked my keys in the trunk. The airport officials got them out for free and I made it home to a very happy family around 6:00 p.m. It's good to be home.

Posted in Java at Mar 05 2005, 06:09:32 PM MST 3 Comments

[TSSS] Days 1 and 2

I'm sitting in the EJB3 BOF right now. The room is packed, but it seems most folks are uninterested and the moderators are just talking amongst themselves. Seems like a good time to blog since this BOF doesn't interest me whatsoever. Yesterday, I arrived at 8:00, took a cab to the Imperial Palace (where we're staying) and then headed over to Caesar's for the conference. I registered, assured we could drink beer during the sessions, and attended the (rather dry) keynote. Hani has a good synopsis of this talk.

After the keynote, I went to Patrick and Jason's WebWork talk for about 10 minutes. I soon realized it was an intro to WebWork and left to try and learn something. I went to Craig McClanahan's talk on "The Development of Web Application APIs and Standards for Java." His talk was pretty good, and covered "de facto" versus "de jure" standards. De facto standards are ones that evolve from the community through widespread usage, whereas de jure standards are imposed on the community (like JSF). Again, Hani has the full scoop on this talk.

Next, I went to Dion and Ben's talk on Ajax applications. They talked about XHTML/CSS and how XMLHttpRequest makes rich client-side applications possible. I think the whole Ajax thing is pretty funny. It's something that's been available for several years and my guess is most folks just didn't know about it. I've been using XMLHttpRequest for a couple of years now, and it's interesting to see it become popular all of a sudden. It's quite nice actually. I've been writing HTML/JavaScript for over 10 years, so I find Ajax development pretty easy. I hope to add support for Ajax-type features in AppFuse before this summer.

I wonder when/if the community will realize the power XSL processing in the browser? Since we're all developing XHTML applications now, our pages are XML and we could easily start leveraging client-side XSLT to do some pretty cool stuff. With a client-side XSL sheet, you could do page decoration (like SiteMesh) just by adding one line to your pages. For example:

<?xml-stylesheet type="text/xsl" href="styles/global.xsl"?>

The only problem with client-side XSLT is your pages have to be well-formed XML or everything bombs. With HTML, if you screw something up, chances are the browser will still render it correctly.

After the Ajax review, I had lunch and headed down to the Casino for some beers and gambling. I came back in time for Rod's "Why J2EE Projects Fail." It was a good talk, but there wasn't any revolutionary or new information provided. After his talk, I was motivated to learn more about Web Services Security, but instead opted for beers with Crazy Bob, JIRA Mike and Neon Dion. A couple of beers turned into several, and I found myself having dinner with the SourceBeat guys (Bill, Matt and Jim) a couple hours later. Steak and Lobster was my plate of choice and it tasted quite good. The rest of the night was spent gambling, drinking and harassing Pai Gow Poker dealers. We had breakfast around 2 and made it to bed by 3. Total cost of the trip so far: $300.

I slept in until noon today, after which Jim and I headed back to the conference for some lunch and afternoon sessions. Lunch was good and followed by Oracle demoing JDeveloper and coding EJB3 and JSF with it. I've often wondered about the cost of Oracle's ADF JSF implementation and actually got an answer from one of the attendees. I think he was an Oracle employee but he basically said you have to buy at least 1 copy of JDeveloper ($999) and you get a runtime license for ADF Faces as part of that. That sucks because Oracle's implementation looks like one of the most full-featured ones available. Why should I have to buy a tool I'll never use just to use ADF Faces?

After lunch, we attended Rod's "Advanced Spring Framework" and Craig's "JSF: Dead on Arrival or Raging Success". Rod's Spring presentation covered some advanced Spring features: autowiring, inner-beans, lists, instantiation choices, factory beans and template bean definitions. The presentation was good, and I was pleasantly surprised to find I knew most of the things he covered. Colin spoke about using JDK 5 annotations for transaction demarcation and Keith talked about Spring Web Flow. The Spring Web Flow stuff looks cool, especially since the other framework developers are listening and liking what they see. Craig even mentioned that he'll probably ditch what he's put together in Shale and use Spring Web Flow instead.

Craig's talk about JSF was rather boring, but most of these sessions are (mainly because there isn't a whole lot of new information). Craig did manage to pimp Java Studio Creator a bit. I find JSC demos to be quite funny since it hides so much code with code-folding. In the demo, Craig showed us a 10-line Java class that made JSF (and JSC) look like good stuff. Jim and I noticed code-folding was turned on and the class was actually 120 lines long! This is more of a problem with JSC then JSF IMO. The one nice thing about this talk was learning that a JSF 2.0 BOF is tonight. The main goal of the BOF is to see what the community wants in 2.0. I hope to attend and express a desire for HTML templates like Tapestry has.

Tonight kinda sucks because all the good BOFs (Spring, Tapestry and JSF 2.0) are at the same time (7:30). I'm hoping to hop around between them and get some good networking in. After the BOFs, OpenSymphony is hosting an open bar - so that should be a good time. Hopefully we can scare up a few free carbombs. For more blogs and coverage of the conference, see the TSSS 2005 blogger list.

Posted in Java at Mar 04 2005, 05:33:59 PM MST Add a Comment