Having a profitable business alone isn’t success.

Every business needs cashflow (and profit) to survive like the body needs oxygen, food, and air.  Just because a business has cashflow, doesn’t mean it’s a success, much like we aren’t a success in life just because we sat around and survived.

If you have to mislead to make a dollar, it’s like tricking a girl into liking you.  You might make some money/trick her for a while, but it won’t last.

The better the mutual fit, the better the relationship.  As is often the case it’s best to see if you can work well together.  The client, or the vendor, alone, can’t make the relationship work.  Both have to be present.

As for finding the right work..

Know your product.  Know the value you deliver.  Know the clients it will benefit.  Only sell to them and you’ll have a lasting business.

Always generate more value than which you are paid. Otherwise your client turnover rate after they feel “had” will be much higher than it needs to be.

It’s easy to try and be someone else in business.  The problem is it always comes back full circle.  If you like honesty, and integrity, and when people eat their own cooking before giving it to you as advice, do it yourself.

Not every customer values it, but not every customer is for you.  There’s a big difference between a good dollar and a bad dollar.  It’s tough in the start but it’s worth it.

Be a defender of keeping goodness and kindness fashionable.    Your startup is your declaration of your moral and professional independence.

I recently decided to switch over to it full time instead of using Entourage 2008 and discovered a strange crash with Apple Mail whenever I’d try to start it up.

Trying to start Apple Mail would leave me with a message of “Mail had quit unexpectedly.”..

A distant lightbulb went off in my head and I realized it might have to do with my Marketcircle Daylite software and it’s plugin to the Apple Mail, and the Daylite server, which syncs my calendar, todo, projects and contacts automatically over the air.

I switched over to Daylite which was running, and it had a dialogue which told me that Daylite needed to re-connect to the server (I guess the connection gets turned off when you put your computer to sleep).

I let Daylite re-establish it’s connection, and once it did, Apple Mail fired up just fine.  This lead me to believe that the Apple Mail Plugin was looking for something from Daylite that it couldn’t access.

How does Daylite accomplish it?  They have a Daylite Mail Integration plugin for Apple Mail that lets you link each and every email to any number of projects, people, etc.  Daylite, combined with Daylite Server and Daylite Touch is the real deal for productivity.  The more and more I use it (and let myself spend some time with it) the more I think I am forever hooked to it.  I just hope they come out with a version of Daylite Touch for Android and other devices.

I just saw the neatest feature in the Linux text editor VI.

All of the links in the code are surfable. You just drill in through the includes between all of your files. Very cool.

I wonder if there’s an extension to do this in CfBuilder, or from the Eclipse world?

It’s well known that RDS shouldn’t be enabled on a production ColdFusion Server.

Over the years I haven’t been much of a user of RDS anyways so I usually just left it disabled.

Lately though RDS is starting to have a lot more value to me, I have been using ColdFusion’s Report Builder a lot more in addition to ColdFusion Builder itself, which use RDS a lot more to expose a lot of neat functionality.

ColdFusion Report Builder lets you connect and browse your ColdFusion data sources to build your report either through wizards, or construct (and test) your queries in real time.  Since ColdFusion Report Builder is from what I can tell, a repackaged Jasper Reports binary, it’s actually really nice to have a lot of the CF shortcuts built in.

ColdFusion Builder is something I’ve been using more and more in the past year.  I started slowly with the betas as the CFEclipse worked just fine for me.  As ColdFusion 9 came out though, a lot changed.  The integration between ColdFusion Builder and CF 9 is great.

I ended up having to find a mechanism to enable and disable (if needed) RDS.  Searched high and low, and forgot to check the knowledge base over at Adobe.

Lo and behold the explanation is simple:

  1. In the root of your coldfusion path, you have a /wwwroot folder.  inside of it there is a file called web.xml
  2. This file is used with the configuration of ColdFusion itself, and not only the internal web server.  So if you use another web server like IIS or Apache, this file is still relevant to edit.
  3. When you open up the web.xml to edit, you’ll need to search the text for “RDS” and un-comment two spots where there are RDS services <!– commented out –> .. Both must be un-commented.
  4. After you remove the comments and save the file, simply re-start the ColdFusion Server and RDS will be up and alive.  Use the ColdFusion Administrator to set your passwords as needed.

AND RDS WORKS!  Reverse the steps to disable RDS on production servers.

Hope that helps, I know I’ll be back to reading this post when I forget in the future.  The knowledge base article to enable or disable RDS in ColdFusion in this technote.  The ColdFusion MX instructions are applicable to CF 6 and up: http://kb2.adobe.com/cps/172/tn_17276.html

In my original ColdBox 3 review, I mentioned that I would be starting a brief ColdBox Series to cover my experiences and any questions that came my way.

I have used the past few months to approach ColdBox in two different ways:

  1. Existing Applications - Consider porting, or continuing development in ColdBox.  Like any re-factoring, there are pros and cons to this, the main part being cost in time, and fixing something that isn’t really broken.  So I wait for a reason to do it…
  2. New Applications - I’m happy to say that I haven’t regretted using ColdBox for my new projects.  The few times I’ve felt I could get i it done quicker with a framework I already know and have some code built up in is quickly offset by realizing once I figure something out, it’s a one time thing.  Blog about it, and I have my search engine for “how did I do that again?”

This approach has had me learning and playing with ColdBox to learn the best way of how I want to do things, and why.  Along the way I have been writing posts (while coding) to quickly document any discoveries where the examples and documentation was found to be a bit lacking.  My idea was to come in later and ColdBox has excellent documentation but I have found that there could be a lot more examples provided to get developers up and running even quicker.

In the past few months I have written a few dozen tips/discoveries.

I thank everyone who has sent in their questions and responses, please keep them coming and I’ll get through them as best as I can.

I’ll publish this post to the blog but not advertise it until I have a solid few tips that I can publish on a regular basis.

My ColdBox 101:

I came across an article by Joel Spolsky in Inc. Magazine announcing he’s quitting his blog.

For one of the original software development bloggers, at the center of the startup, micro-isv movement to make a decision like this, it seems a little strange at first..

Joel mentions a number of reasons that I think are interesting of what a startup may face, once a startup has.. started up.

  1. Part of the reason he’s no longer writing is that he has so many customers that his blog posts seem to deeply offend one of his clients in one way or another.Plausible? Sure. But isn’t differentiation what a product is built on?  I think this could be the topic of a blog post on it’s own by Joel to see what kind of things others in startups have to look forward to when you get large(r).
  2. Growth means there’s revenue for traditional advertising. I would think, though, that tools for developers are ultimately best directly connected to them instead of magazine ads?

Joel might be big enough and he doesn’t need to, or can’t benefit from blogging as he did prior…  With Stack Overflow taking on the answer / thought market and opening things up beyond him, maybe there’s room for a lot more voices, that can be found easily.

Maybe Joel was developing the best bug tracking software in the world, and attracting the best developers in the world, so that when FogBugz reached it’s sweet spot, he can go onto building the best software company in the world?

Who knows.

I do know that writing, and sharing doesn’t leave you once you start, and know the value of being shared with, especially after many years.

Joel’s posts have helped so many that I don’t think many will lose their value or relevance.  Whether it was the pay-scale matrix, or why the command and conquer or econ 101 management won’t work with software developers, it’s rare to have reasonably concise, applicable, exploratory rants that were sane as it’s readers most of the time, and willing to have it’s share of mind-stretching ideas like anyone being stretched by growth.

If this is the last of Joel blogging, thanks for doing it.  The fact that Joel replies to emails and shared what he learnt so others could join the movement to make the world a better place with better software.

Will it be the last we hear from him in books, conferences, articles elsewhere..?  Doubt it.  His recent introduction to mercurial at www.hginit.com is a prime example.

I hope Joel continues to create and write, and if not, we see his writing has inspired others to write and share.

Joel I know you read more than you ever let on, so if your eyes reach here, which I’ll do my best to ensure, remember that with our talents we have a responsibility to share what has been shared and taught to us by life and others.  No guilt trip intended, the world owes us nothing. ;)

Let’s step back from this and see the general picture.

Does this decision by Joel mean blogging is ultimately useless for startups? I don’t think so. At all.

Most companies, indeed, do use their blogs for boring news releases is relevant.

Blogs are all about relevancy. Blogs, like products that provide relevancy thrive.

Blogs will always have their place to share information, and for us, resources for startups looking to reach their market through the public seeking their content.  If you don’t have the marketing money, a blog is a key way to demonstrate and share expertise and knowledge.

I can say that the last year of writing this blog has showed me that I need to write more, and often.

A quick reminder that the new upstart StartupEdmonton is having their launch part today at 6:30 pm at the Matrix Hotel in Edmonton!

This event is a groundbreaking start for the software startup community in Edmonton.. I’ve had a chance to meet the organizers and it’s definitely folks who eat their own cooking and are pursuing startups of their own.

Working in startups can be isolating at the best of times… This is a fantastic opportunity to meet your peers and see where things are headed with events, and your input.

See you there!

Find out more at StartupEdmonton

Einstein wasn’t wrong when he said the only thing that got in the way of his learning was his education. Learning how to think — creatively to solve problems, to find dots and connect them, are skills that are hard to find, hard to develop, especially when we can get into a trance with technology.

I think we’re most alive when we create.

So that’s all I’d do. Create, create, create. Solutions for lots of problems, in lots of ways, to realize that everyone just wants to answer one question with their solutions nearly every time. “Where is everything at?”

Learning how, and why to think from multiple perspectives when looking at solving a problem is infinitely more important than the tool(s) you pick to use them.

The tools you pick will be better based on the clarity and your ability to boil things down to their essence. Tools that increase clarity and decrease confusion are good. Tools that let you (and users) get more done with less effort, are good.

Helping people make the world a better place by letting the system manage the details, and letting people manage the system (and relationships with others) is what can empower software to change the world for the better, instead of dealing with the 70% of failing projects out there.If

So… had a bit of a mixup.

February was a bit of a busy month for me so I wrote some content in advance to publish for sure, and to add more when I had the chance..

Evidently, PHP and wordpress do not work out of the box to automaticaly publish scheduled content.

Maybe I should go to a ColdFusion blog. :)

In any event, my apologies, I’ll post the rest and it should show up on the RSS feeds.

In creating software, be it a startup or a client project, key decisions need to be made and implemented based on security.

In building secure applications that let me sleep at night, I have learnt a few things:

  1. Security is relative. You must keep up, and ahead of the curve.  Your thinking and design must be steps ahead of what’s happening and what may be possible in the near future.  In the end, if someone wants to, given enough of their time, resources and money (more than what you have spent) it, still, conceivably, is possible that security may be compromised.
  2. Security vs. Convenience. Unless you are a expert of making complex security disappear “under the covers”, there is still a fundamental  acknowledgment that has to be made.  The more security you implement in an application, the performance, and usability of that application becomes less than simple.
  3. The path of least resistance. Instead of building a big, thick wall of security, consider building many, thinner walls. Just like someone who asks you a question instead of googling it, someone wanting access to a system will want to do so the quickest way possible.  If they are out to find the next outpost, they will move on if there is layer after layer of security, like an onion skin.

    Why?  Most unscrupulous attempts to access a system aren’t really about you.  Most valuable is the most generic.  Your server resources to be illegitimately used to send out spam, etc, and not necessarily for what your application itself does.  The reality is most attempts to break into your site will be automated scripts/botnets that sweep the entire internet.  While you can build mega security features, a lot can be said by good design and putting up multiple “walls” instead of one big “wall”.  Design your application to inherently check and enforce security as much as it can internally.  Package it with smart public facing interfaces, properly hardened and tested with client and server side scrubbing and validation, and we have a start.

  4. Passwords be safe. Do your best, reasonably to secure the single, most vulnerable part of your system.  Relative to the sensitivity of what is behind the password, implement password security measures.  Logarithmic delays between failed attempts.  Log and report invalid attempts. Encrypt your passwords.

    One of the biggest things you can do if/where necessary is to store your passwords securely.  This is a great article on How to safely store a password.

If you have any ideas to add to this list, please leave them in the comments.. I’ll update the list!

top