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.

Apple's New Safari Browser

Safari It's cool because its fast, and it's got the slick aqua-class buttons like Chimera. But Steve - where's my tabbed browsing!? You forgot the best part of the modern browser phenomenon. I bet M$ has it in IE 7 - or at least they should. I did download Safari and I do like it's bookmarks and nice icon - but it's not doing it for me w/o tabs. Good effort though - too bad it doesn't implement the CSS border-style: dotted correctly. Check out freeroller.net using Mozilla, and then look at in in IE 6. Safari renders dashes just like IE. The other thing that sucks is that the text in this blog is super small. I mean it's small as it is - but it's tiny in Safari. Normally, it actually is larger on OS X than on Windows. If it's too small for you right now - use your browser to make it bigger.

I am looking forward to new iTunes and iPhoto - I love those apps!

Posted in Mac OS X at Jan 07 2003, 04:28:42 PM MST Add a Comment

Upgrading to Struts 1.1b3 - Tips

I upgraded one of my client's applications from Struts 1.1b2 to Struts 1.1b3 tonight. It was a small headache, but not too bad. As far as the differences b/w 1.1b2 and 1.1b3 - they're pretty significant. Some classes/methods are downright gone - not just deprecated, but gone. Oh well, that's why it's a beta - and it's free, so who's complaining? I'll try to remember a few issues I found. The first is how to create a DynaActionForm. The code below worked with 1.1b2:

DynaActionForm messageForm = 
    (DynaActionForm) DynaActionFormClass.getDynaActionFormClass(
                     Constants.MESSAGE_KEY).newInstance();

But the getDynaActionFormClass method is now gone, so you have to use this:

FormBeanConfig cfg =
    mapping.getModuleConfig()
           .findFormBeanConfig(Constants.MESSAGE_KEY);

DynaActionForm messageForm =
    (DynaActionForm) DynaActionFormClass.createDynaActionFormClass(cfg)
                                        .newInstance();

A few deprecation errors cropped up as well.

  • Action.MESSAGE_KEY -> Globals.MESSAGE_KEY
  • Action.ERROR_KEY -> Globals.ERROR_KEY
  • org.apache.struts.validator.StrutsValidatorUtil -> org.apache.struts.validator.Resources

Finally, I found an issue with using BeanUtils.populate(dest, orig). It worked fine with 1.1b2, but throws a NPE with 1.1b3. I replaced this with BeanUtils.copyProperties(dest, orig) and everything works as it should. My guess (from doing a toString() on the orig) is that "multipartRequestHandler=null" was messing things up.

It's interesting doing maintenance/enhancements on code that I wrote a year ago. I've learned sooooo much since then. I wish I could go back and re-factor a bunch, but my client would never go for it - it works right?! Maybe I'll refactor some for kicks - just to see if it's possible. I'd love to replace a few DAOMySQL's with DAOHibernate's ;-)

Posted in Java at Jan 06 2003, 11:16:48 PM MST 6 Comments

Adding color to VIM and Cygwin

These are notes-to-self more than anything, but maybe you can use them. You can add colorized text to Vim by adding the following to .vimrc in your $HOME directory:

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endi

If you don't have this file, you can create it using :mkv. You can change your font-settings by editing them with Edit >> Select Font and then typing :set guifont, followed by :mkv!. I prefer Courier New, 9pt.

If you want colors for file listings (using ls) in Cygwin, add the following to your .bashrc file in your $HOME directory:

alias ls="ls -CF --color"

Posted in Java at Jan 05 2003, 03:12:08 PM MST 7 Comments

RE: Where Good (Java) Stuff Is

I don't know if I agree with Greg that this site is where the good Java stuff is. I certainly do appreciate the compliment though! And Greg, I do have to agree with Russ, it's time to start blogging again, more frequently == more interesting... ;-)

Posted in Java at Jan 03 2003, 11:14:16 PM MST Add a Comment

Subversion - CVS Replacement?

I heard of Subversion this morning from Erik Hatcher's publisher. It looks to be a CVS replacement, but as I'm happy with CVS (and satisfied that I've learned it), I don't think I'll be using it any time soon. It comes from the folks at Tigris.org, who have also provided us with Scarab. I am using Scarab, or I've at least installed it at work and intend to use it on our project. Scarab is a bug tracking application that is cheaper than JIRA and supposedly better than Bugzilla. I wish I could use JIRA b/c I really like the product, but as with most things - clients just want you to do something with free tools, rather than shelling out some extra cash to get things like IDEA and JIRA.

BTW, I'm sure you've heard that IDEA is on sale now. Will I buy it? Nope, I'm in love with Eclipse. Would I buy it if I'd used it for more than 2 days? Probably, but everything is working as I like it in Eclipse, and I'm such an IDE-minimalist, it just makes no sense.

You might be wondering why I was speaking with Erik Hatcher's publisher this morning? Heck if I know?! He sent me an e-mail saying that Erik had recommended me as a source for the newest and coolest Java Tools. Thanks Erik - but I don't know that I'm much of a source. I told him I thought that Maven, XDoclet and Hibernate would probably get a lot of attention in the coming months. He was interested in seeing if they deserved books. I don't think XDoclet does, as it's got so many different modules, it would be difficult to cover them all. It would be VERY cool to see a book written that develops an application using these tools.

This is why Erik's book is popular - people can take stuff from it and learn. Sure, they learn initially by copy/paste, but it's still learning. Hibernate probably deserves a book as I can't seem to grok it - although I did delete approx. 100 lines of code today after I learned some good tricks. I don't know if Erik's publisher was serious, but he did ask me if I'd be interested in writing a book. I told him "thanks, but no thanks" - Julie has asked that I never write a book again. I can't blame her, it's too much stress and computer time in my opinion. Especially considering that I killed my weekly Virus Scan (Friday nights) for the 10th time since I'm working (again) on a Friday night. It hasn't run in over two months!

I'd definitely like to speak about this stuff, maybe at conferences or such. Of course, I'd have to learn a helluva lot more before I could make that happen.

Posted in Java at Jan 03 2003, 11:09:25 PM MST 2 Comments

Using Both Ant and Maven

Erik Hatcher makes a request to get his JavaDevWithAnt project converted from using Ant to Maven:

Ok, a challenge to the Maven or Centipede experts tuning into my blog: make my JavaDevWithAnt project build with either. But the trick is that it has to be simpler than the current Ant build.xml. Believe it or not, I've not (seriously) used either of these tools. I hear the buzz about these and want to become a "believer".

I'm all for this as I've created my AppFuse project using his directory structure/build file as a template. I did go down this path to Mavenism already, but gave up before I finished. My problem is I have 15 different 3rd party JARs I use in my project - many testing frameworks and jakarta stuff. And a lot of these are nightly (or personal) builds because there's been some bug fixed, or enhancement added. What I really want is to continue using Ant b/c I think it rocks and it gives me more control over little tasks, but also to use Maven to generate a project site.

The problem with Erik's request is that I'm guessing no one will jump at the opportunity. Maybe, but in reality, no one looks at each others code unless there's a bug, or they need a sample to get started. Too bad - we could really do wonders for the Java Community if we started reviewing each others code. Erik, maybe you could post little snippets of your build file, and we could convert small parts of it. By posting a measly 10 lines, some other coders might be so inclined to help mavenize it. I know this is not how Maven works, but it sure would be nice if using Maven didn't require abandoning Ant.

Tonight I'll be staying up late trying to finish up AppFuse and Struts-Resume. Since the security-example download seems to be getting a lot of traffic (and it's a 15MB download), I should probably try to get these projects into SourceForge and save myself some bandwidth. Who knows if I'll get it done, I'm pretty tired, and it's already 10:00. But what choice do I have - Saturdays are family days, I promised my client that I pump a bunch of new features out on Sunday, and I get to work an 80 hour-week next week to get our first version out at my new job. Ugh, I need a vacation.

Posted in Java at Jan 03 2003, 09:47:25 PM MST Add a Comment

[ANNOUNCE] XDoclet 1.2 Beta 2 Released

XDoclet 1.2 beta 2 is out! You can download it from SourceForge. Just to clarify, I've been calling the 1.2 beta 1 release beta 2 - guess I screwed up there. Unfortunately, the beta 2 contains neither of the bugs I want fixed. The first bug is something I need fixed to upgrade Roller to use the latest XDoclet, and the second is to generate ActionForms from POJOs. Now that I've been hacking some XDoclet code, I might be able to submit a patch for the first bug, I'll check it out if I get so inclined. Too much to do right now, and that's not a priority.

Posted in Java at Dec 29 2002, 04:48:52 AM MST 2 Comments

Java Development with Ant, The Application

Ant Book If you've been fortunate enough to read Erik Hatcher's Java Development with Ant, you know that there's tons of good tips in it. I read it and I've been recommending it every since. Erik has been continuing development of the sample app for the book ever since it was released. I got many tips from Erik in developing AppFuse and I have to say, it really is a nice example. Maybe I'll get some more stuff now that it appears to have jumped from version 0.4 to 0.9! Here's a message Erik sent about the latest release.

All -

I'm proud (and worried about the support e-mails! :) to announce the 
near-final release of a project demonstrating Ant, XDoclet, Struts, 
JUnit, Cactus, and Lucene.  Its called JavaDevWithAnt as it was written 
for the book Steve and I co-authored and has been refined during 
several presentations I've been giving on Ant, XDoclet and Struts.

The documentation is in draft stage, and my primary goal is to collect 
feedback on polishing the documentation (and the application if there 
are any bugs that surface).  The site where I'm hosting the 
distribution and documentation is:

	http://www.ehatchersolutions.com/JavaDevWithAnt/

Please let me know if you try it out and have suggestions for 
improvement, or just to let me know you tried it and hate it or love 
it, etc.  Feedback more than welcome!  Direct feedback to me at 
[email protected]

	Erik

p.s. Since this e-mail is directed to the XDoclet, Lucene, and Cactus 
lists, here is a brief teaser for you:

XDoclet - its used extensively, even using a custom tag handler to 
generate starter JSP's from Struts form beans.

Lucene - my <index> Ant task is used to index text and HTML files, and 
Lucene's API is used at run-time to query the index.

Cactus - StrutsTestCase is used, although no direct Cactus tests.

Happy information-overload! There's a lot there, but if I could figure it out - I'm sure you can. Erik - finally on Jaguar eh? What took you so long ;-)

Posted in Java at Dec 27 2002, 07:25:45 PM MST 1 Comment

Copying Properties: The Good, the Bad and the Ugly

I realize that having an ActionForm and a POJO with the same getters/setters is ridiculous, but please bear with me for this example. I have a Form and a POJO with Strings, Longs and Dates. The Longs and the Dates get converted into Strings when I get the data from the database using BeanUtils.copyProperties. This works great.

BeanUtils.copyProperties(userForm, user);

However, when going back, it's a different story - here's the ugly way:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

Date dateChanged = format.parse(userForm.getDateChanged());
Date dateCreated = format.parse(userForm.getDateCreated());

user = new User(userForm.getUserId(), userForm.getPassword(), 
                Long.valueOf(userForm.getDesktopId()),
                Long.valueOf(userForm.getCubeId()), 
                userForm.getCreatedBy(), dateCreated,
		userForm.getChangedBy(), dateChanged);

While this works, it's ugly and a pain. I want something like the ActionForm-Value Object mapper. This mapper allows you to easily copy properties between VOs (or Hibernate Objects) and Forms, and vise-versa.

vo = FormToVOMapper.map(form, new ExampleVO());

So I could do something as simple as user = FormToVOMapper.map(userForm, new User()); I like this mapper and I used it on my last project, where it works great. However, I get the feeling that developers in the Struts Community are using something better - and I want to use it. So please, tell me what it is and lets figure out the best way to do this. Another method I've used in the past is to set the VO (or object) on the form itself, allowing for setting of Strings without copying - and setting dates on the form, to be manipulated by the setter. This framework worked great, and I was actually the happiest with it out of any of the above. Chime in and give me your opinions!

Posted in Java at Dec 27 2002, 03:14:29 PM MST 6 Comments

Will this be an all-nighter?

I'm making a big push to finish the Struts Chapter tonight. Moreover - to finish the sample application. Things are going well so far. I hope it's not an all nighter, but as soon as I'm satisfied with the application, I'll have to deal with proof-reading the chapter, which could be a real headache. On the last chapter, the proof-reading took me an entire day. Ugh.

I just wanna get this darn thing done so I can spend some time with my family again, so I don't have to work weekends, and I can quit (pretty much) working for free. I think the time spent on the sample app will pay off in the long run, as it's already making it easier to develop the application at my new job. I was able to install, compile, deploy and start authenticating/pulling information from Oracle in a matter of hours. That's taken weeks in previous gigs. Of course, if you count the slow machine I had, the meetings and the installation of new software (trying to get the machine setup), then it probably took a week.

I took my home-built machine into work this morning - and all was peachy until I asked the help desk to add my computer to the domain. Politics came into play and I was told that the technicians have to build the machines, not some dev-head. No biggie, just get me a faster machine I said. I argued with the guy for a bit as I tried to explain that a 700 Mhz, 128 MB RAM machine was too slow for Java Development. When he said that was one of the fastest machines they had, I almost choked. Luckily, they found a 2 Ghz machine that I get to start using tomorrow - this'll be the 3rd machine I've built since I started last week. Damn. Sure is nice working from home when you have everything setup already. Do you think that tele-commuting will be the wave of the future? The clients that've paid me to work from home are getting a heckuva better deal than the ones that require an on-site consultant.

Posted in Java at Dec 26 2002, 05:01:44 PM MST Add a Comment