Thursday, September 17, 2009
SANS - The Top Cyber Security Risks
Interesting paper on security issues: http://www.sans.org/top-cyber-security-risks/
Wednesday, September 16, 2009
Dr. StrangeFramework or how I learned to stop worrying and love the layers
Part 3 – decoupling
To keep the layers decoupled as much as possible, I decided not to have any PHP code directly populate data within the page ANYWHERE! No matter how easy it is, the complexity and maintainability is impacted when you do this – you end up with HTML/jQuery/PHP code all over the place in the same code file…some people use Smarty or like frameworks, but all they do is basically add another layer without reducing the coupling. SO, I decided to use json…I started with some static json data pages and used jQuery (THE BEST) to read the data, parse and populate the page, overall a very pleasant experience compared to what I thought it would be. The toughest part was properly formatting json, once done I was satisfied that for the most part the presentation layer to the application layer were decoupled…next step, json
To keep the layers decoupled as much as possible, I decided not to have any PHP code directly populate data within the page ANYWHERE! No matter how easy it is, the complexity and maintainability is impacted when you do this – you end up with HTML/jQuery/PHP code all over the place in the same code file…some people use Smarty or like frameworks, but all they do is basically add another layer without reducing the coupling. SO, I decided to use json…I started with some static json data pages and used jQuery (THE BEST) to read the data, parse and populate the page, overall a very pleasant experience compared to what I thought it would be. The toughest part was properly formatting json, once done I was satisfied that for the most part the presentation layer to the application layer were decoupled…next step, json
Monday, September 14, 2009
Dr. StrangeFramework or how I learned to stop worrying and love the layers
Part 2 – there’s no end like a front end
I wanted to focus a bit on the user interface, my prior attempts using trees and such were ok, but just ok. I knew I wanted to use base html/jquery (no Flash), so I started at jquery.com, looked at some of the addons and took a swing: http://www.itprojectguide.org/projectmatrix/ci171/matrix. I only focused on what I considered the main screen, the project page and overall I think it’s reasonably user friendly (something that might change once I add in all the base project related fields). The layout is basic, using tabs for projects and sliding panels for project details…seems like a simple/clean design. The biggest challenge was uniquely identifying fields by project, so from tab to tab the changing of a ‘start date’ field for instance would only be updated for that specific project. As a new project is added, a new tab created with the project identified fields…as always jquery made most of the work easy and coding amount/time small….next step, decoupling
I wanted to focus a bit on the user interface, my prior attempts using trees and such were ok, but just ok. I knew I wanted to use base html/jquery (no Flash), so I started at jquery.com, looked at some of the addons and took a swing: http://www.itprojectguide.org/projectmatrix/ci171/matrix. I only focused on what I considered the main screen, the project page and overall I think it’s reasonably user friendly (something that might change once I add in all the base project related fields). The layout is basic, using tabs for projects and sliding panels for project details…seems like a simple/clean design. The biggest challenge was uniquely identifying fields by project, so from tab to tab the changing of a ‘start date’ field for instance would only be updated for that specific project. As a new project is added, a new tab created with the project identified fields…as always jquery made most of the work easy and coding amount/time small….next step, decoupling
Saturday, September 12, 2009
Dr. StrangeFramework or how I learned to stop worrying and love the layers
Part 1 – the setup
I haven’t had a heads down coding position in years, however I continue to develop small websites and ‘play’ with code on side projects and hobbies. A good part of the fun is pushing myself to learn new technologies and approaches, the days of happily coding in C, C++, VB or classic ASP are long gone.
I’ve worked on two open source project management tools (info can be found here: http://itprojectguide.org/main/products/Home) the first a branch from another open source group and the second an attempt to provide a better interface and a better code base. I learned a lot from both, but was left unsatisfied, mostly due to the design, but also the cumbersome underlying code, PHP can be pretty messy if you let it. One of the things bothering me the most is the coupling between the different layers (DB to PHP to HTML) and the need to refresh pages to display updated data (loading a heavy page of about 80k to add 100 additional characters seemed a bit to much).
There are MANY options to writing code for a web site, PHP being the most popular since its probably the easiest to learn and abuse…I often hear Python/Ruby coders trash PHP all together, the way I see it, any language can be distorted, some languages make it easier than others, but it’s the developer who makes the difference, I’m more than confident that a good programmer can make clean, effective and maintainable PHP applications – as clean as Python or Ruby can be….next step, the front end
I haven’t had a heads down coding position in years, however I continue to develop small websites and ‘play’ with code on side projects and hobbies. A good part of the fun is pushing myself to learn new technologies and approaches, the days of happily coding in C, C++, VB or classic ASP are long gone.
I’ve worked on two open source project management tools (info can be found here: http://itprojectguide.org/main/products/Home) the first a branch from another open source group and the second an attempt to provide a better interface and a better code base. I learned a lot from both, but was left unsatisfied, mostly due to the design, but also the cumbersome underlying code, PHP can be pretty messy if you let it. One of the things bothering me the most is the coupling between the different layers (DB to PHP to HTML) and the need to refresh pages to display updated data (loading a heavy page of about 80k to add 100 additional characters seemed a bit to much).
There are MANY options to writing code for a web site, PHP being the most popular since its probably the easiest to learn and abuse…I often hear Python/Ruby coders trash PHP all together, the way I see it, any language can be distorted, some languages make it easier than others, but it’s the developer who makes the difference, I’m more than confident that a good programmer can make clean, effective and maintainable PHP applications – as clean as Python or Ruby can be….next step, the front end
Thursday, September 10, 2009
When you plans are right, but have nothing to do with reality

I’m just starting the book ‘The Guns of August’ by Barbara Tuchman – about the planning and first month of WW I. The most interesting point so far is that the French Plan (Plan #17) took no account of actual intelligence gathered about what the Germans planned. The French basically developed a plan based on current theory and molded what the Germans would do to fit into that theory (‘no way the Germans would march through Belgium and attack out exposed flank…no way…’). Sounds familiar right? developing a plan based on some current theory, regardless of what facts about known…probably a good example that project managers encounter every day is the time required for testing – break/fix. Forget about the last 10 projects that required the same effort to QA/break-fix as what the coding took, let’s assume this time the QA/break-fix effort will only be 25% which is perfect since it will allow us to release the product in time for the big holiday season….yep, planning and execution are truly different when you refuse to take fact into consideration.
Tuesday, September 8, 2009
Seeking the just good enough?

I recently read through issue 3 of PragPub and found the article Clone Yourself (http://www.pragprog.com/magazines) – the focus was suppose to be on (I think) building a better career through following the pattern of perfect process…one section deals with the idea of not getting the best person for the position, but a person that’s just good enough given that you have the right processes in place to ensure their success (if the process is good the person can be mediocre). I’m not sure if there has been any subjective research on this matter – but I would have a difficult time agreeing to it. The author references some past experience where they got the best and they didn’t work out, I would say that perhaps the definition of best was incorrect, what do I define as the best person for a job?:
- someone who is enthused about what they are doing (gotta love the job)
- willing to do what it takes to get the job done
- great communicator
- team player, but not a compromiser
- independent worker
- intellectual capacity for the job (knows and/or ability to learn)
Some traits I would think disqualifies a person for a job:
- inability to work with others – at any level
- very narrow skill focus – unless the skill is so narrow that it requires such a narrow focus
- to many preconceived, unshakable, predefined concepts
Tuesday, September 1, 2009
Another example of open source knowledge
http://www.scribd.com/doc/8545174/Whys-Poignant-Guide-to-Ruby
If there's no incentive to selling books/knowledge (talking $ here) then people who have a tendency to want to write them will find other avenues (aka the web) - this is one great example of that. Not only is this is a great into to Ruby its a great read...
Subscribe to:
Posts (Atom)
