Got me a sweet set!
Archive for the ‘Geek'n Out’ Category
Planning Poker Cards came in!
Coldfusion Is Not Scalable
Even after 12 years of developing enterprise ColdFusion applications, I’m still amazed that I hear statements like this. I recently left a job where I helped to build a highly scalable application for the financial industry using CF. Our team used EXTjs, MySql, and Railo as the CF parser. I am still ‘invested’ in this project, and so I was talking with the COO yesterday and he mentioned that there was another developer they were talking with who said … ‘Coldfusion is not scalable’. No explanation given… just that it wasn’t scalable. I was actually a bit irritated, and so I asked the COO to just ask him ‘Why?’.
The enterprise versions of Adobe Coldfusion, Railo, and OpenBlueDragon all come with built in clustering using J2EE session management. Adobe’s version 9 comes with Hibernate support built-in… and Railo is soon to follow suit. Companies like Etrade, NASA, GoldLeaf, Caterpillar… all use ColdFusion. All of the parsers support enterprise DBMs like Oracle, MSSQL, Postgres, and MySql. All of the parsers come with a form of memory caching.
My only ‘guess’ is that he’s possibly talking about it not being financially scalable. Perhaps he doesn’t know that there are now 3 different open source CF parsers available? (openBlueDragon, Railo, Smith) Part of the reason why MySpace moved away from Coldfusion was primarily a licensing issue. Adobe ColdFusion licenses are not cheap, but they are justifiable. Even if he was talking about a financial scalability issue due to licensing… it’s just something that you build into your business model on the front end to make sure that you have the money available either through investment or financing.
Either way, we had already addressed the financial scalability issue by choosing Railo as the parser, and I built in my own clustered session management using in memory sessions backed up by persistent sessions in MySql. Combined with sticky sessions in Apache, a front end load balancer and simple MySql replication, and you have a pretty solid HA setup. It’s not J2EE, but it worked. We were also planning on rolling it into the cloud when we released it into production, and so those MySql servers would have had up to 32GB of RAM and 8 processor cores available to each of them (vertical scalability), with the web servers being horizontally scalable as much as needed. Down the road we could have always moved to MySql Clustering when it was actually needed, giving us true horizontal scalability. I’d say that’s pretty scalable.
My point is that it really is not the language that makes an application scalable. Certain tools can make it easier (Enterprise CF vs. Standard) … but it is really dependent on how the application is designed in the first place. Most of the HA scalability issues can (and should) be mitigated to the network and operating system layers rather than handling them within the application layer anyhow. Saying ‘Coldfusion is not scalable’ seems to me to be a real misunderstanding of how highly available applications are really built.
Web Developer Toolbar
By far the coolest add-on for firefox I’ve seen for developers since firebug. It’s also available for Flock and Seamonkey.
This thing gives you all sorts of information about the page that you’re viewing. Some of the toys available:
- Line Guides
- Ruler
- Display Div Order
- Display Element Information
- Resize Window
- Dom Inspector
- Validation tools for CSS, Feed, HTML, 508
- Outlining of Frames, Headings, Links, Tables, Block Level Elements, Positioned Elements
- Display Image File Sizes, dimensions, paths
- Disable CSS, Javascript
- Inline editing of Html and CSS
There are a ton of other features… well worth the donation.
Tab Dump 02/09/2010
http://www.52framework.com/
Awesome Html5 / CSS3 framework! Thank you Tyson Cadenhead for posting this on Facebook. I require this for home use.
http://net.tutsplus.com/
Just came across this today… where have you been all my life?
http://freelanceswitch.com/
Another great site by those guys at Envato … I’m going to keep an eye on this one.
http://www.zend.com/en/products/studio/
Looking into some IDE bidness for PHP.
Quantum Communications
A few months ago, I wrote about Quantum Cryptography and Quantum Key Distribution using the ‘Observer Effect’:
http://www.managedmayhem.com/2009/05/20/quantum-cryptography-quantum-key-distribution-qkd/
I got to thinking today about how possible it would be to use this same concept of quantum state entanglement in order to communicate across long distances. My thought was, if QKD exists, why not use the entangled photons… one in a transmitter, the other in a reciever… and change the state rapidly in an ‘on / off’ pattern similar to binary? This would effectively change the state of the receiver photon, which could be observed (syn / ack) and then translated into a more classical form.
As it turns out, they are already working on it:
http://www.universetoday.com/2008/03/17/a-step-toward-quantum-communications-with-space/
http://arxiv.org/abs/0803.1871
http://www.niac.usra.edu/studies/974Morgan.html
http://arxiv.org/abs/quant-ph/0305105v1
I’d love to see this stuff in operation 20-30 years from now.
Web Inspector for Safari!
I use Firebug for Firefox normally, but was always irritated when I had issues in Safari only, and did not have the same sort of inspector available to me. IE8 now has one included as well, which should make debugging IE much easier now.
freaking cool… you can turn this on from terminal by running this:
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
Quantum Cryptography / Quantum Key Distribution (QKD)
I’ve been reading up on security options for a financial services client of mine… and came across Quantum Key Distribution. Great stuff if you’re needing a secured point to point fiber optic network. The principle behind this stuff is that it uses quantum mechanics instead of the ‘mathematical difficulty’ normally associated with other classical cryptographic methods. Two devices (one on each side of the conversation) transfer photons as shared keys. One example of how QKD uses quantum mechanics is the idea that any quantum object that is observed (measured) changes, and so therefore we are able to detect when a photon ‘key’ is observed while in transit. Hack attempts can be detected (and prevented) in this manner because if the shared key is observed, the change makes it useless. This is important because using classical methods of cryptography, there is not really any way to determine if someone is ‘listening’, capturing packets for decryption. Another principle in use is ‘Quantum Entanglement’, which essentially ‘connects’ two quantum objects (in this case photons). This technology is currently in use, but primarily by governments and large corporations like banks.
http://en.wikipedia.org/wiki/Quantum_cryptography
This is a company in New York that sells QKD devices:
http://www.magiqtech.com/MagiQ/Products.html
I’d love to play with a couple of them.
Pattie Maes & Pranav Mistry: Unveiling the “Sixth Sense,” game-changing wearable tech
Incredible video of ‘Minority Report’ like interface using wearable technology. Similar in nature to Microsoft’s ‘Surface’ technology, except you’re not anchored to hardware, as you can take it with you anywhere. This thing is genius.
I Love Browsershots.org (and distributed computing)!
From the browsershots.org website:
“Browsershots makes screenshots of your web design in different browsers. It is a free open-source online service created by Johann C. Rocholl. When you submit your web address, it will be added to the job queue. A number of distributed computers will open your website in their browser. Then they will make screenshots and upload them to the central server here.”
4 Platforms (Linux, Windows XP, Mac, Debian).
Almost 80 browser / version / OS combinations.
What I love most about the site… is not just what it can do, though it is pretty fantastic. What I really love is it’s use of distributed computing. The ‘distributed computers’ that they are using are actually computers that have been volunteered for use by folks on the web. Browsershots.org makes available a downloadable installation (written in Python) that is responsible for receiving screenshot requests and then fulfilling those requests, uploading them to the mother ship after it is completed. Genius.
Since the early-90’s and the RSA Challenge, I’ve been fascinated by the concept of distributed computing, particularly volunteer / open source distributed computing that makes use of available cycles / resources on people’s otherwise unused computers. Seti@Home uses this method to ‘listen’ to the results of mountains of data coming from space telescopes around the globe in a search for extra terrestrial life. FightAIDS@Home helps to identify candidate drugs that have the right shape and chemical characteristics to block HIV protease. Many of these projects have latched onto IBM’s ‘World Community Grid‘ program, running on the ‘BOINC‘ platform at about 2 Petaflops, and over 500,000 volunteered computers.
Service Oriented Architecture (SOA) with web services provides a great method for accomplishing some of these things. Now I want to build a distributed computing application.

