Nowadays, being really busy has become something worth bragging about or something you can’t escape.
You will probably even blame your commitments for stealing your time.
But is it truly impossible for you to make time for your “dream project”?
Are you busy or is it avoidance?
Really. Look at your schedule; and put in a little “dream” time. Everything else would benefit more if you spend some time caring for your passions
In the last part of “How to Refactor a Mess into an Organized Web Application” series, I said that we’d be taking the application to a next step by polishing what we’ve done so far by:
- Adding HTML5 LocalStorage support,
- Making the application reachable offline,
- Implementing a pubsub mechanism for the cross-module communication,
- Adding a build script to minify and place resources,
- … and more.
And I changed my mind: The above things are great and they are “must have”s in modern web applications. However, in order to properly manifest their usage, creating a simple demo application is not enough.
So I took things a step further, and I opened a repository for a real-life web application on github.
The app will be an actual web application that is usable and it will solve actual problems (at least some of my problems ).
We will have:
- HTML5, CSS3, Responsive Design, Offline Browsing… all that cool things on the front end,
- MongoDB as the persistence layer,
- NodeJs and IIS7 on the server layer.
NodeJs on Windows?! Are you Insane?
I chose to use NodeJs on IIS, instead of the usual NodeJs/Linux installation. And I have several reasons for that:
- Firstly I already have a dedicated Windows Server 2008, and I want to utilize it as much as I can,
- If I use IIS to manage the lifetime of node.exe, I will not need to monitor the overall reliability, so I won’t need plugins like forever;
- I can use it side-by-side with other applications, if I like. That is, I can create a single site that serves NodeJs, php, and asp.net files at the same time. This will also enable me to progressively migrate some of my projects that I write in PHP or .net to NodeJs.
- I can run multiple node processes on multiple cores and load-balance them,
- I can let IIS URL Rewrite, and Application Request Routing modules manage the rewriting of URLs,
- I can limit/adjust the amount of CPU the NodeJs app will use; I can also limit/adjust the maximum number of concurrent threads it can have,
- I can use IIS to manage the gzip compression and caching of resources,
- I can parse IIS logs, as I did before,
In short, I can utilize many things that IIS provides me and I accept as a given most of the time .
And you know what, there is an excellent open source project to run NodeJs on IIS.
…but What’s It All About #JFDI?
As a somewhat related notice, this application will be continuously enhanced by me as a part of my #JFDI movement.
Let me elaborate:
Imagining yourself as doing things cognitively feels almost identical to doing that thing in reality.
So we deceive ourselves, constantly thinking about our cool new project, feeling that we do a lot, getting satisfied; yet, not actually anything at all.
Many people claim they’re not creative. And I think it’s not about creativity per se: It’s about how you use your mental resources effectively.
Because imagining you do something feels almost as good as actually doing it, we most of the time tend to just plan big things and just do not have the courage to walk uphill and create some actual shi**… umm… “stuff”.
#JFDI is an approach to revert this thinking.
#JFDI Now, You’ll Thank Yourself Later
You can learn more on what #JFDI is, and why it makes sense from this gist. And you can watch this repository to witness what can be done if you actually sit on your butt and focus on your stuff, without any distractions for just half an hour each and every single day.
I believe this will make a change.
What’s more important is… What do you think?