Steve Or Steven Read Projects Bio News Links Search Contact |  Home » Projects » 2006

Much TODO

Vaporware at its finest. For this project I have been collecting and assembling unwritten software code. While this code remains to be written, its construction in thought has at least begun. The ideas, dreams, and procrastinations of software developers from around the world are manifested in this project by their 'TODO' comments which were left behind in code as little reminders. I have algorithmically collected nearly 100,000 of these comments from the Internet, giving precedence to quick 'one line' TODOs. The resulting conceptual software program contains instructions of thoughts only - no actions. It does everything, and nothing. It does just what I need, which is plenty.

A TODO tag is not necessarily a formal software coding element, but placing them in code is common practice among many developers. When found in code, it is assumed that the TODO thought/task has not yet been realized (it's also assumed that the task may not be absolutely necessary). When software code is finally compiled down into a program, the compiler recognizes and processes the comments by ignoring them.

There is still much todo on this project!
TODO: make fancy visualizations with the data
TODO: harvest even more todo comments
TODO: add multi-line todos to the archive
TODO: convince people this is good art
TODO: convince people this is good software

Here is a free, downloadable, runnable program created from 100,000 lines of TODO code:
MuchTODO.exe (DOS/Windows version)

Here is a small section of TODO code randomly pulled from the collection:

/******************************************************************
* TODO: Should convert to the code page used by the DPMI driver.
******************************************************************/

/************************************
* TODO: should use scheduling rule
************************************/

/************************************
* TODO: define VK_DIVIDEWXK_DIVIDE
************************************/

/***********************
* TODO: safe runnable
***********************/

/************************************************
* TODO: access from xmlBlaster.properties file
************************************************/

/******************************************************************************
* TODO: only do this conversion once, as soon as the primitive type is known
******************************************************************************/

/*****************
* TODO: SIGSTOP
*****************/

/*******************
* TODO: check for
*******************/

/*****************************
* TODO: start intro screen.
*****************************/

/****************************************************************************
* TODO: make this configurable, or detact an appropriate value at startup.
****************************************************************************/

/****************************************************************
* TODO: should use polygons instead of lines to get back faces
****************************************************************/

/********************************
* TODO: Call defined functions
********************************/

/***************************************************
* TODO: release stuff from previous Glide mode...
***************************************************/

/*************
* TODO: nls
*************/

/***********************************
* TODO: check for next free files
***********************************/

/**************************************************************************************
* TODO: If more than one biz-entities have the same values, the output to the screen
**************************************************************************************/

/*******************
* TODO: channel??
*******************/

/*********************************************************************************
* TODO: rework javadocs: they refer to StandardUserAgent, more than this class.
*********************************************************************************/

/**************************************************************************************
* TODO: 1. although there is nothing wrong with preallocating all the memory we need
**************************************************************************************/

/********************************************
* TODO: replace static arrays with vectors
********************************************/

/**************************************
* TODO: this dependency is kinda Bad
**************************************/

/*************************************************
* TODO: Do this with spanish special characters
*************************************************/

/*****************************************
* TODO: If it is an adhoc xlat, free it
*****************************************/

/*********************
* TODO: MT2 Effects
*********************/

/************************************
* TODO: maybe use URL for parsing.
************************************/

/*********************
* TODO: RLE bitmaps
*********************/

/*****************************************
* TODO: also give length of components!
*****************************************/

/*********************
* TODO: use strict;
*********************/

/**************************************
* TODO: content.setRequest(request);
**************************************/

/*******************************************************
* TODO: We may be able to 'pre-calculate' the results
*******************************************************/

/**********************************************************
* TODO: Handle newlines etc. escaped with trigraph ?-?-/
**********************************************************/

/***********************************
* TODO: change to hibernate query
***********************************/

/***************************************************
* TODO: use the timer to report what is happening
***************************************************/

/******************************************************************
* TODO: this requires sufficient stack for a copy of the string,
******************************************************************/

/****************************************************************************
* TODO: Using 18 dont let us use a theme with its own icon toolbar height
****************************************************************************/

/**********************************************************
* TODO: the current implementation is hard coded to HARD
**********************************************************/

/***********************************************************************************
* TODO: Optimize by parsing ahead of time to find all EClasses that we will query
***********************************************************************************/

/****************************************************************
* TODO: make this a function cause it's used twice, except
****************************************************************/

/***************
* TODO: FLOF)
***************/

/*********************************************************
* TODO: implement this union feature getter test method
*********************************************************/

/********************
* TODO: kill this?
********************/

/**********
* TODO:
**********/

/*************************
* TODO: make it private
*************************/

/*********************************************************
* TODO: Define one of the methods below for your macro:
*********************************************************/

/************************************************************
* TODO: what to do about libtool pre-installed lt-* names?
************************************************************/

/*********************************************************
* TODO: currently the C implementation's a bit buggy...
*********************************************************/

/**********************************
* TODO: probably ugly and broken
**********************************/

/****************************
* TODO: render vrambuffer
****************************/

/***********************************************************
* TODO: some way of specifying applying changes to views.
***********************************************************/

/*********************************
* TODO: Should this be handled?
*********************************/

/*******************************************
* TODO: Handle network errors in details
*******************************************/

/*************************
* TODO: PARAM SafeArray
*************************/

/******************************
* TODO: save to file instead
******************************/

/************************************
* TODO: prevent this absolute path
************************************/

/*********************************************************************************
* TODO: Pratik you should cache this, current position, isDelete boolean and
*********************************************************************************/

/******************************************
* TODO: check for faad support in ffmpeg
******************************************/

/******************************************
* TODO: optional lot.vcd & psd.vcd files
******************************************/

/****************************************
* TODO: the more complex evaluation of
****************************************/

/***************************************
* TODO: handle configuration requests
***************************************/

/************************************
* TODO: evt. extern nochmal testen
************************************/

/***********************************************
* TODO: do we need some kind of cleanup here?
***********************************************/

/******************************
* TODO: REDRAW IF CHANGED!!!
******************************/

/************************************************************
* TODO: We need to figure out how to examine the log files
************************************************************/

/************************************************************************
* TODO: psGEMEvent makes this depend only on the attacker when in fact
************************************************************************/

/****************************************************
* TODO: Subclass TableItem to also hold the object
****************************************************/

/*******************************
* TODO: make it configurabile
*******************************/

/*********************************
* TODO: reserved word `BIT'
*********************************/

/******************************
* TODO: check the Nsop value
******************************/

/****************************************
* TODO: return the state of a thread."
****************************************/

/********************************************
* TODO: handle stray vcards here as well.
********************************************/

/*******************************************************************************
* TODO: This rectangle may be approximative. We should improve the algorithm.
*******************************************************************************/

/**************************
* TODO: manage spr->flip
**************************/

/*****************************************************************
* TODO: Delete this method. It does not make sense. (Francisco)
*****************************************************************/

/*******************************************
* TODO: This should be the number of rows
*******************************************/

/************************************************************
* TODO: implement these... no one uses these so who cares?
************************************************************/

/***********************************************************
* TODO: eyepos, eyedir, eyeup vector should be specified.
***********************************************************/

/***********************************
* TODO: use central regex library
***********************************/

/*****************************************************
* TODO: maybe change this to throwing an exception?
*****************************************************/

/*********************************************************
* TODO: replace it with the blitting operation above! *
*********************************************************/

/********************
* TODO: Sort this.
********************/

/**************************
* TODO: use a hash-table
**************************/

/**************************
* TODO: callout for auth
**************************/

/************************
* TODO: use iterators?
************************/

/***********************************************************
* TODO: template <class R> class Translation_repCd;
***********************************************************/

/********************************************************
* TODO: Switch all posts from one user to another user
********************************************************/

/***********************
* TODO: : remove size
***********************/

/**************************
* TODO: use wrapper here
**************************/

/***************************************************************
* TODO: Need to repaint image if the movie is in paused state
***************************************************************/

/*******************************************************
* TODO: Check the exit value of the children process.
*******************************************************/

/****************************************************************
* TODO: find a better way to keep track of the pmegs used by a
****************************************************************/

/********************************
* TODO: feedback on link click
********************************/

/******************************************************************
* TODO: be a little more clever about setting the interrupt bit.
******************************************************************/

/*********************************************************
* TODO: actually its better with a warning in this case
*********************************************************/

/*****************************
* TODO: 24 check if C || BW
*****************************/

/***************************************************************************
* TODO: right now this is running over a loopback. Is there any reason it
***************************************************************************/

/*********************************
* TODO: Make an enumerated type
*********************************/

/************************************
* TODO: prune to public interface.
************************************/

/****************************
* TODO: add summary sheets
****************************/

/********************************************************************
* TODO: move this functionality into a generic arg parsing library
********************************************************************/

/************************
* TODO: need a monitor
************************/

/*****************************
* TODO: # 1. Error handling
*****************************/

/*************************************************************
* TODO: Then worry about serializations and deserialization
*************************************************************/

/*************************************************************
* TODO: isXXXEnabled() Methods are used by commons logging.
*************************************************************/

/**************************************************************************************
* TODO: do ioslaves to extract text and ioslaves to extracts images and medias too.
**************************************************************************************/

/********************************
* TODO: Check if tex is freed.
********************************/

/**********************************************************************
* TODO: This section is for recent beta Windows DDK releases. Recent
**********************************************************************/

/***************************
* TODO: Function for this
***************************/

/***************************
* TODO: rysowania tablicy
***************************/

/************************************
* TODO: Speed up screenshot dumps.
************************************/

/*******************************
* TODO: each?) visren process
*******************************/

/*******************************************
* TODO: What ist the default access mode?
*******************************************/

/***********************************
* TODO: join with function above!
***********************************/

/***************************************
* TODO: need to strip out separators)
***************************************/

/******************************************
* TODO: make this byte order independent
******************************************/

/**************************************************************************************
* TODO: clicking the line number abd dragging the mouse should select block of lines
**************************************************************************************/

/*********************************************************************************
* TODO: some stuff missing that should be here, to be in parallel with config.h
*********************************************************************************/

/*******************************************************************
* TODO: Adjust the key view loop to include the new document view
*******************************************************************/

/***************************************************
* TODO: Figure out why this doesn't quite work...
***************************************************/

/*******************************************************************
* TODO: test and see if we can use read_only_data_section, if so,
*******************************************************************/

/******************************************************************
* TODO: move edd.[ch] to better locations if/when one is decided
******************************************************************/

/*******************************************************************
* TODO: If the Config Property is null or empty have default path
*******************************************************************/

/**********************************************
* TODO: N throw WrappedTargetException( e );
**********************************************/

/******************************************************************
* TODO: what does this do to unreadable directories in windows?!
******************************************************************/

/*****************************************************
* TODO: Actually finish the development and testing
*****************************************************/

/***************************************************************
* TODO: come up with a good data set for moving average model
***************************************************************/

/********************************************************
* TODO: this would, of course, be a mighty silly thing
********************************************************/

/***********************
* TODO: TemplateNames
***********************/

/**************************************************************
* TODO: This check to be done only when in POLLING mode !!!!
**************************************************************/

/*********************************************************************
* TODO: Handle out-of-memory-errors better. If we run out of memory
*********************************************************************/

/***************************
* TODO: Chack for errors.
***************************/

/*******************************************************************
* TODO: optimize (ClassReader buffers entire class before accept)
*******************************************************************/

/***********************************************************************
* TODO: Clean this mess up. It hurts my brain. Code like this needs a
***********************************************************************/

/************************************************
* TODO: pass from real parent like SubjectInfo
************************************************/

/********************************************************************
* TODO: remove globals and switch to using var/public where needed
********************************************************************/

/*******************************************************************
* TODO: Check the type of the node and return, if it's not a node
*******************************************************************/

/*********************************************
* TODO: replace dialog.setResizable(false);
*********************************************/

/*****************************
* TODO: remove set argument
*****************************/

/**********************************************************
* TODO: cgi.FieldStorage blocks while decoding the MIME.
**********************************************************/

/******************
* TODO: Optomize
******************/

/*************************************************************
* TODO: Use double precision for all dot/wedge products. *)
*************************************************************/

/*******************************
* TODO: NullPointerException!
*******************************/

/*********************
* TODO: use Scanner
*********************/

/**********************************************************************
* TODO: here we would need to test "off" if VCB11 is used!
**********************************************************************/

/**************************************************************************
* TODO: Check this function : does it element ? it must not freed them !
**************************************************************************/

/*************************************
* TODO: this should be configurable
*************************************/

/******************************************************
* TODO: also problem before first MoveNext!!!!!!!!!!
******************************************************/

/*******************************************************************
* TODO: Do the proper thing when the user changes value in entry,
*******************************************************************/

/******************************************************************************
* TODO: fix this so the CONFIG_ETRAX_I2C_USES... is set in Config.in instead
******************************************************************************/

/******************************************************
* TODO: we should make variants to play as though it
******************************************************/

/*********************************
* TODO: Print the element data.
*********************************/

/*************************************
* TODO: check codec is not base + 8
*************************************/

/*******************************************************************
* TODO: there is a possibility to have a typedef struct arg1 arg2
*******************************************************************/

/************************************************
* TODO: Poprawna implementacja, przetestowanie
************************************************/

/*************************************
* TODO: Make this work for .NET 2.0
*************************************/

/***********************************************************
* TODO: This should be put in a specific package later on
***********************************************************/

/**************************
* TODO: modify it later)
**************************/

/*******************************
* TODO: INTERNAL_PANE_MODE ??
*******************************/

/*************************
* TODO: Handle sessions
*************************/

/*****************************************
* TODO: non-shared we clone the string:
*****************************************/

/***********************
* TODO: sanity check?
***********************/

/***************************
* TODO: add mmap support!
***************************/

/************************************
* TODO: make this exception better
************************************/

/***********************************************************
* TODO: the rest of this section is somewhat out of date.
***********************************************************/

/**************************************
* TODO: here we have to check params
**************************************/

/********************************************************************
* TODO: Aktuelle Version erstellen und einfügen, nicht mehr HTML.
********************************************************************/

/********************************************
* TODO: make the stem start a direction ?
********************************************/

/****************************************
* TODO: take out unneeded constructors
****************************************/

/********************************
* TODO: uble events everywhere
********************************/

/*******************************************************************************
* TODO: Finish documenting this function. Add examples of $excludefile usage.
*******************************************************************************/

/********************************************
* TODO: check here for target already open
********************************************/

/*****************************************************
* TODO: Redo the SwingFillDlg so that it does this:
*****************************************************/

/*************************************************************
* TODO: Incorporate testing for ContextStack and ContextMap
*************************************************************/

/**************************************************************
* TODO: try to understand what the hell is going wrong here.
**************************************************************/

/************************************
* TODO: int ftrylockfile(FILE *);
************************************/

/*************************************************************
* TODO: afx_msg void OnUpdateEditUpperLeft (CCmdUI* cmdui);
*************************************************************/

/**********************************************
* TODO: have an hardcode composition feature
**********************************************/

/****************************
* TODO: create Unix socket
****************************/

/********************************
* TODO: Insert API method here
********************************/

/************************************
* TODO: support for other charsets
************************************/

/***********************************************************
* TODO: If we come here we should assert that the current
***********************************************************/

/****************************************************************************
* TODO: xlink and remoteSchema attributes, hard to do because of streaming
****************************************************************************/

/**************************************************************
* TODO: should the nuke make a spiral(like now) or a circle?
**************************************************************/

/*********************
* TODO: crash proof
*********************/

/********************************************************************************
* TODO: Use the collision-sensorboard framework to detect spawn point crowding
********************************************************************************/

/*********************************************
* TODO: recompute _quad and all quad tables
*********************************************/

/********************************
* TODO: handle dir open errors
********************************/

/*********************************
* TODO: merge with XContentId *
*********************************/

/**********************************************
* TODO: Try to deal with remote URIs as well
**********************************************/

/****************************
* TODO: add error handling
****************************/

/*************************************************
* TODO: getSchema* should be merged into find()
*************************************************/

/*****************
* TODO: timeout
*****************/

/********************************************************************
* TODO: check if DirectX is functional, and maybe use that instead
********************************************************************/

/*******************************************************
* TODO: check content for found and extracted section
*******************************************************/

/*******************
* TODO: clockid_t
*******************/

/**********************************************************************************
* TODO: does Unicode introduce any new whitespace characters ? 2002.06.26, Perry
**********************************************************************************/

/*******************************************************************************
* TODO: Implement a "pluggable" URI resolver that allows developers
*******************************************************************************/

/***************************
* TODO: do real operation
***************************/

/*****************************************************************
* TODO: make this _ACTUALLY_ work with pathes instead of making
*****************************************************************/

/************************************************************
* TODO: could unify these all into a generic callback list
************************************************************/

/********************************
* TODO: Add deployment context
********************************/

 
keywords:  2006  digi.mini  found.data  generative  software