Node.js learning resource

'node.js' photo (c) 2011, Pedro Lozano - license: http://creativecommons.org/licenses/by/2.0/
Node.js



  What is Node.js? Node.js is a non blocking web server and also it is simple framework to write the web codes. It is written in JavaScript and run at the server side and using event driven model. Non-blocking feature also ease to pain to solve the dead-lock issue. Most of the web server or framework nowadays need you to aware or take care of threading or process dead-lock issue when you are writing code. The non-blocking feature also enable developer to implement real time web solution as it can handle thousand of simultaneous request per time. In case you are Python developer, the example for non-blocking web server for python is Tornado which they use it in the Friendfeed, please goto http://www.tornadoweb.org/ for more information. Please also goto http://nodejs.org/ the official site for more details and you can goto http://nodejs.org/#download to download the latest binaries.

Below are some resources that I found and bookmarked when I am learning it, you can try to start your journey to Node.js from here and please let me know if you have any other interesting site to show:
Learning Resources for beginners:
In case you are hard core developer that like design pattern and like to the art of programming. You can start to learn MVC for Node.js here:
Here are some sample project that using Node.js or some module that for Node.js in case you need it for example NodeJS RESTful module and so on, The most I like is the one eample of Real Time multiplayer game, please do check them out~
Here are some list of companies that provide hosting:
  1. Nodester http://nodester.com/  
  2. Hosting service from Joyent https://no.de/  
  3. NodeSocket http://www.nodesocket.com/ 
Facebook Group for you to refer or join if you are active user for Facebook:
  1. https://www.facebook.com/groups/sg.nodejs/  
  2. https://www.facebook.com/pages/Nodejs/132640106759624 
  3. https://www.facebook.com/groups/104124459678626/ NodeHack  *Updated: October 17,2011
Some Youtube webcast:
  1. Playlist of all Node.js related videos from youtube http://www.youtube.com/watch?v=7tUfDWRIMpw&feature=results_main&playnext=1&list=PLF31C7CF652CDB83A
Blogs about Node.js
  1. http://www.nodecloud.org/
While, ExpressJS is a framework on top of Node.js. I will say it simplify the way of implementing Node.js, this is a site you must check out! Last but not least, below are some or ideas videos from Youtube on how can you leverage Node.js for a better product or productivity tool .



*Please join my Facebook page if you like my post and stay tune with my updates.

Android Icon Designer

'G1 with latest CyanogenMod ROM' photo (c) 2009, okubax - license: http://creativecommons.org/licenses/by/2.0/
Hi readers, sorry that I have been lost in the blogging world for so long. Lately I am developing for some FREE apps. I make it for FREE is because as the Malaysia developers we still cannot sell the commercial product at Android market. Anyway, I am putting some resource that I founded during the development. These two site helps you to create your Android app icon on the fly with some clicks. Both of them are following the guidelines for creating Android icon. (Guideline is here)  The two URLs below are

  1. http://android-ui-utils.googlecode.com/hg/asset-studio/dist/icons-launcher.html#foreground.type=clipart&foreground.space.trim=0&foreground.space.pad=0.4&foreground.clipart=res%2Fclipart%2Ficons%2Fpower.svg&crop=0&shape=square&backColor=303138%2C100&foreColor=fffaff%2C36&foreEffect=2
  2. http://www.androidicongenerator.net/
Please try out for designing some simple Android icon. Anyway you still need Photoshop or Gimp if you need a complex one. Please do let me know if you have any other suggestion! 

Hello Android again

Android FTW















photo © 2009 Lynn Wallenstein | more info (via: Wylio)

I have been busy since few months ago and at last have some free time to continue explore Android development.  I didn't post about Android related topic since last year about 28-December 2009.  I already did some research about the blogs, recommended books, sources and forums that related to Android development since few months ago. I will share some of them here and you may find more resource from my last post that I wrote on 28-December-2009:
Blogs:
Forums
Source codes
Books
Last and not least, I wonder you already aware of 101ftb.com that provides you a chance to win free technical books that in hard copy format. If not mistaken, some of the countries won't have book to ship to them but they will win Amazon gift card of vouchers for example Malaysia. My friend already won twice from that Monthly Raffle. Anyway, you can join it right now and try your luck for the next Raffle.  Please let me know if you have any resource that you think is mandatory to add in. Enjoy the resources and happy Tuesday!

Sharing session of ASP.NET MVC and jQuery - tips and tricks in Tech Insights 2010

 

I just did a sharing about ASP.NET MVC and jQuery tips and tricks about 2 weeks ago at Tech Insights 2010 event http://www.techinsights.my/ . I am little bit disappointed with my performance over there. In fact, I felt dizzy and nervous during the sharing when looking down to all the audience down from the stage. Oh my god, seems I am still not well trained with this kind of event. Anyway, I have some plans in my mind to train myself be better and cope well with this kind of event. 

I created a simple shopping cart for the sharing and it is called eStore. If you are familiar with shopping cart then you will know some of the features is mandatory to be included such as product details, product browsing, product searching and so on. I don't manage to include Administration functions and shipping module.. Anyway, like what I said the intention to create this shopping cart is to show how jQuery can be integrated with ASP.NET MVC and enhance the User Experience (UX) and so on. I hosted the project to Codeplex.com. The URL for the project is http://estore.codeplex.com. I included the project template to start off the jQuery integration process as well so you don't need to build it from scratch. Some of the jQuery plugin are used in the eStore such as jQuery UI, jQuery Watermark, jQuery Lightbox, jQuery Coda Slider and so on. I planned to use jQPlot for the charting in the administration page and it is in my todo list. Please don't hesitate to let me know if you have any suggestion or question. 

 

ASP.NET MVC for Tech Insights 2010

I was invited by Patrick to speak in Tech Insights 2010. My topic is "ASP.NET MVC with jQuery - tips and tricks". I can say the topic take focus on Web Developer and developers or for those like to know more about ASP.NET. However, if you concerns about the design of application, MVC is one of the pattern that suitable for it. 

MVC is acronym for Model View Controller. It is a kind of art of programming that stated how should your application be separated in term of layers. It also allow the developer to test each of component individually since it also promotes separation of concerns. It also allow me to implement TDD or Test Driven Development in the projects and it allow all the component to be tested before any other functional or system test. 

Model can be related to Data Model and Domain Model. Data Model is the layer that capsuled the logic how the application should access database.View is the presentation layer and it present how should the information formed and visible to the user. For example, if the user have 1000 or more of student records, I can present it as a table, a repeated list, and even you can put some filter such as age filter, performance filter to allow the teacher to do some filtering on the information and let them find what they want instantly. The View also define how the user interact with the system or application. The design of View is important as it can leads to how is the productivity of a user. For example, the application is efficient if a click can trigger an action compare to another application that needs 3 clicks to trigger the action. The Controller receives input and initiates a response by making calls on model objects. A controller will get the input based on the user and instructs the model and viewport to perform actions based on that input 

ASP.NET MVC is a framework that adopts MVC framework and it is still built on top of ASP.NET. The ASP.NET MVC 2.0 is better than 1.0 as it have more features. ASP.NET MVC is flexible enough to allow developers build their own View Engine and also Controller Factory. You are allow to use MEF, Unity and other IoC framework or Service Locator framework to build them. Some of the existing View Engine that you can download or use such as Spark, NDJango and so on.  

I bet you use jQuery before. If not you may goto http://jquery.com/ to grab a copy to use it in your web application. I will say the learning curve of this framework is minimum compare to others. What is jQuery? jQuery is created by John Resig. It is a Javascript framework to speed up your development and eliminate your lines of code. Microsoft already integrated jQuery framework into Visual Studio since few years back. I will say it really help all web developers eliminates big collection lines of code. I was a web developer and I know the pain to write script and dealing with the DOM. jQuery really helps me a lot in my web development since few years back in some of the projects. 

For example, the single line of code that shown below find the paragraph elements that with neat class name and add the new "ohmy" class name into it and at last it show this invisible element slowly. I can still remembered I wrote more than 5 lines to do the same task! So now can you imagine the power of jQuery? 

$("p.neat").addClass("ohmy").show("slow");  

jQuery is more than that. The creator of jQuery is smart and allow jQuery to be extended by everyone. He allows everyone to unleash their creativity. So please stay tune to see how I use the jQuery to build a more friendly eStore.  I hope everyone will like it. Please left me some comments if you want to know more!