Entries for May 2005

One of the things I have always wished that ray's blog.cfc would do is a blogroll. So today I have created one on my own. You can see the pod on the right there. It runs off of an xml file, you can have multiple categories of links, and you can set captions for your links and optionally display them. It also allows you to set the maximum number of categories to display, and the maximum number of links to display in each category, and the option to display them randomly which you will see if you refresh this page a couple times. Let me know if you guys are interested and I'll make a zip of it all and write some instructions on how to install it. It have tried to make it modular enough so that it won't hinder you much from upgrading.

Posted on Thu. May 26, 2005 by Ryan Guill #
So, if I am reading this (http://www.reuters.com/newsArticle.jhtml?type=technologyNews&storyID=8574207&src=rss/technologyNews) right, Apple is seriously considering starting to use Intel's chips in its Mac's or Ipods, or both. Now someone correct me if I am wrong, but the reason I can't put OSX Tiger on my Dell Inspiron is because it is a different type of processor right? So does this mean that there is a chance that the next version of OSX will be able to run on an old intel box?? Either way the move is seen to be able to help future Macintosh systems meet the price and performance (notice that they are saying performance) of "tough rivals such as Dell..." So even if I can't for some reason buy OSX to put on my dell, I should be able to but a new mac machine cheaper? Win-Win in my opinion.

Posted on Tue. May 24, 2005 by Ryan Guill #
I have written another Tutorial for COAL bringing my current total to three. The newest tutorial is How Does COAL Work? which is a great overview of the Java Service Locator Pattern which I have talked about before. Now, I definately do not profess to be any sort of patterns guru, not even solely for the Service Locator pattern, so if you see anything that I am off on, please let me know. Otherwise, this is how I can best explain the Service Locator Pattern.

Posted on Mon. May 23, 2005 by Ryan Guill #
I just posted the first of hopefully several tutorials on COAL. This first one is Getting Started With COAL. It explains step by step how to get up and going quickly using COAL, from how to install it, and also code examples of how to use it. I have also uploaded the bleeding edge and the most stable version of COAL for you to download and start to play with. The bleeding edge should be fine for now, there really isnt anything that should cause any problems. Eventually there will be other tutorials on more advanced topics on using COAL, such as how developers creating services for COAL can use COAL to use other services in their services, and how you can create your own services on your own and include them in your own copy of COAL. Let me know what you think of the tutorial, if you find any typo's or if there is any parts that need clarification.

Posted on Fri. May 20, 2005 by Ryan Guill #
Now this is what im talking about. Josh Dura gives a link to a rumor reported on Outer-Court.com that talks about the a Google Portal. I have been wondering when google would get around to something like this and now they have! http://www.google.com/ig/. Take a look at it. Its extreamly clean and useful, exactly what you would expect from google. It obviously still has a lot of work to be done on it, but is a great start. click and drag any section to another column or position. Clean, concise information. What more could you ask for? (besides rss support and further customization??)

Posted on Thu. May 19, 2005 by Ryan Guill #
A while back I was experimenting with flash and components and I posted Grand Funk Railroad's Some Kind of Wonderful using the media player component that ships with Flash. But the way I had to do that, you have to hardcode the location of the mp3 file in the fla and then publish it. Well, this means that for every time you want to play an mp3 with the thing, you have to make a new swf. Well today, I wanted to post another song in congratulations of my best friends getting married, and so decided to think about it again. So I contacted a friend of mind named Chuck Williams at mind-over-data.com who knows quite a bit about flash and he was able to help me. Basically, what he had me do was to drag a new instance of the component down to the stage, and name the instance. Then we locked the first layer, and created a new layer. We named the second layer "code" and clicked on the first frame and put in some action script. Like so:
stop();
trace (mediaComponent); //mediaComponent is the name of my mediaComponent instance mediaComponent.setMedia(_root.mp3var, 'MP3');
And thats it. Then you are able to publish the swf and just pass in the location of the mp3 file that you want by just appending it to the end of the movie call, like this:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="400" height="75" id="mediaComponent" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="mediaComponent.swf? mp3var=http://www.ryanguill.com/download/music/NorahJones-seeyouagain.mp3" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="mediaComponent.swf? mp3var=http://www.ryanguill.com/download/music/NorahJones-seeyouagain.mp3" quality="high" bgcolor="#ffffff" width="400" height="75" name="mediaComponent" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
And thats all there is to it. Here is the finished product:
Now, I know absolutely nothing about actionscript, flash, or components, and this blog post is of course targeting people in the same boat. If you don't have flash but want to play around with the media component, you can download the swf here: (its a .rar file) mediaComponent.rar. Update: I didnt get this the first time that Chuck told me, but you also need the ?mp3var=http://... in the param in the object for IE to render it correctly. Embed for mozilla (firefox too), object for IE. So if you were trying this before, make sure to add the mp3var to the param movie as well.

Posted on Mon. May 16, 2005 by Ryan Guill #
Congratulations Nathan and Aretta Terry! Once again, I consider myself very blessed to call you guys my best friends, and was very honored to serve as your best man. This will be an everlasting love!


Posted on Mon. May 16, 2005 by Ryan Guill #
Well its all coming along nicely now. I've had a few setbacks, but the COAL website is starting to shape up. I have the framework for the documentation up and going, although there isn't any actual documentation up there yet. But its all downhill now, all the hard work is done. So what COAL needs now (is love, sweet love... no thats not it) is services for the framework, some individuals willing to help me write documentation for the services, I need to write some tutorials and guides to help people get up and going, and finalize the actual framework so people can start downloading and using it. I'm not sure if I have mentioned this before, but COAL will also be useful to developers as a framework alone, besides the services provided with the framework. You can easily put your own components, exposed as services in the framework and use it as an easy way to load and use the components. The service locator pattern is a great tool and this makes it easy (and as far as I can tell so far, even faster) to organize and use your components in your applications. And although I don't have experience first hand with it, I believe it would a good way to use component with flash remoting with flash and flex. (you would of course have to change a few things in the framework like access="remote"). So go and check out the new changes on the site and please, let us know if you would be willing to contribute to the project.

Posted on Thu. May 12, 2005 by Ryan Guill #
Today I found myself wondering if there was any web based calendar applications out there? I'm thinking of a almost outlook replacement, something like the mozilla calendar/sunbird only web-based, something like gmail only for dates and schedules. It'd be great if google integrated it with gmail, but i'd take just about anything. I have one built into my cms, but it isn't as polished as I would really like. So does anyone else know of something like this?

Posted on Wed. May 11, 2005 by Ryan Guill #
I got to working on the COAL website the other day and was going along pretty well. Then I uploaded what I had to the server and it wouldn't work for some reason. I kept getting very strange sql errors and couldn't figure it out. Im going to make a very very long story short here and tell you that the problem was that I had an alpha version of mysql 4.x on my production server. I had been using it fine with no problem for a while, but for some reason it didn't like < cfqueryparam cf_sql_type="cf_sql_timestamp" for a datetime field value. Bombed every time. So then I decided finally to download the newest version of mysql, 4.1 like I had here on my laptop for testing. Well, the alpha that I had been using used the mysql 3.x drivers just fine, but this 4.1 was a different story. So I did a google search and finally found this technote: http://www.macromedia.com/cfusion/knowledgebase/index.cfm?id=6ef0253 now its importaint that you go to THIS technote, because there are others out there that look like the ones you want, but have you doing things with your classpath and all sorts of voodoo that is not only unnecessary, but no telling what youre actually doing. Now, in this technote, it gives you this link to download the mysql connector j jdbc driver available at: http://dev.mysql.com/doc/connector/j/en/index.html which if you click that link, you'll see very quickly that the link is for the documentation for that connector, not the connector itself that you desperately need to download. This, is the correct link: http://dev.mysql.com/downloads/ Scroll down a bit and you will see Official API's, and the mysql connector/j. Now look closely here, there is a 3.1 version that says "recommended" and a generally available 3.0 release as well. Their recomendation is bs, you want 3.0. 3.1 WILL NOT WORK no matter how much you plead with it. 3.0, well it works like a charm. then just follow the instruction in the technote and youll be right as rain. I hope someone finds this on google....

Posted on Tue. May 10, 2005 by Ryan Guill #
Congratulations To Kentucky Derby 131 Winner Giacomo! And my pick, Closing Argument placed second! What a race!!! That is why I love this event.

Posted on Sat. May 07, 2005 by Ryan Guill #
alright, now that youve gone as far to actually click on a link like that, don't worry, we aren't talking about anything related to porcelain, double ply or air freshener. Im not sure where I found this (if its been on someone's blog on mxna thats most likely where) but dropload.com provides a great little resource right up there with tinyurl. The developers have graciously given you 100 mb of temporary storage space. You sign up, upload your file, and leave it for someone else. You just give their email address, they come in and download the file. Files are removed 7 days after they are uploaded and you can upload any type of file. Great little site if you want to send a file to someone but you think outlook is going to die a thousand deaths before actually getting it sent.

Posted on Fri. May 06, 2005 by Ryan Guill #
Well the COAL website is coming along well and its about time to start setting up the documentation pages for the services. So I am writing this to ask for some ideas about the best way to tackle this. Some of the options I have figured up so far: 1. Store it all as fields in a database; the only trouble with this is that I have no idea all of the different fields I would need, and don't really want to write all that sql... 2. Store a few things as fields in a database, but the actual documentation store as xml in one field in the db, and transform it using xslt; only problem there is I would have to write documentation teaching service authors how to write the documentation... or do it all myself, no thanks. well, thats about it. Also Im not sure even how it would need to be laid out. For now, I think were going to have for each service: 1. An introduction/description of the service, 2. A List of dependancies on other services. 3. A table explaining all of the public methods of the service with methods, params, output, all that stuff, 4. Actual documentation with examples and explanations 5. Conclusion The main thing is some services are going to be very simple and easy to understand, only taking a couple paragraphs of documentation, and some are most likely going to be pages and pages long. Some may even need to be paginated, so that it isnt too long. And eventually I hope to get cfmx 7 for my server so that we can have flashdocs and pdfs to download the documentation with. So, does anyone have any ideas, experience, or examples of how to work and structure all of this?

Posted on Thu. May 05, 2005 by Ryan Guill #
Following through a bunch of links last night I came upon Tim Blair's Blog which showed a link to this: The accessiblity toolbar. For those of you who use the webdeveloper toolbar in firefox, this is its distant cousin that works almost just as well. Great little tool!

Posted on Thu. May 05, 2005 by Ryan Guill #
Well today has been interesting. Got to hang out with some great guys at http://www.mind-over-data.com/. I have also decided that I am going to try and learn both fusebox 4.1 (which I know a little bit about already, but never really done anything with it) and Flex. Figure both would be good skills to have and so I might as well start now. Not to mention I am also still working on COAL which is also coming along quite nicely. I have downloaded the flex installer and flex-builder (which looks exactly like dreamweaver...) but im having some trouble understanding how the flex server works, especially how it plays with your webserver, and ultimately coldfusion. I have also downloaded the fusebox 4.1 files and some sample applications which I hope to go through over the weekend or sooner if possible. If anyone has any great resources, tips, tricks, suggestions, hints about getting started, etc, etc, about either flash or flex, I would really appreciate the assistance.

Posted on Wed. May 04, 2005 by Ryan Guill #
Steven Erat has just posted to his blog about this article in the SD times. Macromedia: Java, ColdFusion Users Safe - Adobe Takeover won't impact company's core Calling ColdFusion and J2EE “the core DNA of our company,” Macromedia chief software architect Kevin Lynch last month indicated the upcoming takeover by Adobe Systems Inc. for approximately US$3.4 billion will not change anything for developers using those tools. Whew, about time someone said one way or another...

Posted on Tue. May 03, 2005 by Ryan Guill #
Today I was writing basic getter/setter methods for one of my cfc's and had this great idea. The setter looked something like this:
<cffunction name="setProperty" access="public" output="false" returntype="void">
         <cfargument name="propertyName" type="string" required="true" />
         <cfargument name="propertyValue" type="any" required="true" />
         <cfset variables.output[arguments.propertyName] = arguments["propertyValue"] />
</cffunction>
One of the best things about using user defined methods in cf in my opinion is the way to type check arguments as they come in (I know this is a basic thing, but when youre creating functions that do things like sql inserts for you, it provides another level of protection that I appreciate). So it sort of bugged me that I have to specify type="any" to the propertyValue argument. I thought, well, why don't I just use another argument called propertyType and just use that to dynamically type check the propertyValue Argument, something like this:
<cffunction name="setProperty" access="public" output="false" returntype="void">
         <cfargument name="propertyName" type="string" required="true" />
         <cfargument name="propertyValue" type="#Arguments.propertyType#" required="true" />
         <cfargument name="propertyType" type="string" required="false" default="any" />
         <cfset variables.output[arguments.propertyName] = arguments["propertyValue"] />
</cffunction>
So I tried it out, and guess what! It doesn't work :( ColdFusion throws an error saying that " This expression must have a constant value." or in other words, you can't provide a value for an argument type dynamically. That kinda stinks. I guess that now with cfmx 7 you could still pass the propertyType in and do type checking with a < cfparam> call which would throw a cf error if it didnt work, but unfortunately im still using cfmx 6.1 for this project. Too bad. Anyone else see a way this could be done?

Posted on Tue. May 03, 2005 by Ryan Guill #
Design, Photograph, Work © Ryan Guill, aDeepBlue 2013: All Rights Reserved. | Contact | RSS Feed