Entries for August 2006
Ever since Apple announced they were going intel, i've wanted to try it. I have used mac osx breifly at another job for a few tasks but never really worked on one. But I have seen several other developers lately that use osx and it just seems like it is a much more conducive environment for development. Especially at cf.objective() I saw many developers in a flow I could only dream about with my pc.
When the macbooks first came out, I put it off. Mainly because my dell laptop I currently have has a great big screen and an enormous resolution that I just can't see losing yet (1920x1200). Once you get used to a resolution like this, you just can't go back to smaller. 1920 widescreen is awesome for coding, especially in eclipse with no word wrap. So I decided to wait for the 17 inch laptop that I knew would eventually be coming.
So then they released the macbook pro, 17 inch, but the resolution still wasnt quite what I wanted. 1680 x 1050 is nice, but those 36000 pixels would definatley be missed. I could get a cinema display, but if I got one, I would need two, one for work and one for home, and that starts getting a little out of budget. But I still considered it, until I started realizing that I was still dependant on a lot of software that had not gone intel or ub yet. Coldfusion, flex builder 2, photoshop, and flash player 9 (although they just now released it). Plus, we are a windows server shop (both personally and at work) so I spend a lot of time in remote desktop.
Now, I know you *can* get coldfusion running on an intel mac, but I would hate the work getting it there, and would always have doubts about small things that could differ from the platforms, being that its not officially supported. And sure, you can use the flex sdk to develop on a mac, but flex builder is just too nice. photoshop through rosetta, sure, I don't use it that much and probably wouldnt notice the speed issues, but still. The RDS is a bit of an issue though.
Now I've been hearing more and more about parallels and it really starts to seem like it may be the answer. Realizing that memory management in osx is *so* much better than in windows, plus the os actually gets to use the hardware in virtualization instead of emulation, maybe it wouldn't be too bad.
So those of you using parallels, and doing cf development on a mac, what are your pains? Is it worth waiting a little while longer? Heat issues im not to worried about, I dont generally put my laptop actually in my lap. Are there other choices for RDS to a windows machine in osx besides parallels? Has anyone gone through the pain of changing code to work in osx that was built for windows, with the case sensativity of filenames and such? Is 2 gigs of ram enough for all that I need to do? Is paralles really fast enough to run windows, running firefox, ie, and flexbuilder at the same time?
I really want to make the switch, I know its going to be at least a little painful but I really believe that it will be worth it in the long run... am I wrong?
Posted on Thu. August 17, 2006 by Ryan Guill
#
I was rewriting some code this morning and had one of those "man, it sure would be nice if..." moments. You know those moments. Well it turns out you really can do what I was wanting, so I thought I would share.
Have you ever needed to update a table using sql conditionally? Like, if the value of a field is a then update it to x and if it is b then update it to y? The code I am rewriting does it exactly how I would have generally done this, by selecting the value first and then using coldfusion to figure out what needed to be inserted. But you can actually combine the two queries into one. Consider the following code:
UPDATE table
SET
fieldA = CASE fieldA WHEN 'a' THEN 'x' WHEN 'b' THEN 'y' ELSE '' END
WHERE fieldB = 1
Depending on the current value of fieldA using the where conditions, it will update the field to the appropriate value. Very handy.
You can also concatonate a field in the database without selecting first:
UPDATE table
SET
fieldA = fieldA||'appendedValue'
WHERE fieldB = 1
Two very handy things that can really save you a lot of time, plus should run a lot faster, without hurting reusability or readability
Disclaimer: I am no SQL guru although I am getting there. This for sure works on an iSeries as/400 db2 database, but I dont see anything in there that should be different on any other database. YMMV.
Posted on Mon. August 14, 2006 by Ryan Guill
#
The other day I was driving down poplar avenue in Memphis and saw one of these
Billboard trucks. What a great idea! Im sure with the price of gas the costs will probably be a little high, but if you see one of these trucks you would have a very hard time not noticing them. Now I have often thought about advertising like this that you see while driving, you have to make a serious impression if you want someone to remember a phone number or a web address, but if all you want to do is plant a seed, you cant get much better than this. They already have locations in 60 cities across america. The potiential to get your ad seen is enormous.
Posted on Tue. August 08, 2006 by Ryan Guill
#
Has anyone else run across this? I am 99% certain that I have RDS enabled on one of our development boxes, It shows up in the administrator, I can connect to it through dreamweaver, but no matter what I try when trying to connect to it through eclipse I always get "Unable to contact RDS Server 'xxxxxx'". Not sure what im doing wrong, ive tried the computer name as well as the IP address, as well as several different ports that have the CFIDE mapping on the box with no avail. I know its not a password issue because thats a different message.
Any ideas anyone?
Posted on Tue. August 08, 2006 by Ryan Guill
#
Google earth already has so many uses, I often wonder how I ever got along without it. NOAA is now offering
Real Time WDSSII weather imagery for google earth in the KML format. Its not perfect and takes a lot of resources, but once this is refined, this will be a great resource.
This is just one of the possible uses of Google Earth that could completely revolutionize the way we look at our world. Now we just need things like this in google maps...
Posted on Mon. August 07, 2006 by Ryan Guill
#
Just putting this here for my own purposes so I can find it again later for the most part, but has anyone done any work with this spec for
XML User Profiles? It seems fairly well thought out, although im thinking it would still need a little work to get it truly useful in almost all situations. It would be fairly easy to write some coldfusion code to use this schema and seems like once you went that way it would be pretty extensible.
Of course, when you talk about taking things like this outside of a database you start having some other concerns, security and speed being only two examples, but would be great for things such as distributed logins (think msn's passport or googles login) as well as open source projects.
Anyone heard of this or had any thoughts?
Posted on Mon. August 07, 2006 by Ryan Guill
#
Just throwing this out there because I have heard several people (including myself) that have had trouble finding these extentions on adobe.com
You can find the extensions here:
http://www.adobe.com/products/coldfusion/flex2/
Posted on Mon. August 07, 2006 by Ryan Guill
#
This past week I have been thinking much more about AMF support for cf to cf communication. Some preface first:
We have been doing more and more, and talking more and more about a SOA architecture where I work lately. We have project managers, developers and all sorts of people (some of which don't know as much about what it means on a nuts and bolts level) talking about it. And on a lot of levels, it does make a lot of sense. On a lot of levels it doesn't though, but that really isn't the point of this particular post.
The point of this post is what is wrong with webservices. At least in my experience (which I will readily admit is somewhat limited) they are a pain to work with if you are doing anything more complicated than taking a few parameters and returning a result. Plus the true reusability of them gets harder when you are talking about anything more than very simple tasks. For instance, we have 209 branches across our company. My boss comes to me and asks how hard it would be to make a webservice that would take a zip code and give a list of all the customers in the zip code, or a list of all the branches that service that zipcode. Sure, thats simple. Probably would take half an hour. But that is a very simple example. Take something a little more complex, especially where you start putting in a lot of business logic and things can get messy in a hurry.
We just finished building a fairly large project that all of our branches use. It has some particularly hairy business logic, but it did have some elements to it that could need to be done from other applications as well. So from the get go, we decided we were going to write all of those things in webservices, so our asp.net buddies could use them too. But at the end of the project, we go back and realize, there was too much business logic that was specific to the application in there. So the reusability is shot without quite a bit of refactoring (we were on a crazy deadline with the project and even though we realized things were going this way, we couldn't do anything about it at the time), plus, just by using the code as a webservice was adding quite a bit of overhead to the application.
The overhead is the real crux of the issue though. We wanted to be able to pull the webservices off to another machine, which meant webservices was really the only way we could do it, plus we wanted other languages such as asp.net or java to be able to use them as well. But sometimes we are seeing a very large amount of overhead (sometimes half a second or better) just because we are doing things as a webservice instead of application specific code. Thats a pretty serious tradeoff.
So thats where AMf could really really come in handy. The ability to use objects on a seperate machine as if they were on the same machine, all in binary data transfers would have amazing impact. But that alone, cf to cf, doesn't really get the job done.
SOA architecture is buzzword lately, and despite the problems you will have with reusability (I really shouldn't say problems, I should say concerns that have to be worked out) they really are a great way to do business. The ability for QA to test certain services independantly could really speed up development, not to mention the saved time not having to rewrite or even copy code to every application. But webservices aren't really good enough. AMF on CF to CF is great for us CF only guys, but that doesnt help the other languages that want to leverage the same code. So heres the answer: not only give us AMF for CF to CF, but also CF to any other language... Now, what do I know as far as how much work that would take? I would imagine that it would take an api of sorts for each and every other language that would need it. But wow, if you could do this, and standardize it, imagine the implications. SOAP would be dead. Webservices as they currently exist would be obsolete overnight. Forgetting about the performance improvements (which I would think would be massive) just the overall ease of use with AMF if done correctly I would think would be huge.
Now, if I have to choose between having AMF for CF to CF or not having anything at all I think you know what I would choose. But if they took it a step further, Adobe could revolutionize applications for the forseeable future. Ah, dreams...
Posted on Sun. August 06, 2006 by Ryan Guill
#
I just wanted to bump this up, and say thanks to
Brian Rinaldi for bringing up
Aptana on his blog recently. Its a great plugin that is very well refined. I haven't really used its js and xml support yet, but its css support is awesome. I also dont think it works well for inline css editing, but for your external stylesheets, is by far the best I have found for eclipse. Definately check it out.
Posted on Sun. August 06, 2006 by Ryan Guill
#