Thursday, March 22, 2012

Creating a content driven continuously tested and integrated source controlled website with NodeJS and Express

Creating a content driven, continuously tested and integrated source controlled website with NodeJS and Express.

The next set of blog entries will be dedicated to bringing online my pet project PortalGNU.com/org

Portal GNU will contain content dedicated to the open source movement.  The website will act as a blueprint for spawning your own personal NodeJS + Express + MongoDB driven website.

Before PortalGNU goes live, my blog will be dedicated to describing the process from github to travis-ci to amazon EC2.

Right now this is a work in progress.  More to come.

Friday, March 16, 2012

Server 8 Beta - Installing Core, Install GUI later

I'm beta testing server 8, which is in public beta (link)

This is the first time I've tried installing just the core, but it seems to make sense now.



It is an extremely quick way to get a box online and exposing RDP without the hassle of navigating a GUI.

To quickly get your hostname, networking, and RDP configured, simply run sysconfig.cmd



You may still use the GUI if you'd prefer.  The new windows 8 interface plays well with the apple trackpad.  I'll warn you though, this will take a while.  In order to later install the GUI tools, you simply open up powershell and issue the following:

Add-WindowsFeature Server-Gui-Shell



Finally you'll reboot.


Friday, February 17, 2012

Get Blogger Posts with NodeJS

Today I wrote a blogger scraper for my new NodeJS website:  http://mikekunze.info

This script connects to my blog's RSS JSON feed and sends its data to a mongolab hosted mongoDB instance.

Pretty nifty.  Now I have content for my website, and still can use blogger's API to create that content.

One of the bonuses with this script is how it will not duplicate entries.  This feature checks title names.  If we want to be more dynamic we would create hashes on the entry content... maybe some day.

Wednesday, February 1, 2012

Massive Bang.js updates

Hello internet.

I have been spending quite a bit of time refactoring the server side code for bang.js lately.  I started a total conversion of it to coffeescript.  Its quite amazing how easy it is to translate into coffeescript which natively supports classical inheritance.

bang.coffee is our main file, which is executed by the iced coffee-script compiler

abstractServer.coffee and server.coffee contain the coffee ingredients to boot up the server.

You'll also notice I've made significant improvements on the layout of the project.  Now there are two main folders:  client and server.

Tuesday, January 17, 2012

Books I am reading

Hello!

First, I'll recommend Javascript: The good parts.

Currently, I am reading the following:

Javascript Web Applications by Alex MacCaw
Javascript Patterns by Stoyan Stefanov

The javascript patterns book is exceptional for getting an idea of the power and customization javascript offers.

Wednesday, January 4, 2012

ExtJS 4.0 MVC dynamic controllers

ExtJS4 has been designed with an inheritance class based MVC core framework along with its rich set of UI controls.  The current ExtJS 4.0.7 framework supports a concept of an Application.  This application class, from my experience, works well if there is just one defined and initialized.

An application can have many controllers, however.  Each controller can take models, stores, and views.  The controller is the meat of an application and controls the logic for the views.  It is the controller we want to dynamically add at run time.

Lets setup our ajax getJS loader. Then lets get the interface, which will contain the application definition.



The long and short of it, you need to keep a reference of the application itself.  In my case:  Ext.bang.util.app is where I'm storing it.




Now, when I want to add another "sub" application (in this case, a login window), we use the application reference to getController('login'), and then init() it to run its init method.
remotejs.getJS({ js: 'login.js', app: 'bang'}, Ext.bang.util.run);




The controller does the rest. Take a look at the bang client code to see how it all fits together.

Bang.js

Hello.  Its been a while.  I took a break from coding up until around December, and since then I've been working on a new framework called bang.js.

I will take in many concepts from portalstack for security and ui.  Take a look at my github page:

https://github.com/mikekunze/bang.js