Saturday, June 30, 2007

Switcher: The Mac Guys Tried to Kill Me

I've been pretty excited over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past few days about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of getting a Mac. I've been a PC user for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 past 20 years, so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of getting a Mac never really phased me until recently. Having seen some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cool things, and with Parallels making application compatibility so seamless on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Intel based Macs, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 concept of actually getting one has been gnawing at my mind. Well cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 opportunity finally came into fruition when my fiancee decided to buy a new laptop. After a few days of discussion, I sold her on a Mac. Kind of funny since I'm not a Mac user myself.

So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 big day arrived. Not my wedding day, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual purchase date. My fiancee was kind enough to point out that I seemed more excited about buying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 laptop than our wedding, but thats anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r story. So we get to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Apple Store, and wouldn't you know it, our timing couldn't have been worse. Turns out that it was also cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same day cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IPhone was released. So after seeing a line about half a mile long, and having no success convincing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 door man to let us in, we decided to wander around cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mall and wait for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 line to disapait. I wasn't concerned with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 media circus and foolish behavior of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IPhone crowd. But I believe some of my choice words must have made an impression on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 door man. I mean, why cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hell did an Apple Store have a door man anyway?

So after some grumbling, and after seeing how overpriced cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Sony Vaios were in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 midst of my stubborn reconsideration brought upon by being turned away due to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IPhone celebration, we returned about a half an hour later to a non-existent line. All that for people to play with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IPhone, yet so few bought one. Of course cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole ordeal left me with a bit of a bad taste in my mouth, so even though I was determined to buy a MacBook, I decided to be a little bit of an antagonist towards cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Apple Store staff.

Now I wasn't being a prick by any means. I more or less decided to play cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 part of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ignorant consumer and poke a little fun at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 whole Apple counter culture that I had apparently been suckered into. So while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 door man was less than customer service friendly, my salesman was more willing to answer such questions as "Whats so special about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IPhone?", "Doesn't Windows Mobile and Blackberrys already do that?", and "Why should I get a Mac, doesn't my PC do all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same things?". Of course, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se questions I already knew cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 answers to, I just wanted to amuse myself before an act that at this point I really felt was selling my soul.

The Apple Store staff did catch on to my ribbing though, so apparently I wasn't as clever as I thought I was. They joked with me a little with such retorts as "Well, a PC guy just couldn't understand", and "Well if you had told cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 door that you were a PC guy, we wouldn't have let you in". Was that salt in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wound?

Long story short, we walked out with a very cool new MacBook, a free IPod Nano since my fiancee is in college for her Masters, a customized Western Spanish keyboard layout, a free photo printer, a copy of Parallels, andcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sense that I had accomplished my goal, gotten some good rebates, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 knowledge that Dell could never match cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bang-for-buck factor I had walked out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 store with. Of course, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 story comes when I, in my excitement, opened cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 box in my fiancees truck. Now, Im pinned in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 passanger seat by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 printer box, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that I can't recline due to a lack of a extended cab, and all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 remaining doo dads and doo hickeys we came out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 store with. I couldn't wait to open cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 box and fire up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mac. So thats exactly what I did. So here I am in her tiny truck, with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 printer pinning my feet, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MacBook box wide open, and packaging material all over. I turn on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mac, and was satisfied. That is until a friggin Brown Recluse Spider came crawling out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 packaging material right on my lap. So between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 paralizing fear of one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most media hyped venomous spiders staring me in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 face, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that I couldn't move with all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 boxes and packaging material pinning me in my fiancees tiny ass passangers seat, I was pretty much sure my night was going to suck from that point on. Luckily, my fiancee, not having her mobility limited by her enthusiasm for technology, she squashed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dang thing with a card she had laying around. That leaves me to wonder if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Apple Store folks decided to have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last laugh. I'll tell you, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mac vs PC Commercials, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y sure has hell didn't show cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mac guy trying to kill cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PC guy with arachnids.

So with that adventure out of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way, I am very happy with my MacBook.
With all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 reviews out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re I don't need to repeat. A few assessments however.

1. Parallels does indeed rock. And although it is heavily advertised as working with Windows XP, it works with just about any PC based OS, just like VMWare. In fact, we went with a Windows 2000 install instead.

2. The only distinguishable difference between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VMWare Workstation and VMWare Server instances I can tell are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 price tag and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 integration of native client OS apps into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Host OS. Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise, it works pretty much cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same, with you having to install cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Tools incá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client OS in order to get things like clipboard sharing, shared folders, etc.

3. Eclipse runs like crap under OS X. Eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Apple or Eclipse needs to fix that. It runs faster with Parallels than it does natively under OS X.

4. The 30 day Microsoft Office for Mac Test Drives is a joke. Theres tons of comparisons between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mac and PC versions of Microsoft Office, so I won't comment on those.

5. iLife, while being a fairly well rounded suite of applications, just doesn't warrant me ponying up extra money. I find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 idea of installing shareware on a new system distasteful. If your going to put software on a new system, put cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 full version, don't waste my time with time limited trials and trying to sucker me into cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 .Mac online service.

6. Same goes with iWork. OpenOffice.org for Aqua just had cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir developer, so we may not be far off from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 non-X11 version.

Overall though, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MacBook does rock. I will see how well my fiancee fares with it over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 course of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next few months. That will help sway my decision to eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r buying one, or sticking with a PC and moving back to Ubuntu for my day to day tasks.

Friday, June 15, 2007

Media: Orb Networks

Recently I have been hearing a lot from various people about Orb Networks. Orb is a small utility that you run off of your PC that streams, or "MyCasts" cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various media files you have on your system, such as movies, photos, music, etc. Whats really cool about this is that it lets you access your media anywhere in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world. So if you keep an MP3 collection on a home system, if its running orb, you can access it no matter where you are, assuming you have Internet connectivity. It also gives you access to file shares remotely, which in my opinion is a bit of a security hole. What really got me interested was a forwarded link talking about using a home console gaming system for streaming. So I decided to try it out.

For my experiment, I have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire first season of Heros, which I have been meaning to catch up on, recorded onto my laptop. The original plan was to convert cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to IPod video and watch cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 go, however I do enjoy evenings with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mrs. on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 couch watching shows. I have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Memorex portable monitor I use with my IPod video, and that has video out, but thats a pain to set up. So streaming directly from my laptop to one of my gaming systems became an attractive option. This was a feature of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hacked XBox's, so I wanted to give cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XBox 360 built in media player a test.

First, I had to install cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Orb client onto my laptop. After installing it, I configured it to not startup on Windows bootup. I also added my media folder to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list of folders for Orb to search that contains media files. After I installed it, I ran a virus scan and a malware scan using AdAware to make sure no spyware was installed with this application. I also did a quick packet capture while cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 service is running to see who cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Orb client is phoning home to, like I do with ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r apps (and found some surprising results, which phone home to sites that are now blocked at my firewall). After a few minutes, I was convinced I wasn't seeing any bizarre connections, of course furcá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r investigation might be required.

Once installed, I had to sign up for an account. And that was all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was to it.

Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Orb client was set up, from my XBox 360, I went to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Media/Video option, told it to connect to my system, and it displayed my folders.

A few things came up though. Performance was dismally bad over a 10Mbps network and using my wireless adaptor on my laptop. I had to move cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 360 and my laptop over to my 100 Mbps switch. Once cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re, performance was acceptable. So apparently cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 adaptive feature doesn't quite work as advertised. Also, from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XBox 360, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fast forward and rewind buttons did not work. Not sure if this was an issue with Orb or with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Xbox. Additionally, I tried it out using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Wii. This worked fairly well also. But since I was accessing it using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Opera browser, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 browser navigation bars never disappeared. That detracted from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 viewing experience. Plus I had to connect to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Orb servers using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Wii, where as with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XBox 360 it connected directly to my laptop. So I think I'll be watching cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se from my 360 for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time being.

Some ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r features that I did not test were cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ability to record TV using a TV Tuner card. When I set up ORB, it asked me my location and cable channel, and pulled up a TV Guide. Apparently I can watch my cable TV remotely also, just like with a Slingbox. Not sure if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hardware cost for a TV Tuner card and a dedicated machine is cheaper than a Slingbox, but I do like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 added abilities of Orb.

Overall, I am impressed. Where as I was a little suspicious of this software at first, I found no evidence of spyware with it. So I am not sure how Orb stays in business or who pays for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir servers. It did exactly what I needed for media streaming to my home entertainment system via my XBox 360, which opens new avenues for me. So, I can honestly say that I will be using Orb regularly.

Monday, June 11, 2007

Eclipse/Java: Using Hibernate for Data Access

I have been wanting to do a little work with Hibernate for some time now. I finally have a project that has come up where I can get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 excuse to do so. The first step, however, was to get myself familiar with how Hibernate works.

For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 better part of a few hours I have been messing around with getting Hibernate Synchronizer to work with Eclipse. There are quite a few annoying bugs, but so far it has been cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hibernate Eclipse plugins. And I also used Hibernate version 3 as my library in my project. Since my test database is a SQL Server database, I also used jTDS JDBC Driver for Sql Server. I used this instead of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Microsoft driver since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Microsoft driver just plain didn’t work with Hibernate. For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 record, I am using Eclipse 3.3 since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 project I am working with uses BIRT 2.2 M6 reports, and I wanted my development under one roof, and its using JDK 1.5 R11.

The first step of my process was to create a regular Java project under Eclipse. I am sure to include cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hibernate Jar file and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 jTDS Jar file in my classpath/included libraries.

Once created, I go to New, Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r, and select Hibernate Configuration File. This will bring up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hibernate Configuration File Utility as shown in Figure 1. Be sure you get your configuration right since this is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last time you will see this screen once you Finish. I have yet to figure out how to bring this back up. I enter cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 relevant information as shown.

Figure 1. The Hibernate Config Wizard

Next, I need to create cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mapping file so Hibernate can generate my proxy classes to handle communication with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 database and provide general getters, setters, and ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r classes. So I go to File/New/Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r/Hibernate/Hibernate Mapping File. Assuming everything is OK with my connection, on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next screen I can click on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 refresh button to get a list of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tables available for mapping. In my case, I ran into a bug using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Microsoft JDBC drivers here that wouldn’t let me connect. From my list of tables, I want a class to handle Opportunities, so I select cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate table from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 list. Once done, I move over to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 properties tab. Since this is SQL Server, I need to change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ID generator over from Sequences to Identity. Not sure exactly why this is necessary, but I’m not going to argue cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 point eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r. With Derby I was able to use Sequences, and I’d imagine Oracle would work just fine with this as well. If you use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 wrong type, you will get an error when you run your resulting program complaining that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 generator type is not supported in that database.

Figure 2. The Mapping Screen

Figure 3. The Mapping Properties

With cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mapping file complete, now I can go through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 motions of finishing up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration and generating cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 classes. First, I right mouse click on .hbm.xml file that gets creating with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mapping, and I select Add Mapping Reference. I encountered a bug here where when adding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mapping, it deletes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XML version and DOCTYPE tags from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hibernate.cfg.xml file, so be sure you have those handy just in case. If not, you will encounter an error when your finished program tries to access cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hibernate configuration. Next, I open up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hbm.xml file, and change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 value of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 meta attribute=”sync-DAO” tag to true. This will generate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DAO objects for my test program. I am not sure why this defaults to false. Once done, I can save cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n right mouse click on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hbm.xml file, and under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hibernate Synchronizer menu, I select Synchronize Files. This will generate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 needed classes.

That’s pretty much it. Now, I can use Hibernate to access my database. This saves me a lot of time. Instead of having to generate all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ORM classes myself, I can let Hibernate do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 leg work for me. There is also a version of Hibernate for .Net. A few notes of bugs I came across. Like I mentioned above, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 add Mapping Reference wipes out cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XML header from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hibernate.cfg.xml file. I didn’t realize this until I went to run my program and Hibernate couldn’t recognize cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 format. The error I got was:

Exception in thread "main" org.hibernate.InvalidMappingException: Could not parse mapping document from resource TableOpportunity.hbm.xml
at org.hibernate.cfg.Configuration.addResource(Configuration.java:569)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:98)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:88)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:79)
at com.digiassn.blogspot.TestHibernate.main(TestHibernate.java:13)
Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:502)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
... 10 more
Caused by: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:499)
... 11 more


I also got errors when I didn’t include all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 necessary LIB files for Hibernate. This one confused me, since I thought cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 necessary files would be in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Hibernate3.jar file. However, I was mistaken. So be sure to include those. The exact error I got was:

Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.getNewConfiguration(_BaseRootDAO.java:192)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:90)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:79)
at com.digiassn.blogspot.TestHibernate.main(TestHibernate.java:13)



The third main issue I ran into was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fact that Hibernate refused to find my hibernate.cfg.xml file. This was pretty annoying. The error looked like so:


Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1427)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:98)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:88)
at com.digiassn.blogspot.HibernateClasses.base._BaseRootDAO.initialize(_BaseRootDAO.java:79)
at com.digiassn.blogspot.TestHibernate.main(TestHibernate.java:13)

What I ended up having to do was under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 run configuration for my project, I had to specifically add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Project folders root, where my hibernate.cfg.xml file was located, to my classpath. I did this under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Classpath tab, clicking on User Entries, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n advanced, Add Folder, and pointed to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 root of my project.

Figure 4. Adding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 path for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hibernate.cfg.xml

Now, for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 example program I used to test cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration. Basically I just want to to get all Opportunities from my table and display a couple of fields for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. My test program ends up looking like so:

package com.digiassn.blogspot;

import java.util.Iterator;
import java.util.List;

import com.digiassn.blogspot.HibernateClasses.TableOpportunity;
import com.digiassn.blogspot.HibernateClasses.dao.TableOpportunityDAO;
import com.digiassn.blogspot.HibernateClasses.dao._RootDAO;

public class TestHibernate {
public static void main(String[] args) {
_RootDAO.initialize();

TableOpportunityDAO td = new TableOpportunityDAO();
List opps = td.findAll();

for (Iterator i = opps.listIterator(); i.hasNext();) {
TableOpportunity t = (TableOpportunity) i.next();
System.out.println(t.getName() + " - " + t.getFrcstClsAmount()
+ " - " + t.getServiceStartDate() + " - "
+ t.getServiceBranch());
}

}
}