Posts Tagged ColdFusion
A few weeks ago, I said goodbye to POLITICO. Now when I titled this “a new era for POLITICO”, I would never be presumptuous enough to mean there would be a huge change due to my departure. No, what I refer to was an announcement made before I left. Let me say first on the outset that their announcement was in no way a catalyst for my departure. In fact, l made both the decision to leave and accepted another position back in December. However the new job came with the requirement for me to get security clearances, one of which was provisionally granted in mid-January after the announcement. So for me, at least mentally, the announcement was to have very little impact.
So what was this big announcement that I have been dancing around? First, the technology team is to be commended. POLITICO’s big night to shine, their Super Bowl, was the election night. While other news organizations cratered and even crashed their sites that evening, POLITICO made moves to ensure their success that evening. Their architecture was a mix of good caching on the dynamic side and the use of two CDN providers to distribute their flattened HTML files. The underlying servers that ran the dynamic content and that built the HTML files for distribution were ColdFusion. Although by comparison to other organizations, POLITICO’s technology footprint was mid-size and its ColdFusion development team was not very big at 9 developers, it enjoys popularity in the ColdFusion community because of its high traffic and visibility.
In 2012, POLITICO reached over a billion hits. Up from just 717 million the year before. Our record day BEFORE the election night was 8 million hits, whereas we hit that number in only one hour that evening, with a new daily record of 54 million. In perspective, we made our typical monthly average in just one day. Most of these stats were publicly available so I am not breaking news here.
After a record smashing election cycle and with deep reflection by POLITICO’s CTO Ryan Mannion, it was decided that in order for the site to properly scale and do so in a cost efficient manner some changes in the overall architecture would need to be made. The code needed to be run from and deployed from anywhere (portable to the cloud). And while the ColdFusion community is quite large in the DC area, we have still had a difficult job finding quality developers and when we did … keeping them. I won’t muse, ramble, or otherwise talk about the POLITICO culture beyond saying it too has been a topic to many in the media.
It was decided that while ColdFusion had been the right platform until now, going forward POLITICO would move to more open source platforms including PHP. With that, it began retraining its employees almost immediately. The good news is that they kept their team in place and were willing to retrain them. But it is a big loss to the CF community because POLITICO was a shining example of how scalable that platform could be. It is a tough decision to make and a huge investment, even if the software may be free. If the only argument for change was cost, many would have steered them to the open CF movement like Railo server. However the issue of finding quality CFers was in my mind the bigger issue.
So what is the lesson here? Even high profile companies like POLITICO have a hard time finding ColdFusion developers of a higher quality. Adobe hasn’t done enough, in my opinion, to push a CF based curriculum in colleges and universities to attract more quality developers. While we may continue to see growth by numbers in the community, I hope our experiences in finding quality advanced level developers is not an indicator of a larger problem.
Thankfully I made my decision to transition to another company long before this announcement. I am now working in the federal sector for a technology solutions provider called Segue Technologies.
Today I decided to attempt an upgrade to Mountain Lion with my ColdFusion 9.0.1 install. I already successfully upgraded another machine running ColdFusion 10 but given the issues I had last year with Lion and ColdFusion 9 I was a little gun shy. But with just a few tweaks I learned from the CF10 install, the CF9 install went pretty smoothly.
First, before the upgrade I moved all my ColdFusion/Apache config to a separate config file included from the httpd.conf file: “Include /private/etc/apache2/other/*.conf”
# JRun Settings LoadModule jrun_module /Applications/ColdFusion9/runtime/lib/wsconfig/1/mod_jrun22.so JRunConfig Verbose false JRunConfig Apialloc false JRunConfig Ignoresuffixmap false JRunConfig Serverstore /Applications/ColdFusion9/runtime/lib/wsconfig/1/jrunserver.store JRunConfig Bootstrap 127.0.0.1:51800 #JRunConfig Errorurl url #JRunConfig ProxyRetryInterval 600 #JRunConfig ConnectTimeout 15 #JRunConfig RecvTimeout 300 #JRunConfig SendTimeout 15 AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf
Next, after the OS is upgraded to Mountain Lion I noticed an important line missing in the httpd.conf file. So I added the following line right above the first <Directory> tag:
Once I did that, all I had to do is restart apache and make sure ColdFusion was started. The apache restart command in Terminal is sudo apachectl restart. And that is all it took to make it work in my configuration.
The CFIDE directory had a 403 error, so to fix that I simply added the directory that was being aliased to my httpd.conf file.
<Directory "/Users/kbenore/cfdocuments/CFIDE"> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory>
Again, restarted apache and everything works beautifully.
Today RIACON 2012 has officially wrapped up. The newer venue made the entire conference seem bigger than it actually was. Not sure the actual numbers, but it was indeed a smaller, regional type conference. The conference organizers, AboutWeb, are very happy to keep the conference on the smaller side. They really do not want to be another CFUNITED.
Even though the venue is small, the quality of speakers was amazing. The last regional event I attended was one in Dallas. That conference, which will remain nameless, featured an array of different technologies including: CF, Java, and even PHP. Yet only about half the speakers at that one day conference were decent. RIACON on the other hand had a lot of quality speakers.
The only downside with any conference seems to be the tradeoff of sponsorship. When you pony up with the big bucks, you get to send your own speakers to fill some of the spots. Adobe has some great speakers, but sometimes you get an engineer who isn’t great at public speaking or a product person who is really good at sales, but not a technical speech. Most of the time their engineers and product people are fantastic, but no organization is perfect. That issue was minimized at RIACON this year. In fact, I only remember one “talk” that seemed more about selling the idea of the product instead of introducing me to how to use the product. I attended a non-CF session called “Intro to PhoneGap” presented by Andrew Trice, an Adobe employee. The presentation felt more like a feature list discussion than a “how to” session. I’d rather have “lab” format for that and skip what I could have read on their website.
Hopefully the organizers will continue to shape the conference to contain less overview materials and more technical sessions. Don’t get me wrong, there were a good number of technical sessions but they could have stood to have more of what I would call “advanced technical” sessions. The national conference that comes to mind that does a great job at that is CFObjective. If that format could be adopted at RIACON, then RIACON would become the first choice for local developers. It is slowly getting there but with some leadership it could be exactly that at RIACON 2013. In fact, I would probably just dump most of the introductory sessions in favor of more technical sessions.
Being a regional conference, the keynotes were not really “noteworthy”. They did highlight information that was interesting, especially when talking about mobile trends. Code names for future products aside, there was no real breaking news but that is not important at a regional conference.
Overall, I would say this conference was well worth the money. It was particularly a value for local attendees like me. With 10 main sessions, it worked out to be about $12.50 per session. You can’t get that kind of value at a national conference. I will definitely try to attend RIACON 2013.
Day 2′s keynote which is classically developer centric, had really nothing new in the server world and specifically CF. That is not to say that MAX did not have such news, but the keynote fell silent (and a little bit flat). In the years since Adobe has taken over MAX, Day 2 had little in the way of “news” but was always fun … at least I am told since this was my first MAX.
I have heard from reliable sources that the history of Day 2 keynotes was that pre-Adobe they used to be more serious like they were this year. Now since Adobe is big enough, they wanted to release developer related news on Day 2 as they used to. Indeed they had developer news, just none for the ColdFusion community. In fact, I tweeted what a failure it was to see a myriad of developer product icons on the screen but not one CF product icon. No acknowledgement of CF at a developer keynote, even in a graphic, is a missed opportunity to at least say … “CF Community … stay tuned.”
Read the rest of this entry »
Keynote 1 – Design Centric
First we start with a record scratchin’ DJ as the Adobe team got ready for the big keynote. Then a classical violinist came out with a rock’ ballet. The visual opening was fantastic. Something I’d expect with the largest software company in the world.
With other major company keynotes, you expect the CEO of the company to present info about upcoming product releases. Not so with Adobe. The main keynote was Adobe’s CTO (chief technology officer) Kevin Lynch which is completely appropriate for a software company. Now my discussion of the keynote may not be as verbose as others, because frankly I am not a design guy which is where the focus of these products lie. However, I did find some of this ridiculously cool so I did want to highlight.
The big announcement from Adobe on the first day was Adobe Creative Cloud.
Adobe Creative Cloud
The Creative Cloud is broken down into three areas: Creative Services, Creative Community, and Creative Applications. Each user gets 20GB of storage to use.
This represents a number of services, some existing like Business Catalyst and some new like Typekit which Adobe announced today they acquired. Typekit is an interesting company, as a web service they make tons of fonts available to use on one’s website as a web font. No need to make the font into an image like we had to in the past. Truly a cool service. They have a free option for super small sites, but most will have to pay based on their page views per month. A fun example of the font potential is: http://lostworldsfairs.com/atlantis/
Not much here, other than the cloud allows you to share with other people more easily.
Other than the traditional desktop apps, now Adobe will focus a lot of attention on touch devices. Some of the cooler apps in include Photoshop Touch and Proto (a wireframe tool).
Photoshop Touch got lots of wows in the audience because of its the 3D layer effect. Very cool.
This new Creative Cloud includes all of the creative desktop apps you’ve come to know and love plus all of these touch apps. Beta coming in November to Android as well as pricing information.
In just 2 weeks, Adobe MAX will be underway. The main Adobe MAX conference does have a few great ColdFusion related classes available but the “bread and butter” for ColdFusion developers will be the Unconference. Sadley, Adobe has relied heavily on the content of the Unconference. It seems that ColdFusion does not on the same level of emphasis as some of their other products. This is especially true in non-new release years. That being said, the Unconference as well as the MAX courses in CF that are offered make MAX well worth the time and money.
I also fully expect more information about CF10 to be announced. Although there has already been some good tidbits about CF 10 released at previous conferences, MAX is Adobe’s official conference and as such we can expect a bigger “show and tell.”
Read the rest of this entry »
As many of you know, I work for POLITICO in the DC area. Yes, this is the same area that experienced an 5.8 magnitude earthquake this week on Tuesday. Now we are staring down Irene, a hurricane that is threatening much of the east coast. So as you can imagine, the ColdFusion posts this week have been sparser than I would have liked. It has made landfall this morning in North Carolina and his heading up the coast. We suspect (that is my family and I) it will hit us tomorrow morning. Our previous residence was the Fort Worth area, where tornados were the weather threat to worry about. It has been about 9 or 10 years since we have experienced a full force hurricane, when we lived in Florida. In Texas we’d get the remnants of hurricanes that hit land and was on land for a few hundred miles. Of course, I lived in South Florida when Hurricane Andrew hit. That was a bit stronger, because it hit as a Category 5. I was not in the eye, but the damage was incredible.
So, being part of a news company (POLITICO, WJLA, TBD) all of our developers are on “emergency” standby, so that we can still deliver news in case of server issues. Needless to say, I won’t be whipping up Hurricane Irene related ColdFusion code examples for this event. Plus, I have stuff to secure outside!
I did remember an interesting post from another hurricane prone developer, in which he wrote a cool tracker for his hurricane tracking needs (or fun). Although this post is specific to his hurricane, it could be easily modified for the hurricane of your choice. Check out Ray Camden’s Hurricane Gustav tracker code from almost exactly 3 years ago (Thursday, August 28, 2008).
For those of you with me from the Carolinas up throughout the east coast, hunker down and be safe. If you are supposed to evacuate, do so! Had my stepmom not worked for the local hospital during Hurricane Andrew we would have promptly evacuated. There are no hurricane parties worth your life. Ok, that’s the end of my Public Service Announcement. I will likely tweet (@askBenore) our experience and when we are finally on the other side of the storm.
This is PART THREE in my ValidateThis Series.
In my previous posts on the ValidateThis series, I introduced you to ValidateThis and its Rules (PART I) and then I showed you how you might overcome issues with multiple objects (PART II). Today’s post is an extension of those other posts. In the last post I left you wondering why I had a function in my combined object called user.cfc. Below, I am displaying function once again.
This topic as been covered ad nauseum around the ColdFusion community, both on the Adobe site and through various CF bloggers. But let me recap the issue as of today:
- ColdFusion 9 and 9.0.1 single server instance fresh install on OS X Lion
- ColdFusion Administrator on single server instance (after reboot)
- ColdFusion 9 (not 9.0.1) multi server instances fresh install on OS X Lion (not recommended because 9.0.1 dies)
What doesn’t work:
- ColdFusion 9.0.1 multi server install on OS X Lion (known issue)
- Many ColdFusion 9 installs that ran before the Lion upgrade fail after the Lion upgrade (OS X document root issue)
This is PART TWO in my ValidateThis Series.
So I ran into an issue with ValidateThis that took a little elbow grease to solve. Now, this may not be the most elegant solution but it works. If you have a better solution feel free to put it in the comments. The problem? I have a form that is going to be handled by two separate ORM objects. For example, I have a user form that has all the demographic user information including username and password but it also has a “group” selector. The user information gets saved to the user ORM object, whereas that group selector saves the corresponding user id and group id to a group/user lookup table handled by another ORM object.
In ValidateThis, you send a single object (or even the form field itself) to the validate function and it evaluates that object based on rules you set up. For an example of the rules, see my previous post titled: Validation Made Easy: ValidateThis. The problem is I could not send only the user object to be validated, because I also wanted rules based on the group selector. So I needed an object that contained items from both the user object and the group user object. So I created a CFC in my validation directory for just this purpose. Below is sample code used to illustrate my issue, it however is not my exact code base.