0412473 2026110 3d11 5fencoding 61 applicable benchmarking commonly companion consume desktops developerworks doomed dvcs enhancement essay examines experiences express fashion feb feeling fortran golden gone gpus hacks hidden hiring improves launching lawyers lectures legal limits linked linus msdn newsforge obviously p2p paul proprietary pythonconquerstheuniverse runtime sea shame someday sourced standards suck taming tdd title twistedmatrix webrenderer
- 2010-Oct-24: Thinking of programs as being your servant or butler, they should be helpful, responsive and unobtrusive. An interesting thought to keep in mind when building your next edifice. 
- 2010-Jul-16: The Lincoln index is an attempt to quantify the potential number of undiscovered bugs that remain in a piece of software. 
- 2010-Jul-09: Some thoughts on unit testing. 
- 2010-Jun-08: What to do when your client messes up all your good works. 
- 2010-Jun-03: Whyteboard is a whiteboard simulator, it allows you to annotate other documents by doodling on them. 
- 2010-Mar-31: A look at the Literate Programming Life-Cycle. 
- 2010-Mar-11: Some thoughts on why hiring good programmers can be difficult - perhaps it is because most applications you will have to sort through really cannot program. I think the suggested approach of looking for evidence that they program out side of the office is a good short cut. 
- 2010-Jan-08: Myths about code comments. Still the only viable alternative to commenting code is to write very simple code, something that modern languages (especially C++) are making it hard to do. 
- 2009-Dec-25: Slashdot discusses why programmer pay is not proportional to productivity. 
- 2009-Nov-18: Projman is a project management GUI application. 
- 2009-Nov-13: Another story of a software project gone bad, very bad. 
- 2009-Nov-10: A first walk though of test driven development (TDD). Some further discussion of this. 
- 2009-Nov-05: An article on handling out-of-memory conditions in C with some examples of different approaches from Glib, SQLite, Git, lighttpd and Redis. 
- 2009-Oct-31: The limitations of computer math, though in some systems (like that of the Patriot missile control system) it is more limited than it should be. The cited error in time calculations of 0.34 seconds (which lead to an error in position of almost 700m) strikes me as a bit odd given that the time was being stored with a 0.1 second resolution. Normally when one is storing times in a computer system those times are obtained from a higher precision hardware timer circuit which might work to milli-second or even micro-second accuracy and only when the time is sampled by the computer is it rounded down to the 0.1 second resolution. If this is done, then each time stamp is accurate to +/-0.05 seconds and the difference between any two such sampled times has a maximum absolute error of 0.1 seconds (but a typical error of less than that). Now given a 0.1 second error the position should really have been accurate to within about 200m - the next question would be is that accurate enough? 
- 2009-Oct-23: Agile Methods and Total Cost. 
- 2009-Oct-23: 
- 2009-Oct-23: Agile Project Management 
- 2009-Oct-23: What's wrong with use cases? 
- 2009-Sep-21: Microsoft talks a bit about using online experimentation to test drive various web site changes to see how useful, desirable, profitable or costly they might be. 
- 2009-Sep-10: A new book that seeks to present evidence to prove or disprove common myths about program is about to be written. 
- 2009-Aug-27: John Cleese's training video: "Meetings, Bloody Meetings" gets a mention. This is a great video, he also did one about how to handle the difficult customer (possibly "Awkward Customers") which is a scream. 
- 2009-Aug-20: What are your programmers using to code their own projects? This study suggests that Ruby and Python may be preferred over C# and Java. 
- 2009-Jul-31: An article about software process improvement which adds discussion of a number of partial failures that software projects commonly experience. 
- 2009-Jul-17: On agile, literate and test driven programming and the importance and the lack of trust people have in comments. 
- 2009-Jul-17: Slashdot discusses why OpenBSD's approach to scheduling a release every 6 months works. 
- 2009-Jul-03: Slashdot discusses how to get your program professionally marketed. 
- 2009-Jun-28: Slashdot discusses developer's block in the hope of finding a way out of it. 
- 2009-Jun-15: Slashdot discusses the question: Are code reviews worth it? 
- 2009-Jun-12: Some questions and answers about Agile projects. 
- 2009-Jun-11: Slashdot discusses the question: should undergraduates be taught FORTRAN? Yes, they should suffer like we did! But seriously, someone needs to know a bit of FORTRAN to maintain all the piles of old FORTRAN code scattered across the planet. And no, they should not be taught anything newer than FORTRAN 77. 
- 2009-Jun-07: Slashdot discusses How Software Engineering Differs from Computer Science (and how probably neither has anything to do with most programming). 
- 2009-Jun-04: Paranoid Schizophrenic Programming discusses sane limits to API design. 
- 2009-May-25: Cheap user testing. 
- 2009-May-20: The PyGTA held a round table on the issue of programmer liability which is getting more coverage as Europe is considering some new laws. 
- 2009-Apr-15: Is the optimal software development team size only 5 people? 
- 2009-Apr-06: Lessons could be learned from the Three Mile Island disaster.  
- 2009-Mar-03: The raw contributions that went into the book: 97 Things Every Software Architect Should Know. 
A quick summary of good reasons to embrace test driven development (TDD). 
- 2009-Mar-03: A study shows that Test Driven Development (TDD) improves quality.
- 2009-Feb-24: Slashdot discusses How Do You Document Technical Procedures? 
- 2009-Feb-22: How much testing is enough? There has been some discussion of code coverage and automated testing in the Python world recently. But it would be hard to surpass the testing that the SQLite team does. 
- 2009-Feb-04: The Stack Overflow site looks like it could become a very good knowledge center for programming topics of all languages. This gets praised here. 
- 2009-Feb-02: Discussion of 100% code coverage in testing. 
- 2009-Jan-30: Why is the adoption of 64 bit computing moving so slowly? 
- 2008-Dec-17: An extended Programming Mantra. 
- 2008-Dec-03: The Software Carpentry site contains lectures on the software development process. 
- 2008-Nov-25: One of the big (and often overlooked) challenges with programming is that the programmer is actually writing for two audiences: the machine and the other programmers his is working with or who will follow in his footsteps some day. 
- 2008-Nov-25: A good example of how not to write code, imagine using function pointers to "rename" standard library functions to save typing. 
- 2008-Nov-19: In When Agile Projects go Bad Slashdot discusses problems experienced in teams using the Agile methodology. 
- 2008-Nov-18: On Remote Workers and Working Remotely talks about one person's experience with telecommuting. 
- 2008-Nov-14: The Register asks has the time come to reject traditional database techniques? This includes links to a lot of alternative big database approaches. 
- 2008-Oct-26: The Google Test Automation Conference (GTAC). How to test an AJAX application. 
- 2008-Oct-24: Some recent studies show that telecommuting is still a good thing. 
- 2008-Oct-18: People like numbers that go up starts by talking about an idea for a game without numbers and then talks about how numbers often motivate people (and some of the problems this causes). 
- 2008-Oct-17: One programmer's experience on writing and publishing a commercial iPhone game. He did this initially for Android and then converted to iPhone. 
- 2008-Sep-25: This article argues that project managers should be evaluated on the performance of the projects they manage. 
- 2008-Sep-24: A Slashdot review of Clean Code, which might be worth looking at if you need to write up a coding style document for work. 
- 2008-Sep-18: The cost of (not) testing software breaks out the various phases (or levels) at which testing can be applied in a project and tries to identify their relative costs. 
- 2008-Sep-18: Some suggestions for good programming language reference web sites can be found here>, including the following for C++:
- 2008-Sep-17: A good write up on the various commands that can be used in DOS batch files. 
- 2008-Aug-22: An analysis of the stages a bug report goes through from arrival to resolution (or disposal). This cites the triage guidelines for Django too which has a nice illustration of their process. 
- 2008-Aug-13: Is unit testing doomed examines the state of unit testing and concludes that projects may have a tendency to abandon it as they mature (especially in a commercial environment). A corollary to this appears to be that adding unit testing to a mature product is highly unlikely. 
- 2008-Aug-13: Could Python have been the cause of the failure of the Chandler project? From some of the other stories about Chandler it seems more likely that it suffered in a major way from the lack of constraints and control at the project/product architecture level. This gets further discussed by Phillip Eby in this article. Chandler finally reached version 1.0 in Aug'08. Chandler provides a combination of note taking, calendar and task management in a shared environment. 
- 2008-Aug-12: Some thoughts on software requirements discussed in Your requirements are stupid which draws heavily on Business Requirements are Bullshit. Add to this a side order of twisted agile development and you will see there is no chance of escape from the Valley of the Doomed Software Projects. 
- 2008-Aug-11: Could your LinkedIn contacts list become a problem when changing jobs? 
- 2008-Aug-07: Managing Meetings talks about using red, yellow and green cards to manage the flow of questions from the floor during a meeting. 
- 2008-Jul-24: The Ultimate Quality Development System (UQDS) is a ticket-based agile approach to software development. This gets discussed here. 
- 2008-Jul-20: Slashdot discusses coding standards. 
- 2008-Jul-14: GetACoder.com is a programming work outsourcing site. 
- 2008-Jun-26: Slashdot discusses reports of students outsourcing class work. 
- 2008-Jun-18: Some notes on security testing. 
- 2008-Jun-17: Anatomy of a Runaway Project, will this happen to you? 
- 2008-Jun-13: Ultra Large Systems, the first of these are just starting to emerge. An example of ultra large systems. 
- 2008-May-24: Amazingly bad APIs argues that APIs should be built based on intended use so they are actually easy to do common tasks with. 
- 2008-May-20: Slashdot discusses static source code analysis tools. 
- 2008-May-14: An interesting reading list for code and test. 
- 2008-May-10: StarScream is a tool for writing presentations in reStructuredText, the slides and handouts it produces are DHTML. Home page on Google Code.  
- 2008-May-06: Ian Bicking talks about some of the various open source licenses, including the GPL and LGPL. 
- 2008-May-01: Joel on Software exounds on architecture astronauts, those who build grandiose solutions to non-existent problems. 
- 2008-Apr-28: Donald Knuth speaks out on unit testing software and parallel programming. 
- 2008-Apr-25: Surfing the Net for Software Engineering Notes links from a column in Software Engineering Notes. 
- 2008-Apr-25: Here is a testimony to the importance of jelled teams. The idea being that a close knit team of people can work together more (sometimes much more) effectively than a newly formed or modified team. Part of the reason for this is more effective communications within the team. 
- 2008-Apr-17: Why programs are like pastas - not just the famed spaghetti code. But what about the sauce? And does this mean all good software should only take 10 minutes to cook up?  
- 2008-Apr-17: Software Engineering Radio is a podcast site with articles on computer science topics. 
- 2008-Apr-17: stackoverflow.com aims to be an ask-the-experts type site that will answer questions on programming in an audio (podcast) format. 
- 2008-Apr-08: Thought for the day: Flexible software is error-enabling software, the more features you have the more loaded guns you are giving your users to shoot themselves in the foot with. 
- 2008-Apr-08: What a DVCS gives me discusses the benefits of using a distributed version control system. 
- 2008-Apr-05: A white board illustration of the classic technology start up company process (which includes the hockey stick curve). The "crash of ineptitude" is an interesting feature, though I contend that it happens sometime after the "acquisition of liquidity".  
- 2008-Apr-05: The classic picture of how not to do software development.  
- 2008-Apr-02: Do the really productive rockstar programmers really exist? 
- 2008-Mar-29: A software engineering course has student teams build a project in stages, at the end of the first stage they review the work of the other teams and then must select one of the other team's work to continue. An interesting idea, perhaps this could be used in a company which can afford to take a "multiple implementation, select the best of breed" approach to software development. While this sounds wasteful it might be a good way to get higher quality and/or meet tighter schedules. 
- 2008-Mar-25: The (Lack of) Testing Death Spiral discusses reasons why you should have some form of automated testing in your software development process. This is based on a talk given at PyCon 2008 on testing and the OLPC project 
- 2008-Mar-19: How Apple got Everything Right by doing Everything Wrong discussed here on Slashdot. Handy tips for the evil manager. 
- 2008-Mar-14: Using small USB flash drives to distribute working copies of software to potential users at trade shows. 
- 2008-Mar-14: A look at some of the tools (and processes) that Google uses internally.  
- 2008-Mar-14: This study confirms my own experiences that productivity increases with monitor space. Of course as this is a paid-for-by-industry type study you should take it with a grain of salt, but consider what happens if you are using Microsoft's Visual Studio to do some C++ work. It likes to do everything in one window broken up into a number of panels (for organizational and navigational purposes). This often leaves me with a coding window of about 1000x600 pixels out of a 1680x1050 (20 inch wide screen) resolution monitor. If I need to look at two files side by side, that drops to 500x600 for each, which is pretty small. With a second monitor this is much easier to do. Also, when you start running the application in debug mode (especially when working on a GUI problem) you have to fight with the two applications to get them to share the screen space and yet still have enough room to see your local variables, call stack and source code windows. If you have a second monitor, or one wider than 1680 pixels (though I doubt 1920 is really that much wider) then you can give each application (Visual Studio and the one being debugged) its own monitor and work in a much easier fashion.  
- 2008-Mar-11: How do you go about writing and testing the code that is part of a modern technical book? 
- 2008-Mar-10: A discussion of why developers don't do code reviews. 
- 2008-Mar-06: Beautiful Code, by Andy Oram, Greg Wilson, ISBN: 978-0596510046. is a book on software development. 
- 2008-Mar-01: Software projects are not the only ones that can suffer from lack of or changes to scope, the US virtual border fence project by Boeing seems to be failing from this sort of thing. 
- 2008-Feb-22: The ohloh project is an idea that HR and management types might want to apply to monitor the progress of a company's staff and internal projects. 
- 2008-Feb-20: The Software Freedom Law Center's (SFLC) Legal Issues Primer for Open Source and Free Software Projects gets discussed on Slashdot. 
- 2008-Feb-19: UQDS, Ultimate Quality Development System might be too heavy weight for some, so an alternative, XQDS, Xtremely Quick Development System is proposed. One suggestion I would make would be to switch from using Subversion to using a more modern distributed version control system (such as Mercurial) to support this type of work flow. 
- 2008-Feb-18: The IDC is finding that IT departments that build projects around open-source solutions are much more successful in successfully completing them. Perhaps this is a case of just reducing the work from a full design and programming effort to a much simpler implement and tweak type task? For example, an IT department might want to build an issue-tracking system, if it designed and built this from scratch this might consume a few man years of effort and result in an unusable monstrosity that, while completed, never gets used. However, there are lots of free, open source, issue trackers that can be configured and put into use in a matter of hours to days (or weeks if the department works hard at it). 
- 2008-Feb-13: Some thoughts on how to document functions and classes. The Linux kernel coding style guide. 
- 2008-Feb-07: The trade off between coding time and testing time. 
- 2008-Jan-30: Slashdot discusses best practices for process documentation. I particularly liked this comment on the power of combining sticky notes and a large white board - I've done this a couple of times when planning out a new project and it works quite well. 
TWiki, a web-based collaboration platform. 
what you have learnt elsewhere
of bugs (the software kind). US$60 billion a year?
management for programmers on Slashdot
code revisited on Slashdot
Be sure to get a few de-motivational
posters from Despair.com
Google are now (15-Jun-02) selling a "google
in a box" system for your intranet searching needs.
CVS is another source
code management system, and introduction is here,
and there is an O-Reilly pocket
reference book too.
is a source code management system
Slashdot on comments
of programming, or why quality counts (or maybe "bugs that kill")
Java asks the question, is too much OOP really OOPS?
Tools for Extreme Programming, a book review
Joel on Software
and project management and the City Desk publishing package
A web based version of the GNATS
bug tracking software, and QM
Test, a testing tool, also the Software
Carpentry project is attempting to organize the development of more
coding and testing tools.
The Software Engineering Body
or at least the start of an attempt at this illusive goal
software project schedules be estimated, a paper on the subject by J.P. Lewis
The Canadian Passport web site
XML for online documentation
Freshmeat tracks new
versions of free software
comparing the various
kinds of "free software" licenses, and more links to more info on
much multitasking on the job hurts productivity
Comments on a revision
control system for documentation
Double Choco Latte, a problem and enhancement tracking system
in a nutshell reviewed
Communications in a project
may be bad for those workers who don't. This makes some sense as
they may end up feeling left out and carrying the bag. 
is Hard, a discussion of money, motivation and what good people
can't achieve when they have too much of one and not enough of the
other. It might not be the software that is hard, but the process of
figuring out what you actually want to do.
There appears to be too
many solutions to choose from when it comes to parallel
programming. Perhaps one should ask: why?
approach to writing documentation in a presentation-independent way.
can ruin your life, or how to understand a programmer
Much information on SQL Server can be found here.
Notes on the Google GTAC conference
on testing held in Aug'07
high cost of low quality, how you might be a lot better off by
hiring at the top end of the programming tree.
by Michael Loop, ISBN: 978-1590598443,
sounds like it might be worth a read.
Cloud makes some enterprise build tools, including ElectricAccelerator
which can distribute builds of large projects over a number of machines
to speed up the process. Since this is "price-on-request" software its
probably something only a large company could afford.
page on PL/SQL (Procedural Language/Structured Query Language)
IT projects either don't finish or are poorly completed, though
this might not be as bad now as it was in the mid 90's
a website devoted to .NET news
Architects, specialize in development and validation of algorithims
for scientific software
ways to write more comprehensible code talks about the joy of
Summer of Code project for 2007 will be to develop a better
packaging (download, install, remove, update) mechamism for use in free
software on the Windows platform
Why Microsoft will
never make .NET truly portable
steps to remarkable customer service, this includes some sharp
observations on why outsourcing your software support for 1/5th the
per-call cost will probably end up cosint you more than doing it
Intel has released a threading
library for C++
Sieve is an auto-parallelizing
Design by contract gets discussed
A Slashdot book review of: MySQL
Cookbook, by Paul DuBois, ISBN: 059652708X.
Meetings may make
you dumber, another good reason to minimize meetings.
is hard to build
Slashdot asks: Is
the One-Size-Fits-All Database Dead?
Quake3's fast InvSqrt() function
is one strange piece of C code. Discussed here
on Slashdot. Its even made it to a paper.
Slashdot discusses the difficulty
of porting applications
Graphics processors (GPUs) are starting to take on
traditional CPU number
of coding from scratch? Not today for sure, but someday.
mistakes that enterpreneurs make
A story about outsourcing
product development to China
How Google does development
Interface Guidelines for Microsoft Vista have been published
In Sept'06 talk of a reverse-migration
effect within the Indian off-shoring market, apparently rates have
risen so much in India that some Westerners are finding them attractive
and moving there to work. Given India's immigration policies (you have
to get a visa just to visit India on a business trip) I would guess
that these people are actually Indian expatriots returning to work in
The theory of the "free
electron" programmer. I fully agree with this article, these people
exist, they are pretty rare and they can be difficult to direct and
apply to specific tasks, but once they are engaged on something you
will get more out of them in a few days than you can get from most
programmers in a month. When interviewing new candidates you should try
to see if any of these get caught in your net, look for evidence of
self-motivation in computer projects at an early age, look for people
who've written their own libraries, engines or toolkits. Once you have
one on staff your problem will be keeping them amused and preventing
other project managers from press-ganging them and putting them to
"good use" just fixing bugs.
In July'06 the tide
started to turn on outsourcing to other countries.
Project Management, techniques for coping with short schedules. Discussed here
Windows Theory, one man's view of why Vista is behind schedule, discussed here
Slashdot discusses the end
of native code, are machines fast enough now to run everything we
need in an interpreted or just-in-time environment?
The Organization of
Software Vendors, was started in June'06, one of the charter
sponsors is Lunarpages,
which is my web host. Discussed
here on Slashdot.
its decision to outsource some jobs to India.
Slashdot book review of: SQL
Cookbook, by Anthony Molinaro, ISBN: 0596009763.
Stock Exchange for harvesting ideas from within your whole company
Slashdot book review of: Micro-ISV:
from Vision to Reality, by Bob Walsh, ISBN 1590596013.
All about starting a small software company.
crossing programming environments with the old MUD paradigm
Slashdot discusses version
control systems for non-programmers
Maps, outlining and brainstorming meet.
The hidden cost of outsourcing might be loss
of customer satisfaction and then loss of customers, discussed
on Slashdot. After spending more than 2 hours on the phone one Saturday
with Norton's support centre (obviously based in India) trying to fix
my Norton Antivirus 2005 I gave up and removed it from all my computers
and switched to a competitor.
Joel on Software,
has some books that may be of interest to software developers: Joel on
Software and User Interface
Design for Programmers.
Oh that overbearing
A nice set of icons for use in computer programs
Making the best
use of the sockets API on Linux, some of these
thoughts may be applicable to other languages and platforms.
GetACoder.com, is a
site for finding freelance programmers, designers and writers for software
Reports on problems
some computer science
students are out-sourcing
their homework, using sites such as Rent-A-Coder
Construction of high
integrity code, discussed in the article: Correctness by Construction: A Manifesto
for High-Integrity Software
Boost C++ libraries
jobs to middle America
Slashdot asks the question, "What
coding practices do you use?", or perhaps you'll be adopting the
joy of writing
Switching to subversion
to reduce project maintenance effort.
a project management system written in Python. Includes version
control, documentation system, scheduling and bug tracking integrated
into a wiki environment. More on using
worst software bugs, discussed
Nokia has a web
site for all their Open Source projects
delivered to the desktop
says "no" to software specs.
reuse between projects
the black arts of management
Faces is another
project magement tool in Python.
planner, a resource planner that takes CSV files as input and can
produce Gantt charts as output (in HTML pages)
suggestions from decks of cards to help think through difficult
problems (implemented in Python)
What to do before
you fire the company geek
free enterprise management software in a box
Outsourcing to Small
and the bad of summer internships
Growth in the India outsourcing / off-shoring market may
How to calculate the true
replacement cost of software
Kids, never do this at home: how to
implement a decimal
adder in DOS batch files
is providing an API to allow you to access their content
Programming for your welfare
benefit, it happens in Australia
At long last, a successor
to FORTRAN, SUN is proposing FORTRESS
A Slashdot Book review of: Professional
Excel Development, by Stephen Bullen,
Rob Bovey, John Green, ISBN: 0321262506.
This is about writing applications in Excel.
Can an open source project be acquired
(going back to closed source)?
are more important than code.
ship programming, a new approach to off-shoring development, now if
they would only park the ships some place more pleasant than downwind
from Los Angeles I bet there would be a lot of Canadian programmers
available to staff the ships... Perhaps this could make the
Caribbean a hot bed of software development?
Slashdot is asked: What
makes a good design document?
outsourcing lead to unwanted disclosure of sensitive data?
A Slashdot review of Code
Reading: The Open Source Perspective, by Diomidis
Spinellis, ISBN: 0201799405.
Is it possible to make
money off open source projects?
A Slashdot review of, Effective
XML, by James Edward Gray II, ISBN 0321150406.
code is the design, acknowledging the reality of software
An article on the difference between QA
Are US programmers an endangered
Alan Cox on Writing
IT at WalMart, and why they won't be outsourcing it.
Don't shoot the software, or why your
boss is to blame for the bad software you write.
and the future of learning
The LAX airport got
shutdown because it didn't get its monthly reboot
A Slashdot review of: Succeeding
with open source, by Bernard Golden, ISBN: 0321268539.
This is a guide for managers and IT people on evaluating open source
of Code 2005 is finished. Results of the Google Summer of Code
(2005) for the Python projects
Code Jam 2004, Google's way of looking for star programmers, and
adverts that apparently point the way to a job site. Now with all
these very intelligent people will Google be capable of making products
simple enough for the rest of us to use?
Slashdot reviews: Pragmatic
Project Automation, by Mike Clark, ISBN 0974514039.
Slashdot reviews: Facts and Fallacies of Software Engineering,
by Robert L. Glass, ISBN 0321117425.
RoadPost.com rents cell
phone equipment for international travel.
Slashdot reviews: The Product Marketing Handbook for Software,
4th Edition, by Merril R. Chapman, ISBN 0967200865.
the quality of technical support is dropping due to the oursourcing /
Slashdot asks the question: how can companies profit while giving code
Is it time to kill Microsoft Word?
Why is Java
The customer is always
wrong (as far as telling the software developer what he wants
built), this idea is pretty much the central pillar of the Extreme
Programming approach (where its stated: expect the customer to change
from internet publishing?
The could be money
made on free software
glitch grounded American and US Airways, all those planes and no
one knew where they were supposed to go.
Slashdot asks: does
your Employer own your thoughts?
The Code Project
is a good site for free code and tutorials relating to C++ on Windows
An essay on
what makes a great hacker (or a very productive programmer), this echos
some parts of the MMM.
Why one should use XHTML
the GD Graphics
is an open source image library
Nothing like installing a new newspaper
publishing system that does not work...
of the VAX are finally numbered
Y2K panic, this time its with the VIN (vehicle ID) numbers
systems may threaten more jobs than off-shore outsourcing
Developing software the Microsoft
way, is this a good thing?
algorithms to breed new race cars, and to design
better optical fibers
The 2004 InfoWorld
Man Month (MMM) revisited,
some more on Slashdot. MMM is a great text, well worth a read every few
years. If you do software development of any significant size you'll
find some relevant gems in it, and a lot are of the form we're screwing up that way too! In
a way its reassuring to know that your development approach is not the
worst in the world.
hires so many PhDs
a way of funding free software
And the Royal Bank of Canada ran into similar
issues bring down an air traffic control centre
The economic impact of computer viruses, is it time for a
solution to the source?
Microsoft has released
the Windows Template
Library (WTL) to SourceForge
of the Serenity Virtual
Station, software that allows one to run one operating system on
top of another
of Rapid Application
Development with Mozilla, ISBN 0131423436.
an MIT study
of the software development process
Microsoft is making part of the VisualC++ system available
for free download here, see
this Slashdot article
for more coverage. Microsoft is launching (June 2004) Visual
Studio Express 2005 beta.
The WiX, Windows
Installer XML has gone open sourced.
software kill? The consequences of poor programming
review of Debugging: the 9
Indispensible Rules for Finding Even the Most Elusive Software and
Hardware Problems, ISBN: 0814471684.
software with an intuitive approach
A Slashdot review
of Embedded Ethernet and Internet Complete,
by Jan Axelson, ISBN 1931448000, discusses using ethernet in embedded
systems. Could be a good low-level look at adding ethernet as the
interface for various devices. Jan has also writtern USB Complete: Everything You Need to
Develop Custom USB Peripherials, ISBN: 0965081958
A Slashdot review
of MySQL: Building User Interfaces,
by Matthew Stucky, ISBN: 073571049X
Learning Computer Science via Assembly Language is
on Slashdot, along with this book,
from the Ground Up, by Jonathan
Bartlett, that takes this approach. In my experience the best
programmers I have worked with have all done some assembly language
programming (usually before their career programming started), and
when I review resumes this is something I make note of.
takes a look at the jobs to India trend.
More thoughts on outsourcing
software development to India, and even talk of Western
to India in search of work. Need
a Job, move to India
issues in distributed development
own software company
that compares Java, C++, VB and Python
the rugby school of extreme programming. Sounds
like Microsoft may be making use of scrum programming.
review of Pragmatic Version Control using CVS, there is also a
companion book "Pragmatic Unit
Testing" and another on due out in 2004.
the inputs to programs
outsourcing may be coming to an end.
Hacks, a guide to programmed searching on the internet
Search, the Series a set of essays on searching text
A project to provide an SQL API to flat
of open source development. I don't agree with all of this, but
some things are very true, like the "installation experience" may
be more important than the "usability of the software"
A Slashdot review of In
Search of Stupidity: Over 20 Years of High-Tech Marketing Disasters,
a new management bible.
We all know you cannot believe everything you read on the
but you can't even trust
the printed word.
A Slashdot review
of Jess in Action, which is a rule-based framework for Java. Drools is a similar sort of thing,
with versions available for python and java.
A Slashdot review
of Software Exorcism, exposing the dirty tricks department
answers the question: how do you manage IT requests in your
Do you work for a PHB
(Pointy Haired Boss)?
How to say
no in IT, maybe the customer is not always right?
The Register questions
the cost of traditional IT corporate desktops
A favorable review
Visual Quick Start Guide, an introduction to database programming
that includes examples that have been tested on many different systems
(both commercial and free) and explanations about the defects of these
is a utility that allows a Python script to be packaged up as if it was
a standalone executable.
the Python Imaging
Library. More documentation on this can be found here. FreeType.org is the free, true
type capable, font rendering engine. There is a way to get PIL to use
this for its fonts (although maybe only in the commercial PIL Plus
thoughts on managing a open source software project (2-Jul-03)
open source SQL database project
Microsoft Office XP will only have limited
XML support, not all versions of it will have the support and the XML
A Slashdot book review of Java
Performance Tuning, 2nd Ed., an analysis of and guide to
A Slashdot book review of C++
Templates: The Complete Guide, a useful reference for those working
When your project runs out of funds, perhaps its time to
try out a 419
Prevalence another approach to persistent storage of information.
The main Prevayler
site, a Slashdot
article and a port of it into Python called PyPerSyst.
an HTML component with lots
of capabilities for Java programming
Intelligence a new approach to solving scheduling problems
This Slashdot article
discusses using the MS Visual C++ environment under Wine and documented
A slashdot book
review of Effective Java, which sounds like a good book
discussion on Slashdot about the GPL.
The GPL is a license, not a contract, this article
on Slashdot) explains the difference and why the common worry that
entwining GPL code into a proprietary system could cause loss of rights
for the proprietary work is not correct.
- A Lawyers view on what is meant by a derivative
work, he argues (correctly in my opinion) that a program that uses
a library cannot be called a derivative work of that library. When I
read up on the LGPL
the papers from the FSF describing the
intent of that license also took this approach, but when I tried to
read the actual license I could not convince myself that it actually
said this. For example they actually say this: "When a program is
linked with a library, whether statically or using a shared library, the
combination of the two is legally speaking a combined work, a derivative of the
original library." and the second and third paragraphs of their section
5 are rather bothersome:
5. A program that contains no derivative of any portion
of the Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a work,
in isolation, is not a derivative work of the Library, and therefore
falls outside the scope of this License.
However, linking a "work that uses the Library" with
the Library creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the library".
The executable is therefore covered by this License. Section 6 states terms
for distribution of such executables.
When a "work that uses the Library" uses material
from a header file that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be linked
without the Library, or if the work is itself a library. The threshold for this
to be true is not precisely defined by law.
article references some other articles that seem to be similarly
concerned with section 6 of the LGPL.
Another developer, Floris Bruynooghe, has attempted to make sense of this too. 
A Slashdot article on translating
Eclipse is an IDE
system from IBM (well suited to Java), that according
to Slashdot is now freeware. Compared to Visual Studio here.
is a set of libraries for Java
asks has software development improved?
Developer's Almanac is a book (with examples)
on JDK 1.4 but missing Swing, AWT and printing
Numbers into Knowledge is a
book that attempts to codify the art of analytical thinking and
problem solving, might be worth a read
Can software leak? This is what happens when a design
abstraction has holes.
Hall of Shame
has some good analysis of common GUI design mistakes
The Business Development Bank
if you believe the radio adds this is the place to go to quickly get
all sorts of financing for your small (Canadian) business.
Grokker a new search
does Software Cost so Much? A book by Tom DeMarco, reviewed on Slashdot
Programming Book at Dr. Dobbs
Programming Installed , a book review. The first book in this series was Extreme
Programming Explained , which has some useful content, probably
very applicable if you are building software that relies heavily on a RDBMS
backend and/or you are using a tool set that allows for a rapid
code/test cycle. And now there's a book questioning
XP too. Extreme
Programming Refactored, reviewed on Slashdot takes a critical look
at this approach to programming.