Worldwide Software Development with Local Pride

supergloo builds web applications with developers from around the world.

It’s similar to sports teams with players who come from all over the world. It’s about building the best team possible with the most skilled people. This means the best team of players regardless of their place of origin.

Stop and think of the major worldwide sports teams today. While once new, it is now common when teams are formed with multinationals. Baseball, Hockey, Football, Futbol, Rugby, Cricket, Basketball

It’s about winning. It’s about putting the best team possible on the field, ice, court, etc.

Now what does this have to do with software development and supergloo?

Well, at supergloo we’re fortunate to have a network of worldwide developers. Our developers are specialists who are focused. They help form the best possible team for you. Our worldwide developers are fast, focused and specialists for your project.

Just the other day, I took a look at the supergloo developer’s home countries and realized we are across the world. Western Europe, Eastern Europe, India, Southeast Asia, Africa, China, Mongolia, New Zealand, Australia, South America, North America. On a recent project, the supergloo development team consisted of 18 developers from 12 different countries.

And the client didn’t know it. They didn’t need to know it because we made it easy for them and showed results. I don’t really like to, but I’ll write about even more success stories in the future.

Now, I should take a step back and describe my perspective a bit. I have local pride. And I’m what you a call a ‘homer’. I cheer for the Minnesota Wild, Timberwolves, Vikings and Twins. My favorite team is the Minnesota team.

I like the University of Minnesota Gophers hockey. It was sad when the Gophers hockey team decided to bring on players from outside of Minnesota. I wasn’t alone in considering it a point of pride to have a team of all Minnesotans. As a fan, it felt good to beat a team of players from around the world. But, times changed and the Gophers have players from outside of Minnesota now. Simply put, I’m over it, because I’d rather win.

We probably all have some kind of story like my Minnesota Gophers. I imagine you have a similar story of local pride or import-vs-export or big-chain-store competing with the mom-and-pop. On one hand it’s sad. Whenever something changes, there is usually an element of sadness.

And maybe on the other hand, you don’t particularly care where people come from as long as they play together and win. And win with honor and integrity.

Or maybe it depends on the circumstance?

Let me be clear and direct with you. I’m not talking about what some people consider “offshore software development”. In their view, this means using cheap labor at the expense of local software developers. In fact, I’ve seen this approach where all local developers are wiped and replaced with a team at the other end of the world. I haven’t seen it work well in practice; probably sounded good in theory to the people watching costs.

No, that would be like suddenly taking my Minnesota Twins and shipping them to India or some other country; rather than bringing a player from Venezuela to play for the Twins.

I don’t want to beat a dead horse, because I imagine you get my point by now.

What I’m talking about is putting the best team of software developers on the field for you.

We put this team on the field for you and yet we don’t ask you to speak multiple languages, stay up late at night or get up early. We don’t expect anything different from our clients. In fact, we don’t even want you to think about the team. We want you to be pleased with the results of a winning team.

I won’t bore you with the nuances of “coaching” the best team for you. We’ll show you in the results. We hire specialists. We don’t particularly care where they come from as long as they are good people with great skills.

So what’s the bottom line? supergloo is fast and focused for you. We put the best possible team on the field with players from around the world.

Mexican phentermine
Vicodin abuse
99 phentermine
Viagra substitutes
Phentermine 37.5 tablet
Side effects of xanax xr
Ionamin phentermine yellow
Cialis drug
Comparison viagra cialis levitra
Viagra sale online
Paris cheep phentermine
Phentermine prozac
Xanax online without prescription
Buy xanax
Comparison viagra cialis levivia
Xanax online overnight
Adipex p phentermine
Phentermine overnight
No prescription phentermine free shipping
Cheep tramadol paris france
Lisinopril with viagra
Viagra online consultation
Cialis price compare
Phentermine drug interaction
Phentermine online consultation
Ordering phentermine
Prescription viagra
Liver problems from xanax
Does phentermine interact with hydrocodone
Xanax online cheap
Viagra pill splitter
Cialis commercial
Cheapest prescription viagra
Comparison levivia viagra
Diet ingredient phentermine pill
Non prescription phentermine
Generic cialis prices
Tramadol avinza drug interaction
Non perscription viagra
Buy viagra without prescription
Ambien side effect
Online pharmacy prescription viagra
Drug phentermine testing
Buy viagra in the uk
Order phentermine on line
Viagra price
Levivia versus viagra
Phentermine on line without prescription
Viagra online canada
Tramadol overnight
Phentermine resident sale virginia
Buy generic hydrocodone
Best online deal for phentermine
Phentermine usa pharmacy
Soma addiction
Cialis erectile dysfunction
Vicodin and alcohol
Prozac and phentermine
Hydrocodone and ibuprofen
Generic cialis uk
Xanax withdrawel symptomsPhentermine side effects danger
Side effects phentermine gynecomastia
Generic purchase viagra
Where to buy xanax
Phentermine forums
Purchase viagra online
Viagra impotence pill
Westword fioricet phentermine
Buy viagra online
Language phentermine ru
High cortisol level phentermine
Sell viagra
Cheap viagra uk
Hydrocodone query
Herbal viagra alternative review
Cialis compared to viagra
Cialis levivia sales viagra
Phentermine blue diet pills
Canadian pharmacy viagra
Online tramadol prescriptions
How long does xanax stay in your system
Anti cialis impotence
Buy phentermine in canada
But phentermine
Addiction recovery xanax
Buy viagra pill
Cheapest cialis
Compare viagra cialis levitra
Phentermine testimonials
Phentermine airborne express cod
Phentermine 37.5 mg diet pill
Viagra prescription medication
Online xanax prescription
Extra cheap phentermine
Cialis experiences
Buy phentermine online com
Pay pal phentermine
Buy phentermine cheap
Cheapest generic viagra
Viagra online store
Online doctors perscriptions xanax steroids
Review of herbal phentermine
Xanax fedex overnight
How fast will phentermine work
Cialis for woman
Discount viagra perscription drug
Viagra alternate
Vicodin prescription
Viagra price online
Xanax anxiety
Uk viagra supplier
Buy cialis viagra
Tramadol without a prescription
How long between phentermine and meridia
Better than viagra
Phentermine success
Does xanax show up on drug tests
Genric viagra
Viagra on line uk
Maker of viagra
Link buy online viagra info domain
Viagra online no prescription

Addicted to Measure and Monitor

Addictions come in many flavors: smoking, drinking, drugs, reading, exercising, email, watching tv, news. Yes, I did say reading, exercising, email, watching tv and news can be addictions. There are probably a few others we don’t typically associate with the word “addiction”. I believe doing too much of any one thing is an addiction, if that thing negatively affects you or your surroundings. That’s my opinion. But, we commonly misconstrue the idea of an addiction to be smoking, drinking, drugs, etc. This is related to what I’ve heard people refer to as having life balance. But, regardless, I’m not qualified or smart enough to bore you with the social ramifications of “addiction” and what a true “addiction” is or is not.

Actually, I’m writing to solicit your help in what I consider my most recent addiction: personal measure and monitoring. I’m going to ask for your feedback on tracking tools you use to monitor individual accomplishments or events.

But first, a little background-

Let me say right from the beginning: my latest addiction is focused on tracking myself and not comparing myself to other people. It’s about measuring and monitoring myself and only myself. I’m competitive, but this is not about other people.

I wrote a post a while back about the impossibility of determining if an event, project, task, etc. was successful if there were not pre-determined expectations going in to it. I mean, how do you honestly know if you don’t have a measurement? Sure, on an emotion level, it’s easy to determine if the event was pleasant or not. But, I’m talking about using benchmarks to measure and monitor. This way we can go beyond the emotional level in order to determine success along the way and after the fact.

Besides, you can use this data to grow on the next occasion.

As a participant in communities, groups and teams, we use all kinds of tools to measure and monitor, but I’m curious about what tools people are using to track themselves individually? You know, some people use Quicken or Wesabe to track personal finances. Some people use online logs to track their runs before a marathon. You might track golf rounds, geocache findings or honey hole fishing spots.

With these examples, hopefully you have a reference to what I’m talking about. The following are my paraphernalia for personal measure and monitor:

Measure and Monitor Sleep with Sleeptracker PRO

I’m what you might consider an early riser; 5am most days. I originally purchased the Sleeptracker because of the vibrating alarm. I thought my family would appreciate not having their sleep interrupted from my alarm. It also allows you to set an awake time “window” which I thought sounded pretty cool. (it is) But lately, I’ve been using the Sleeptracker to measure and monitor my sleep. It allows me to easily record data about things that might have affected my sleep the night before: things like temperature, big meal, whether I had a scotch or two, stress, etc. I’m starting to notice patterns which are interesting to me.

Measure and Monitor Tasks with GTD/Vitalist

By now, I imagine you’ve heard of Getting Things Done. GTD. I’ve been a believer and follower for about 2 years now. I started out using Yahoo Notepad with @ in front of folders and then moved to Google Docs. I even tried the Outlook plugin for a bit, but due to a variety of circumstances (reads: I use multiple devices, operating systems, access points and the idea of synchronization doesn’t seem DRY to me), I dropped it pretty quickly.

I tried Remember the Milk, but found Vitalist easier to use for GTD. Also, recently I’ve started to use the Jott Link to record to Vitalist from my mobile phone. Really handy!

Measure and Monitor Heart Rate with Polar

I measure and monitor my heart rate during runs using an old Polar S150. I’m actually looking to improve this initiative though. I purchased the S150 when I ran a marathon a gazillion years ago. At the time, I also used a free, online, ahem, crappy run log. I’d like to be able to use one device to measure and monitor heart rate and distance. This SmartSync Heart Rate Logger with PC Download gizmo seems like a good candidate to try. Anyhow, I benefit from being able to measure and monitor my body using a tool during exercise rather than rely on my mental attitude towards the particular workout.

Measure and Monitor Thoughts with FreeMind

Ok, I’m fairly certain on not being capable of improving my thoughts. Which means, I’m sure to continue to have bad ideas along with the occasional good ones. In any case, mind maps are a beneficial way to organize my thoughts. I’ve been using FreeMind.

Measure and Monitor Music Listening with Last.Fm

Frankly speaking, I don’t have the social network I did in college and high school anymore. At that time, it was easy to find new music due to the amount of exposure. Those days are gone. Gone, but not forgotten! Anyhow, where was I? The Last.fm recommendation engine is fantastic. By monitoring (scrobbling) my listening habits, I am able to receive recommendations for new music. Well done, Last.Fm. Must admit, I had a difficult time switching from Pandora, but I’m glad I did.

Conclusion

The measure and monitor of sleep, tasks, heart rate, thoughts, music are beneficial to me in a variety of ways. In short, it’s a positive thing so far. However, I am trying to be cognizant of what I believe is my latest addiction. Also, just realized I’m probably a dork with this kind of addiction. Not the first time! Anyhow, help me go a bit further? What tools are you using for personal measure and monitor?

Show Me Who Your Friends Are And I’ll Show You What You Want, What You Should Do, Why You Should Try it

Err, that’s not how it’s suppose to go. As far as I remember, it’s suppose to be “show me who your friends are and I’ll show you who you are”. At least, that’s what I’ve always heard. But, back to the point - hopefully, you have heard this saying (or something similar) in the past. The concept or premise remains the same: I can assume things about you based on the company you keep.

Background

As we experiment and grow with social networking applications, there will be attempts to make personalized recommendations based on the tastes and experiences of people in one’s network. For example, if 5 people in my world have recommended the book Atlas Shrugged, the application would recommend I might enjoy it as well. (By the way, I do recommend it).

It’s important to note this recommendation is different than the “people who purchased this book also purchased a,b,c” cross sell recommendations (aka: collaborative filtering) that are prevalent in e-commerce sites.

In this case, recommendations based on your network, the recommendation is more personal, carries more credibility and might be more accurate.

Implementation

The code would need the ability to gather and process hobbies, interests, travel experience, likes/dislikes from people in your network. The recommended book example has already been provided. But, this could be taken much, much further. The application could make recommendations on what classes you might enjoy, movies, tv shows, vacation ideas, groups you might be interested in joining and so on.

The application could also pull tastes and experience from people (people to be determined similar) outside your network as well. In this case, the application might be add-on or augmentation to existing collaborative filtering solutions.

Privacy

Help me out here? I’m thinking the data gathering could be done in a way that still protects privacy. Or am I missing something?

Focus

* Company marketing and branding efforts could enhance their community development initiatives by developing specific applications for recommended ways to use their product, add-ons or partner products and services. And still, the application could gather from a variety of social networking applications. Am I thinking of a widget here? Is this the kind of application that fits into Open Social?

* Affiliate. Build it ourselves and recommendations lead to affiliate commissions.

Conclusion

After 13 years of coding, developing and hearing startup ideas, I don’t place much emphasis on my application ideas. I do respect when others want their ideas to be kept secret. But, for my ideas, I place emphasis on whether it can implemented and executed rather than the idea itself. Furthermore, this isn’t a game changing idea. I imagine there are plenty of people working this kind of product. In fact, Chris Anderson of The Long Tail: Why the Future of Business is Selling Less of More, doesn’t seem to care for the idea.

I learn from everyone I meet. Let me know what you think? Who is working on something like this? Or, should we build it? Or build a few of them?

Final Thought

Show me who your friends are and I’ll show you recommendations. I guess your recommendations for books, music, activities, etc. might be enlightening because they are being made to you based on the people in your network. It might be interesting in a stare-at-your-own-navel-kind-of-way. Will these recommendations further show you who you are based on who your friends are? Or, who cares, as long as the recommendations are worthwhile?

Why did I Buy Microsoft Office?

Everything has been going smooth with Google Docs and Spreadsheets experiments. Why did I feel compelled to pony up for Office licenses for home PC and Mac? Tell me. I need to know. Is it because I’m not the smartest bulb on the tree? Or perhaps it’s because I’m not the brightest knife in the drawer? Well, honestly, that could be true. Ok, I can see where this might go - don’t tell me why I bought MS Office. But, note to self- how come I didn’t just stick with Google Docs and Spreadsheets

In retrospect, it seems silly to think that I needed any more gizmos and whatchamacallit functionality in a word processor and spreadsheet program. I mean, I’m probably still using the same available features from 8 years ago. Did I really need to pay for another doohickey? Give me bold, italics, alignment, and I’m good. Throw in some fonts and sizing. Fine thank you. Underlining? Are you kidding me? I’m totally in. Now for spreadsheets, I’d like to be able to sum using something like: =sum(c12:c22) Heck, with something like that, I’m happy. Format certain columns as currency or percentage. Well, hot damn. Can I create some charts with the numbers and labels? Oh, that’s just peachy.

But, you cry, what about Sharepoint integration! And I’d say, sure, I’ve been exposed to the all mighty Sharepoint and it’s integration fancy schmancy-ness. On a positive side, I do think the alternative to Sharepoint collaboration- emailing attachments around is much worse than Sharepoint. But, are you going to hear me praise any more than that? hell, no. And besides, I can do some non-email-attachment-sharing with a gazillion other web based document sharing sites.

Ok, yes, I admit Google Docs and SS, isn’t as fast as local installed Office. You got me there. But common, it’s not that bad. I’m on a high speed network most waking hours. And besides, the benefits outweigh this only con. Sharing is easy. Backups are not a concern. And the functionality I use? It’s there.

Does this post have a happy ending? I can’t think of one. Is it intended for you to think about buying an Office license? Maybe, but this is more of a pointing the finger at myself moment.  Well, at least I could do is leave you with some kind of intellectual tidbit? wait a minute- are you serious? we already went over the bulb and knife thing, right?

But, if you are an home user or small business, I do suggest considering Google Apps (Docs and Spreadsheets are included) for your word processor and spreadsheet needs.

3 Expectations When Building a Website

Don’t you find it impossible to determine if something was a success or failure if you have no expectations going into it? Sure, it’s easy to determine if the emotional experience was pleasant or uncomfortable, but I’m talking about something beyond the emotional level. How do you know if something was successful or not? I think it has to do with what your expectations were going into the process.

After 13 years in web development, I still see client expectations vary greatly when it comes to outsourcing website design, development and hosting. It makes we wonder what kind of experiences they’ve had in the past that have influenced their expectations today.

It’s 2007 and here are 3 things you should expect if you are building or upgrading a 1-25 page website:

1) Professional, Clean Design

It doesn’t matter if you are doing it yourself or hiring a freelancer or engaging the trendiest ad agency. You should expect to see a few rounds of composites (aka: “comps”) of the design. This can be thought of as screenshots of the website. No functionality is in place, just a preview of what the site will look like once programmed. Comps give you chance to pick which look-and-feel you like the best and facilitates communication for the next round of revisions.

Cost: Good design is something that can be offshored for $500-$1,500

2) Hosting with Functionality Tools

Next thing to expect is choosing a company to provide monthly hosting of your website. In other words, an entity who manages and procures the computers and infrastructure that serves www.yourcompany.com. In addition, the monthly hosting should include tools/applications designed for a non-technical person. I’m talking tools beyond email. Simple, easy to use tools to make content changes (aka content management system or cms), manage calendars or events, process contact forms, sell or display products, blog, manage mailing lists, provide a support knowledge base, etc.

The types of functionality tools you need will be particular to your industry.

With the plethora of open source applications available, you should expect a hosting company to provide these tools as part of their monthly hosting charge to you. The hosting company should be knowledgeable in the tools they provide.

Cost: With quality hosting infrastructure and open source tool knowledge, you should expect to pay $75 to $250/month.

3) Fantabulous Support

You should expect responsive, competent, non-technobable support from the company you choose to design and host your website. This is the area where companies can really distance themselves from competition. Expect the company you choose to be aware that another company will be thrilled to provide good service to you.

See point 2 for cost. The cost of fantabulous support should be included in monthly hosting fee.

Conclusion

Expect 1) Great Design 2) Solid Hosting with functionality tools the layman can use and 3) Fantabulous support.

If your expectations are not being currently met or you are interested in learning more about these 3 points, contact this company.

Opportunities for Foreign Language Teachers using Skype Prime

Like many gaijin living in Japan, I earned some money as a conversational English tutor. Granted this was over 10 years ago, but have times have changed that much? I imagine people trying to learn English still wish to practice with a native speaker. And although my language studies are more in the realm of computers now, I certainly would the appreciate the opportunity to speak with a native speaker when learning a new language… and I’d pay for it.

Well, I believe we now have the technology where anyone can become a language tutor or student while being anywhere in the world. Take your pick - start a new line of business as a foreign language teacher or improve your language skills by connecting with a native speaker from the comfort of your own home.

Skype has just a released a new service call Skype Prime. It facilitates the invoicing of time when receiving calls over Skype. So, when someone contacts you to speak with a native speaker (English in this example), everything is taken care of for you.

From the Skype website:

With Skype Primeâ„¢ Beta you can share your skills by setting yourself up as a call provider offering services to other Skype users - and earn money in the process. You can use it to offer all sorts of advice, from teaching others about the rules of football to giving a one-to-one cookery class over a video call.

Ok, it probably seems obvious now - teaching foreign languages would be ideal application of this technology.

If you are interested in pursuing this idea further or have any questions, feel free to contact me

The logo below will take you to the Skype Website:

Skype - call the world at rock bottom prices

Biggest Benefit of Fit Testing in Software Development

The biggest benefit when implementing Fit testing is sharing some of the responsibility of test driven development with “the business”. With Fit testing, BAs and Project Managers can write tests without having to know a programming language - they can write the tests in an HTML Editor or Word. We still write unit tests with Junit, MockObjects, StrutsTestCase, etc., but the tests are augmented with functional tests using Fit. I recommend it.

For more information on Fit Testing in Java, I’ve put together a tutorial at code.supergloo.com: Example of Fit Testing in Java

3 Lessons Learned from the Board Game Risk

Everyday there are opportunities to learn. These opportunities might active- read a book, research a problem, watch a documentary, study a foreign language. Learning experiences might be passive as well; in other words something unexpected produces a valuable lesson. I’ve been reflecting on the Game of Risk recently and 3 things it has passively taught me.

First, a brief history of Risk an overview on how to play from Wikipedia:

Risk is a commercial strategic board game, produced by Parker Brothers (now a division of Hasbro). It was invented in the early 1950s by French movie director Albert Lamorisse. It was originally released in 1957, as La Conquête du Monde (The Conquest of the World), in France.

How to Play
Risk is a turn-based game for two to six players, and is played on a board depicting a stylized Napoleonic-era political map of the Earth, divided into forty-two territories, which are grouped into six continents. Players control armies, with which they attempt to capture territories from other players. The goal of the game is to control all the territories—or “conquer the world”—through the elimination of the other players. Using area movement, Risk ignores realistic limitations, such as the vast size of the world, and the logistics of long campaigns. Compared to other military board games, Risk is relatively simple and abstract.

3 Life Lessons the game has taught me:

1) If I don’t take any chances or worry about what other people think, I’m not going to acquire or learn any thing significant. In the game of Risk, significance means countries, continents and cards. Similarly, if I do not take chances in Life, I will not experience things that make me a better, stronger, more well rounded person.

2) If I stretch myself too thin across many borders, it’s nearly impossible to defend and I will most likely loose the game. In Life, I’ve learned focusing on too many things usually leads to all things suffering. I try focus and excel at a few things at time in business and personal life.

3) There are things in the game that you cannot control, which dramatically affect the outcome. These things include: the cards you’re dealt, the role of the die and being caught in the middle of a battle between 2 other players. The parallel to Life is obvious- there are many things outside of my control and I must try to let go of these things. Although, I must admit… it’s difficult.

There are tens of thousands ways to learn today. These learning activities might active or passive. By paying attention to passive opportunities: you might just pick up some valuable lessons - even from a board game.

In case you are interested in some active learning, here are links to Risk Game and great products for learning a foreign language:

Risk Board Game

Learn a Foreign Language - Rosetta Stone

Risk Godstorm Game

Bandy in Minnesota

If you are in or near the Twin Cities, Minnesota on Nov 25th, 2006 the USA National Bandy team is playing the Canadian National Team on the John Rose Oval. It starts at 4pm and is family friendly. I think it is free - more info here- http://www.usabandy.com.

Bandy (Bandy Wikipedia Link) reminds me of a combination of soccer and ice hockey.

“The OVAL is the largest refrigerated sheet of ice in the world … there is 110,000 square feet of ice at the OVAL“.

I’ve just started to play bandy and am having a blast. It’s a fun, fast sport and the Oval is such a wonderful and unique outdoor rink. If you are in the area, I highly recommend stopping out at the Oval this weekend.

Using Hibernate Synchronizer 3.1.9 with Spring and Hibernate 3

The following will teach you how to use the latest version of Hibernate Synchronizer with the Spring Framework. This post assumes you already installed the Hibernate Synchronizer in Eclipse.

Before, I begin, it’s obvious Joe is working on Spring Integration in Hibernate Synchronizer. I missed a few releases from 3.1 to 3.1.9, but there is a Spring Template now included. I’m not sure how to use it.

Like many things, there are more than one way to do things. The following describes how I have integrated Hibernate Synchronizer with Spring Framework and Hibernate 3. I hope it is helpful to you. You may also wish to see my previous posts on Hibernate Synchronizer and Spring

Overview:
Section 1: Update Hibernate Synchronizer settings for a particular project
Section 2: Update Hibernate Synchronizer global settings for all projects
Section 3: Generate and Configure your Hibernate mapping files
Section 4: Delete the Interfaces
Section 5: Configure Your Spring Files


Section 1: Update HibernateSynchronizer settings for a particular project
1. Update the Hibernate Synchronizer to use a custom base root. From Menu bar: Project->Properties->Hibernate Synchronizer->Data Access Objects tab->Check “I would like to use a custom root” and enter full path to the SpringBaseRootDAO; e.g. com.codesponsors.data.dao.SpringBaseRootDAO. Click Here for SpringBaseRootDAO source2. Update the Hibernate Synchronizer to use a custom Exception class. Same location as above. Enter “org.springframework.dao.DataAccessException” for DAO Exception input box

Section 2: Update HibernateSynchronizer global settings for all projects

1. On Eclipse Menu bar, click Window->Preferences

2. Click Hibernate Synchronizer on left panel

3. Click Snippets

4. Update Base DAO Snippets

a) Expand Base DAO
b) Replace Action Methods with this content
c) Replace Finder Methods with this content
d) Replace Imports with this:

import ${class.DAOPackage}.${class.DAOClassName};

e) Replace Required Methods with this content (I removed JRE 1.5 specific content from snippets)
f) Replace Class Constructors with:

public ${class.BaseDAOClassName} () {}

5) Update Root DAO Snippets
a) Expand Root DAO
b) Replace Constructor Methods with this:

public _RootDAO () {}

6) Update Base Root DAO Snippets
a) Expand Base Root DAO
b) Replace Constructor Methods with this:

public _BaseRootDAO () {}

7) Update DAO Snippets
a) Expand DAO
b) Replace Class Definition with this:

public class ${class.DAOClassName} extends ${class.BaseDAOClassName} {

c) Replace Class Constructors with:

public ${class.DAOClassName} () {}

Section 3: Generate and Configure your Hibernate mapping files

1) In your classes directory, generate your Hibernate Mapping file. See post: Generating a Hibernate Mapping file with Hibernate Synchronizer in Eclipse for more info.

2) Open the Hibernate Mapping file and change the meta sync-DAO attribute from false to true

3) Right click on the Hibernate Mapping file, choose Hibernate Synchronizer and select Synchronize Files. You should now have plenty of new classes and packages in your source folder.

Section 4: Delete the Interfaces

Delete the interface files generated. For example, if your base package is com.codesponsors.data, then delete the com.codesponsors.data.dao.iface package. Yes, I meant to say that, delete the interfaces.
Now, I realize some senior developers and architects will want to talk about best practices in OO programming. We will talk about the benefits of providing the API in an interface form vs. an implementation class. We will discuss how this will allow implementation to change in the future and not have to track down all the changes in the calling code. We might discuss code readability. Yes, most of the time I agree. In fact, I use interfaces all the time for these same reasons. However, I think it’s overkill in DAO pattern and especially when using Hibernate. In the concept sense, Hibernate is the implementation while the DAO classes are the interface. This probably warrants another post entirely, so I’ll cut it short. I’ve been using Hibernate Synchronizer with Spring for over a year. See my previous posts. The introduction of Interfaces in the last releases of Hibernate Synchronizer offer no benefit to my current or future applications. Please leave comments to convince me otherwise. I look forward to your insights. Anyhow, moving on…

Section 5: Configure Your Spring Files

1) Configure your generated DAO(s) to inject a LocalSessionFactory for HibernateTemplate’s “sessionFactory” property (SpringBaseRootDAO extends HibernateTemplate). For example, an entry in the applicationContext.xml might look like this content

Conclusion

Hope this helps! As I said, comments are welcome and appreciated.

PS - I wish we could provide a simplified version of Hibernate Synchronizer specifically for Spring Framework users. It seems like Joe is on his way to provide this functionality, but I’m not sure which way he is heading.

PSS- I’m thinking of making the above instructions into a screencast. Would that be helpful? I would have to charge a little for the bandwidth and effort to make it. Maybe $7? Contact Me or leave comments if you are interested in a screencast of these instructions.

Next Page »

ServiceCycle is a registered trademark of Supergloo, inc..