ColdFusion is Painful. Stop Using It.

Posted by Double Compile on Tuesday, November 17. 2009

I'm a software engineer with 10 years (at the time of writing) under my belt, and my speciality is web-based applications. I have used a number of platforms to author applications of all sizes. I am an expert in PHP. I am advanced Java EE developer (and Groovy). I have used ASP.Net. I have also used ColdFusion. (To a lesser extent, I have used Perl and Python, but only once each and it's been years). I am comfortable saying I have enough experience with those platforms to give ups and downs.

The purpose of this article is to lay out the downs of ColdFusion, for in my opinion, it has few ups. To quote a comment in this blog post, "Coldfusion indeed sucks major spidermonkey testicles." This post is not a reasonless rant; I have many reasons listed below that ColdFusion should be avoided and they're pretty good. This is not another "ColdFusion is a dead language" post. Far from it, I know ColdFusion is still alive and kicking, and that is a sad truth.

I won't attempt to refute any of ColdFusion's marketing bullets, I'll just list all the things I've observed in my painful relations with it. I was originally going to shoot down any near-truths they listed, but once I began reading the ColdFusion Evangelism Kit distributed by Adobe, I had trouble gleaning any facts from the marketing fluff and comparitive numbers without sources. (Why can't everything have a Wikipedia-style [citation needed] template?)

[citation needed]

All web application developers who call a platform their home that is not ColdFusion have two things in common. They know what null is (more on that later), and they all make fun of ColdFusion. ColdFusion developers are the furries of the programming world (no offense, furries). An acquaintance of mine that is a ColdFusion developer told me that "PHP is for smart people." This claim doesn't bode well for the CF developer community.

In his blog post "Why learning ColdFusion today is a waste of time", Aral Balkan describes the ColdFusion ecosystem thusly:

…the ColdFusion world where the promise of non-programmers creating applications creates for good marketing but crappy applications.

In a thread on the xkcd forums, the user "wing" compares PHP and ColdFusion:

Your real world differences are going to be that ColdFusion supports less, is an uglier language, is undersupported (good luck finding a webhost offering it on anything but a dedicated server), and costs money, as opposed to PHP, which supports just about everything (in 15 different ways), is supported on every webserver in the universe, and is free.

PHP can be written and maintained by most 15 year olds, and certainly damn near any real programmer who's written anything for the web in any language. ColdFusion requires a real programmer to sit down and learn it, and unless they are truly twisted, they'll hate it.

Enough of the foreplay, let's get to the details. These are my reasons for disliking ColdFusion that I've gained directly by experience.

  1. ColdFusion is proprietary and costly

    i has a mueez

    The official ColdFusion server is only available under a proprietary license. The production version of ColdFusion 9 costs US$7499 per 2 CPUs. What's the incentive when you can deploy PHP, Java EE, ASP.Net, Ruby, Python, and Perl applications into production at no cost whatsoever? (Yes, even ASP.Net, which technically could be Mono running under Apache HTTP Server on Linux instead of shelling out cash for a Windows Server license). Yes, there is also an open source project or two that implements some of the ColdFusion features, but not all, and good luck convincing your client or boss that you don't want to use Adobe's ColdFusion engine, you want to use a different one. [Insert open source vs. proprietary software arguments here.]

  2. ColdFusion is basically bloat

    Humorous Pictures

    ColdFusion is built on Java, right? Why not just write the application in Java? ColdFusion doesn't provide what Java does and more; really, it hides much of Java's power, and adds only performance overhead. If you use Flex, Air, or nurse from any other teat of Adobe's, ColdFusion may possibly help you there, but since I've never used any of those tools, I have no knowledge in that regard.

    I had a very large application that I converted from ColdFusion into Java EE. In the intermediate stage, I had reimplemented the backend in Java EE and changed all of the ColdFusion templates to delegate all data access and business logic to the new backend. At that point, ColdFusion was only the front end. It had a simple MVC I threw together with controllers written in CFScript and presentational templates written in CFML. There was no business logic in the controllers or the templates. When the time came to finally ditch ColdFusion, we got rid of JRun and replaced it with Tomcat on which was deployed a front-end using Spring MVC with JSP and JSTL. The performance of the application increased by an order of magninute, even though the backend was exactly the same. (Some of this may have been due to Tomcat probably being faster than JRun).

  3. ColdFusion is not very extensible or customizable

    Who Installs Appliances Before Walls?

    You get more control over your application if you skip ColdFusion. So many things are Adobe's way or the highway — form validation for example. What happens when you want to use CF's built-in form validation, but want to change the JavaScript the form generates how the form it generates looks (not what I meant; I know you can style forms), or maybe you want to change the error display screen. Tough luck, you can't. You have to do it from scratch yourself.

    As I've read, ColdFusion 9 introduced a few features that make it easy to be a cog in the corporate wheel, like interacting with MS Office documents, turning things into Flash or PDFs (no surprise being from Adobe), or connecting to SharePoint, but oops, what if you want to customize how those work work with OpenOffice documents (a reader noted that CF9 works with OpenOffice documents, which was not readily noted in the materials I read beforehand), can you extend from anything? Nope. They also note that they've added Ajax controls that use Ext JS, but what if you want to use jQuery, YUI, or Dojo? Time to write more shit by hand.

    By the way, I hope you ColdFusion developers like inefficient work. A PDF generated from HTML and CSS by the CFDOCUMENT tag compared to a PDF generated by JasperReports with the same content just formatted differently was almost 4 times larger in filesize. As I'm told, ColdFusion 9 generates smaller PDFs, so this may not be an issue anymore

    Overlook my specific examples; the real point is that you are incapable of toying with the operation of base ColdFusion capabilities. You cannot extend from the CFDOCUMENT tag to make it generate PDFs a little differently. You cannot extend the CFLDAP tag to make it connect to LDAP servers in a different way. While you may be able to write your own custom tags and components, you're going to end up reinventing a lot of wheels if you need to change anything low-level.

    Yes, yes, if you do everything ColdFusion's way, Adobe's claims of it being a good means of rapid application development are somewhat true, but it may not be the most efficient solution. Remember the age-old addage: "Fast, cheap, stable. Choose any two." (In some cases, I know of apps CF and otherwise that were only allowed to pick one).

    In his post ColdFusion is Dead, Dave Lowe says the following:

    …[I] started leveraging components for as much as possible. From there I quickly learned that ColdFusion didn't have much more to offer, and if I were to continue using it, I would be doomed to code redundant line after redundant line. On top of that, if I wanted any modern libraries that exist in the open-source world, I'd have to reinvent those wheels myself.

    Speaking of Components, let's get to the next bullet.

  4. ColdFusion as a "language" is laughable

    engrish funny basic belong

    There's nothing wrong with a tag-based templating language. In fact, JSTL and .Net have great tag libraries for visual presentation. Notice I said "tag-based templating" and not "tag-based programming".

    ColdFusion developers, if you read nothing else in this article read this paragraph. Templates are for presentation only. Business logic, data access, validation, authorization, authentication, and anything else that isn't "showing pretty stuff to the user" (database queries, form value checking, web service calls, checking LDAP or e-mail servers, etc., etc.) goes in the backend in a completely different file from the presentational template.

    CFScript used to be a complete joke, but in ColdFusion 8 they actually got the increment operator (I know!). In ColdFusion 9, CFScript got the ternary operator (boolean ? if-true : if-false), the new construct (before they had new, they had createobject('component', your-component-here)), and actual constructors. Note, CF9 came out a month ago and these poor CF developers have been without constructors all this time. That's right, they had to call the method after creating their object to set it up.

    ColdFusion has no concept of null. I'm guessing that variables in ColdFusion are stored in a glorified java.util.Map. As far as ColdFusion is concerned, there is no difference between an entry in this map with a null value, and no entry at all. This causes problems with some of ColdFusion's advertised conveniences, notably the shorthand for using object.property instead of object.getProperty(), but not if the getter returns null! You've got to use the long version for testing if a property is null. ColdFusion even pukes on some null values returned from Java. Example: I used a Java library from CFScript that returned an object array (Object[], for Java savants). You can't even work with the array if one of its values is null, it gives some bizarre error.

    ColdFusion doesn't allow you to compare objects for equality. Yes, you read that correctly. You cannot determine equality for complex values like structs, arrays, and CFCs. What you have to do is make sure your CFCs inherit from a base that keeps some unique identifier, then you can compare those. Why would ColdFusion hide something so basic as object equality and identity?

    How about the odd variable scope in CFCs? You need to declare all of your local function variables at the beginning of the function (even i in for loops). If you use a variable without declaring it at the beginning of the function, it automatically gets assigned as a class property (what?!). Thankfully these poor bastards got a "local" scope in CF9 so they didn't have to declare all their variables at the top of the function (local.i = 0;).

    Remember in the 70s and 80s when government organizations started to regulate CFCs because they were bad for the environment? I think they were on to something.

    All in all, CFScript in CF9 is less shitty than previous incarnations, but why would you even use it when there are better alternatives? Let's say there's no way the design team will let you replace their ColdFusion front end with something else because that's all they know. Put everything else in Java, and if Java is too "strict" for you, try JRuby, Jython, or Groovy, since they all compile to Java bytecode, which ColdFusion can apparently work with.

The features that ColdFusion provides — and there are some good ones — are not worth what it takes away: speed, extensibility, efficiency, and convenience for advanced developers.

I'll close with this. You can write horrible software in any language. While ColdFusion doesn't make it any easier to write bad software than any other platform, it sure makes it harder to write good software.


22 Comments for this entry

Display comments as Linear | Threaded

  • David Patricola
    *You, sir, smell. Your penchant for CF trashing is unparalleled, and I salute you for such unmoving beliefs. I will say all your points are valid, though M$ with its .NET framework is bloated as hell, and very difficult to code without Visual Studio. PHP still lacks true variable scoping which I find to be most useful in CF. Having CAPTCHA built into version 8's CFIMAGE tag is *glorious*, as this makes it 95% easier to implement. In all the years I've coded in CF (also 10 years of coding nerdery) I have never read it as being a true programming language. That was never its intention. The whole "rapid deployment" Bill Mays pitch works well. It's an interim step between browser markup and a true OOP scripting language. I think it fits most comfortably in this middle ground. As for the rest of your points, 75% of coders will not really care about the minutiae issues like lack of NULL or CFDOCUMENT size. Many programmers do it because it's their job, not because it's a passion, like for us. Like people using Internet Exploder despite all of us constantly telling them not to. I'm lucky to use both CF and PHP at my job, and I have equal appreciation for them. So all I will do is fart in your general direction.
  • Double Compile
    *It is true that .NET is only easily done in Visual Studio. Oh? What scope is PHP missing? As far as I know, the only scope that PHP doesn't have that JEE and ColdFusion do is the Application scope. I think we agree that CF works well as a quick solution when application efficiency and scalability is a secondary concern to "just get it done" and you can throw non-developers at the task. What scares me is that businesses pay good money for these scotch-tape applications made by as you say it "programmers [who] do it because it's their job, not [their] passion". It may be true that many developers ignore small details. As the guy in my company that interviews potential developers, I can safely say that I will not hire any of them. :-)
  • David Patricola
    *Does PHP6 now have a full range of variables scopes? I do plead some ignorance in this respect. If CF tried to break into the market anytime in the last 5 years with its proprietary licenses and high costs it probably would have died a quick death, but it has its place in the world of server languages. That's why only major businesses/educational institutions have it. I do prefer PHP in coding in general (3 years of rigorous on-the-job training, to boot) as the separation of business and presentation logic is important to me. Also, I wouldn't hire anyone as a CF/PHP coder unless they understood the small details, either. Part of why I was hired for my current job was b/c I provided a 4th answer to question that, up until then, had only 3 answers. I'm the James T. Kirk of CF.
  • Larde
    *I am using ColdFusion for 10 years, this is really a question of style and experience, ColdFusion is in the HTML style. And I love it for debugging, which is so easy inside HTML which is still the major part of any websites. Sometime I see PHP or other languages, and I think, it would have take me 2 or 3 times more to develop/maintain the same thing. I do not want to arguee more, this can last a long. But you cannot say that CF is a dead language. Sorry I will use it and I will promote it, and I will soon offer HOSTing. (Hosting is really the main problem of ColdFusion).
  • Nathan Strutz
    *You're don't know as much as you let on, but you sure are inflammatory. Good job talking yourself up, though. First, there are 3 open source CFML engines, The least popular has not had a release in a couple years, the other two are quite active. Railo is especially active and is under the JBoss bough. Also, there are 2 closed-source, paid CFML engines, one by Adobe and one that runs in .NET. Bloat - Java itself is bloated, so to ship anything with it, it will inherit bloat. Open Office, for example. What CFML is, is a productivity DSL on top of Java. Yes you pay for it. Yes it's worthwhile. In your conversion story, you explained how extensible and modular CF is, as well as how it can be phased in and out of an active development lifecycle. Also, I'm guessing the people who wrote the original app had no idea how to program, especially in CF. Bad programmers can leave a foul taste for any language in someone's mouth. I, for example, detest VBScript. Only newbies or those prototyping mock-ups use the built-in forms, validation and UI elements. They're there for those who want the easy way out, and I wouldn't even recommend them to most people. Contrary to your statement, however, the built-in forms are quite customizable, you can even style flash forms via css. Open Office file formats are natively supported in CF9. Also, generated PDFs are much smaller, mitigating those complaints. Oh you did hit one right, tags and templates are for presentation. That's no secret, but it again points to the fact that you must have worked on a terrible legacy application, probably past the edge of an epic failure in software architecture. Don't let one bad program (or programmer) sour the whole basket. CF Components (aka CFCs, aka classes) did actually have a constructor before ColdFusion 9. The createObject() method not only creates an instance of a CFC but also java, .net and com objects. Quite useful. The /new/ keyword is very late in coming. Ooh look a couple more you got right. Checking for equality==fail, as is the var/local/variables connundrum. Once you get it, it's easy, and there are tools to check for errors, but it is a point of confusion for the newbs. Well, at least you have your bias, and that's fine. We all have it. Yours just bleeds out onto the page, out of every pore. Try to keep it in next time.
  • Double Compile
    *Hey, Nathan. Thanks for reading. You noted a few things I either phrased poorly or was not aware of. I've updated the post to reflect some of those. (Notably, other open source projects, some CF9 features you noted, and I wrote the wrong thing about form styling). I'm not sure I see how my conversion story proves that CF is any more or less extensible and modular than anything else, or that it is more easily phased in or out. The same would have been true had I been getting rid of an ASP VBScript application (well, maybe not if the backend was Java, but you get the idea.) You guess correctly that the particular app I mentioned was pretty terrible, and we're both members of the VBScript-must-die club :-) So you agree that the form and other UI elements are useless because you can't change their behavior? If they were customizable down to the last HTML attribute, don't you think you'd recommend their use? If you agree that tags and templates are for presentation only, what's the point of installing ColdFusion's overhead at all when you could just use JSTL? What personally are you using in ColdFusion that you couldn't get easily somewhere else? CFC Constructors: Before CF9, didn't one have to call init() after the createobject function if they wanted to have a "constructor"? My argument for createobject is that it's huge. createobject('component') is many times more visually complex than "new". I understand that you use it to create objects aside from CFCs, and I have used it for that purpose. Indeed we all have biases, but usually they're formed for a reason.
  • Nathan Strutz
    *The OSS CFML engine you should look into is Railo. It's really fast and works great. For pricing, you mention the $7500 enterprise edition, which honestly I don't recommend unless you are buying more than 10 copies of (and then the price probably doesn't matter anyway). The standard version is $1300 and it does nearly everything anyone needs, and covers the licensing for shared development, testing and staging servers. I've been doing CF since 1998, and have yet to pay for a personal copy, as the developer edition is free if you just want to play around with it and maybe deploy somewhere else. The conversion comment had to do with the way you phased it out, replacing parts of the model until CFML only powered your view. Sounds like it integrated pretty well as you phased it out. Sounds like modularity to me. The UI elements and cfform controls and validators, I really can't say they're the right answer for basically anything I've ever done, but I wouldn't say it's because I can't change their behavior. CF9 with Ext 3 is a good step, but it's like using dreamweaver back in the day to program javascript rollovers - it worked but it took 80+ lines of js to do what 2 lines should have done. cfform always used to include extra javascript libraries and that always turned me off. You could customize the elements (if a tag attribute wasn't recognized, it would pass it through to the tag), but customizing was not what it needed. It's more like hitting a nail with a sledgehammer to me, so I prefer to either roll my own Ext interface or augment with jQuery. It's a pretty popular opinion, common in most web dev groups nowdays, not just CF. The reason I install ColdFusion is because it's a great dynamic language with a lot of functionality out of the box. It's incredibly functional and really, really, really quick. The tag-based language is unbeatable for integrating with HTML. The current frameworks are good, the community is fantastic and the OSS offerings are strong. That, and people keep hiring me for this work. I just can't get away from people who want me to hack some CF for them. I get that this is the point of your blog entry, if people would just stop using it, it would stop being used, but that's not happening. Pre cf9, constructor code is code in a component, not in a function. Generally this is grouped at the top of a CFC. It's sloppy IMO, which is why I said the /new/ keyword is late (but welcome).
  • Gavin McLelland
    *You make a number of points, All of which I might add are incorrect or ill informed =) My guess is that they have been formed by exposure to poor legacy code you have inherited. I have been there many times! However, don't confuse CFML (ColdFusion) the language with ColdFusion the Middleware Application Framework. The Adobe ColdFusion Server installer is indeed bloated but it reaches and does its job well for its intended target market. Just to be clear, I don't really care for the ColdFusion (tag-based) Framework when developing serious web applications. I opt to use more powerful CFML Framework options like CFWheels, ColdBox and Fusebox. CFML is a powerhouse in the right environment and that is not on a windows server like most ColdFusion developers would lead you to believe. The problem is there are seemingly only a handful of people that know how to correctly install a ColdFusion server environment ready for developers. I am looking to fix that with my Fusegrid Platform. Developers should not be forced to understand the inner workings of servlet containers or the JVM before they can start hammering out code. When I use the a current alpha of the FusegridSDK on my EEEPC 1000HE netbook I am able to knockout an average of 48,000 objects per second. IMHO, thats pretty darn quick. The Open Source Railo CFML Engine will be a key factor to advancing the language and things like CFScript. Don't knock something you have never tried to understand though. CFML is as extensible or customizable as the JVM itself, and in my opinion the most powerful/stable/cheap option for developing modern web applications. Keep in mind; anything that is available to the JVM, ColdFusion can tap into it. See http://bit.ly/45SXIa for an example.
  • CF Developer (unfortunately)
    *I am currently forced to use Coldfusion as a part of my job and you are correct. I especially loved the part about a tag based language! Hallelujah! I don't know if you ever ran into this little 'feature' of the language but try to compare "12 P" to 0.5 (yes, it comes out equal). I have also used several languages: PHP, .NET, RoR, Coldfusion... CF is the worst. The rapid app dev that CF offers is completely outweighed by the unmaintainability of the code and the bugginess of the language itself (ever tried to chart using cfchart with lines of different length? I have. It doesn't work). I could write a book about CF-how lacking it is. Basically, this language was written so morons could make websites. That is all.
  • vale
    *What an astounding level of ignorance you have. Well done.
  • Double Compile
    *Please, do tell what facets of ColdFusion are not known to me.
  • Keith
    *All I can say is WOW. Most of the original post arguments are so biased it not even funny. Some you went out of your way to skew the details. I don't know any small or mid-sized businesses using the enterprise version. Simply not needed by the 99%. And the cost for $1500 will quickly be recouped in coding time. Any language can be trashed by a novice programmer. In fact, if I look back at my own code from 10 years ago i'm sure I'd puke in my mouth a little. You talk down CFFORM. I agree. That's why I used it for 2 weeks and never again over 10 years. What ColdFusion does is make difficult things easy. That often limits the usability for the experienced programmer. FINE. If you use PHP you have no built in charting tool and you would have to plug one in. So simply ignore CF tools and plug your own in. It's no extra work if you would have to bake your own or grab one online in PHP anyway. What you fail to mention is that you can get around most of the limitation by attaching to the java behind the screens. I have made charts that the simple cfchart can not do by squeezing around front-end tag. I do not like the ajax implementation of CF at all. That's why I use jQuery. Their is no problems with doing that at all. In fact they will work side by side in most cases (during switch to jQuery). To say that you can't use jQuery is plain wrong. I personally dislike PHP because methods are so obscure that I must have google handy to figure what to use in situations. Most of that is my inexperience with PHP. A valid PHP gripe is that because PHP was written by many different people (open source) is that their is no unity in the language...what I mean is that one function may take the "source" as the first parameter and in another function its the second. Almost all CF tags have the inputs in the same order so you can pretty much guess the parameters for tags you use infrequently without looking them up. I also do not see having 15 different tags to do the same thing as a benefit. It just makes things confusing. Put an experienced programmer at the keyboard and CF can be rapid development AND perform well. Maybe not the top performer but perform very well. To me code readability is everything. PHP looks like a mess to me. I will state that I am biased to CF because I've been using it for years. There is NOTHING I have not been able to do with it. It is my opinion. Background: Currently I use CF on a commercial site with home-made shopping cart and media streaming with only 1.2 million hits per month.
  • Bruce
    *I've recently done a POC to move our flex coldfusion endpoints to graniteds and java, eliminating coldfusion, but running in a new web app alongside coldfusion. The server time to process the same requests is half as much for the Java side.
  • Dave
    *"I'm a software engineer with 10 years under my belt, and my specialty is web-based applications." ... and yet you have used Serendipity v.1.4.1 rather than write your own website? Are you one of those "configuration programmers"? -CF has licence free server software like Railo. -Any decent CF programmer would user a framework (fusebox / coldbox), a AOP framework like ColdSpring, and use an OO MVC paradigm. It sounds like you didnt progress beyong beginner with ColdFusion, which is a real shame as its the best tool I've come across and allows you to build enterprise class websites and applications that are truly manageable, quicker and of a better quality than inferior products like PHP. Sure it has some tags that arent brilliant so you dont use those ones, its not rocket science.
  • Kris Osterhout
    *Sorry to bring back up an old thread, but: Ruby on Rails. That is all.
  • Johnny
    *I've read some idiotic ColdFusion posts but this one takes the cake. If you have used CF for anything other than a "hello, world", which I don't believe you have, then you would never post some of the info here because it's completely false. I'm not going to get into a bunch of details because I don't have the time. You sir, are funny! I guess ignorance really is bliss!
  • Brad Melendy
    *After 20 years, I've come to the conclusion that the only real truth in development is that there is more than one way to skin a cat. Is one way better than another? Who knows, it is entirely subjective and everyone has statistics to back up their own opinion on the best way.
  • Chris
    *Thank's! I'm currently forced to use Coldfusion. And it is horrible. While, for sure, writing bad software is possible with every "language" (though CF is not a language at all), ColdFusion makes it incredibly easy. You are right in every aspect. CF should be avoided.
  • Duke E. Love
    *Wow! So much hate and bile. You know, you could just not use it. I wish I had a nickle for every "this language/framework/OS/Stack/Platform sucks" post I have seen. Just because you don't know WTF you are doing does not mean something sucks. If you can't make cf hum that is your problem. A poor craftsman blames his tools.
  • David K.
    *I almost started typing a long, heated reply to this three year old rant. Then I realized I don't care what you think. Use the tools that work best for you, and allow you to do the most creative work possible. Stop worrying about the rest. Good advice for me, better advice for you.
  • Bob
    *I normally don't reply to trolls, but this is so pathetic I have got to call bullshit. I hire and fire devs, and have for 10 years, it would take 10 minutes into the interview to dismmiss you. You have used Java EE??? lol... that is a platform, a collection of specifications really, but not a language. ColdFusion is J2EE. The first paragraph was hilarious. @Dave 100% on. A good MVC framework and a good developer = good applications. @Double, I develop in PHP, Python, CF and I have done .net for a living. If I wanted to I could create shit code in any language....looks like you do. CF wors fine, and is a bit behind in some areas. I mean we just now got closures. Any person that has the nerve to speak for all develoeprs when he is not even in the club is ignorant. I suppose your next blog will be about bringing back slavery and women shouldn't vote.
  • Double Compile
    *According to Wikipedia, "The platform was known as Java 2 Platform, Enterprise Edition or J2EE until the name was changed to Java Platform, Enterprise Edition or Java EE in version 5. The current version is called Java EE 6." There's a developer club?! I want in. What are the membership fees like?

1 Trackback for this entry

Add Comment

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Pavatar, Gravatar, Identica, Twitter, Favatar, Identicon/Ycon author images supported.

Quicksearch

Search for an entry in /dev/weblog:

Did not find what you were looking for? Post a comment for an entry or contact us via email!

cronjob