Monday, December 12, 2011

ColdFusion 9 Goodie that kicks your ass in 8

I know the title may be a little exaggerating, but today this caused me a lot of headaches. I have a client which I am updating their site which runs on ColdFusion 8 and without noticing it appears I got a little lazy in typing my CreateObject statements, as so; While this works great in ColdFusion 9 it fails miserably in ColdFusion 8. I have no idea what got me into the habit of not typing what type of object to create but by default 9 assumes it is a component and it does not throw an error. So I had to update my source code to read ... Now all is good again.

Thursday, November 17, 2011

Google Music out of beta

Seems like Google Music finally went out of beta today and it remains a free service which allows you to store up to 20,000 songs in your personal music library (Terms of Service).

The release also comes with a number of new features and a New Music Store on Android Market that works seamlessly with Google Music. The store has hundreds of free songs as well as millions of tracks available for purchase via the web or Android device. The purchases do not count towards the 20k song limit.

As far as social integration, it allows you to share a free full play of any purchase with your friends on Google+.

Even though I am a loyal iTunes user and do purchase 99% of my music thru there (yes there is that 1% that I've bargained shop at Amazon), I do like options and I think it is great that they finally made their full release of their own music service. In the end I really love and pay (testing as dev now) for iTunes Matching since most of my library was purchased on iTunes + I love how it integrates with all my iOS devices. I do have most of my music on the Google Library as well because I let their handy uploader do it all for me but it did take a couple of days to finish.

Anyways, glad it is out and for all you apple haters, there you go another option.

All hail Steve :-).

Thursday, November 10, 2011

Steve we knew you were right ....

Guess they couldn't give you the upper hand while you were still around.

Adobe's statement in the style of a child ....

"We give up on Adobe Flash for Mobile .. pfftt ....whatever ... "

They also said HTML5 was a better technology, even though we all know that means more than 1 single technology and browser capabilities have enhanced, but it is for the laymen to comprehend. Words I heard you say a couple of years back when the original war started with Adobe.

Can't wait to see what you left for us in the TV world.

Wednesday, October 19, 2011

Setting up SQL Server 2008 Express with Profiler

Today I needed to use the SQL profiler which unfortunately is not included in the tools that are bundled with SQL Server Express. Then I found this article that shows you how to get it done with a command line entry.

Thank you Tony Sneed!

http://blog.tonysneed.com/2010/08/05/setting-up-sql-server-2008-express-with-profiler/

Sunday, October 16, 2011

Updating GIT on Mac OSX Lion

Today I had an issues that was driving me crazy, so I thought I would share my experience and hopefully it helps someone. The scenario is that you want to update your local git install to the latest version but after running the installer you still see the previous version you had. For example, when I ran the following command I would get:

git --version
git version 1.7.5.4


This is the git version installed by XCode. I expected to see git version 1.7.7 which is the latest install (at time of this post) that I downloaded from http://code.google.com/p/git-osx-installer/downloads/list.

So the first thing I tried to do is edit my .profile and .bash_profile files so I would add the correct path to use and after several attempts nothing.

You see the google installer installs git into /usr/local/git/bin/git but the version in use is /usr/bin/git which is the version installed by Xcode.

So after several attempts in editing all my .profile files that are read by the bash and attempting to put the installer's path into my $PATH variable I came into a helpful post that stated to edit the /etc/paths file and place the installer path first in the list like so:

/usr/local/git/bin
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin


I closed my terminal window and opened a new one ran the following and ....

git --version
git version 1.7.7


.... SUCCESS!!!!

Hopefully this helps someone having the same issue I had.

Wednesday, October 05, 2011

Steve Jobs (1955-2011)

Today, Steve Jobs, Co-Founder of Apple passed away from pancreatic cancer at 56 years young. As an individual, he truly inspired me and created such a loyal and proud love to a single brand. I never had the privilege to meet him face to face and I am sure all that did are very saddened today. My condolences go out to all his family and friends!

If you would like to share your thoughts, memories, and condolences, please email rememberingsteve@apple.com

Monday, August 01, 2011

How I Got Started In ColdFusion

This post is inspired by Steve Bryant's suggestion to make August 1st, 2011 the "How I Got Started In ColdFusion" day.

My story is quite simple but it started back in 1998-99, can't quite pin point the date. You see I was a musician (kinda still am - you can check out anytime you want but you you can never leave) and that was pretty much my life. It consumed me and it was all that mattered and all that I would work for. So one day my band needed a website and they asked me to go ahead and find a company to do it for us. After some research we found out that what we wanted would end up costing us over $2,000 and the problem with that was, we were broke! Not broke, like man I can't go out tonight ... some of us were so broke - like living at the studio that I practiced in and eating friend's leftovers - yeap me. Oh well, one of the guitarist's had an uncle that decided to help us and with that, so I tagged along and learned how to create my first site in ... FrontPage, I know the horror. It was not long before I purchased an HTML book and started to learn more on my own and with help of other friends they got me off FontPage and introduced me to my love, Dreamweaver.

I know, what about ColdFusion? Well the same friend that got me off FrontPage said, "hey how cool would it be to capture people's emails on your band's website" (FYI - this was another band now - about a year later) and I was like "yeah, cool how can we do it". He then said, there is this language called ColdFusion and it makes it painfully simple. He said all you need to know was 3 tags and you could be a rockstar ... introduction to cfquery, cfoutput and  cfmail. Needless to say, after a few months I went to work for this friend and within months I outgrew the company and had the opportunity to go out on my own.

Since then I have worked on many projects, met many wonderful people and even was able to fly to London because of an application that I built (purchased by LabOne - now owned by Quest - no I am not rich, this was my hard lesson learned back in '01) and all this because of 3 little tags. Well, more than 3 tags because that was only the beginning. I was not satisfied with 3 tags, I wanted to learn more and so I did and still continue to do so everyday. I am now the South Florida ColdFusion User's Group co-manager and I am glad to give back everyday what a dear friend of mine gave me so long ago and that is an introduction to a language that changed my life and has given one opportunity after another.

To my dear friend Matt Mehler, not only did you give me this blessing but without you I would never be where I am at today and with the wonderful woman I call my wife, thank you for having her answer my calls - I know I was hard to deal with.

Thursday, July 21, 2011

Lion Server, VPN and Time Capsule as Router Issue

Well, today I upgraded all my machines to Lion and the experience overall was pleasant. Since I had 4 machines to upgrade, rather than downloading the install 4 times I was able to save the install to a flash drive. I was able to copy the installer to the flash drive so I can copy to the other machines (this can only be done before installing right after the download is complete from the app store - app is in Applications folder).

Anyways getting down to the point. Once I was done, I purchased and downloaded Lion Server for my mac mini so I can enable the VPN services. This should really be an easy 1-2-3 click process but the VPN would fail outside of the network (which is where we needed it to work).

The admin tool set up my Time Capsule (Airport Extreme) base station appropriately as far as ports to open. For 2 hours I was beating my head into a wall trying to figure out why the requests would not pass thru to the server from an external request. I tried many different things from opening other ports, setting a default host etc. But the issue lies in the latest firmware for the stations (7.5.2). I was finally able to find that information in the apple support forums. So I went ahead and downgraded my station to firmware 7.4.2 and everything worked fine. You can easily do this by following these steps:
  1. Launch AirPort Utility found in Applications>Utilities>Airport Utility
  2. Click on the base station you want to downgrade from the sidebar (left column of the window)
  3. In the Menubar select 'Base Station'
  4. Select 'Upload Firmware...'
  5. Select ‘7.4.2'
  6. Select 'OK'
Do that and then try your VPN connection and Voila! It works! Thank you apple for wasting 2+ hours of my day.

UPDATE!!!!

For this to work on 7.4.2+ make sure you do not have any accounts set in your Back to My Mac settings on the station!

Thursday, June 30, 2011

Boilerplate Templates

I am a big supporter of standards based development and pushing the envelope when I can. I also promote the use of various frameworks or templates that help you learn and succeed at best practices development. One of those is the html5boilerplate (http://html5boilerplate.com/). This template not only starts you off at a good point but has so many valuable tools and documentation to get you up to date.

With that being said there is another boilerplate that I ran into which I know a lot of us have a headache with especially if you are doing email campaigns and I am hoping it can help us create better html emails. This is the html email boilerplate (http://htmlemailboilerplate.com/).

Check both of these projects out, download them, heck fork them on GitHub if you think you can help them get even better!!!!

Enjoy!

Thursday, June 09, 2011

Google's Tribute to Les Paul

I am sure you have all visited Google today and noticed that there is a strange image on the top that seems to represent electric guitar strings as displayed below. The cool thing is you can mouse over the strings and sound will play. Also, you can record a few seconds of music and share it via a short link provided by Google.

I personally think this is freaking awesome!!!!!

To listen to my little diddle click here.


Saturday, June 04, 2011

Google maps v3 plugin for jQuery UI and jQuery Mobile

A new jQuery plugin that allows you to work with the Google Maps v3 API using jQuery click events instead of Google event listeners.

Very lightweight, highly customizable and works out of the box with jQuery mobile.

http://code.google.com/p/jquery-ui-map/

Monday, April 11, 2011

Adobe Introduces Creative Suite 5.5, Subscriptions and a new SDK for Photoshop

Today Adobe introduced Creative Suite 5.5 with updates to many of their applications including Dreamweaver, Flash Professional, InDesign, Premiere and After Effects.
Click here to learn more about the new features @ MacWorld!

They have also introduced a subscription payment option.
Click here to learn more

And finally a new DSK with a couple of new iPad apps.
Click here to find out more @ MacWorld

Wednesday, March 23, 2011

Talk to your computer with HTML 5 and Google Chrome 11!

It appears the new Beta of Google Chrome allows you to talk to your computer via a new HTML 5 Speech input API. It also offers a sneak peek of GPU-accelerated 3D CSS, which are already part of Apple's Safari Browser. To read more click on the link below and to download the new Beta click on the second link.

Once it installs you will also see a new shiny icon.

http://chrome.blogspot.com/2011/03/talking-to-your-computer-with-html5.html

Google Chrome Beta Channel

Tuesday, March 22, 2011

Tuesday, March 15, 2011

ColdFusion 9 HotFix 1 causes Session Variables to reset

I recently upgraded one of my ColdFusion 9 servers to the new Cumulative Hotfix 1 for 9.0.1. and it started causing my applications to have their session tokens reset on each refresh. This was driving me crazy because every time I would try to login to a protected area it would just return and not give me any errors (as I was using the session scope to pass back error messages as well).

I started playing with a couple of settings and one of them was setting the Use J2EE session variables on. Now this did fix the issue but I was not satisfied with it because the session tokens should remain the same even if I decide not to use jsessionid.

Now my Application.cfc had this.setClientCookies to false and once I removed it, again it worked but I was not satisfied and then I came up with this post from Pete Freitag regarding Setting up HTTPOnly Session Cookies for ColdFusion. As per his post, CF 9.0.1 added support for this by a java system property called coldfusion.sessioncookie.httponly which you can set by editing the jvm.config and adding -Dcoldfusion.sessioncookie.httponly=true or if you are running Standalone you can add this in the ColdFusion Administrator.

Once I did this it worked, so my conclusion was that if you are not setting Client Cookies in your Application then CF was not setting this httponly tokens by itself causing each refresh to act as a new connection. Hopefully this helps someone as it did me after beating my head into a wall.

Tuesday, March 01, 2011

Stencils!!!!!!

The following site has some pretty neat products for doing what we do best and that is sketching wire frames for future websites/applications and or products.

http://www.uistencils.com/

Android Patterns

If you are getting into developing/designing for Android, check out this site filled with interaction patterns that can help you!

http://www.androidpatterns.com/wiki

Phone Doo Dry Erase iPhone Sketching

If you are developing/designing iPhone apps, the this may be something you will find useful. A company named Coohdoo makes this cool product that allows you to sketch on. Now I know there are templates for this that you can print out and use for free, but imagine how much paper you are wasting!

Anyways, check these Dry Erase, Magnetic templates at http://www.cohdoo.com/

The templates have faint gird lines, are 6.8" by 3.5" and have magnetic backing. A pack contains 10 Phone Doos.

They also have browser versions in the near future.

Friday, February 18, 2011

Twelvesouth Magic Wand - Product Recommendation

I have to say that twelvesouth definitely makes great products for Mac. I originally purchased the Compass Stand for iPad which I loved. The craftsmanship is great, you definitely feel the quality when you hold this product! Friends and Family members liked it so much that I ended up giving them as gifts last christmas. Now, they have this new product called the Magicwand which brings your wireless keyboard and your magic trackpad together. I received mine today and love it. I definitely recommend this to anyone that has these two items and desire to bring them together to make a complete keyboard. I think my mouse feels neglected today. Actually, you can place the magic trackpad on the opposite side of your mouse hand and use both in harmony, one hand using your mouse and the other pinching, zooming, rotating etc....

Google Chrome Beta 10 - Faster and GPU acceleration

On Thursday Google released their first Beta of Chrome 10 which is available for Mac OS X, Linux and Windows. Google claims faster JavaScript performance (66% faster), due to the new version of its V8 - Crankshaft JavaScript engine. It also introduces a preliminary implementation of GPU acceleration (already exists in Safari and IE9) for video which allows for more efficient processor utilization which leads to better battery life. The claim that in full screen video mode, CPU usage may decrease by 80%. They also introduce a new look for the settings dialogs which are now a tab with dedicated URLs to access them, so makes it really easy to help friends and family (check out the video below).



I suggest you go get it .. I am writing this post using Chrome 10 :-).

Wednesday, February 16, 2011

Install and Run Firefox 3 and Firefox 4 on your Mac!

As a web developer I always try to test as many browsers as possible including new beta releases, just like Firefox 4. With that being said, I was not ready to let go of Firefox 3 and I wanted to know how to run both on my mac. I tried this once before but my plugins and settings went crazy because both Firefox installs were sharing the same profile. So today I decided to figure out a way of how to easily do this if possible and came across an article at tech-recipies.com (link at end of article) that gave me the answer. The quick steps are as follows:
  1. Download Firefox 4
  2. Click on the downloaded dmg file to open.
  3. Drag the Firefox Icon to your desktop. Do not drag to your applications folder as it will overwrite your Firefox 3 install.
  4. Select the Firefox Icon on your desktop and hit enter and rename it to anything, you can use Firefox 4 like I did.
  5. Drag the renamed application to the applications folder and now you should have something like below:



DO NOT START THE APPLICATION YET!
This is where we create a new profile so we can run Firefox 3 instance with our current profile and our new Beta version with a different profile.
  1. Open the Terminal
  2. type cd /Applications/Firefox.app/Contents/MacOS
  3. type to run the ProfileManager: ./firefox-bin -ProfileManager
  4. You should now see the following (except you will only have 1 profile)



  5. A few things to note here, make sure to un-check Don't ask at startup so you can always choose when you open up Firefox. If you don't do this both version will try to always run the selected profile. Click on Create Profile to create a new profile. As you can see I renamed my default profile to Firefox3 and created a new one called Firefox Beta 4. This was omitted from the original article which I wanted to add because this allows for your FF3 to run as you currently have with all your current bookmarks, add-ons, etc and for FF4 to run with a new profile which you can have its own set of bookmarks, add-ons etc.
Once all that is done you will be able to run both Firefox instances at the same time like displayed below.

The original article that helped me is :
http://www.tech-recipes.com/rx/2828/os_x_install_firefox_2_firefox_3_same_computer/

Wednesday, February 09, 2011

ColdFusion 9 - Multiple Sites - ColdBox - gotcha!!!

Yesterday I had this weird situation happen to me as I was developing locally on my Mac/Apache. Basically I was developing a second ColdBox site, set up as a VirtualHost which makes it easy for me to see in my browser by using URLs like http://site1.local and http://site2.local, which I control in my hosts file.

Well, now for the problem. Basically as I called App#1 everything worked fine but once I tried to access App#2 it would error out. As I started to troubleshoot a little more I noticed that App#2 was trying to execute a handler from App#1 (which I noticed by looking at the path in my error debug output). In truth, I wish I could say I figured it out right away but it took me a white as first I thought it was an apache issue and spend time looking at logs etc, then I finally decided to look at my ColdFusion administrator and by luck just decided to look at my Cache settings and there it was! ColdFusion 9 has a new setting called Component Cache, which caches component path resolution and then does not resolved again (picture below).


So basically once the sites would go execute the handler, it was resolving to the first path. ColdFusion9 has this checked by default and should not be for Multiple Site servers just like Cache web server paths setting. Hope this helps anyone out if you run into this new problem.

ColdBox Relax Released!

Another great tool has been released by the ColdBox team today.

ColdBox Relax - RESTful Tools For Lazy Experts! What is Relax? ColdBox Relax is a set of RESTful tools for lazy experts.

Click on the link below to find out more and watch Luis's introduction video.

http://blog.coldbox.org/post.cfm/introducing-coldbox-relax

Tuesday, February 08, 2011

Wednesday, February 02, 2011

Downgrade iPhone from 4.3 beta back to 4.2.1

Well, I am traveling tomorrow and unfortunately Skype still doesn't work on iOS 4.3 Beta 3, so I needed to downgrade. I previously thought it was not possible but it actually was very easy. There are many ways to do it, but I am just explaining the easiest way possible on a Mac, which was my situation.

First of you need the following:
  • The 4.2.1 ipsw which you can find in the following folder
    • ~/Library/iTunes/iPhone Software Updates/
      In here you should see a file called iPhone3,1_4.2.1_8C148_Restore.ipsw (iPhone 4). If you had another iPhone like the 3GS you would see something similar but it would start with iPhone2,1
  • If you want to restore your phone from a backup, that is easy too as long as you haven't deleted old backups. I saw a post that was explaining what to edit in the latest backup (in case you did it while in 4.3) which consisted of editing the backup's info.plist file. This consist of editing 2 strings to state the version and build so you don't get the can't restore from back up message. Even though I tried this I then received a message stating the back up was corrupt so I just chose an earlier backup I had that was a 4.2 backup. You can also just choose to set up as a new iPhone. If you want to try editing the latest backup you can find the file in the following directory and edit the 2 string listed below.
    • ~/Library/Application Support/MobileSync/Backup/
    • <key>Build Version</key><string>8C148</string>
    • <key>Product Version</key><string>4.2</string>
So how can you do this, simple. Use the following steps.
  1. Turn off the iPhone (you can hold down the Sleep button, or use Sleep + Home, and release as soon as the screen shuts off).
  2. Hold down the Home button while connecting to your computer with iTunes already open and ready for a connection.
  3. iTunes will prompt you to perform a software restore.
    Your iPhone will obviously be wiped new and be reset as a result and you wil have a working iPhone again.
  4. Click the "Restore" button while holding down the option "alt" key and select the ipsw file.
That is it, let it go through the entire process and you are done.


Real Time Website Analytics and more

Today, I found out about this cool service from a 37Signals post regarding who is using their latest Basecamp release for mobile phones.

http://getclicky.com/

You can test it with one domain for free and then they have very flexible upgrade options which range from 3 set types and a custom type that you can build based on how many domains and page hits you get.

Sunday, January 30, 2011

Error Installing Phusion Passenger on OSX Leopard - Ruby 1.9.2

As I began to play more and more with RoR on my mac today I decided to do a few things.

  • Install Ruby 1.9.2
  • Install Phusion Passenger

By default Snow Leopard has Ruby 1.8.7 installed but I wanted to begin using the latest 1.9.2, so with a little help from Pragmatic Studio I got it done. For more read - http://pragmaticstudio.com/blog/2010/9/23/install-rails-ruby-mac.

Shortly after that I decided to install passenger so I can deploy apps on Apache an by using their instructions I kept getting the following error:

/Library/Ruby/Site/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)

Basically the steps where as follows:

  • sudo gem install passenger
  • sudo passenger-install-apache2-module

The problem was due to me trying to install on the 1.9.2 build which I installed and manage using rvm and for that you need to do the following:

  • rvmsudo passenger-install-apache2-module

I can't take full credit as I found the answer here: Article on stackoverflow

Up next - applying changes to my httpd.conf and seeing if it works :-)

Wednesday, January 26, 2011

SSL on Apache

Today I needed to install an SSL certificate on my local test machine (Mac/Apache) and it was my first time ever. I've been an IIS guy way too long and I love to develop on my Mac without having to bring up a Virtual Machine and little by little pulling away from my local dev server (the only windows box in my house after the switch back in 2003). BTW, the box will soon be a Mac Mini server as I am tired of that Dell Jet Engine in my living room.

Anyways, with a little help from Google I came up with this entry at O'Reilly's onLamp.com.

http://onlamp.com/pub/a/onlamp/2008/03/04/step-by-step-configuring-ssl-under-apache.html

With that and comparing my local httpd-ssl.conf to my user.conf file I was able to do effortlessly.

The reason I had to do a compare was because I didn't read the comments and the first comment spoke about the error I had which I figured out myself by copying over the local config.


Coldbox Plugin - FormatUtils - useful UDF's by me and others (some inspired by RoR)

Over the years, I have used and created many UDF's in my applications. So when I decided to start using ColdBox, I wanted to start grouping them into plugins. One of the first ones, is my FormatUtils Plugin that has several functions that allow you to work with strings. Below is a list of functions included, credits and what they return.

Before we begin let's assume we assigned the Plugin to rc.FormatUtils in our handler as follows:

  • brFormat(theString)
    Converts every carriage return and/or line feed into a compliant line break <br />

    Example
    Will return:
    Hello World<br />How Are You?
  • pFormat(theString)
    Creates compliant paragraphs and line breaks from carriage returns and/or line feeds, I created this because ColdFusion's built-in paragraphFormat() does not close out paragraphs.

    Example
    Will return:
    <p>Hello World</p></p>How Are You?<br />I am good</p>
  • formatPhone(phone,mask)
    Original Author: Derrick Rapley
    This I grabbed from cflib.org and it has come pretty handy. Basically you can pass a string and a mask and it will return it back in the format you requested.

    Example
    Will return:
    Line 1: (305) 555-1234
    Line 2: 3055551234
  • abbreviate(string,len,append)
    Original Author: Gyrus
    Also from cflib.org and it has come pretty handy. Basically you can pass a string a length and it will truncated to your specified lenght without breaking a word.

    Example
    Will return:
    Line 1: A string like this can go ...
    Line 2: A string like this can go fo
  • urlCrypt(mode,string,closer,key)
    This one I actually have to thank my local CFUG for. In one of our little quizes we use to do before the meeting, a question was asked how to encrypt a string that can be safely passed as a URL and the answer was 2 undocummented functions cfusion_encrypt and cfusion_decrypt. I also saw another way using a mixture of toBase64() and toBinary() in case these functions would no longer work (the alternate method is commented out).

    Example
    Will return:
    Line 1: 1911204E0D130415540F001C6B081C4D10364E241B081E17081D0224453E02142014CB3
    Line 2: the name for me is Giancarlo Gomez
  • pluralize() - singularize() and $singularizeOrPluralize
    The credit to this one goes to 2 other frameworks. The first is of course Ruby on Rails. I went to a presentation to learn more about this language and I fell in love. A simple function called pluralize was introduced to me and I though it was great. Basically pass it a word and a number and get back the plural version of it. So at first I wanted to create it from scratch but I decided to do a little bith of research and found out CF Wheels already had almost the equivalent, so I started from there. The only thing I added which they did not have is for an alternate plural or singular word if one was not found in the predefined rules.

    Example
    Will return:
    20 houses

To close out you should know that it is not necessary to have Coldbox to use this, simply use the CFC as any other and you can take advantage of all these functions.

I created a new git repo where I will begin to add all my code to share. Click on the following link to see this CFC on gitHub:
FormatUtils.cfc on gitHub