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

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

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

For book updates, follow @angular_book on Twitter.

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

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

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

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.
You searched this site for "young russian teenboy model pre teen". 788 entries found.

You can also try this same search on Google.

Upgraded to Roller 3.1-rc3

This site is now running Roller 3.1-rc3. It took me a few hours to upgrade my theme yesterday, but everything appears to be working correctly. Let me know if you see anything that's out of whack. The only thing I don't like so far is how it displays "Main | Next page »" on the main page. I'd rather it not show anything, but this macro is needed to show next/previous links when browsing by date, individual entries, or search results. If nothing else, it seems to me like it should display "« Previous page | Main" since » implies forward in time.

I did make one enhancement to this theme. Now, the colors for the category is shown when viewing a single entry. Before, the colors where only shown when you were viewing a particular category. The new $model objects make this pretty easy to do. Another feature I really like is the "Full Preview" feature. Rather than just previewing the entry in the author screen, you preview how it will actually look with your theme. Just remember to click on Save as Draft before Full Preview or you'll lose your post!

Update: It looks like I spoke too soon when I said everything is working correctly. I'm currently experiencing some feed duplication and category issues. Sorry about that.

Posted in Roller at Feb 10 2007, 05:13:55 PM MST 1 Comment

AppFuse 2.0 M3 Released

The AppFuse team is pleased to announce the release of AppFuse 2.0 M3! This release marks a milestone in our documentation efforts. We've completed all of the web framework tutorials and ensured that all the archetypes work properly. Turkish language support was added and native2ascii was integrated so all i18n bundles should work properly.

The major things missing from this release are code generation (AppGen) and web services (XFire) support. We hope to add both of these before the final release.

AppFuse 2.0 is available as a Maven archetype. For information on creating a new project using this release, please see the QuickStart Guide.

The 2.0 series of AppFuse has a minumum requirement of the following specification versions:

  • Java Servlet 2.4 and JavaServer Pages (JSP) 2.0
  • Java 2 Standard Platform Edition (J2SE) 5.0

For more information, please see the 2.0 M3 Release Notes.

We appreciate the time and effort everyone has put toward contributing code and documentation, posting to the mailing lists, and logging issues. We also greatly appreciate the help from our sponsors, particularly Atlassian, Cenqua, Contegix, JetBrains, Java.net and KGBInternet. Without them, working on this project wouldn't be nearly as much fun. ;-)

Posted in Java at Feb 06 2007, 02:16:45 PM MST 16 Comments

Maven 2 hates Commons Logging

It's true that most people hate commons-logging, but Maven 2 hates it even more. There are many open source projects that use this library, so you're likely to depend on it when you never intended to. Of course, this is Maven 2's transitive dependencies fault - but currently there's no option to turn transitivity off. I tried changing to SLF4J, but that causes some Maven plugins to fail.

Since the Maven team refuses to fix this (even though it's an *obvious* exception to their rule about not changing anything), I've fixed it myself. The AppFuse repo has a fixed version of commons-logging's pom.xml. To get the fixed version of commons-logging, delete it from your local repo, then add AppFuse's repository to your pom.xml:

    <repositories>
        <repository>
            <id>appfuse</id>
            <url>http://static.appfuse.org/repository</url>
        </repository>
    </repositories>

Since the burden of this issue clearly rests upon the shoulders of the commons-logging developers - can we please get a new release with a fixed pom? Pretty please?

Update: I tried to get slf4j to work again today. While I succeeded, I found a critical bug. The bug is that log messages don't print out the method name, just debug(), info() or whatever from your classes. It's possible to fix this by using slf4j instead of clogging. However, that won't help you get method names printed when cranking up the logging for 3rd party libraries like Spring and Hibernate. Since this won't be fixed, it seems better to stick with commons-logging. I doubt I'd have any luck getting all the libraries that AppFuse uses to move away from commons-logging.

Posted in Java at Feb 04 2007, 10:43:15 PM MST 11 Comments

Bandwidth Speed Issues

In the last few days, I started to notice a huge slowdown on my MacBook Pro when surfing the net. At first, it seemed to be a Firefox-hogging-a-shitload-of-memory issue. So I started using Safari instead. After a few hours of using Safari, the problem came back and pages were taking 5-6 seconds to load. I have a Cable (Comcast) modem, so I didn't suspect any bandwidth issues.

Last night, I got tired of waiting and decided to do some further investigation. I started off by running several bandwidth speed tests. All of them reported similar statistics: download speeds of under 300K/sec. I called Comcast, they ran some tests and determined that there were no package loss issues between my modem and their facilities.

Since I moved my modem downstairs last year, I tried moving it upstairs. Same result. I tried plugging it directly into my desktop and voila! - 3MB/sec. I have 2 NetGear routers setup (one for each laptop since my MacBook Pro's wireless abilities suck) and it seems like they are the source of the problem. Do routers go bad like this?

I'm considering buying an Airport Extreme to solve all my Mac-related wireless issues. Unfortunately, it only has 3 ethernet ports and I'd prefer a lot more.

Posted in General at Jan 24 2007, 01:02:24 PM MST 11 Comments

Simplified UI Tags in Struts 2

Struts 2.0.3 contains a much needed simplification of its UI tag libraries. Before 2.0.3, you had to define a property three times (in the value, label and name attributes):

<s:textfield label="%{getText('user.firstName')}" name="user.firstName" 
    value="%{user.firstName}" cssClass="text medium"/>

In 2.0.3+, you can use the "key" attribute to replace all these attributes. For example:

<s:textfield key="user.firstName" cssClass="text medium"/>

One of the things I really like about WebWork/Struts 2 is the previous examples have the ability to write out the entire form row, rather than just an input field. Even better, the markup rendered is customizable via FreeMarker templates.

The bad news is Struts 2.0.3 never got released because the struts-annotations project hasn't had a release yet (good ol' Mavenism). The good news is Struts 2.0.4 is rumored to be out by the end of the month. In the meantime, if you're using Maven 2, you can use AppFuse's repository to get the goods. Here's the repo settings you're need:

<repositories>
    <repository>
        <id>appfuse</id>
        <name>AppFuse Repository</name>
        <url>http://static.appfuse.org/repository</url>
    </repository>
    <repository>
        <id>struts-203-staging</id>
        <name>Apache Struts 2.0.3 Staging Repository</name>
        <url>http://people.apache.org/builds/struts/2.0.3/m2-staging-repository</url>
    </repository>
</repositories>

Yeah, I could just advise you to use AppFuse 2.0 - but we're having a hard enough time supporting our existing users. ;-)

Posted in Java at Jan 23 2007, 06:02:22 PM MST 6 Comments

The Adventure is Over

After 1 year and 7 months, the big adventure is over. It was a great ride with lots of really cool people. As of Tuesday, operations at Virtuas have ceased to exist and everyone was let go. It's not a big surprise - most of us knew it was coming. I won't go into the details of why it was shutdown because I don't think it's that important. Suffice to say, it was a great job and I really enjoyed working with the folks I did.

So what does this mean for me? What's next?

I hope to go back to doing independent consulting like I was before Virtuas. When I was doing my own thing, I never had to travel, earned good rates and enjoyed 40-hour work weeks. That sounds pretty nice after the once-a-month traveling I was doing.

What does this mean for AppFuse 2.0? I hope the release schedule won't change, but it might. I was hoping to get a fair bit done this week, but it's been nuts with the shutting down festivities and the "moving out" drama. With any luck, I'll get a gig soon and I can concentrate on AppFuse development (and relaxing) until my start date.

If you're looking to hire an enthusiastic Web + Java Developer, please take a look at my resume or send me an e-mail.

Posted in Java at Jan 18 2007, 09:14:15 PM MST 20 Comments

[TSE] Hop into Real Object Oriented (ROO) with Ben Alex

This session's goals are to:

  • To detail the "ROO" DDD architecture
  • To show you how productive ROO can be
  • To profile an Australian project using ROO

ROO is more of an implementation than an architecture. So what is ROO? It's not an Australian marsupial or an Australian airline. It's a Domain-Driven Design (DDD) implementation.

Real Object Oriented (ROO) is both an architectural approach and a framework with code generation.[Read More]

Posted in Java at Dec 10 2006, 10:32:04 AM MST 19 Comments

[TSE] Building Modern Web Applications with Mike Stenhouse

Mike Stenhouse is the creator of the CSS Framework we use in AppFuse. Mike is going to talk about the tools he uses to develop web applications. Mike works solely on the front-end, no backend work.

"In 2007 we’ll witness the increasing dominance of open internet standards. As web access via mobile phones grows, these standards will sweep aside the proprietary protocols promoted by individual companies striving for technical monopoly. Today’s desktop software will be overtaken by internet-based services that enable users to choose the document formats, search tools and editing capability that best suit their needs." -- Eric Schmidt, CEO Google

Web Standards is a methodology and philosophy, not just valid CSS and XHTML. The main philosophy behind web standards is progressive enhancement. The methodology behind web standards is a 3-step process.[Read More]

Posted in The Web at Dec 10 2006, 08:51:40 AM MST 2 Comments

[TSE] Keynote: The Bigger Picture with Adrian Colyer

We've seen a lot of things over the last few days, but what about the big picture? It's not just about the Spring Framework anymore, but there's also a lot of sub-projects: SFW, SWF, SWS, S-OSGi. Then there's Enterprise services: clustering, persistence, messaging and scheduling. Industry trends: SOA, Web 2.0/RIA, RAD stacks.

Agenda

  • Spring portfolio: unifying themes, fitting the pieces together (by layer) and future direction
  • Facing the feature: my boss says I need a SOA, from auto-suggest to RIA and the quest for ever-increasing productivity

[Read More]

Posted in Java at Dec 09 2006, 07:26:49 PM MST 3 Comments

[TSE] Spring-OSGI with Adrian Colyer

One of the first questions people ask about OSGi is "what the heck is it?"

Most people don't even know what it is. OSGi stands for Open Services Gateway initiative. From the very beginning, it was designed to be lightweight and dynamic. This is the major difference between it and other containers. It's always been designed to have things added and removed. Now it's tagline is: "The Dynamic Module System for Java".

It's designed to allow you to partition a system into a number of modules (a.k.a. bundles). There's strict visibility rules (similar to protected and private). There's a resolution process (dependencies are satisfied) and it understands versioning.

It's dynamic! Modules can be installed, started, stopped, uninstalled and updated - all at runtime.[Read More]

Posted in Java at Dec 09 2006, 02:29:58 PM MST 6 Comments