Here’s a list of excellent online programming guides that i am compiling. I will add more links as time permits. The best guides also outline how to deal with people outside the cloistered priesthood of programmers.
- How to be a Programmer: A Short, Comprehensive, and Personal Summary,
Robert L Read
Not short, but excellent distillation of one man’s programming wisdom. Covers handling difficult colleagues, management, coding, optimizing and the difficult task of debugging. - The Art of Unix Programming, Eric Raymond
More than just a programming guide, an exposition of a design philosophy — the Unix way. Encyclopaedic in ambition and scope. - Producing Open Source Software,
Karl Fogel
A guide on how to run a successful open source software project. I like his introduction: “Most free software projects fail.
We tend not to hear very much about the failures. Only successful projects attract attention, and there are so many free software projects in total that even though only a small percentage succeed, the result is still a lot of visible projects. We also don’t hear about the failures because failure is not an event. There is no single moment when a project ceases to be viable; people just sort of drift away and stop working on it.“. - Worse is Better,
Richard Gabriel
Still provocative and topical. The concept known as “worse is better” holds that in software making (and perhaps in other arenas as well) it is better to start with a minimal creation and grow it as needed. Further debates on “worse is better”. - Being A Better Programmer,
Danny BurbolAdvice written from a game programmers perspective. I don’t quite agree with his opinions on documentation (I think you need to think of documentation as teaching, not making notes; in a large project, there should be some programming overviews and tutorials so people can kickstart without bugging you), but overall it’s good advice.
- Little Nybbles of Development Wisdom, Terence Parr
What one man learnt over the course of a 3 year software odyssey - a bit too preachy for me (some of the advice seems specific to his project) but still interesting. - How To Write Unmaintainable Code, Roedy Green
Roedy is a dangerous man :) - The archives of Joel On Software are a good read.
- Alan Cox, Linux coding master, on writing better software.
Software Methodologies
A methodology provides a framework for software development. That’s all. Never forget that within the framework, you have to keep everyone working towards a common goal, get the people motivated, the work coordinated, the participants properly briefed, and the bugs minimized.
- Nasa’s Sofware Engineering Laboratory Methodology
I highly recommend reading the Manager’s handbook (PDF). There are some incredible metrics inside. For example, here’s their productivity estimate for experienced programmers (a 10 year veteran is supposed to be 5 times more productive than a freshman):Years Experience Work Required 10 0.5 8 0.6 6 0.8 4 1.0 2 1.4 1 2.6 - Agile Software Development
Agile is an umbrella for a wide range of ways to write software quickly. - Rapid Application Development
RAD made CASE tools fashionable, until everyone reverted to text editors for HTML and javascript. - I have always believed in the Spiral Model.
- Extreme Programming
XP is a well-known Agile methodology. Very controversial - here’s a counter-point. - Great Hackers, Paul Graham
A hacker manifesto. Anti-methodology. Show’s how smart people can be a pain in the $#@^&@!
Don’t be fooled, the methodologies freely steal from each other, often doing similar things under a different guise; the key thing is listen to what is being offered by each methodology, then use common sense. Also methodologies only work on fertile soil — make sure it suits the scope and scale of the project, and the natural working style of the key participants.
Some of the programming articles could have been placed under software methodologies too.
Software Economics
- The Economics of Software, Bryan Cantrill
A supply and demand analysis of software for the layman. - The Business of Software, Eric Sink
An excellent collection of essays on running a software business and making the right decisions.
Original post by PHP Everywhere - By John Lim
The Hardened-PHP Project has just released their Hardening-Patch 0.4.6 for PHP
New features:
- Added a protection for the long versions of the superglobals, so that they cannot be overwritten through HTTP headers anymore
- Added a validate session identifier hook to the session extension
- Added a session.use_strict_mode flag to the configuration, that enables a strict handling of the session identifier (enabled by default)
- Added two optional parameters to session_set_save_handler() to give user space session handlers the chance to overwrite the session identifier creation and validation
- Added a default session identifier validator, that only accepts a limited charset and therefore protects against several attacks through the session identifier (f.e. SQL injection in user space session handlers, …).
- Added an optional parameter to session_regenerate_id() that allows deletion of previous session (this is a backport from PHP 5.1.0)
Bugfixes:
- Added a workaround for a GCC bug that caused crashes with Solaris 10 on SPARCs
- Fixed a Thread Safety problem, that caused the ‘linked list canary overwritten’ messages when running in a multithreaded SAPI
- Fixed a bug in the logging configuration
Download:
Original post by blog-admin@nopiracy.de (Stefan Esser)
Well PHP 5.1.0 is out. This is a monumental piece of work, and congratulations to the PHP 5 internals team for all the hard work. However it feels rushed through the door. Apparently there are compatibility problems (with typecasting when parameter passing, the prototype date class, and possibly other stuff.) Wait for the patches.
Update
Later that day… I stumbled on this quote by Dave Winer:
It seems the computer industry hasn’t gotten to the stage yet where it can really deliver delight to users. Maybe we spend too much time trying to fuck up the user experience. I think of that when I see pages with fifteen different formats that all do the same thing. Why? There’s no need for it. How many of those types of battles were fought inside Apple that resulted in the super-shitty experience I had and Jeremy had. Maybe we need to take a step back and start thinking a bit about how this kind of bullshit keeps us from growing.
I haven’t been reading the PHP internals mailing lists since August this year, but because of the rumored PHP 5.1 mishaps, I did. The in-fighting and name-calling is surprisingly heated. Open source is certainly great, the price-point is good, you can fix things yourself (if you have the skill), but the meandering directions that PHP takes can be frustrating. Some people want a more advanced programming language to keep up with the Rubies and Pythons; others (like me), want 100% backward compatibility. The Bazaar (and perhaps all software development for that matter) is sometimes too bizarre.
PS: There is a way to achieve 100% backward compatibility.
Original post by PHP Everywhere - By John Lim
The benefits of online learning are open to every one. There are hundreds of sites offering online training as well as study guides regarding latest courses like 640-863 as well as 350-018. The helping materials about Microsoft exams such as 70-554 are also accessible online. These online courses and exams not only benefit students from all over the world but also help the working people. As employees of any web hosting firms providing reliable services of domain hosting and domain parking can improve their services through passing these exams and can offer more steadfast backup along advanced hosting plans.
















