- Identify and attack the most important risks early on in the project before they come back and haunt you at the end of the project.
- According to Murphy's Law this is usually right before an important launch date when the customer is the most eager to see results.
- From the very beginning, keep an up to date risk list in order to track progress and ensure the success of the project.
- Along with each risk listed, include a plan for mitigating that risk.
- Order these risks according to importance, e.g. those risks which would have the biggest impact on the project should go first.
- A very simple Excel sheet with a few columns should suffice.
- This list serves as a focal point for planning project activities, and is the basis around which iterations are organized.
- As the project continues this list will change and if it doesn't be weary of impending danger.
Month: January 2009
It's been quite some time since I did any Flash, besides so much has changed since then that I doubt I could make anything spectacular anymore.
However, in the meantime I've been having a look at the new <canvas>
tag, which in my opinion does alot of interesting graphics stuff for JavaScript. Nothing super fancy, but fun to play around with anyway.
Here's a simple example that draws two intersecting rectangles, one of which has alpha transparency:
<script type="application/x-javascript"> function draw_rects() { var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); ctx.fillStyle = "rgb(200,0,0)"; ctx.fillRect (10, 10, 55, 50); ctx.fillStyle = "rgba(0, 0, 200, 0.5)"; ctx.fillRect (30, 30, 55, 50); } </script> <canvas id="canvas"></canvas>
Some related links:
- WHATWG canvas specification
- Rounded corners (thanks Greg)
After several days of investigating this most ornery of problems, I was finally able to figure it out.
Turns out that when I upgraded to a faster subscription, my ISP decided to switch my IP address without notifying me, those jerks.
Life repeats itself in the real world as history fails to prevent us from repeating the same mistakes that the Greeks had warned us against so long ago.
Humanity is painlessly blind in that regard.
Let's say that you want to insert a node somewhere in the DOM, but if it is a string, then you want to insert it automatically as a text node. Here is how you might want to achieve this:
function checkElem(elem) { // If only a string was provided, convert it to a Text Node return elem && elem.constructor == String ? document.createTextNode(elem) : elem; }
Borrowed from the book Pro JavaScript Techniques by John Resig.
I was sweating so much in the sauna that I must have lost 10 kilograms in sweat, which is good for my diet.
It's now time for a nice tuna salad and half a pizza.
Here's the best way to get a random blog entry from the movable type database:
SELECT entry_basename, entry_week_number
FROM `mt_entry`
WHERE entry_id >= (
SELECT FLOOR( MAX( entry_id ) * RAND( ) )
FROM `mt_entry` )
ORDER BY entry_id
LIMIT 1 ;
# portupgrade --batch -arR
I try to run this at least once a week so that my web server stays up to date.
Let's say that you want to select a random link within a certain div
tag which has a given id
and then jump to where that link points to. Here's a way to do that:
function random_link(id) { var obj = document.getElementById(id); var links = obj.getElementsByTagName("a"); var offset = Math.floor(Math.random() * links.length); document.location = links[offset].href; }
Recent Comments
- Charles
- jpmcfarlane
- Kiffin
- jpmcfarlane
- KathleenC