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.

Good Saturday

Yesterday was quite possibly the most action-packed days of my life. It all started with going out to breakfast with the family. From there we went on a Hammond Candy factory tour with the Colorado Bus Club. Abbie had a great time and couldn't stop running around in circles. Here's some pictures from the event. After that, I headed to a local connectionless coffee shop and worked on Spring Live for two hours. From there, Jack and I headed to DU Basketball game with some free tickets I got from a friend. That game ended about an hour before the DU Hockey game. After the hockey game, I went and watched a friend's Jazz band play at The Hornet. Phew! It was a great day with a lot of family time. Being a Dad has got to be the coolest thing that's ever happened to me.

Posted in General at Feb 13 2005, 05:20:33 PM MST 1 Comment

[DJUG] JUG Central and BPEL

Last night, I attended Denver's JUG meeting. Below are my notes from the event.

I'm at DJUG listening to Christian and Kris (from Adigio) talk about their experience with using Spring, WebWork, Hibernate, Lucene and SiteMesh to develop JUG Central (I wonder if they knew this name and concept already exists?). JSPs are for the view and MySQL powers the data. This presentation is designed to explain a bit about each framework, and also tips/tricks and pitfalls they experienced when developing the site. They started working on the application in August of last year and deployed it into production in December.

Christian said they weren't going to go into the how for each framework, but Kris has had quite a few slides on SiteMesh so far. I don't blame him - it's a great tool and only a handful of folks (of about 50-60) have heard of it.

SiteMesh Pitfalls: Poor integration with Velocity and some other frameworks. BTW, if you're using Tapestry - Erik Hatcher recently created a JIRA patch with a Tapestry Decorator.

Now Kris is talking about WebWork and since he's a framework junkie, apparently this is going to be the largest part of the presentation. I think one of the nicest parts of WebWork is its auto-type conversion. The only other frameworks I've seen that have this is are JSF and Tapestry. For those that like WebWork and don't like JSF - you might find it disturbing that the WebWork actions (and their tests) in AppFuse are very similar to the JSF managed beans. I would take it as a compliment if I were a WebWork developer.

One nice thing about XWork's action configuration is you can specify a "method" parameter for a particular action. Struts recently added this with its MappingDispatchAction. I'm using this on my current project and it works quite well. Kris really likes WebWork's front-page controller pattern - where you use the <ww:action> tag to execute the action when the page is loaded. Personally, I don't have a problem with going through actions to get to my view templates. Kris finished up his WebWork piece with a plug for AppFuse (thanks!) and WebWork in Action. Congrats to all the authors - wonder if it'll be published before WebWork Live?

Now Christian is talking about Hibernate and its mapping files - and how you can generate your database schema from them - or generate your mapping files from a database. They used XDoclet to generate the mapping files in this particular project.

Hibernate Pitfalls: Think about lazy-loading early. Problems arise when you try to share Hibernate-managed objects across (Hibernate) sessions transparently. Christian mentions that Spring's OpenSessionInViewFilter is a nice way to solve the problem.

Hibernate Tips: Spring simplifies using Hibernate and makes declarative transactions easy. Read Hibernate in Action before starting development. Plan to spend some time learning how to express your data model with Hibernate relationships (one-to-one, one-to-many, many-to-many, etc.).

Christian is now talking about Spring and how it works. After thinking and writing about Spring so much in the last year, I'll just skip over regurgitating this part. ;-) His main recommendation: use real injection instead of appContext.getBean("beanName").

Other tools used: Lucene for searching and POI for indexing Word, Excel and PowerPoint files. Velocity used for templating e-mail messages.

Service-oriented Architecture (SOA) with Business Process Execution Language (BPEL)
Presented by Kevin Geminiuc and Owen Newnan from Policy Studies

This point of this presentation is to communicate what it's like to implement BPEL in a J2EE Container. BPEL is a layer on top of web services. BPEL is a programming language that you can use to program business processes. Allows you to divorce your business process from being human-centric to being document-centric. At Policy Studies, they're using iLog JRules rules engine and Oracle's BPEL implementation.

Benefits:

  • Process Visiblity
  • Process Agility
  • Powerful Language
  • Open
  • Backed by "the Big Boys" (BEA, Microsoft, IBM)

History: Formerly knows as BPEL4WS, WSBPEL. Open standards based. Orchestrates web services with SOA.

Where we are today: Emerging technology (prepare to bang your head against the wall). .NET and Java products exist, as well as J2EE container integration.

BPEL is: BPEL is not:
  • A programming language for business processes
  • A language for specifying e-business transactions
  • XML-based layer atop WSDL
  • A declarative and procedural language
  • Designed for human workflow
  • A JSR spec (207 and 208 are related though)
  • Mature Technology
  • Your typical web services application
    • asynchrony as well as synchrony
    • callbacks
    • composite synchronous services

BPEL & WS Standards: BPEL, XPath, WSDL, WS-Addressing, SOAP, XML-Schema, WSIF (Axis), TBD (WS-ReliableMessaging and JSRs 207/208). Note that since BPEL depends on web services (which is not a truly reliable service). Because of this, there are some proprietary extensions available.

At this point, I became bored with the presentation and quit taking notes. While the speakers had good intentions with their knowledge sharing, their delivery needed some work. The code walkthrough and demos were presented with a monotonous and unexcited tone, and a handful of folks left during this part. In summary, BPEL looks like a good way to orchestrate your various business processes. It allows you to call web services, EJBs and whatnot simply by defining their locations and methods in XML.

In his demo, Kevin used Oracle's BPEL Designer, which is an Eclipse plugin that has a nice drag-n-drop editor for managing your BPEL XML files. He also used Oracle's BPEL Process Manager, which seemed to be a lot like Jetspeed - you just drop in the .ear and then deploy your processes to it. The only bad part about the Process Manager is it's administration/deployment interface only runs in IE.

If you're using BPEL in your projects, I'd be interested to hear the tools you're using. As far as open-source BPEL process engines, they mentioned Twister and ActiveBPEL.

Posted in Java at Feb 10 2005, 07:05:39 AM MST 5 Comments

Brrrrrrrr

I attended the Java User Group meeting tonight and managed to document a good portion of it. I hope to post it in the morning when I wake up. After the meeting, a number of us headed to the local brewery and enjoyed some brewskis together. We left around 11:20 and I made it home (riding my bike) at midnight. While it was 19°F when I rode to work this morning, the 26°F on the way home seemed a lot colder. Maybe it was the beer. Anyway, it's good to be home. Let's hope it warms up before I ride back in in 5 hours.

Posted in General at Feb 10 2005, 12:14:04 AM MST 5 Comments

Life Update

Technology blogs are boring for the most part. Sure it's cool to read about someone configuring or trying something out for the first time. However, if you run a technology blog and you read through your archives, chances are there's not much in there that peaks your interest anymore. Part of the reason I started this blog is so I could look back over the years and see what was going on in my life. This is one of those posts. One of those posts that I'll look back on and appreciate.

2005 has been a pretty good year so far. This is largely in part to the fact that I don't work from home anymore, and therefore get some interaction other Java junkies. Another thing that's made it really nice is riding to work. I've ridden my bike to work every day since I started doing it. My goal is to ride everyday but those when it's raining in the morning, or when I have one of those "Oh shit!" mornings and I'm late for a meeting. I think I can ride all but 5 days this year. The past couple of weeks, it's been pretty cold (20-30°F), but it's actually been quite nice. It's a lot like skiing - you just have to dress for it.

Another reason I've been enjoying myself a lot is b/c I haven't been working on the weekends or late nights. I've been sleeping in, going to bed before midnight, and having a good time with Jack and Abbie. Last weekend, Abbie I went to Ocean Journey and the Colorado Crush game. Apparently she had a good time b/c when I asked her if she was excited about the DU Hockey Game this weekend, she said "Football!". Looks like we might be going again.

Jack is growing up fast and is already in 9-month outfits and he's only 5 months old. Since Holly moved in, he's been "Happy Jack", which is nice considering he cried 12 hours/day for the first couple of months. He's smiling a lot, squirming like a madman and even rolled over a couple of days ago. Before we know it, he'll probably be crawling and chasing after his big sister.

Last, but not least, I'm learning that I need to take advantage of my contracter status more. Today I took the day off to work on Spring Live. I hope to start doing it more often, as well as taking days off to work on AppFuse. My strategy for that is: go in early and work 4 10-hour days per week. If I'm in the office by 6, I can be home by 6 and hardly anyone notices.

Speaking of AppFuse, it continues to be popular and has the most mail traffic on java.net. While that's great, it's tough to keep up with the mailing list. I've started to not reply b/c I need to get other things done. The last two weeks of this month, I plan on pumping out new AppFuse and Equinox releases, so I'll likely get back into it then. Developing open-source projects is a lot of work, but it's a nice way to show clients your knowledge.

That's pretty much it. Julie continues to be the woman of my dreams and it's awesome living in a new/big house in the heart of Denver. I don't know how much I'll update this blog in the next few weeks - sometimes it's just better to quit e-mailing and blogging and get some work done. ;-)

Posted in General at Feb 08 2005, 12:56:12 PM MST 2 Comments

Short and sweet contracts

This has been a good month for Raible Designs. Not only did I manage to land a new gig, but I've also had a couple of 1-day contracts. The first one was an architectural review (at the beginning of the month), and yesterday I delivered a presentation on TDD and Spring for a client. These short-n-sweet gigs are a lot of fun. It's a good way to get out and meet members of the Java Community and see what tools they're developing with. The first client is using Struts, Spring and Hibernate. The second client wanted to use Struts, but after my talk, they're thinking about Spring MVC. They plan on using Spring to make EJBs easier, and they're using TopLink on the backend.

The only bad part about yesterday's experience is I developed a full-body ache as soon as I left the client's site. I managed to catch a cold from Abbie this weekend, and that turned into a cold+fever last night. I've had the fever ever since and didn't go into work today. It's really shitty timing for getting sick - we have a deadline on Thursday and we're heading to Oregon to see my parents this weekend. Last I checked, my fever was at 102°F. Hopefully, I'll wake up tomorrow and it'll be gone.

Posted in Java at Jan 25 2005, 08:38:50 PM MST 6 Comments

AppFuse Startup Video?

Dion wants to see an AppFuse Startup Video like Mike Clark's CruiseControl Action Movie. While this sounds like a good idea, I think I'd be shooting myself in the foot if I created it. Why? Because then more folks would start to use AppFuse, and hence, I'd have to answer a lot more e-mails on the mailing list. Being a top-ranked project on java.net doesn't help. You might think that there's a lot of issues with AppFuse, and that's why the mail traffic is so high, but that doesn't seem to be the case. Most questions seem to be along the lines of "Why did you do this?", "What do you think about adding X technology?" or "My Hibernate relationships don't work."

Few of the issues relate to AppFuse directly (i.e. build file and directory structure), but many of them relate to the technologies it depends on. Good HowTos should lead to a lot less Hibernate questions, and I hope to work on that before the next release. As far as the other questions, I need to add some links from the FAQ to the mail archives so I can quite repeating myself. I think a lot of the mail traffic is just an indication of a successful open-source project. In other words, when you get popular - you have little time to develop anymore. I probably spend 1-2 hours per day just answering AppFuse e-mails.

Another unfortunate side-effect of this is that there seems to be a lot of newbies. When AppFuse was first released in April 2003, it seemed that only experienced, smart developers used it. Maybe this was because there wasn't any documentation (besides Pro JSP and Java Development with Ant, which explains the entire build.xml file), so folks had to really understand the dependent technologies to use AppFuse. Now there's questions about the basics of different frameworks. In most cases, I'd like to respond to a link to the framework's documentation - but sometimes the documentation just isn't there. I guess that's why frameworks like Ruby on Rails succeed - all the dependencies are part of the framework. If I tried to do that in the Java Community, it'd be project suicide. I'd spend all day answering questions like, "Why aren't you using Hibernate?", "Why Not Spring/JSF/Struts, etc." Furthermore, I'm not as smart as the framework developers, so it'd simply never happen.

But I digress. What's in it for me if I create an AppFuse Startup Video? I can see what's in it for Mike - his video is about a project he doesn't support (AFAIK) and the video should lead to more book sales. I suppose I could try and hook users that AppFuse is explained in Spring Live, but that's not really the case. Maybe I should just do an Equinox Startup Video. ;-)

Posted in Java at Jan 24 2005, 10:29:12 AM MST 15 Comments

Blogging like a madman

I was looking up some old pictures last week and I stumbled upon the June 2003 Archives for this site. Holy crap Batman - I was blogging like a madman! I had many days where I blogged 5+ times - that's just nuts. Looking back, I also noticed these other months where I was a blogging fanatic:

As Jeff said the other day, "We can tell you really like this job?" I asked, "Why?" He responded, "Because you hardly ever blog anymore!" It appears he's right. ;-)

Posted in Roller at Jan 22 2005, 08:07:30 PM MST Add a Comment

Comments are flakey?

I've gotten several e-mails from readers that they haven't been able to leave comments on this blog. I suspect it has something to do with twisty comments, but I just tried them in Firefox 1.0 on Windows XP and they seem to be working fine. In order to help me track down this problem, try posting a comment to this entry and see if it works. Make sure and copy it before you post it, just in case it doesn't work. Clicking on the "Permalink" or title for this post will take you to a backup comment form that seems to work regardless. Thanks for the help!

Update: From the various comments, there doesn't seem to be a common thread. It seems that half the folks that used Firefox + XP it worked for and the other half it didn't. I doubt it's a caching issue, but I have been seeing a lot of the following in my logs:

ERROR 2005-01-22 19:51:01,944 | RequestProcessor:processMapping | Invalid path /comment was requested

Roller recently changed from using /comment to /comments - so I don't know if it's spammers hitting the old URL or what. My guess is yes since it seems to happening in blocks. I'll try to add a preview button tonight so users will get taken to the permalink form for previewing. Either that or I could just change to always using the permalink form. It's up to you guys - let me know what you prefer.

Posted in General at Jan 21 2005, 10:31:52 PM MST 30 Comments

Using JasperReports with AppFuse and Spring

In Spring 1.1.3, support was added for using JasperReports with Spring MVC. Today, Gregory Beumer posted a nice overview of JasperReports. This inspired me to dig up Gilberto's post on How to integrate JasperReports with AppFuse. If you're looking for a reporting solution in your AppFuse-based application, and you're using Spring MVC ... enjoy! I plan on adding this to the wiki in the future, along with howtos for integrating JasperReports with Struts, WebWork, JSF and Tapestry. If you happen to know of tutorials for integrating JasperReports with these other frameworks, please let me know.

Posted in Java at Jan 20 2005, 08:12:04 AM MST 17 Comments

Upgraded to Roller 1.0

Dave released Roller 1.0 yesterday, so I decided to spend 20 minutes and upgrade today. I have customized a few pieces in Roller and added a bunch of my own files, so I always build from CVS for this site. I did find a bug with twisty comments (fixed in CVS) when testing locally, but everything else appears to be working OK. Let me know if you see any issues and feel free to play with my test user if you like. Username is "test", password is "roller". Well done Dave!

Update: Remember Me seems to be broken. I thought I fixed it last week. I'll investigate further tomorrow.

Update 2: Strange... it works when I test it locally, but not on this site.

Solved: It turned out to be related to installing Roller as the root app, and only seems to affect Firefox. Fixed in CVS.

Posted in Roller at Jan 15 2005, 04:27:18 PM MST Add a Comment