Wednesday, December 29, 2010

Lost Birthdays

As the new year for the calendar comes around I appropriately have an idea for a post regarding birthdays aka a new year for individuals. Up until this morning I had maintained a separate calendar on Google Calendar for birthdays. Each birthday would get an annually repeating event which "never" ended (luckily I didn't have to stop repeating for anybody). The system worked pretty well for me except I never really checked it to see when a birthday was happening so it was relatively useless, of course that is a different issue.

Well today I was chatting with my good friend @alexredsox and he told me his birthday was in a few weeks. I quickly set off to add it to my calendar, but while I was off doing this he recommended I try a different approach. He is well aware of my love for gmail and most things Google, so he proposed a much better solution to the birthday situation. So if you too use Gmail and Google Calendar just do the following:
1. Go to your contacts in gmail.
2. Update the birthday field for your contacts (if you haven't already)
3. Go to Google Calendar
4. In the upper right go to Settings > Calendar Settings
5. In the Calendar Settings navigate to the Calendar tab
6. Click the Browse Interesting Calendars >> link on the right hand side of the "Other Calendars" section.
7. Once in "Interesting Calendars" go to the "More" tab
8. On the more tab subscribe to the "Contacts' birthdays and events" calendar. (This will add a new calendar to your Google Calendar that will show an event based on the birthdays in your contacts.)

Now for the advanced users here is how to add the Google Calendar widget to your Gmail
1. Go to Gmail
2. Navigate to Settings
3. Select the Labs tag
4. Enable Labs if you haven't already (I suppose if you are advanced this is probably enabled already)
5. Enable the "Google Calendar gadget"

Now every morning when you log in to Gmail for the first time you can quickly see any birthdays for the day. All without having a Facebook account.

Thursday, November 18, 2010

Apple TV + AirPlay + iPhone = The Future of the Living Room

In a previous post I gave my initial reviews of the new Apple TV. I bought the new one because it was smaller, supported NetFlix and also had the promise of a new technology called AirPlay. Based on the increasing number of devices in this area it is clear the tv is the next battle ground and will end up being as intense as the current smartphone war. The Google TV in particular was announced at about the same time as I bought the Apple TV and actually gave me pause. The Apple TV seemed to have a much more limited feature set and only had apps for YouTube, Flickr, NetFlix and some internet radio streams. Google TV had many more apps like Hulu, Pandora, YouTube, Flickr and with promise of many more.

In the end the Apple TV fit best with my home's technology eco-system, and I also really loved the first generation. As you know I really enjoyed it and while it was annoying to open up the MacBook to play music, everything else worked like a charm. I was even pleasantly surprised to see that the source photos for the slideshow are actually cached on the device and don't require the MacBook to be open. We originally had done NetFlix streaming on the TiVo, but this was a bit of a pain since you can only access your Instant Queue, and have to add things to it via a computer or other device. Annoying!!! NetFlix on the AppleTV is infinitely better and lets you browse movies and watch them instantly completely bypassing the InstantQueue.

Fast forward to a few weeks ago when I got my hands on a beta of iOS 4.2 and started playing around with the audio only version of AirPlay. Basically AirPlay lets you output any audio/video from your mobile iOS device to an Apple TV connected television. The only disclaimer being that the app has to use the native iOS media player. When this was first announced it was only demonstrated using the iPod feature for both music and movies, it wasn't clear at the time that this would be included in ANY app using the media player. It is really easy to use AirPlay, basically the media player on the iOS device gets an additional button if it detects an Apple TV on the network. You just tap the AirPlay icon and choose the Apple TV to output to and within seconds the audio/video shows up on the television. You can then put your iOS device away OR using audio multi-tasking you can continue using other apps.

Why is this so important? Combined with an iPhone and AirPlay the Apple TV immediately gains thousands of apps. This means apps like Pandora, Sirius XM, Hulu Plus, and the MLB At Bat apps are all capable of streaming to a television. Of course this only scratches the surface, basically any app you use on your iOS device to listen to music or watch video can be output to an Apple TV with AirPlay. Of course given Apples standard operating procedure of incrementally adding features the possibilities seem endless. I am sure it won't be long before AirPlay lets developers output the display of a game to the AppleTV, while controlling the game from the iOS device. The possibilities are endless.

The other important right move made by Apple is to realize that people don't want/need a web browser, email client or Twitter feed on the television. These types of activities are personal/private and aren't meant to be shared with everybody in the living room. Keep it simple, people just want to be able to put audio or video content on a bigger speaker and screens.

Monday, November 8, 2010

Storage is Cheap

Way back in 2009 I was quickly running out of space on my 80Gb MacBook hard drive and investigated upgrading to something bigger. I ended up going with a 500Gb internal drive with a 1Tb external for back up using Time Machine. All was going well until this summer when a friend convinced me to start taking pictures in RAW format instead of JPEG. Once I made the switch the drive I thought would take years to fill had less than 50Gb of free space.

I went back to the drawing board to figure out my next steps. One important factor last time was being able to keep all my movies, photos and music on the MacBook so I wouldn't have to find an external drive and hook it up every time I wanted to make a new movie. I went to NewEgg.com, the same site I bought the 500Gb from and order a 1Tb internal drive. It arrived a few days later and I started the arduous task of backing it up so I could migrate to the new drive. I used a 20Gb bootable drive to clone the internal drive to an external 500Gb drive I had laying around and started to take the old drive out. Unfortunately I forgot to read the details on NewEgg.com and found the drive was to tall. So I sent the drive back and returned to the drawing board. After further review of the internal drives I found they all wouldn't fit in the MacBook and upgrading to 750Gb wouldn't tide me over for very long.

I decided my requirement for having everything on one drive was not as important now as it had been in the past (two kids don't really provide time for much beyond storing and rating photos). I figured I had enough drives on hand to give me some time to really think about it and also think long and hard about how a Mac Mini might fit into the picture. I did add one new piece of hardware to the picture though, the 20Gb drive I had been using as a bootable backup was really old and big, so I decided to drop $40 and replace it with a 16Gb USB flash drive. It takes up much less space and doesn't require a power cord or firewire cable. It took most of Sunday to get everything squared away, but in the end the plan came together.

Here is the setup:





Finally, I did have a problem with Time Machine and I wanted to document my fix here. I was playing around with attaching my Time Machine drive to the AirPort Extreme, but iMovie was recognizing the movies on the movie share when configured this way, so I had to switch back. While I was in the middle of testing iMovie I also attempted a Time Machine backup (big mistake). It didn't recognize all of the old backup files (I could see the backups in the backups directory of the Time Machine Volume) and wanted to do a clean backup. I cancelled the back up and switched the Time Machine drive back to directly connecting to the MacBook. I attempted to do a backup and again it wanted to do a full backup and didn't have enough space. After browsing the forums for an hour or so I finally found the fix. All I had to do was delete the "sparsebundle" file in the root of the Time Machine volume. Once this was deleted I tried another backup and it did an incremental backup. I even verified it by going "in" the Time Machine and looked at what some of the directories looked like a year ago.

Wednesday, October 20, 2010

Back to the Mac Media Event Follow-Up

Well I went scored 4 out of 4 on my predictions.

Mac OS X Lion - The new Lion version was announced and they are going to take things they learned from iOS and bring them "Back to the Mac". There will now be a Mac App Store for purchasing apps. A new launchpad aka home screen will be featured. A lot more support for multi-touch is going in Lion including a new Mission Control window for easy navigation between apps, think new and improved Expose'. Finally lots of apps are going to get Full Screen modes with easy switching between apps. It will be released next summer.

iLife '11 - As predicted this was announced with new versions of iPhoto, iMovie and GarageBand.

iPhoto does NOT have improvements for Faces, but does now have a full screen mode and has a look and feel much like the iOS photos app. There is new support for books, letters and some more Facebook integration.

iMovie gets some cool upgrades including improved audio editing capabilities and some new audio and video effects. The other cool feature is the ability to create movie trailers which gives you a story board and you just drag and drop different clips onto it combined with some manually typed in things like people in the movie and activities from the movie. It creates really cool looking videos.

GarageBand had some changes, but I didn't really pay attention since recording new music is the third priority for when I use a computer for creative purposes and I rarely get to my second priority which is making movies.

FaceTime - Apple is going to release a new FaceTime app for the Mac that will allow iPhone4 and iPod Touch users to do FaceTime video chatting with a desktop computer. Very simple and basic app which integrates with the Address Book app.

MacBook Air - A new MacBook Air was announced that is lighter and smaller than the previous generation. It comes with a crazy battery life and a new multi-touch trackpad. There is also an 11" model to go with the 13" model. The craziest part is the starting price for the 11" with a 64GB SSD is $999, which is dramatically lower than the previous MacBook Air.

Overall there were some interesting things. I am most excited about FaceTime and might consider buying iPhoto if only for the full screen move and cleaner UI. Lion is a great first step towards merging the Mac OS X and iOS, but there is nothing completely revolutionary that I can't wait to use.

Back to Mac Media Event Predictions

Last week Apple announced their second media event of the fall season with the title of "Back to Mac", scheduled for October 20, 2010 at 1PM EDT. Of course being an Apple fan-boy I am very excited to see what is in store for the Mac, which has appeared like a red-headed step child since the iPhone was released.

Here is the image for the event.


Okay so here are the predictions:

Mac OS X Lion - It seems pretty clear from the image above that Apple will make some announcement around the next version of Mac OS X. I am predicting some listing of the features and also a couple demos of the new features, but it probably won't be available until the WWDC next summer. The convergence begins....I expect it to include some new UI features with a more iOS look and feel as Apple begins the process of moving towards a single OS for all their devices. Not exactly sure about any other changes besides some general UI stuff, but maybe some updates to the native Mail and Calendar apps.

MacBook Air Update - The MacBook Air was announced back in May of 2009 and hasn't been updated since, so I think a new version is a near certainty. The new MacBook Air will probably be thinner, lighter and have a longer battery life. I think they will probably add a new screen size and also add some more multi-touch support. The long shot would be an actual touch-screen and ability to switch from Mac OS X to iOS.

iLife '11 - Again it has been two years since the last iLife update and it is time for some updates to the suite. Not exactly sure what the changes will be, maybe bringing some more features to iMovie and hopefully some better Faces usability in iPhoto.

FaceTime - I have had an iPhone 4 now for four months and have only used the "killer" app FaceTime on it once. The big problem is I don't know many people with a device that actually supports FaceTime. I think iChat will finally get FaceTime support and Windows may also get iChat as well. Since Apple wants to get this out to as many people as possible I don't think they will include it in iLife and will hopefully push it out as a Mac OS X update.

Now I just have to wait five more hours and find out if my predictions are true.

Tuesday, October 19, 2010

My New Apple TV

The new AppleTV was officially released at the end of September, but with most Apple devices I couldn't actually buy one in the Apple Store (so annoying). However, this time instead of getting on a waiting list or going to the Apple Store everyday for three weeks I decided to order it online. About a week after ordering it appeared on my doorstep while I was at work. Of course now being the parent of two children I couldn't just start hooking it up when I returned home and had to wait a few hours before I had some free time. Once I heard the "five minutes 'til dinner" call I figured I would get started and see how far I could get. It turns out that is all I needed to get it hooked up to the TV, integrated with the iPhone remote and playing music from the MacBook. Apple has done a great job of simplifying the AppleTV and no longer requires syncing media like an iPod, instead you just start Home Sharing (which only involves entering an Apple ID and password) on the AppleTV, iPhone and MacBook and you have access across the devices.


I was very curious about whether or not I could set up the screen saver to use my photos instead of the stock photos and was happy to see it was not only possible, but much easier than worrying about syncing and having enough free space for photos. Of course the MacBook does have to be awake with iTunes open, which will be a change for us since we usually close it after every time we use it. It certainly makes me want to get a Mac Mini so the media will always be available, but I need to think about how that setup will look a little more before diving in with another new plan.

Finally, I tested out the Netflix application and it was a dramatic improvement over the Tivo Netflix application. The Tivo requires you to adding things to your InstantQueue on another device before it is available. The AppleTV on the other hand lets you browse movies and watch them right away complete with descriptions and controls for modifying your InstantQueue.

So far I have only spent a little bit of time with the new AppleTV, but I am happy with my purchase. For $99 the improved speed, Netflix and small size is well worth the price, but the possibilities going forward with AirPlay and integration with other iOS devices makes this a no-brainer.

Oh yeah and having a new device also gave me a chance to move some electronic devices around and clean up my setup. I ended up removing our audio receiver since we never use it and in its spot in the entertainment center moved the cable modem, 3G MicroCell and AirPort Extreme. Ever since I added the 3G MicroCell to the picture the kitchen was beginning to get cluttered with wires and devices, but I couldn't find a good place to put everything. Now they nicely sit in the entertainment center and also allow me to have some hard-wired network connections between the Tivo, Wii and Apple TV.

Wednesday, October 6, 2010

Quick One: SQL Server Image Column to Text

I am working on a project where I have some xml data stored in an SQL Server database column of type Image. Apparently there is now an XML column available in SQL Server, but for some reason we don't use it.

I was working on a similar issue a few weeks ago and downloaded, SQL Lob Editor, which was really great. It allowed you to point to specific tables and columns and download all of the content to the file system. Unfortunately my trial expired and I rarely need this functionality so I didn't think the $75 would be worth it.

So again today I set out on Google trying to find some free tool to get this xml data. A colleague mentioned that there is a way to do it from SQL Server natively. A few minutes of searching and I found the query:

select convert(varchar(8000), convert(binary(8000), xml_data)) from letter

It is a simple select query that converts the image to binary and then the binary to a varchar.

That's all folks!!!

Monday, October 4, 2010

FaceTime Finally

It has been about two months since my long drive to Cape Cod for my iPhone 4 and so far the device has been a joy. The only functionality I hadn't really been able to use was FaceTime, well that all changed yesterday. My friend send me a text message and said he had just picked up an iPhone 4, so like any true Apple fanboy I quickly attempted to FaceTime with him, but he wasn't on WiFi. I told my friend to let me know when he was on WiFi, but didn't tell him about FaceTime, because I knew it would be a surprise (don't ask). I received a text a half an hour later saying he was at home and this time when I hit FaceTime it connected us. Woohoo, finally!!!

The quality of the video was great, a little pixelated at times, but the audio was crystal clear and most of the time the video was very sharp. I had video chatted before and know about my difficulties with eye contact on a video chat, but seeing that combined with my inability to stand still during a phone conversation was dizzying. I would love to blame my walking around on poor cell reception from AT&T, but unfortunately it is just me not liking to stand still. It was so noticeable my friend actually pointed it out to me saying it looked like I was standing in front of a green screen because the background was changing so much.

It makes me really excited for the following: broad acceptance of FaceTime on devices besides just the iPhone 4 and iPod Touch, such as Mac's and maybe even GoogleTalk AND the ability to use it over 3G airwaves. Once we get there I hope I can learn that walking around is just going to make me look like I am a participant on the reality show that used to be on MTV where they tried to scare people.

Wednesday, September 15, 2010

The New AppleTV and AirPlay

Leading up to the big Apple event at the beginning of the month there was a lot of speculation about a new AppleTV which would be able to run iOS, in my previous post I had my doubts and it turns out I was right.

The new AppleTV had a form factor redesign, it now fits in your hand, and also lost its internal storage capacity. The other changes include the all important inclusion of a NetFlix app and the ability to only rent media on the device. Since the internal storage is no non-existent our favorite use of the current AppleTV, playing music with our photos as a screensaver now requires a little more effort, because the music and photos now have to be streamed from iTunes on a separate computer. The problem with the setup at our house is the iTunes library is on a MacBook, which sleeps most of the time, as opposed to a desktop machine which is always up and running. So in order to replicate the current experience we would have to go into the kitchen, open up the MacBook and make sure iTunes is running. Besides that minor annoyance, we don't often buy movies and our current AppleTV drive is full of music, so we usually end up streaming video from the MacBook anyway.



Overall I understand people's complaints with the previous generation: syncing was a pain and confusing, besides iTunes there weren't any useful apps, and renting movies is what most people want to do anyway (seriously how often do you go back to your huge DVD collection and watch an old movie) The new one truly improves on these and makes it a lot more user friendly for the average person and most importantly allows people to use it without the need of a computer.

Oh yeah the one new feature I got to mention is the new AirPlay functionality. It basically allows you to play video, music or photo content from an iOS device to the TV connected to the AppleTV. The example given by Steve Jobs showed him watching the movie Up on an iPad and by the simple tap of a new button on the video controls of the iPad it could be output to the AppleTV. At first I was kind of disappointed because I was hoping for something that would put music, videos, etc. into the cloud so the little 16GB drive of my iPhone4 would have a little breathing room. However, after thinking about it some more I realized just how much of a killer app AirPlay could be. In my previous post I pointed out the difficulties that would be faced by making the AppleTV an iOS device. It wouldn't have a touch screen and would require a cursor of some sort and while it sounded like a wonderful idea wouldn't really be that practical in reality. However, what if Apple exposed the AirPlay API to any developer they could then display their app on the AppleTV with the simple tap of a button. In the area of gaming this would be huge because people could then use an iOS device as a game controller. Now developers will certainly find clever ways to use this, but it seems to get around that difficult area of introducing people to yet another set top box and instead makes the TV an extension of a device they already use everyday. I would love to see an implementation of FaceTime that allows you to AirPlay the video of the person on the other line to the AppleTV. Only time will tell if this turns out to be true, but I think it is an interesting way of entering the living room.

In review the Apple TV is truly a wireless HDMI adapter for an iOS device using AirPlay.

Wednesday, September 1, 2010

Annual iPod Announcement Day

School is back in session and once again Apple is hosting an event today to presumably announce some changes to the iPod lineup. The almost sure thing for today is a new generation of iPod Touch with a Retina Display, front facing camera and support for FaceTime. The less sure thing, but also highly likely announcement is a new generation of iPod Nano, with a completely new form factor (think half the size of the original). All signs so far point to a new touch screen display and the elimination of the current click wheel. I have seen varying rumors about the iPod Nano getting WiFi, but that seems less likely.

Now all of the above doesn't really interest me, because I have the iPhone 4 and also a 3rd generation Shuffle (which I rarely use anymore because I never go to the gym). However, I will definitely be keeping tabs on today's event because of the alleged iTV (aka Apple TV Take 3). The biggest rumor floating around seems to be the announcement of a brand new AppleTV. The alleged features include: no internal hard drive, NetFlix streaming, support for iOS apps, the size of an iPhone and a $99 price point.

I am an avid fan of the AppleTV, but still think it is very limited in its functionality right now when compared to things like Boxee that support all sorts of web video besides just YouTube. Apple is rumored to be securing TV Show rentals for 99 cents, which is intriguing, but with a TiVO I am going to catch most shows anyway. As for the iOS support I don't think its going to happen for a couple reasons, first and foremost the touch input just wouldn't work the same because you aren't touching the TV and iOS doesn't have a cursor. I think it is possible for it to use a controller much like the Magic Trackpad instead of the annoying teeny tiny white controller. Also Apple has been very good about ensuring iOS apps only appear on very specific screen sizes (iPhone4 Retina Display, iPad, and all other iPhones and iPod Touch devices), I don't seem them adding another screen size to the mix. One possibility for the iTV might be to allow people to mirror their iPhone display on the TV. This would be great for playing games and other apps that don't require precise tapping.

In closing it is hard to say what is going to happen today. Apple has always classified the Apple TV as an iPod, so today would be a logical day for making an announcement about it. At the same time the invite had a picture of a guitar on it and there is likely to be an iLife update soon, which might be a more appropriate tie in with the Apple TV. Either way for the first time in five years Apple will be streaming video from the Keynote to any Mac with Snow Leopard or any iOS devices.

Sunday, August 8, 2010

iPhone 4 Update

After over two full weeks of owning an iPhone4, I wanted to check in and give my second impressions. First of all the headphone situation seems to have resolved itself, I have been able to plug the headphones in and remove without trouble. I believe that was one of my only complaint after just a day of usage.

I think the biggest change for me with this iPhone compared to my old iPhone 3G has been the use of the camera, especially for taking movies. The still camera has a better lens and takes better pictures, but I have found it leaves the shutter open a little longer than I like, causing photos to look blurry and requiring more than one photo sometimes in order to get the shot you want.

I did a quick test drive of FaceTime and it worked well considering I was in bad light in a loud restaurant. I am hoping once the annual iPod announcement is made this fall the number of devices will expand to include the iPod Touch, MacBook and maybe even one way chat with iPad. Once it becomes compatible with the MacBook or an iPhone 3GS I will probably be more likely to use it.

The one application I was dying to try out was the iMovie app by Apple. It only cost $5, so I grabbed a copy and started editing some movies I had taken on the iPhone. As expected the controls are very primitive when compared to the full version on the Mac, but you can do a lot of great editing. The one feature I would love to see in the next version of the app is the ability to split clips. In this version you can resize a clip from the beginning or the end, but can't just split it or crop it. This means you have to import the clip twice if you want to different parts of the clip and since the display is so small it is easy to lose track of which clips you have imported. The best way to get around this is to use the cropping tools in the Photos app and pre-split your clips before importing them into iMovie. My other gripe is with the way each project references clips. If you start a project, import some clips and start working on them all is good. However, things go badly if you are like me and import your photos/movies into iPhoto every once in a while and then delete them off of your iPhone. Once you remove the original movies from the iPhone your project in iMovie won't work correctly anymore. A few years ago when the new iMovie came out they implemented a similar storage mechanism, which I loved, because the older version would import the movies into the project and your quickly eat up space. Keeping a single copy is great on a desktop computer because the file isn't going anywhere, but on the iPhone it is very likely that you will try to conserve space and will delete them (unless you are like a paranoid old person who leaves photos on your camera even after you have downloaded them.) Besides that I think it is a great little app.

Saturday, July 24, 2010

Finally My iPhone 4

After a long month and a half wait I finally have my iPhone 4. It all started back on the first day of pre-orders. I tried and tried to order one online with Apple and AT&T, but was never able to get through. I decided to try a lesser known method and reserved one at Radio Shack, but not just any Radio Shack the only one on Cape Cod; the place I would be on launch day. Fast forward to launch day, I go down to the Radio Shack and they only received four iPhones and I wasn't in the top four on their reserve list. So the waiting game begins. All the Apple stores are not selling to people unless they are on the pre-order/reserve list and I assume at this point the list is getting long. I could order one from Apple, but it is going to take several weeks. AT&T started the first come first serve purchasing, but I totally missed the boat on it. Then on our way to New Jersey I get a call from the Radio Shack on Cape Cod letting me know they have an iPhone 4 for me. Unfortunately, I have to pass, for now, since we are headed in the wrong direction. A week later we are still on the Jersey Shore and I get another call about another iPhone 4 for me. Again I have to pass.

Finally, this morning, a mere two seconds from mentioning the lack of a call, the friendly Rebecca from the Orleans Radio Shack calls and I finally verbally accept the iPhone 4. The only problem is: 1. Orleans is over 2 hours away from my house and 2. Cape Cod traffic is famous for being horrible on the weekends. I take a quick look at Google Maps and decide to wait until later in the day. Finally around 4pm the traffic starts to lighten up and I plan to leave at 5pm. For some reason traffic through the heart of Boston continues to be red and I decide to add an extra 20 miles by taking a loop around the city on RT 128. It ended up taking only 2 hours and 15 minutes, which was about 17 minutes faster than Google Maps predicted. The time would have been better if I didn't run into some rain on the Cape.

I spent about 30 minutes in the store activating it before going over to a local coffee shop to load the iPhone from a back up of my old iPhone. Here is one place where the iPhone shines, within a couple minutes I had loaded from the back up and all of my contacts, apps, music, email settings, ringtones, and almost everything else was automatically setup exactly like my old phone. All the data from the apps was right where I left it in both my gas app to my calorie counting app. Apple has done a great job with the back up process and the virtually seamless transition between devices. I bought a bunch of chocolate goodies and hopped in the car. So far the iPhone 4 has been great, my only complaint is with the included headphones and how difficult it is to put them into the headphone jack. I don't know if the pair I received is defective or not, but it was hard to put them in and also proved even harder taking them out. I might have to stop by the Apple Store next week and get some replacements.

Tuesday, July 20, 2010

ASP.NET and IIS

As part of an upcoming integration project at work it seems that I will need to learn another web application server platform, Microsoft's Internet Information Service (IIS). As part of my setup I need to make sure that IIS is installed and also it supports ASP.net.  Once those steps are complete I can proceed with the integration.  Here is an IIS tutorial for anybody with Windows XP Professional.


  • Install IIS
    • Go to Add/Remove Programs. Start Menu > Control Panel > Add or Remove Programs.
    • Click the Add/Remove Windows Components on the left navigation bar. 
    • Select the Internet Information Services (IIS) optoin and hit Next.

    • This will install IIS, just click complete when it is done.
  • Verify the IIS Install
    • By default a new directory c:\Inetpub\wwwroot will be created.
    • Create a new text file here with the name HelloWorld.html
    • Insert the following into the file and save it:
      <html> <body><h1>Hello World</h1></body></html>
    • Launch the Windows Run dialog either Start > Run... OR WindowsKey-R
    • Type in the command inetmgr and press enter.
    • Navigate to the Default Web Site node in the navigation tree to display the files on the right.

    • Right click on HelloWorld.html and select Browse. This should launch the page in your browser.
  • Configure ASP.NET
    • Go back to the c:\Inetpub\wwwroot directory.
    • Make a copy of HelloWorld.html and call it HelloWorld.aspx
    • Insert the following into the file after the Heading <%   response.write(Request.ServerVariables("SERVER_SOFTWARE")) %>
    • Go back to the inetmgr
    • Navigate to the Default Web Site node again.
    • In the menu choose Action > Properties
    • Go to the ASP.NET tab in the pop up and select a version in the ASP.NET version drop down.
    • Hit OK.
    • Back in the IIS Manager click on the Web Service Extensions node in the navigation tree.
    • Click on the ASP.NET web extension and then hit Allow.
    • Navigate back to the Default Web Site node in the navigation tree.
    • Right click on the HelloWorld.aspx file and choose Browse to launch it in your browser.
    • You should see the Hello World heading along with a print out of the current version of IIS.
The only problem I faced when doing this was getting the ASP.NET version set correctly.  I ended up going to the .NET SDK Download Site and getting the latest version, but in hindsight it may not have been necessary.  The other thing I did as part of this setup was to create a Virtual Directory.  The Virtual Directory allows you to specify a Virtual Path for a directory that contains files you want to serve which aren't necessarily in the same directory as your Default Web Site. It basically lets you add an additional directory to the path in the URL, for example http://localhost/SampleWebSite.

Wednesday, July 14, 2010

iOS 4 on the iPhone 3G

I was going to go through the pain of putting together a video of the horrid performance of iOS 4 on the iPhone 3G, but luckily I found a nice video which sums it up perfectly.  Enjoy, iOS4 on iPhone 3G

Tuesday, July 6, 2010

Five Bars At Last

The saga for setting up my AT&T 3G MicroCell has come to an end.  Today I gave the support line another call and spoke to Adam.  I told him my story and he said they had fixed the activation in the middle of the week and I shouldn't have any problems related to activation after last Thursday.  I also asked him about whether or not activation involves the device because the previous guy told me it did not.  Again he corrected what the other tech had said and told me it would only be activated once the device connected.

I went through the exercise of submitting removing the existing device from my account and re-added it under a different name.  I reset it, but still I just got "Activation Pending". I had read online about problems people were having with their router causing trouble so I connected the MicroCell directly into the cable modem.  I restarted the cable modem and MicroCell and within twenty minutes the 3G light, which had been flashing for days was finally solid.  I ran for my phone and within a few seconds it detected the MicroCell and displayed five bars.  It wasn't long before a text message and email came through from AT&T telling me the MicroCell had been activated. The activation process definitely involved the hardware connection to complete.  Hallelujah!!!!

The battle was still not over, I now had to figure out how to include my Apple AirPort Extreme router in the mix.  I unplugged everything and connected cable modem->router->MicroCell.  Upon restart and lots of waiting, no dice.  I tried an alternate installation suggested in the documentation cable modem->MicroCell->router.  Restarted everything and voila everything worked.

I made my first call and despite having a "Call Failure" message on the first attempted dial I was able to call my dad and had a good test call.  The call quality was better than before, but still sounded a bit choppy at times.  Of course I don't know if that was my end or his end.

So for now I will begin testing this crazy AT&T MicroCell device and will put together a review in the coming weeks.
2 Things I Learned While Setting Up My AT&T 3G MicroCell:
1. The activation process will only be complete once the hardware successfully connects to the AT&T network.  Until that happens you will see Activation Pending when looking online.
2. You may need to tweak the settings on your router to make the MicroCell work.  My current setup of modem->MicroCell->router is considered a last ditch effort by AT&T.  I did find an Apple Support Discussion with possible AirPort Extreme settings changes to make it work in the modem->router->MicroCell setup.

iOS 4 on the iPhone 3G Update

Last week I posted an entry about the slowness of my iPhone 3G after updating to iOS 4.  As with most slowness I was starting to get used to it so it didn't seem so slow, but of course every once in a while I was reminded with an extended wait for a specific app.  So.... last night I decided to attempt a clean restore of iOS 4 to see if the situation improved.  It took about 15 minutes to restore the phone to iOS 4 and then over an hour to reload it from a back up.  Apple really needs to find a way to make syncing between an iPhone and iTunes faster, because it is sooooo slow.  Everybody seems to want over-the-air syncing, but I can't imagine how this would be faster even if slightly more convenient.  Okay enough about syncing, once all was said and done I unplugged the iPhone and tested it out and it was a bit snappier.  Again this morning I used it and I saw some more improvements in performance, but typically performance seemed better after a fresh restart so I am going to hold my final judgement until later in the day.

Friday, July 2, 2010

iPhone 4 Reception Issue Blamed on Software Algorithm Issue

Today Apple posted an open letter on their website stating that the apparent reception issues people are seeing with the "Death Grip" are caused by a bad algorithm they used for setting the number of bars.  I am sure this will fix a majority of the issues people are seeing, but who knows.

Here is the code I recommend for iOS 4.0.1 to fix the bug in the method for returning the number of bars to show.
public int getNumberOfBarsToDisplay(int signalStrengthDecibels)
{
    //if(signalStrengthDecibels < -113)
    //{
    //    return 0;
    //}
    //else if(signalStrengthDecibels < -107)
    //{
    //    return 1;
    //}

    //else if(signalStrengthDecibels < -103)
    //{
    //    return 2;
    //}
    //else if(signalStrengthDecibels < -101)
    //{
     //   return 3;
    //}
    //else if(signalStrengthDecibels < -91)
    //{
    //    return 4;
    //}
    //else
    {
        // Fix bug that was caused by the Death Grip.
        // Always return 5 bars.
        return 5;
    }
}

Here is the source for the decibel breakdown from AppleInsider, here.

Rant Friday

I feel it is my duty to update on the current status of my MicroCell.  Status: Nothing has changed.  My account online continues to say "Activation Pending" and the little green 3G light continues to flash on the device.  I am guessing this will not get fixed by the end of the weekend.  It would be one thing if the device had a subtle design, but instead it is this giant white plastic upside down Y shaped thing.  It doesn't help that it has to sit next to the router and cable modem, which already sit in our kitchen and the 50 feet of cable total that Apple and the modem company thought people would need (we only need about 2 feet).  The worst part is paying $150 for something to get a signal on my phone and now I still have no service, but AT&T has my money.  Ahhhhh!!!

Now onto my friends at Apple.  I am going to write off this antenna thing for the time being as a lot of media hype and besides I don't currently get service in most cases anyway (see above), so it isn't a big deal for me.  However, I do have a new gripe with the fruit company. What is the point of having a store if you can't buy anything?  The two most showcased items in the Apple Store right now are the iPhone 4 and the iPad.  They probably have 30 of each for demonstration purposes, the problem is if you actually want to buy one, well frankly you can't.  Now I understand not being able to keep the iPhone 4 in stock, its only been out for a week, but the iPad as of tomorrow will have been out for three months. Ridiculous!!  Maybe I should sell my AAPL stock now before people realize the number of sales of the iPhone and iPad each day at least in the Apple Store in the Burlington Mall are 0.0.  Maybe they should march the neglected Macintosh computers out into the spotlight and get people to buy some of those instead of just teasing people into liking a smartphone or tablet they can't even buy.  On the bright side maybe those people will be turned on to touch screen smartphones and go buy a Droid X on July 15th, leaving the next shipment of iPhone 4's all to me.  Until then I am sticking it out with this super slow iPhone 3G with iOS 4.

Thursday, July 1, 2010

Getting Flex and JBoss to use SSL

I have spent the last 7 or so hours at work trying to configure our Flex client to connect to our JBoss 4.2.3 server using SSL.

Now that I have figured it out here are the steps to make it work. The assumption is you have JBoss 4.2.3 installed and are able to access a web app on port 8080 over plain old http.

Types of SSL
JBoss supports at least two implementations of SSL:
Java Secure Socket Extension (JSSE) which uses the Java Runtime.
Apache Portable Runtime (APR) which uses OpenSSL.

Based on my version I am going to go out on a limb and say by default JBoss 4.2.3 uses APR out of the box.  You can verify this by looking in the server.xml found in your JBoss installation at /server/default/deploy/jboss-web.deployer/server.xml. At the very top of the file is a Listener tag for the AprLifecycleListener, which by default has the SSLEngine turned on. Below are the instructions for installing using both APR and JSSE.



APR SSL Setup Instructions
Generating a Private Key and Certificate
In order for all this SSL craziness to work you need to generate a private key and a certificate.  These can be generated using the OpenSSL command line tool.  All can be generated locally, but typically the certificate is generated by a Certificate Authority.  The following instructions show you how to create a self signed certificate. The private key and certificate will be kept in the /server/default/conf directory.

1. Open  a command line tool and navigate to /server/default/conf
2. Generate a private key: Execute openssl genrsa -des3 -out server.key 1024
3. Generate a certificate request: openssl req -new -key server.key -out server.csr
4. Generate a self signing certificate: openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
5. Voila you now have a private key and certificate in the conf directory called server.keystore

Configuring JBoss For SSL
The {jboss}/server/default/deploy/jboss-web.deployer/server.xml file now needs to be modified to connect on https.  This requires the addition of a Connector tag in the file specifying the port, keystore location and also the keystore password.  

1. Open {jboss}/server/default/deploy/jboss-web.deployer/server.xml in your favourite text editor.
2. By default the Connector for https is commented out (you can find it by searching for 8443)
3. Add a new Connector to the file:
<Connector port="8443" SSLEnabled="true"
    maxThreads="150" scheme="https" secure="true"
    SSLCertificateFile="${jboss.server.home.dir}/conf/casenet.crt" 
    SSLCertificateKeyFile="${jboss.server.home.dir}/conf/casenet.key"
    clientAuth="false" sslProtocol="TLSv1" />

4. You can modify the port as you like and also update the SSLCertificateFile and SSLCertificateKeyFile as is appropriate.
5. Save the file.


JSSE SSL Setup Instructions
Generating a KeyStore
In order for all this SSL craziness to work you need to generate a keystore for your server.  This keystore is created using the Java keytool executable.  The keystore will be kept in the /server/default/conf directory.

1. Open  a command line tool and navigate to /server/default/conf
2. Execute keytool -genkey -alias tomcat -keyalg RSA -keystore server.keystore
3. Enter '123456' as the password when prompted.
4. You will also be prompted to enter your name, organizational unit, organiation, city, state and country. Enter the appropriate values for you.
5. When prompted to enter the key password just hit enter to make it the same as the keystore password.
6. Voila you now have a key in the conf directory called server.keystore

Configuring JBoss For SSL
The {jboss}/server/default/deploy/jboss-web.deployer/server.xml file now needs to be modified to connect on https.  This requires the addition of a Connector tag in the file specifying the port, keystore location and also the keystore password.  In order to use JSSE we need to override the default protocol with org.apache.coyote.http11.Http11Protocol. This will cause it to override the APR SSL

1. Open {jboss}/server/default/deploy/jboss-web.deployer/server.xml in your favourite text editor.
2. By default the Connector for https is commented out (you can find it by searching for 8443)
3. Add a new Connector to the file:
<Connector port="8443" SSLEnabled="true"
protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" scheme="https" secure="true"
keystoreFile="${jboss.server.home.dir}/conf/server.keystore" keystorePass="123456" clientAuth="false" sslProtocol="TLS" />

4. You can modify the port as you like and also update the keystoreFile and keystorePass as is appropriate.
5. Save the file.




Verify Results for Either SSL
Now that you have created a keystore and also added a new connector you should be able to start up JBoss without errors. To verify you can now go to https://{server name}:{port}/{webapp}. You will be prompted to accept the certificate and once you accept the page should load.

Here are two very helpful sources: Steps for Building A Hello World Web App,  Apache Tomcat SSL How ToJBoss Community SSL Config, and How To Create a Self Signed Certificate

Updating the Flex Client
We use Granite and Gravity for transferring objects between the Flex client and the JBoss server.  All you need to do is update the services-config.xml Granite file.

Locate the channeldefinition tags and update them to use the secure channel classes and also update the URL to include https.
<channel-definition id="myApp-graniteamf" class="mx.messaging.channels.SecureAMFChannel">
<endpoint uri="https://localhost:8443/myApp/graniteamf/amf"
class="flex.messaging.endpoints.SecureAMFEndpoint" />
</channel-definition>

Wednesday, June 30, 2010

To iOS4 or Not To iOS4

A couple weeks ago I upgraded my iPhone 3G to the brand spanking new iOS4.  Of course the feature set gained by this is dramatically smaller than the full bevy of features on the iPhone 3GS or iPhone 4. I was mostly interested in folders, multiple exchange servers and also a unified inbox, so I decided to take the leap and boy have I paid for it.  The phone is nearly unusable now, think of it as running Windows 7 on a Windows 95 era machine.  What formerly was called the "Best iPod Ever", can barely even launch the iPod app in less than 15 seconds and once it is launched good luck getting it to not crash.  The Maps app opens and then locks up for several seconds before you can actually pan and zoom. Of course there is a short term solution for the problem which involves restarting the phone a couple times a day.

This would all be okay if I could actually find a store with the iPhone 4 in stock, but who knows when I will be able to find one.  I am now left with the decision of dealing with this slowness and leveraging the iPad as often as possible OR following some undocumented steps to revert my phone to iPhone 3.1.1.  Are the few features I get with the iOS 4 worth the trouble?  At the current time I am leaning towards NO and will probably do the downgrade soon.  If anybody else is having a similar problem here is a site with the Steps to Downgrade an iPhone's firmware.

Tuesday, June 29, 2010

The AT&T 3G MicroCell Installation

Ever since I brought home the iPhone 3G back in 2008 I have been living with little to no service at my house. At first this seemed odd to me considering I could see a tower from my house, but apparently AT&T doesn't use that tower. Instead it appears the nearest tower is behind a hill or somewhere that makes me live in a dead spot.

Enter the 3G MicroCell. As I began researching ways to improve my service, I found some blog posts about how AT&T was testing mini cell towers that you could buy and hook up to your internet to make calls. Of course they weren't testing near me so I had to wait until yesterday when I found they were finally available in our area. I went to an AT&T store right after work, purchased the little guy for $149 and rushed home to get it all hooked up.

Here are the basic steps:
1. Log on to att.com and activate your MicroCell.
a. Entering the serial number.
b. Coming up with a clever name for your device.
c. Setting up a street address.
d. Giving specific phone numbers that can use the device.
2. Hook up the hardware
a. Plug in some internet.
b. Plug in some power.
c. Put it near a window so it can connect to GPS for E911.
d. Wait 90 minutes.

It all seemed simple enough right, wrong! I figured the online registration would be the easiest part, but of course I forgot my experiences of two weeks ago when I tried to pre-order an iPhone from AT&T. First of all the website asks you to log in constantly and always puts you back to the beginning of a "wizard"-like page flow. I logged in to activate the 3G MicroCell, verified my address, entered a clever name for the MicroCell and then submitted. After about two minutes giant red text appeared telling me my request timed out and I needed to try again later. I ate some dinner and "tried again later" only to receive the message again. As any user is likely to do I hit it a couple more times for good measure and it changed to some sort of confirmation message. Weird, especially since I didn't receive a text or email as I would expect. I assumed at this point all was good and hooked up the hardware. I came back after fifteen minutes and was happy to see the GPS had locked on (previously this had been my biggest concern). After 90 minutes I returned to see the 3G light was still flashing, so per the troubleshooting instructions I restarted everything and waiting. Thirty minutes later and the light was still flashing. Grrrrrr. I went to bed and left it running hoping I would come down Christmas morning style to a solid 3G light.

As one might expect from AT&T at this point it was not working and my iPhone still had only one bar. I went online and looked at my MicroCell's settings page and noticed that it said "Activation Pending". I wondered if this was completely related to the setup part on the web site or if it was something that would only get set to complete once the damn 3G light stopped flashing. Once I was at work I called AT&T and the guy on the phone claimed the entire network was down. Upon further investigation I think they are just bogged down with activation requests. Either way I can't mess with my router from here so it will have to wait until tonight when I waste yet another evening trying to figure this out.

The best part is going through all of this and paying all of that money just to get my phone to work like it should anyway.

Monday, June 28, 2010

iPad Review - One Month

Well I have had my iPad for almost a month and decided it was time to give a review. Before i start I will admit i am an Apple fanboy, but I am always quick to point out any flaws I see in Apple's products I.e flickering MacBook screen, cracked case on MacBook, slowness in iPhone. so rest assured you should get a relatively honest review out of me.

Now the biggest comment i typically get from laptop owners is "my laptop does that too, big deal." This is important, because Steve Jobs mentioned the key to the iPad succeeding is it being able to do a bunch of things a laptop or mobile phone can do, just doing them better. i will come back to this throughout the review, but first impressions are really more important.

After taking it out of the box I laughed at the one page mini instruction manual and fired it up. Right away it was better than expected, the size of the screen was great and it was very quick especially comprared to my iPhone 3G. I was tempted to just play around, but knew it would be best if I synced some stuff from iTunes. Synching was a breeze and I was even asked if I wanted to load from an iPhone backup. While syncing I did notice that the iPad wasn't charging and as I later found out this was true, it can only charge from the included adapter (allegedly if the iPad is sleeping while plugged into a laptop it will charge but i haven't tested this). The synch was about as fast as a usual iPhone sync. I only bought a 16GB model because i figured i would have my iPhone at all times and wouldn't need all of my music.

Once I was ready to go I quickly played around with the apps that came with it. First the updates to Mail and Calendar are great. They are both much more robust than the iPhone versions, but are so much more usable. The Photos app is also improved with some more multitouch functionality and also support for some of the native iPhoto concepts like faces, and places. The only other app that comes out of the box I really cared about was the iTunes app. It is a little easier to navigate and also supports creation and editing of playlists. Besides that it is a music player so i don't that one would expect more.

The most common app people want to see when I give a demo is the iBook app and usually they are pretty impressed. The readability on the backlit screen is great and the added features of a dictionary, font type and size control and bookmarks are really great additions. I will admit i haven't spent several hours in a row reading, so I don't know how it will effect eyes, but I did do some reading and really enjoyed being able to read hands free. I also went through the process of buying a book, the best part is the ability to preview a book. The sample I downloaded for a 350 page book was about 70 pages, which seemed very generous.

Oh I almost forgot about Safari. It was made a lot more usable in the new iPad version with support for a bookmarks bar and also more controls in general available at the top of the screen. Surfing the internet is a great experience and feels so much more natural than on a laptop. There is something to be said about tapping and pinching web pages on a 9 inch screen. When i bought the iPad I mostly intended to use it from the couch at night while watching tv. Basically whenever i was at home and looking things up on the Internet with my iPhone would be a time i would use the iPad. It turns out I did use it for those occasions and much more, it seems the only time i use my MacBook now is when i need to import photos or do some iPhone app development.

Okay I think that takes care of the basic set of apps. Now as with the iPhone you can download apps from the App Store (that is actually where I got iBooks). Going into this I heard about support for iPhone apps on the iPad and thought I would just use those apps on the iPad. Initially I loaded several apps I had come to love on my iPhone on the iPad, but once loading them you can either see them in a 1X size which is exactly the size of an iPhone or you can tap the 2X and see them in double the original size. Unfortunately, most apps just look distorted and the graphics get very 8-bit block like. A couple apps are okay, but I ended up removing most of the iPhone apps and went to the App Store in search of new apps. It is actually cool to see some of the apps that have been created so far and how they take advantage of the big screen. One of my favorites so far was Solitaire, which is great to play on the big screen.

So far it has all been rosy, but there are indeed some frustrations/annoyances/problems. First and foremost I think is the on screen keyboard. When held in the landscape orientation the keyboard is a really decent size with keys almost as large as on a standard apple keyboard. Unfortunately for the "touch typist" it takes a lot of practice to get good with the keyboard and typing anything longer than a couple paragraphs (like this review) isn't worth the trouble. Yes, the keyboard does inline corrections, but I find I am constantly deleting or moving the cursor back to a spelling error for correction. Also the keyboard in portrait mode is virtually unusable, it is too wide to type like on the iPhone, and the buttons are two narrow for a regular typing stance.

The screen is another annoyance for me, mostly because it gets messy very quickly. Unlike the iPhone though you can't just rub it on your pant leg and instead need to find a towel or sleeve to wipe off any oils you lathered the screen with. The other problem with the screen is that it is glossy, so it is almost unusable in direct sunlight, well unless you want to use it as a mirror. If you are able to sit in the shade and can sit with darkness around you then it is okay, but the reflection is still there.

One other important thing to mention is how important the Apple iPad case may be for the iPad. I had the good sense to buy the case when I got it so I can't say not having it is bad, but if you ever intend on typing on a table or other flat surface I think it would a pain without the case. Now I am not a huge fan of cases on Apple products, but I planned on using it at work in meetings and knew I would be putting it on a flat surface. I have also found it provides a few more options even when sitting on the couch.

So the big question: Does it do things better than a laptop?
Internet - Yes, great experience.
Book Reading - Yes, it is slightly wider than a book, but the brightness, availability of titles and hands free reading is great.
TV/Movies - Yes, I downloaded the ABC app and really enjoyed sitting on the couch watching Lost. There is less concern about battery life and it isn't hot on your lap like a laptop.
Music - The jury's out. Its not really practical for listening to music, but neither is a laptop.
Calendar - Yes, flipping through the calendar with the tap of a finger is great.
Mail - Yes, if you are just reading and not typing out super long emails.
Word Processing/ Note Taking - No, typing a ton of stuff isn't reasonable.

In general as long as the way you use an app isn't keyboard intensive, the smaller size and touch navigation of the iPad give it a leg up. Oh yeah and the lack of Flash Player is rubbish. Despite claims that the internet is full of Flash content, I only come across Flash content every once in a while and while somewhat annoying isn't a deal breaker.

Overall, I love the iPad. There is certainly room for improvement: front facing camera, multi-tasking for third party apps (coming this Fall). I only got the WiFi version because I already pay enough for internet and also plan on using it primarily at home and at work where I always have Wi-Fi.

Dynamic Spring Beans

Ever wonder how to dynamically change the class used for a Spring Bean at runtime without modifying your war file in JBoss? After lots of trial and error i put the two important pieces of this puzzle together. The first and probably most important part of the process is the use of a Static or instance bean factory. This handy little device allows for dynamic determination of a bean's class at startup time. The easiest thing to do is to create a static factory because it involves less beans. Now dynamically changing the bean at jboss startup time without changing the war took a little more research. To handle this it involves some JNDI bindings in the jboss-services.XML and the addition of a J2EE property bean in your spring file. The spring property bean loads the value from the jndi binding and then it can be passed to the bean factory. VoilĂ  you can easily switch between implementations of an interface without a recompile and without changing your war file.