AFTERSHOX - Tariq Ahmed on Technology :: Management :: Business
  • About Me
  • Resume
  • Contact
  • Learning List
AFTERSHOX - Tariq Ahmed on Technology :: Management :: Business
About Me
Resume
Contact
Learning List
  • About Me
  • Resume
  • Contact
  • Learning List
ColdFusion

ColdFusion vs. IIS7.5 – Application Pool

If you’re trying to get ColdFusion (particularly CF8 and CF9) working on a 64bit Windows machine using IIS7 or IIS7.5 you may encounter an error like this:

[box type=”warning”] HTTP Error 500.0 – Internal Server Error The page cannot be displayed because an internal server error has occurred. Detailed Error Information[/box]

 

Module IsapiModule
Notification ExecuteRequestHandler
Handler AboMapperCustom-58087
Error Code 0x800700c1
Requested URL http://aftershox:80/
Physical Path c:\web\aftershox
Logon Method Anonymous
Logon User Anonymous
One possibility is the Application Pool setting doesn’t match CF/Java:
  • IIS Application pool is 64bit and CF is 32bit, or;
  • IIS Application pool is set to 32bit and CF is 64bit.
To correct this, pull up the Advanced settings for the IIS site in question and check which Application Pool it’s set to use:
Then, in the IIS Manager:
  1. Switch to the Application Pools list.
  2. Click on the required Application Pool identified earlier.
  3. Select Advanced Settings
  4. Set the Enable 32-Bit Applications to True for 32 bit CF, or False for 64 bit CF (see next image).
01/17/2012by Tariq Ahmed
Groovy / Grails

Installing weceem cms

This week I’m looking into integrating a CMS into a Grails application. Initially there won’t be much tight integration but it could involve single sign-on and lead into much tighter application embedding CMS content.

As it happens, there is a CMS built on Grails called Weceem – it took some trial and error to get it working as the documentation could use a lot of work. Here are some tips if you’re trying to get it working on Mac OSX (as a quick and simple standalone development mode).

Tomcat

    • Download the tar.gz distribution of Tomcat.
    • Decompress Tomcat.
    • Copy the folder somewhere as desired, I used /opt/apache-tomcat-7.023. Check out this really good tutorial here.
    • Download the MySQL JDBC driver.
    • Copy the MySQL JDBC driver (i.e. the mysql-connector-java-{ver}-bin.jar file_ to {tomcat home}/lib. I read postings that say you can copy to a common/lib folder, but that didn’t seem to work.
    • Edit the {tomcat home}/conf/tomcat-users.xml file and add something along the following lines:
  <role rolename="admin"/>
  <user username="admin" password="admin" roles="manager-gui,admin"/>

Create a MySQL Database

  • Create a DB in MySQL called whatever you’d like (I used cms).
  • Create a username and password that has access to read/write/modify the schema.

Weceem config file

Create a weceem.properties file somewhere. /etc/weceem.properties might be a good choice. It’ll look like the following, update accordingly.

# Control whether or not connection pooling is enabled
dataSource.pooled=true
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.username=dbusername
dataSource.password=dbpassword
dataSource.dbCreate=update
dataSource.url=jdbc:mysql://localhost/cms
searchable.index.path=/Websites/cms/search-indexes

 

Make sure that whatever you set as the searchable.index.path is a directory that that the user Tomcat will run under has read/write access to.

Update your environment variables

Edit your ~/.profile and make sure you have the following lines, update path accordingly:

export JAVA_HOME=/Library/Java/Home
export CATALINA_HOME=/opt/apache-tomcat-7.0.23
export JAVA_OPTS=-Dweceem.config.location=file:/Websites/cms/weceem.properties
export CATALINA_OPTS="-Xms756m -Xmx756m -XX:NewSize=256m
                      -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=512m"

Deploy Weceem

  • Download the Weceem.war file.
  • Copy the Weceem-{ver}.war file to {tomcat home}/webapps/weceem-{ver}.war.
  • You can rename the Weceem file to just Weceem.war if you’d like.

See what happens

  • Open a terminal window.
  • cd to {tomcat home}/bin
  • Type in ./startup.sh – you’ll see some stuff about environment variables, and the command line will return back to you.
  • Open another terminal window.
  • In the second terminal window, cd to {tomcat home}/logs, and type in tail -f catalina.out
  • You should eventually see a line that says “INFO: Server startup in xyz ms”
  • Open up a browser to http://localhost:8080/manager/html (use the username and password you set up when editing the tomcat-users.xml file above).
  • You should see the Weceem application listed and started. If it’s not started, click on the start button.
(click on image to enlarge)

 

  • Once running, just click on the left column (the path column) and it should load up the default Weceem page.
  • There’ll be a link on that page to edit content, the default admin user name and password is admin/admin.

Hope that helps save someone time who wants to tinker around with it.

12/06/2011by Tariq Ahmed
Management

Discover the business before you scale the business

Was watching this short discussion panel regarding strategic advice from Angel investors (Ron Conway and Mike Maples) to start-ups.


Here are some take aways:

  1. Keeping your burn rate extremely low buys the company the added probability of getting lucky.
    1. The luck from a low burn rate comes from having the cash to experiment with various ideas until you find the right model/combination/technique/strategy. Whereas with a high burn rate, it’s all or nothing.
    2. Once you find that right idea/model, you can then hone in on it and maximize it’s usage, which then drives more of what’s working (cash flow, sales leads, profits, etc…). With a now working business model, the profits come in, and you now have the ability to grow and take on more opportunities.
  2. $1M should last you a year.
    1. Starting with a team of 3 people, growing up to maybe 5 or 6 people.
    2. Companies are the most productive when they’re less than 10 people. When you grow beyond 10, productivity goes down. So that first $1M is a team that’s lean and mean, and each individual contributes an enormous amount of productivity.
  3. Have a Product Development Strategy and a Customer Development Strategy.
    1. Most Silicon Valley start-ups describe an engineering project: Alpha, Beta, Limited Availability, General Availability, etc…
    2. Author Steve Blank wrote a book called “Four Steps to the Epiphany“, the thesis of which is companies should have customer development milestones in parallel to the product development milestones such as customer discovery validation, creation, and scaling.
  4. Discover the business before you scale the business
    1. The companies that pursue the path of low burn experimentation dramatically add probabilities in their favor.
    2. With off-shore labor, low/no cost open source technology stacks, and search engine marketing, companies easily have the opportunity to conduct low cost experimentation.
    3. Use a business strategy of low cost experimentation done a lot to find out the winning answers, discard the losing answers, and don’t scale until you’ve figured out your business model.
12/05/2011by Tariq Ahmed
Groovy / Grails, Uncategorized

Grails wildcard search on two fields

So I’m still in learning mode w/Groovy & Grails, and I have basic CRUD for managing users. The user domain class has the properties that you’d expect, including a FirstName and LastName:

class User
{
  String firstName
  String lastName
}

So I wanted to create a simple right side wildcard search that would effectively be the same as this in SQL Server:

where (firstName like '#searchTerm#%' or lastName like '#searchTerm#%')

In Grails you have a wrapper around Hibernate called GORM, which provides a mechanism called Dynamic Finders.

Imagine if you had to write a collection of functions for finding and retrieving one or many records based on each property (findByFirstName(), findAllByFirstName(), findFirstNameLike(), findByAgeGreaterThan(), etc…), it could take awhile. 🙂

But with GORM, it’s as if a little elf in the middle of the night coded all night long to create these functions for you. You never see them, but they’re magically there!

There’s a whole “with criteria” mechanism and the Hibernate Query Language (HQL), but I found the simplest way was just to do this:

def userList =
User.findAllByFirstNameLikeOrLastNameLike("${params.searchTerm}%",
"${params.searchTerm}%")
11/24/2011by Tariq Ahmed
ColdFusion, Featured, Groovy / Grails

Sizing up the business perspective on Groovy, Scala, and other JVM languages

Background

As a technology manager, one of my teams consists of a web development group building  both internal and external business applications. The core platform is built on ColdFusion, a JVM based technology, mixed in with various other frameworks and technologies (jQuey, Flex, ColdBox, SQL Server, etc…).

A couple of years ago we had a project that involved integrating JBoss Drools (a business rules workflow engine), and we needed a way to easily bridge ColdFusion and Drools together, and came across the works of Barney Boisvert and his CFGroovy project. using CFGroovy, we were able to successfully complete the project, while being able to assess the Groovy language itself.

Meanwhile as the years went by, whenever we had to recruit additional talent we found it increasingly difficult (you can find an article I wrote on the topic at RIARockStars). We don’t even bother looking for ColdFusion developers any more, we look for any talented individual with a web engineering background willing to learn.

With the success that we had on that one project, and the seemingly shrinking ecosystem we decided on a strategy of switching over to another JVM language. The reasoning and hypothesis include:

  • Ability to progressively evolve our existing platform (we can do it feature by feature, vs. total rewrite)
  • Opens up access to the larger Java talent pool
  • Keeps the product on a more relevant platform
  • Keeps the staff’s skills relevant

Why not Java itself?

One of the huge benefits of ColdFusion is the incredible productivity and low learning curve. What one ColdFusion developer can do in a day would take 3-5 (if not more) Java developers to do. So productivity and learning curve remain priorities in order to maintain rapid turn around time on product updates.

The big assumption

There’s a big assumption – would a Java developer actually be interested in these non-Java JVM languages? We know from experience that Sr. level Java and .NET developers will not switch to ColdFusion as they feel invested in Java. So I threw a survey out (results below) to get a feel for what the Java community feels about these platforms.
I realize I didn’t quite ask the question directly in the survey, and as soon as I had sent it out I had received a number of responses and didn’t want to abandon that progress. So I’ll probably follow up with a much more direct survey, but big thanks to the Twitterverse for all the retweets in getting the word out.

Assessing the risk/potential

From a business perspective, going down a new technology path has its risks and rewards, and the information collected in this article is part of a series of analysis I’m conducting in order to validate/challenge the strategy. As a CIO/CTO, you’re investing hundreds of thousands if not millions in development time, thus your interest is to make sure of the merits behind the strategy by evaluating as much as you can:
  • Is the technology gaining traction in the community?
  • Who is backing it (corporation, random collection of open source guys, etc…)?
  • Is there corporate support?
  • What is the size of the community (aka talent pool)?
  • What is the momentum of the community (shrinking/growing, accelerating/decelerating, etc…)?
  • How long will it take for a team to achieve a degree of proficiency?
  • How do you get a team to proficiency (training, books, blogs, magazines, etc…)?
  • How fast is the technology improving (rate of releases, etc…)?
  • Have other companies been successful with the technology?
So to other technology execs out there, I hope this data proves useful.

Disclaimer

This article is from the eyes of management, and not that of a developer. The findings are equally useful, but the conclusions a developer would make would be different than that of management. Most importantly as a developer, you should make it your mission to learn as many technologies as possible, it opens your eyes to new techniques and trends, and makes you an adaptive individual – and this is something a business values (Seven Languages in Seven Weeks is a particularly good book in this context).

Another thing to note is that I’m not evaluating the technologies themselves – there’s no shortage discussions and articles out there that cover this, so you can read up on those as part of evaluating technological fit (you’ll find some good ones on StackOverflow and Quora).

I’m by no means an expert on any of these platforms, and this was the result of a series of Googling for a week to gather various angles. If my perception is off on anything, I welcome the feedback. Thanks!

 

Observations

I just didn’t have the time to fully evaluate all of the JVM languages and their ecosystems, so I had to focus on (from my analysis) the biggest three: Groovy, Scala, and Clojure. Given more time, what I would need to do is focus the research on specifically web development as all these languages (including Java) encompass more than just web applications.

But I needed to start somewhere, and you can see where I try to rope in some web perspective.

Groovy

Groovy at this point in time would be the conservative/safest bet, business wise. It’s like the Ryan Seacrest of non-Java JVM languages; its conservative, clean, polished, and very active. Groovy is like the athletic younger brother of the lethargic and obese Java.

It appears to have the overall largest ecosystem of the three, and is backed by a huge well known entity (VMWare/EMC). Grails being the web framework of interest, they’re also about to release a big 2.0 update.

I am very disappointed that although SpringSource mentions they have a Groovy and Grails courses, they actually don’t conduct any. This could be used as clue that there’s not enough interest to warrant hosting such classes (well more than a clue, that is the case), but you figure just for strategic reasons they’d take a loss on the training (the classic Gillette move, sell the razor at a loss and make it up on blades).

However, I found the Scala and Clojure training availability just as disappointing.

Scala

Scala would be the other strong contender. Although its ecosystem is smaller than Groovy’s, it has a noticeably more passionate community. As well, having Twitter as the big success story is a massive notch on its belt.

The funding of Scala would be on my things to keep an eye on. Part of Scala is backed by a Swiss university (EPFL), and educational institutions tend to be extremely bureaucratic and their funding dependent on government entities. And then you have a business also involved (TypeSafe.com) who has only been able to generate $3M in venture capital, based on the size of their corporate team, that money won’t last long if they’re not generating revenue (since they are private there’s no way to know).

Trending wise it appears to be accelerating in popularity – it’ll be interesting to resample six months from now and evaluate the landscape. Although not as many books as Groovy, its books are more current.

Clojure

From a business perspective, I wouldn’t even put Clojure on the radar for now, I’d need to see if it gains more traction in order to justify investing in it, as well as a much more solid foundation behind it.

ColdFusion

Although I don’t fully analyse it, the ColdFusion ecosystem is much larger than any of these languages. Extremely passionate community, backed by Adobe who invests millions per year in it, vast array of physical and online user groups, etc… As of right now, going by numbers, ColdFusion wins.

But, we wouldn’t be looking to hire a Groovy/Scala developer, just a developer willing to learn. I know that Java/.NET/PHP folks have no interest in ColdFusion (beleive me, we tried on many occasion). So the question is, is that the same situation with Groovy/Scala/etc…, and trend wise is it a matter of time and we’re just at the infancy stages?

 

The Data

JavaRanch Posts

  • Groovy: 2398
  • Scala: 625
  • Clojure: 532

Books on Amazon:

  • Groovy: 12
    • Grails; 7
  • Scala: 7
    • Lift: 2
  • Clojure: 6
    • Conjure: 0
    • Noir: 0

Note: The current offerings of the Groovy & Grails books are relatively old (most recent Groovy one being from 2008, and the most recent Grails ones from 2009).

User Groups:

  • Scala: 53
    • Lift: 4?
  • Clojure: 33
    • Noir: 0?
    • Conjure: 0?
  • Groovy: 23
    • Grails: 63

Email List Activity:

  • Groovy: 50/day
    • Grails: 83/day
  • Scala: 38/day
    • Lift: 46/day
  • Clojure: 33/day
    • Noir: 2/day (Google Groups)
    • Conjure: 1/day (Google Groups)

Tiobe Index:

  • Scala: 50
  • ColdFusion: 59
  • Groovy: 69
  • Clojure: not on the list

eWeek Article 09/12/11 (http://bit.ly/nbbtbx):

  • “Groovy, JavaScript, Ruby among the fastest growing programming languages”
  • Note: the early relative percentages are interesting, but as impressive as a 100% increase is, going from 1 job to 2 jobs isn’t.
  • The more relevant thing here is the industry perception an article like this generates.

StackOverFlow Search on terms:

  • “groovy” : 4390
    • “grails” : 3391
  • “scala” : 3222
    • “lift” : 1608
  • “clojure” : 3059
    • “conjure” : 89
    • “noir” : 34

Source of funding/corporate support:

  • Groovy
    • SpringSource a VMWare company, subsidiary of EMC Corporation
      • VMWare: Publicly traded on the NYSE (VMW)
        • Employees: 9000 employees
        • Market Cap: $42B
        • Revenue: $3.54B
        • Gross Profit: $2.36B
      • EMC Corporation: Publicly traded on the NYSE (EMC)
        • Employees: 48,500
        • Market Cap: $51B
        • Revenue: $19B
        • Gross Profit: $10B
    • Team Size: 68? (http://bit.ly/ryL8fb)
  • Scala:
    • Ecole Polytechnique Federale De Lausanne (EPFL), a Swiss Federal Institute of Technology organization.
    • Scala Solutions, acquired by TypeSafe.
      • Privately held
      • Founded in 2011 by the creators of Scala.
      • Received $3M (euro) in Series A funding on 5/12/2011 by Greylock Partners.
    • Team size: 12? (http://bit.ly/u3uPmI)
  • Clojure
    • Primarily via the personal “commercial endeavors” of the creator of Clojure (Rich Hickey) and private donations.
    • Team size: 8? (http://bit.ly/tIEaQ6)

Who’s using it:

  • Scala
    • Twitter, LinkedIn, EDFT, Novell, The Guardian, Xebia, FourSquare, Sony, Siemens, Thatcham, OPower, GridGain, AppJet, Reaktor
  • Groovy
    • Wired.com, LinkedIn.com, Sky.com, Aegeon, eHarmony, EverBank, ExpertPlan, NetJay, NimBuzz, XWiki, Vodafone Music Store,
  • Clojure
    • BackType, Sonian, Fightcaster, Akamai, BankSimple, Relevance, KamaGames, Stere, Infinitely Beta, Wusoup, Factual, The Deadline, holodb, Prismatic, Amazon

Job Searches on Dice.com:

  • ColdFusion: 343
  • Groovy: 247
  • Scala: 126
  • Clojure: 20

Job Searches at Monster.com:

  • ColdFusion: 196
  • Groovy: 120
  • Scala: 64
  • Clojure: 9

Indeed/SimplyHired trends

Survey Responses

With just under 2000 responses, I don’t think the sampling is enough to be representative of the community as a whole, but it does provide some perspective. I even found out about even more JVM languages that I hadn’t heard of yet (Visage, Dart, Quercus, Frege, Dash, Mirah), and got a couple of Railo’s (which I wouldn’t count as a language as it’s an open source ColdFusion server).
10/30/2011by Tariq Ahmed
Groovy / Grails

Webinar – introducing Grails 2.0 – developer productivity

Hosted by Peter Ledbrook, Grails Advocate

With the imminent release of Grails 2, it’s time to find out just why we think you should upgrade. Or if you’re not using it, why you should give it a second look.

This webinar will introduce you to the new usability features that are targeted at improving your productivity, such as the new interactive command line, improved class reloading, and much better unit testing support. You’ll also discover powerful new features such as ‘where’ queries, database migrations, and static resource (CSS, JS, etc.) handling.

North America: November 03, 1:00pm EST / 10:00am PST – Register Here
Europe: November 03, 3:00pm UK / 4:00pm Europe – Register Here

10/30/2011by Tariq Ahmed
Groovy / Grails

Grails’ dateCreated and lastUpdated properties

 

 

I’m in the process of learning Groovy and Grails, and Grails has this neat feature called scaffolding where you just create a domain class like a User and all its properties, and it’s auto-create a full CRUD to be able to create/read/update/and delete.

class User
{
	String userId
 	String password
	Date dateCreated
	Date coolStuff
	Profile profile
}

Which when creating, will generate a form like this:

 

 

 

 

 

 

But I was wondering what’s the deal with dateCreated. Turns out that if you define dateCreated and lastUpdated properties, Grails will automatically take care of storing in the database the record creation date and when it was last updated (which is all facilitated via Grails’ ORM Hibernate wrapper).

 

 

10/17/2011by Tariq Ahmed
Agile

Daily Scrum stand ups – creating a plan for the day

The purpose of the daily stand up meeting in Scrum is for the team to synchronize with each other. The standard format is to time box the exercise to 10 or 15 minutes at a fixed time daily to ensure it happens, and happens quickly by not allowing people to sit down and get comfortable.


It’s organized by the Scrum Master, and each team member briefly recaps:

  1. What they worked on yesterday
  2. What they’re working on today
  3. Any blocking issues
Only team members talk, i.e. the folks who committed to the work. The Product Owner and Management are welcome to attend, mostly to observe, and the Product Owner can chime in to add clarification if necessary.

The two main risks of the daily stand up are:

  1. It becomes a status report session
  2. The team reports status to the Scrum Master

The purpose of the meeting is to synchronize – to ensure there is a common understanding as to where everyone is at as a part of delivering the team’s commitment to the Product Owner for that Sprint. Meaning that it’s not about individual commitments, but how as a team are we going to get all this stuff to a potentially shippable state.
In a retrospective today we had this exact discussion, that although we know in theory stand ups are for synchronizing, how can the team increase the effectiveness of this? One of the takeaways was to view the stand up as a way to “create a plan for the day”.

Instead of developers merely picking off the next thing in the Sprint backlog that needs to be coded, and QA testers jumping on whatever is ready for testing… opening up more opportunity to leverage the “team is a team” concept where you’re not limited by title – if QA or Analysts are involved in heavy duty testing, but as a developer you’re wrapping up something relatively simple by 11am, and if another developer is able to do the testing on it to move it forward… that’s the kind of stuff you can talk about in your stand up where you’re coordinating what the day is going to look like for the team.
09/08/2011by Tariq Ahmed
ColdFusion

BacFug – Aug 2011 Recap – Is CF Dead?

I recently had the honor of being a panelist at the August 2011 Bay Area ColdFusion user group, alongside such notables as Sean Corfield and Nolan Erck regarding the topic du jour – is ColdFusion Dead?


The topic was the result of a survey sent to the user group with two choices, and this topic was the clear resounding winner with over 95% of the vote (I can’t remember what the other topic was).


It’s a topic that’s has been gaining a lot of attention over the years, and back in March of 2011 I wrote an article on RIA Rockstars regarding my perspective as a manager and the scarcity of talent.


Here’s a recap of some of my points of view, as well as other perspectives shared by the panelists and audience.

Dying but not dead

I started off by asking is Cobol dead? Last I read, there are still more active lines of Cobol in use than any other language. So technical Cobol is not dead, but it certainly has contracted to a point of a nominal maintenance existence.


Cobol will take awhile to fully go away, this is because it all boils down to a business decision. Many of these Cobol systems were developed at the cost of millions, so does it make good business sense to rewrite a Cobol app that only needs to be in maintenance mode? If it’s humming away, doing whatever it needs to do to support some operations, or maybe it has an old user base that doesn’t care about new stuff (I know of such products), then leaving it alone might be the proper business decision.


It will make sense eventually when the last of the Cobol generation (who are now in their late 50s) is about to die off, and even maintenance mode becomes at risk and the product is revenue generating where the revenue justifies the expense of a rewrite or mission critical. If it’s neither criteria is true, the product dies.


And it appears ColdFusion is headed down this path – the volume of jobs is decreasing, many of us have seen companies that have bit the bullet and rewrote their CF apps in other languages, and anyone who has tried to get a full time job (even in this hot tech market) has struggled to land a good growth opportunity.


Look around you – your team, your user groups, the blogosphere, birds of a feather sessions at Adobe Max, etc… It’s the same crowd – and we’re all aging together. Very few younger developers get into ColdFusion.


And much like Cobol, ColdFusion does have a big enough customer base (particularly with the government institutions) that it will be worth it to justify keeping the technology fresh.


So is ColdFusion dead? No. But at the current trajectory, it is certainly dying.

Chicken and egg

Unless there are a lot of high paying CF jobs, people won’t migrate to CF. And unless there are a lot of skilled CFers, businesses won’t risk starting new projects based on a technology with such a scarce resource pool.

Juniors, Intermediates, and Seniors

From the literally hundreds of developers I’ve interviewed, I’d roughly size the community up as 70% juniors, 25% intermediates, and 5% senior.


Of course, everyone is fighting for those seniors. The types of folks who really understand not just syntax, functions, and deeper aspects of the technology, but also a strong grasp of computer science, and the art of writing software.


Many people have Sr. level titles from purely working for a long time, but when they interview with us they realize how much they don’t know. Though we often use that as an opportunity to coach such candidates during the interview so that they know what steps to take in order to grow their skills.


The problem is ColdFusion is so easy. That’s what we love about it. That’s what I love about it! Everything that is hard in other languages is easy in CF. But there in lies the problem, you can get really far on minimal knowledge, and there’s nothing to really motivate you to progress further.


Some people mentioned they want to learn more, but attending things like conference sessions don’t go deep enough to get a true understanding. And this is where you should leverage the community; one advantageous aspect of the CF community is that everyone is very passionate about helping each other.


And there are a lot of great online resources. E.g. if you want to get into using a framework, check out the ColdBox Connection, you’ll find out everything you need to know to use ColdBox.

If you can’t find them, make them

If you have the time, find smart ambitious folks of other technology backgrounds and train them. ColdFusion is easy to learn, and their skill from other languages adds more strength to your team.


This technique doesn’t work on Sr’s however, by then they’re invested in their chosen technology and are unlikely to switch.

Learn Other Languages

Learning another technology can only strengthen your abilities as a ColdFusion developer. You’ll learn about topics, concepts, and techniques that are a natural part of that language, which you can then apply to ColdFusion.


Secondly, if ColdFusion is dying, it just makes good career sense to have a relevant skill set.

Pricing and open source

The $7K CF Enterprise price tag has been an agonizing issue. In order for enterprise customers to take CF seriously, they psychologically expect a high price tag otherwise it must not be enterprise.


Plus Adobe is a business after all – there’s no point in creating a product if they can’t profit from it.


However wouldn’t it be possible to create a CF Lite version that disables many of the extended features?


A lot of companies and public institutions are being given a mandate of open source only in order to control costs. If that’s the case, just use Railo.

The community

The audience mentioned how on the various discussion forums that the online community can be intimidating and snobbish with folks who have strong chastising opinions.


Another observation (by Sean) was as a community we tend to dig our own holes by isolating ourselves from the broader technology community. E.g. instead of participating in StackOverflow, you have well intention folks wanting to create a ColdFusion version of that site. Which then results in the outside community thinking there’s no CF activity.

Taking ownership

Per Nolan, as much as we want Adobe to do something, we have to take ownership of the problem ourselves.


Those of you who know you who want to become real Sr. level developers, you have to invest in yourself and get the training you need to grow – even if you have to pay for it yourself. The cost of $1500 is nothing compare to the return you’ll get.


If you feel the blogosphere only writes about super advanced features, yet you’re still trying to understand the deeper fundamentals – get on the forums and ask for it. Don’t be afraid to have a voice, the community wants you to succeed.

Repositioning ColdFusion

I threw out that I think there’s an opportunity to reposition CF as an integration technology.


Instead of something that competes with Java, .NET, RoR, and PHP – how about something that empowers developers of all such languages? And btw, it just happens to have it’s own language (CFML) as well.


What CF excels at is making stuff easy to do. Whether it’s reading in an excel spreadsheet, hooking into exchange, or interacting with a search engine, it’s all easy in the land of CF.


Running on the JVM, it lends itself to being able to interoperate with other such JVM platforms such as Clojure, Groovy, Java, Scala, Jython, JRuby, etc… Plus CF already supports .NET assemblies, so some early plumbing might be there.

Wrapping it up

At the very end, Sean conducted an informal poll to capture everyone’s take and the result was that people feel neither positive or negative about CF’s future. Everyone is in a wait-and-see mode…

08/26/2011by Tariq Ahmed
Career

Career tip – increase your value to progress your career

A number of things can influence career progression and salary such as results, professional networking/relationships, and ambition.

The biggest factor is the value you bring to the table, and creating new value that results in the progression. You may get mediocre cost-of-living adjustments by merely doing your current job, with the current level of responsibilities, at the current level of output. But big raises and significant career progression only occurs AFTER you’ve increased your value FIRST.

Why would you get a raise for doing what you’re already paid to do?

Here’s a list of ways you can increase your value:

  1. Increased responsibility
  2. Increased ownership
  3. Increased knowledge (of the systems, of the business, subject matter expertise, technologies, etc…)
  4. Going above and beyond (working extra hours to meet a deadline, taking it upon oneself to fix an issue ailing the team, etc…)
  5. Increased quality of work
  6. Increased reliability (e.g. can be counted on to deliver something as promised, etc…)
  7. Increased speed (what used to take 2 days you can now get done in 4hrs, faster turn around time, etc…)
  8. Increased commitment
  9. Increased dependability, predictability, availability, etc…
  10. Increased ability to rapidly solve complex issues/problems
  11. Increased output/results (e.g. # of tickets/user stories resolved)
  12. Increased sharing of knowledge (documents, knowledge base articles, presentations to the team)
  13. Increased savings to the company.
  14. Increased profits to the company.
It’s all about new value!
If you have any others feel free to add via comments.

 

08/01/2011by Tariq Ahmed
Page 4 of 6« First...«3456»

Who is this dude?

Tariq Ahmed Howdy! My name is Tariq ("Ta-Rick") Ahmed, and a Director of Software Engineering at New Relic where my time is focused on creating developer experiences through our developer websites, APIs, CLIs, SDKs, and ability to build your own custom apps on the New Relic One platform. I'm most passionate about finding amazing people, growing talent, and building amazing teams in order to accomplish meaningful breakthroughs in technology that ultimately create great user experiences.
Twitter feed is not available at the moment.

Categories

  • Agile (11)
  • Business Intelligence (1)
  • Career (7)
  • ColdFusion (7)
  • Collaboration (1)
  • Featured (5)
  • Flex and AIR (2)
  • Groovy / Grails (6)
  • I.T Systems (1)
  • Innovation (4)
  • Leadership (6)
  • Management (8)
  • Project Management (1)
  • Software Development (1)
  • Startups (2)
  • Technology (7)
  • Uncategorized (2)

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Blogroll

  • LinkedIn
  • Teletrac Navman

"This blog is all about sharing thoughts and experiences in my journey as a technology leader. From the technology itself to the processes, practices, and teams needed to make it happen."

Find more at LinkedIn.Â