Archive for category Reviews

Modularizing your Grails Application – Domain Classes

This is the second installment of my What Grooves You? series of posts, this time discussing how to modularize your Grails application. While Grails does an awesome job of enforcing MVC once your application reaches a certain size, or you have multiple applications which may have shared components, you’re going to have to start thinking about how your going to modularize the reusable parts of your code.

Read the rest of this entry »

, , , ,

No Comments

Fitting Grails in an Active Directory and NTLM SSO Groove

This is my first installment in the What Grooves You? series of posts, and it deals with the first thing you’re going to need to consider if you are deploying your Grails/Groovy applications in the average corporate IT infrastructure, Single Sign On with Active Directory and NTLM. Like it or not, because all of our existing applications are based on Microsoft technologies our users have gotten used to just going to the URL for the application they intend to use and being instantly recognized and authenticated. Forcing them to sign in again, or worse still forcing them to setup a new username and password for your system would be completely unacceptable! Below, I’ll take you through the steps I took to solve this problem, including the detours that cost me time!

Read the rest of this entry »

, , , , , , ,

20 Comments

What Grooves You?

In my "Day Job", we design and build our applications using Microsoft technologies. In particular, we’re using C#, Silverlight, and IIS to build and deploy our web applications. This makes good sense because the vendors we use are well versed in the Microsoft technology, and like the IT infrastructure of a lot of medium and large companies Microsoft solutions are at the forefront. It’s becoming apparent though that we’re going to have to consider our options and possibly embrace a different technology stack to properly scale and support the applications we’re building.

While I knew that Java servlets and the Spring Framework were the answers, credit goes to my boss Scott Ellis for really doing a deep dive into what technologies are on offer, and coming up with using Grails and Groovy as the best solution for us. Which brings me to the reason for this blog post. I’ve been spending some time playing around with Grails and Groovy, and familiarizing myself with the technology and what is on offer. I intend to do a series of posts here about my discovery process, what problems I encounter, and how I resolve them.

From the searching I’ve had to do in order to get answers or better understanding about the challenges I’ve faced, I think I have a chance to be a real resource to others who are just starting out with Grails and Groovy. What’s more I’m writing from the perspective of a relative newbie to the Java world. Stay tuned as you follow my journey into Grails and Groovy. *Spoiler alert* – I like it, a LOT!

, ,

2 Comments

Catching the Wave

I am something of a Google Zealot, I was using the search engine back before many people knew what it was and haven’t strayed since. I’ve been using GMail for the better part of two years, and it handles ALL of my incoming mail, I even forward all of the emails from my self hosted domains to it. I use Google Docs for everything, including writing and storing invoices for my consulting work and any of my other “office” needs. And I use Google Voice daily for business phone calls. We used Google Maps to find and track rental homes, and it helped us find the place we’re living in now. Google Analytics keeps a finger on the pulse of the (itty bitty) traffic on this site. Google Reader is my RSS reader of choice, which I use almost strictly through a gadget on my iGoogle homepage along with tgadget for Twitter. I sync my iPhone with Google Calendar, and wouldn’t know what I’m doing any particular day without it. You get the idea. :-)

So you can imagine that when I heard about Google Wave, I instantly signed up to receive an early invite. And as you can probably also imagine, I was super disappointed when the first set of invites went out to the public, and I didn’t get mine! I watched as many of the people I follow on Twitter announced that they’d received their invite, and were happily getting started with Google Wave. Of course, many of them were reporting serious usability issues and disappointments but I was never-the-less anxious to get my peek at it. After a few short weeks I managed to trade a Google Voice invite for a Google Wave invite.

Now getting the wave invite was… Interesting.. Evidently when a user is granted some discretionary invitations they aren’t sent out immediately when used. Instead a user “nominates” a person to receive a Google Wave account. Apparently there is some waiting involved, and I suspect some manual human intervention on the part of Google in order to actually send the concrete invitation. After waiting four days (two of which were the weekend) I actually received the email that my invitation had arrived!

My initial interaction with Wave was reasonably short. I watched a couple of the introduction videos, make a few setting changes to my profile, added a couple of people who I knew were on Wave, and logged out. My first real Wave was from an acquaintance of mine from Twitter who had also recently gotten Wave. We both admitted that we were excited to have the new tool, but really had very little idea of what it was really intended for!

After having a couple interactions with a few others later that day, I started to get a feel for the interface and the power of the tool. See, I’m currently working on a software project which is reasonably large in scope. The nature of the company I work for means that we didn’t have the time, money, or expertise to hire a big enough development team to accomplish the software solution we’re trying to build. So, we’re managing with myself as the lead architect, a business analyst who knows what this thing is supposed to do, and a project manager on our side. Then we’re having all of the development work done by an offshore team.

Very quickly it struck me that Wave lends itself VERY well to this sort of thing, and in fact I think real-time collaboration for creative/design purposes is exactly what this tool is designed for. In many of the sessions of collaboration that we’ve had over the phone, having a parallel wave would be invaluable! Imagine an integration with Google Docs, I can create a wordpressing doc, a presentation, or a spreadsheet and simply attach it to the wave. Or I can take a screenshot and toss it in there where it is appropriate. Everyone has visibility to the results. This thing is DESIGNED for agile, if you ask me.

That said, this is still a very early version. In all of the “buzz” about Wave it was claimed that it will contact you in any way that is appropriate. If you’re at your computer, and logged into Wave, you’d get the real-time view. Not logged in? That’s okay we’ll nag you by email. Not at a computer? Easy you’ll get an SMS message. None of that functionality seems to be there yet though, as there is no place to supply my email address (you’re supplied with an @googlewave.com address which you can’t access), or my phone number (should already know my Google Voice number). And there is the matter of stability. It certainly has some kinks to be worked out.

So, now that I’ve caught the Wave, I’m looking forward to really starting to use it to my advantage and riding along to see how the tool evolves. Isn’t it fun being an early adopter?

1 Comment

You get what you pay for, or less!

Phoenix FlashSo you likely know that I recently dropped and broke my Nikon SB600 flash. Disappointed as I was about this, I was already thinking of how I’d replace it. My searches for Nikon compatible flashes had always included these apparently super affordable Phoenix flashes. Now, of course, I was always very suspicious of these for a couple of reasons. First, in all the auctions and other sites selling these I never saw information indicating if this had ANY manual control, and there was never a picture of the rear panel of the unit! Second, there weren’t really any reviews of it online. I found a few, but usually it was on something like Amazon where it was fairly apparent that those reviewing were (at best) uninformed users who wouldn’t know the difference between a “good” flash and a bad one.

In spite of those facts though, I convinced myself that spending $80 to find out if the thing is any good couldn’t hurt, right? Wrong! The thing got shipped reasonably quickly to me from the eBay seller, and upon opening it up it seemed like it had some potential. Yes, it was kinda cheapy plastic and felt light, but that is what I expected for something so inexpensive. The real dissappoinment came when I put it on my camera, and snapped a few shots. You can see the results here. Needless to say this thing, even when doing full power pops, can’t provide enough light to expose a shot properly. This, in spite of the fact that it’s a big, imposing looking flash. They did a lot to try to make it look like an SB800, hinting that it might actually have some decent performance.

Back panelSo now, to answer some questions I had about it. This is strictly intended for use with iTTL. The back panel just contains a couple switches, one to turn it on, and one to switch “modes, and a guide for ISO/zoom/distance that this flash supposedly covers. The switch to change between “BL” and “STD” has absolutely no influence on the poor performance. Using a Cactus v2s to pop it seems to do only a very low power pop and the flash does not seem to recharge afterward.

The zoom is manual which is to be expected, and goes from 28mm to 85mm. When I zoomed it in to 85mm, and fired it I noticed some artifacts from the lens/diffuser which were distracting see here.

My plan was to use it along with a Nikon SC-28 iTTL cable to simulate the way I was using my Nikon SB600 when shooting butterflies on the fateful day that I broke it. I figured that I would lose some convenience having to go with a cable, and zoom the flash manually. I didn’t anticipate that the thing wouldn’t have enough power to expose a frame properly! So if you’re wondering if this thing is any good, and maybe thinking you’re willing to give up a little performance and convenience for a STEAL of a flash, think again. You do, sadly, get what you pay for.

For what I did actually do to replace my Nikon SB600, stay tuned. I went on a bit of an ill advised shopping spree, and have some exciting stuff headed my way!

, , , , ,

No Comments

Crashing at a new pad

If you’re reading this, it means that the DNS records have replicated and Random Musings is now fully hosted on my shiny Linode VPS!

I’ve been steadily growing out of my previous hosting solution over on Host My Site. All things being equal they’ve served me very well, but running Wordpress started to demand more memory than they’d allocate for a shared hosting customer. Then there’s the limited functionality of the PHP stack which I was starting to run up against quite regularly.

I have to say I’m SUPER pleased with Linode so far. I signed up for it on the 21st, and by today I’ve got it completely setup hosting web and email for three domains, with another on the way. I was worried that it would cost me money, but when I account for the other hosting accounts I’ll be able to close I wind up money ahead. Sweet!

Hopefully this change will be seamless to ya’ll, might notice an increase in speed. Let me know if you see anything “odd”. :-)

1 Comment

UNYK Address Book

I just received an email today from one of my contacts on LinkedIn. It was an invitation to join this new UNYK Address Book application which is apparently in beta.

I think I’ve made it clear that I’m a big fan of anything which centralizes my information and allows me to access it through a web browser from anywhere, so I checked it out.

Overall, it looks quite promising. It will harvest your existing contacts from several different locations (Yahoo!, Google, LinkedIn, Microsoft Outlook, MSN, etc.) and consolidate them. When you sign up you provide your personal and professional contact information, and this in turn keeps your contact record up to date for anyone who has you in their address book. Their premise is that everyone will eventually use them to manage their contact information, and therefore your address book will always be “automatically” up to date, because all of your contacts will have updated their information with UNYK.

My first, and perhaps biggest problem with the service is that they don’t provide an https:// option. So as I’m entering all of this personal and professional data, as well as supplying my login credentials for these other services it’s all going across the wire in plain text!

My second problem is that I’m already using GooSync to store my contacts, and then synchronize them with my HTC phone, which is my life line as far as contact information is concerned.

There is also some considerable controversy regarding the fact that it will effectively “spam” the contacts that you do import inviting them to join UNYK as well. This is no doubt how the email was sent to me. I’m less concerned about this than the previous two points however.

So in order for me to fully embrace this new UNYK solution, it’ll have to get a “secure” presence, and either integrate (which they seem to already do quite well with several other services) with GooSync, or provide the same functionality (syncing with my HTC).

Seems like a cool idea, but it’s not quite mature enough for me to dive in head first. I’ll keep an eye out though!

EDIT:
Since I was more than a little bit surprised that there was no secure access to login and supply my credential for other services, I did a little further digging. UNYK insists in their privacy policy that they encrypt any “sensitive data” that goes across the wire. Here it is directly from their site.

How Secure Are Your Web Servers? [ ^ ]
The security of your personal information is important to us. When you enter sensitive information (such as credit card number) on our registration or order forms, we encrypt that information using secure socket layer technology (SSL).
To learn more about SSL, follow this link http://www.verisign.com/products-services/security-services/ssl/index.html.

We follow generally accepted industry standards to protect the personal information submitted to us, both during transmission and once we receive it. No method of transmission over the Internet, or method of electronic storage, is 100% secure, however. Therefore, while we strive to use commercially acceptable means to protect your personal information, we cannot guarantee its absolute security.

If you have any questions about security on our Web site, you can contact us.

So, since it looked like they used a lot of Web 2.0 technologies I thought possibly they were doing some javascript magic to encrypt the stuff going across the wire, I did a little test with Wireshark to see what got sent. I bit the bullet and imported my gmail contacts, and this was the result, with the password obscured by me, of course.

POST /Scripts/dotNET/ContactFinderProxy/Services.asmx/ImportWebContacts HTTP/1.1
Host: www.unyk.com
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.17) Gecko/20081021 Firefox/2.0.0.17
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://www.unyk.com/Diffusion/main.asp?nub=5EDC7952-7D0D-445F-B49A-0E068F4CA09E
Content-Length: 76
Cookie: BIGipServerwebUnyk=185207306.12310.0000; s_cc=true; s_campaign=en-US-0064; s_cp_persist=en-US-0064; s_sq=%5B%5BB%5D%5D; s_vi=[CS]v1|49503BB000004A0E-A02085E000051AD[CE]; InfosCompleted=3; nub=5EDC7952%2D7D0D%2D445F%2DB49A%2D0E068F4CA09E; __qca=1224815862-86415704-76514833; __qcb=1181521546; UNYK=LoginPassword=&LoginUsername=&RememberOption=0
Pragma: no-cache
Cache-Control: no-cache
provider=Gmail&username=qwikrex%40gmail.com&password=*********&useOctazen=true

Clearly not secure. I do have to admit however that I seem to have been wrong about the mobile sync, they do provide this, though I’ll have no idea how well it works until they fix the security problem.

, , , , ,

2 Comments

Photo Sharing Services

Since I became a dad, and bought a dSLR I’ve been trying to figure out the best way to store and share my pictures of my son, and other interesting stuff I shoot. As far as securely storing it locally, I have a sizable RAID setup that handles redundantly storing my pictures on two drives, but it’s the sharing part that I’ve had some trouble with.

Initially, I was using my own web host and the rather nice PHP based SPGM photo gallery software. The problem though, is that it’s fairly tedious to resize and upload the images (I wrote a whole blog post about it here), and I have “only” 20GB of storage and 500GB monthly throughput. When shooting at 10 megapixels I could fill that space up quickly. Beyond that I knew that some of the web based sharing sites out there had some really cool features for sharing and organizing your photos.

So, the search begins. I had some (I thought) fairly simple requirements. I was hoping to have these requirements met by a free solution, but I was willing to pay a nominal subscription fee if I got everything I was after. Here’s the run-down of what was important to me.

  • Ability to upload original sized images. Some services have a limit to the size of each image
  • Unlimited storage/uploads
  • Sophisticated organization features. This means unlimited “albums” and the ability to have an “album” hierarchy and probably some other stuff that the service would surprise me with
  • Ability to use my images on my website, blog, forum posts, etc.
  • Ability to have a gallery on my site which displays all of the public images from the photo sharing site

That’s a fairly short list, and seems as though it should be fairly easy to match but surprisingly it isn’t.

So let’s break down the services I tried and how they stack up. First, let me say that I did not try every service out there, I ruled some out just based on their feature set, some due to their obscurity etc. Listed here are just the ones that I either discovered myself, or were directly suggested to me. If you want to do your own search and want to see all of the services available, here are a couple links that I found useful during my search.

Top Ten Reviews
CNET Reviews

Picasa

This was a fairly natural choice for me since I’m a pretty heavy user of Google services. I use Gmail, Google Reader, Google Analytics, Google Calendar, Blogger (switched from blogger to wordpress), Google Docs, and YouTube. Additionally, Picasa has a great desktop tool for uploading photos that acts as a great photo management tool on your local system as well.

Unfortunately, Picasa only allows you to organize your photos into albums with no hierarchy. Also, while you can upload a photo in it’s original size, the number of photos you can store is limited by your storage space. You’re given 1GB of space for free, and you can buy additional space on a yearly basis. But again, shooting at 10 megapixels means I’m going to need a whole lot of storage space, and I suspect that even their 400GB plan for $500 a year would become insufficient sooner or later.

Facebook

To be honest, Facebook is actually what warmed me up to the idea of using a photo sharing service on the web. So while it’s technically not a photo sharing service I thought I’d talk about what I did and didn’t like about the photo storage and sharing options it had.

First, I loved how easy it was to upload pictures and tag the subjects in the photo. Facebook also had no limit to the number of photos I could upload. Of course, those photos were downsized to a much more reasonable 604×404px, and their album hierarchy was also flat. And perhaps the most annoying thing was that I couldn’t share my pictures on my own web site and the galleries I made public I had to link directly. For instance I can send you to my public album of artistic shots but I can’t send you to a page that shows all of my public albums on Facebook. If you had a Facebook account, and were added as one of my friends you could see them all, but that’s cumbersome.

Snapfish

Frankly, I didn’t get very far in evaluating this service. There wasn’t much public information about the services offered, and it had a requirement of buying some product from them at some specified interval in order to keep your account active. As such, I never even signed up or tried it.

And the winner is….

Flickr

As it turns out, this had all of the features I wanted, plus some ones I didn’t realize I wanted until I used them.

First, the negatives. With a free account your only allowed to upload 100MB of files each month, and you’re limited to 3 “sets” (Flickr’s version of an album). Also, you can’t technically have a multi-level hierarchy of sets but there are ways to overcome that (more on this later). Of course, those limitations are removed as soon as you buy a “Pro” account which is a paltry $25 per year. Needless to say I went with that.

Now the good stuff! While you can only have a flat hierarchy of sets, you can create “collections” which contain sets or other collections. These can be nested up to 5 deep. This more than handles my organization needs. For instance, I’d like to categorize all of my pictures of my son, then break it down into particular types of events, then the specific event. Something like “Baby Pictures -> Firsts -> Crawling, Walking, Solid Food, Etc.”.

And if that organization is not enough, you can also tag a photo with keywords that are search able by the community, and act as a sort of metadata for organization.

Built right in is the ability to use your photo in a variety of sizes on your blog, forums, website, or whatever you like. Even more exciting is that there are plenty of options for sharing your pictures on other sites, as well as a public landing page for you. They even offer an open API which I’m sure I’ll find useful eventually!

So there it is. After a fair amount of time spent searching I found the solution that works best for me. Hopefully my comparison can help you if you’re searching for a photo sharing service.

, , , , ,

1 Comment