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 "free sex movies for men non blog". 1,227 entries found.

You can also try this same search on Google.

MicroSOFTees

Andy has some words for Microsoft. You owe it to yourself to read this. Good stuff.

But Microsoft won't go for it. They have a weak position technically 
and a strong one from a marketing standpoint and not the stones to 
answer OUR questions. (And oddly I was semi-favorable to .NET at the 
start of this).

So what of it? Are you men or are you microSOFTies. Lets face it, you
couldn't stomach a fair fight. 

He, he...

Posted in Java at Mar 13 2003, 11:03:19 PM MST Add a Comment

Blogging Software Idea

Since I often read blogs via a tabbed bookmark in Phoenix, I'd like to see the following feature.

A user preference (set via cookies) to highlight the entries for a given day (or number of hours). This would make it easy to spot if someone has updated their blog recently. Basically, it would involve checking a box on the author's site to mark from the current day with a red higlight (color might be an option). Kinda like this:

Highlight last entry with

You could simply use JavaScript to match the user's time up with your blog's time - and highlight entries according to the user's preferences. Cool idea? I just might implement it if folks are interested...

Posted in Roller at Mar 13 2003, 09:15:02 PM MST Add a Comment

JSP Plugin for Eclipse?

Does anyone know of a good JSP Plugin for Eclipse? I've found that the available XML and JSP Editors are not very good, and I resort to HomeSite (which I love) for most of my regular text editing. I'd love to find a tool that does code completion for JSPs. I suppose I could use Dreamweaver, but they don't have a copy here in the office. BTW, I found the Lomboz plugin, but it doesn't appear to be latest-eclipse-release compliant.

Posted in Java at Mar 12 2003, 01:28:39 PM MST 17 Comments

RE: Blogging mainstream?

Tom Klaasen writes:

Articles like CNN.com - Blogging goes mainstream - Mar. 10, 2003 seem to indicate that the "business people" are starting to smell money in the blogging area. So enjoy it while it lasts, kids, because soon, you'll be slammed with ads like any Internet page nowadays.

Ads might pester your readers, unless you use and host your own weblog like Roller, MiniBlog, or Blojsom. So my advice is, be kind to your readers - if ads start showing up on your blog without your permission - it's time to move it.

Posted in Roller at Mar 10 2003, 07:10:07 AM MST 1 Comment

Struts Training: Week 2

I'm planning on attending today's Struts training and will be reporting here again. I got up at 6, hoping to do the labs and discovered the first step was downloading the latest Basic Portal setup. Since it's 200 MB, I've been dicking around for the last hour and a half, waiting for it to download. Yikes - I thought struts-resume was bad at 10.5 MB! I guess the difference is that it includes JRockit, Mozilla, OpenOffice, Vim, Ant, Eclipse, JMeter, Jikes, PostgreSQL and Resin.

Today's session seems to be covering databases, SQL and database performance. Vic mentions that 90% of performance is in the data model design. If you can fit your database on a laptop, then performance will probably not be an issue. I agree with this. I did the first lab during the first half-hour of the preso. Pretty simple stuff: creating HTML files and accessing them through a browser. This is probably a good lab to get everyone going and stuff installed. Also proves that Resin is running. Of course, it took me two hours to complete this lab, including the download, so I guess it's not that short!

Commons SQL is a new version of Torque (a manual persistence layer). Vic uses RowSets a lot, has one site with 40,000 concurrent Struts users with sub-second response times. He attributes this to rowsets. He says, "To create high-scalable applications, you need to know SQL and use things like RowSet, Ibatis.com, Commons SQL and Scaffolding." I tend to disagree - I think that EJBs (and possibly Hibernate) are your best bet for highly scalable application (i.e. 10,000+ hits per second). If your EJBs are slow, it's probably your code or your appserver. Try EJBs on JBoss and I'm betting you will be pleased. Then again, I've never created a highly-scalable application, and Vic has, so I'm not much of an authority. He, he - he mentions that Castor has lost a lot of mindshare; "Great for development, but not very scalable in production." So true - or at least Roller seems to prove this. From the folks he's talked to, Vic says that TopLink has a horrible reputation.

Hmmmm, interesting. Vic puts all the database connections and CRUD in his ValidatorForms. This is not saying that his bean matches his database tables. I don't know that I'd recommend this, but it certainly might simplify things. However, personally, I'm more comfortable with keeping my POJOs and ActionForms pretty dumb (just getters and setters). He has a DAO that handles CRUD and population of the bean. I wonder where you'd put the business rules in this implementation? In the DAO? If it's in the DAO, what if you have to write a new DAO implementation. For instance, if we used this approach on Roller, we'd have to re-write our business rules for Hibernate and Castor. Ugh.

For testing, he puts a test() method on his beans and uses a Servlet or a plain class with a main() method. Personally, I'd recommend using JUnit and JUnitDoclet (and Ant) to generate and run your unit tests. It's much easier than writing a servlet to test - and can easily separate your tests from your real code. See struts-resume for examples. I'll be releasing AppFuse in the next couple of weeks. This (hopefully) will provide a nice starting point for creating web applications. In reality, if no one uses it, I'll probably be better off (less support). It's been working great for me on my current project and has easily saved us a month of startup time. Right now, appfuse == struts-resume.

Vic mentions using a BaseAction that dispatches to the appropriate method in your subclasses. He says that the only difference between this technique and DispatchAction (or LookupDispatchAction) is you can specify a default method. Here's a tip: use the unspecified method. Here's how to make your edit() method the default:

public ActionForward unspecified(ActionMapping mapping, ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
throws Exception 
{
    return edit(mapping, form, request, response);
}

Vic hints that the next iteration of Basic Portal will be written to use the iBATIS Database Layer and MySQL. Interesting, I thought iBATIS was a company, but nope: it's from the author (Clinton Begin) of JPetstore. On most days, I'd recommend Hibernate here, but I've spent the last 3 days wrestling like mad with it, so I won't. Of course, after leaving work last night, I think I might've figured out the problem. My brain is likely to blame more so than Hibernate.

Ted Husted chimed in at the end and mentioned that he is going to touch on Hibernate next week. Cool!

Posted in Java at Mar 08 2003, 08:13:11 AM MST 4 Comments

Russell: Here's your hookup

The Butt Ugly Weblog (Scaring little kids since 2003) has offered Russ some love. Since I like Russ, here's your hookup baby!

Russell Beattie wants to be #1 Russell.

Since he's a good guy and posts and discovers an insane amount of interesting stuff, I've gotta help him :-). Google, here you go!

To Janne Jalkanen: I dig the name of your blog, I LOL'ed when I first read the title. Also, you're Finnish, so that means you've got to be cool. My Grandparents (last name: Hill) were Finnish and I'm about 35%; the rest being German, Dutch and Irish.

Posted in General at Mar 07 2003, 09:06:15 AM MST Add a Comment

[ANNOUNCE] Struts-JavaServer Faces Integration Library -- Early Access Version Now Available

I'm happy to announce the immediate availability of an integration library
that allows you to use the recently published EA3 release of JavaServer
Faces with a recent Struts build (nightly build 20030216 or later, or 
the upcoming 1.1-rc2 or finalrelease).  Nightly builds of this package are 
available at:

 http://jakarta.apache.org/builds/jakarta-struts/nightly/struts-faces/

The sources for this package are in the  "contrib/struts-faces"
subdirectory of the  "jakarta-struts" CVS repository.

You should take note of the following important points:

* The design goal of this library was to allow Struts application
 developers to migrate the view tier of their applications from the
 existing Struts tags, to pages that use corresponding JavaServer Faces
 component tags, with no changes to the corresponding business logic.
 This goal has been substantially achieved for simple applications
 so far; additional work will be necessary for more advanced apps.
 As a proof of concept, the JavaServer Faces based version of the
 canonical  "struts-example" web application is included in the
 distribution, so that you can see for yourself how little had to be
 changed.

* The integration library has been tested under Tomcat 4.1.18 and
 the Java Web Services Developer Pack (version 1.0_01), although in
 principle it should run on any Servlet 2.3/JSP 1.2 container.
 (It will not run on Servlet 2.2/JSP 1.1 containers).

* There is a known issue when trying to run JavaServer Faces EA3
 under the recently released Java Web Services Developer Pack
 (version 1.1).  Watch the JavaServer Faces web page (at the URL
 listed above) for up-to-date information on workarounds.

* The JavaServer Faces distribution is an EA release, not suitable for
 use in production environments.  In addition, the license terms
 under which it can be downloaded prohibit redistribution.  Therefore,
 you will need to download your own copy of JavaServer Faces EA3 and
 integrate it with the example application before it can be deployed.

* The integration library should also be considered to be of alpha
 quality, not suitable for production use.  There are a set of known
 issues and limitations at the bottom of the README.txt file.  Please
 file bugs against this package in the usual Bugzilla location:

   http://nagoya.apache.org/bugzilla/

* For generic questions about JavaServer Faces (i.e. not related to this
 integration library), your best resource is the JavaServer Faces forum
 (free registration required) at:

   http://forum.java.sun.com/forum.jsp?forum=427

See the README.txt file in the top-level subdirectory for more information
about installing and using this release.

Craig McClanahan

Posted in Java at Mar 06 2003, 09:29:06 PM MST Add a Comment

How do you initialize Hibernate?

If you're using Hibernate in a servlet container, then you're probably using a hibernate.cfg.xml file to configure Hibernate and talk to your JNDI database connection. If you're not, you might want to consider it. My question is, where do you initialize Hibernate? In version 1.2.3, you call Hibernate.configure() to do this, and everything will startup and be ready - providing that hibernate.cfg.xml is in your classpath (WEB-INF/classes).

// Configure Hibernate.
try {
    Hibernate.configure();
    if (log.isDebugEnabled()) {
        log.debug("Hibernate configuration completed...");
    }
} catch (HibernateException h) {
    h.printStackTrace();
    throw new UnavailableException("Error configuring Hibernate: " + h.getMessage());
}

I've been using a StartupServlet that is set to load first, and is also responsible for putting drop-down options into the application scope. However, it has recently come to my attention that I could easily use a ServletContextListener and initialize it (and my drop-downs) in the contextInitialized() method.

So my question is - which is better? From what I can tell, they do the same thing and I've never had any issues with the StartupServlet. Can anyone offer some pros/cons to each approach? Which do you use?

Posted in Java at Mar 06 2003, 04:08:14 PM MST 6 Comments

Java Server Faces Demos!

Dave points out that there's a new Java Server Faces spec available.

The Server Side also reports that Sun has released Java Server Faces (JSF) Early Access 3, a tutorial, and a public draft of the JSF spec.

If you're like me, you just care about the code and how it looks. So I've taken the five war's that are distributed with this release and installed them on this site. If I get too many OutOfMemory errors, I'll remove them - but hopefully they can stay up for a day or two.

Posted in Java at Mar 05 2003, 10:28:34 PM MST Add a Comment

MoPhoto'd

Well, I went ahead and ordered the Communicam from AT&T and it should be hear in 3 days or so. Julie thinks I'm crazy, and she's probably right that the camera sucks, but I want to be a moblogger. I want to post pictures and blog, in real time. My first adventure? I hope to mophoto Erik at the Denver JUG meeting a week from today. That is, if I get the camera and figure it out in time.

Posted in General at Mar 05 2003, 08:49:49 PM MST 3 Comments