looks like 50% of the industry is fighting the complexity monster, while the other half is busy adding more. i hope this isn’t turning into a cultural revolution that throws away what we have learned, only to rediscover it later. i have spent the last few months refactoring an application that commits crimes in the name of simplicity (business logic in XSL anyone?) and have therefore a rather jaded view of ‘simple’. chances are, not 2 people will agree on what simple means.
Tag: software
Too much RSS
“can’t that be done as a podcast”? “why don’t you use RSS for that”? i like the gillmor gang in general, but please, cut down on cluelessly asking about your pet technology when it is out of place (like when Ray Ozzie is talking about relational databases)
headroom
suns new ZFS has some room to grow.
Thus, fully populating a 128-bit storage pool would, literally, require more energy than boiling the oceans.
broken .exe association
things were running too smoothly, so sharpreader decided to take over the .exe extension. it took me a while to fix it (what with #reader trying to open all programs..), but eventually, the following registry entries for xp helped:Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"
[HKEY_CLASSES_ROOT\.exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"
[HKEY_CLASSES_ROOT\exefile]
@="Application"
"EditFlags"=hex:38,07,00,00
"TileInfo"="prop:FileDescription;Company;FileVersion"
"InfoTip"="prop:FileDescription;Company;FileVersion;Create;Size"
[HKEY_CLASSES_ROOT\exefile\DefaultIcon]
@="%1"
[HKEY_CLASSES_ROOT\exefile\shell]
[HKEY_CLASSES_ROOT\exefile\shell\open]
"EditFlags"=hex:00,00,00,00
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\exefile\shell\runas]
[HKEY_CLASSES_ROOT\exefile\shell\runas\command]
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\exefile\shellex]
[HKEY_CLASSES_ROOT\exefile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers]
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers\PEAnalyser]
@="{09A63660-16F9-11d0-B1DF-004F56001CA7}"
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers\PifProps]
@="{86F19A00-42A0-1069-A2E9-08002B30309D}"
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"
Killing xp services
The Svchost.exe file is located in the %SystemRoot%\System32 folder. At startup, Svchost.exe checks the services part of the registry to construct a list of services that it must load. Multiple instances of Svchost.exe can run at the same time. Each Svchost.exe session can contain a grouping of services. Therefore, separate services can run, depending on how and where Svchost.exe is started. This grouping of services permits better control and easier debugging.
via the always interesting raymond chen.
eclipse with custom workspace
There are 2 ways to control the location of your workspace; using the current working directory or using the -data command line argument. To use the -data command line argument, simply add -data (your workspace location) (e.g., -data c:\myworkspace) to the “Target:” line in the shortcut or include it explicitly on your command prompt command line.
Windows DNS Timeout
it would be highly useful to increase the dns timeout for windows xp. it is currently set to 2s and that is clearly not enough for some networks, resulting in annoying error messages. does anyone know how to do that?
UPDATE hmm, this may be useful.
Agile metrics
i was a guest at the agile round table near boston last night. the event drew a crowd of veteran software engineers, i was the youngest in attendance by 20 years.
ken schwaber outlined his and jeff sutherland’s SCRUM approach, which struck me as interesting and worthwhile to follow up on.
jeff sutherland, CTO of patientkeeper, demonstrated how he manages his teams of developers with GNATS. jeff figured that developers loathe red tape, and had the goal to limit the effort required to 1 minute per day for developers, and 10 minutes per day for project managers.
and he was not using gantt charts to achieve this either. calling gantt charts totally useless for project management beyond giving warm fuzzies to the client, he explained how he leveraged their bug tracker to double as a means to keep track of effort.
each morning, developers review their tasks and update the work remaining estimates which have a granularity of one day. the project managers, in turn, analyze the reports that GNATS automatically creates. reports such as number of new tasks vs closed tasks, total work remaining and other metrics that can be derived from the task data.
tasks are the cornerstone here. jeff was able to demonstrate to the business side that the high level business goals were off by 100% with their effort estimates, while the low-level tasks achieved an accuracy of 10% on average. this led to enthusiasm from all parties to drill down on any project and get to the task level ASAP to get meaningful estimates. and, like psychohistory, project management is inherently stochastic.nowhere to run, nowhere to hide
the level of transparency of this system is unprecedented. with everyone in the company able to see on a daily basis how much work was remaining and what the roadblocks were, the initial fears that developers would be pounded on by management turned out to be unfounded. instead, the transparency enables everyone to do real-time adjustments and to detect problems early, which has taken a lot of politics and second-guessing out of the equation.
when analyzing a project, jeff focuses on burn down
, the part of a release where open tasks are relentlessly driven down to 0 by a joint effort of developers and business people. the corresponding graphic (roughly a bell curve) illustrates the importance of the burn down nicely, adding weight to jeff’s assertion that burn down is the only thing that matters to get a release done in time.
which prompted me to ask for advice on how to drive an open source release as a release manager. people are not exactly required to do your bidding, but metrics may help there too. collect these useful data points, as the bugzilla-bitkeeper integration is doing, and let them speak for themselves. peer pressure and pride in workmanship will take over from there. that’s the idea anyway..
Enforcing netiquette
Paradoxic: so given your apparent dislike for forums, you have never found any useful information off forum ?
Paradoxic: I find myself discovering a wealth of information off forums almost everyday
gregorrothfuss: i guess the kind of info i am looking for is not on forums
gregorrothfuss: and your in the business of caring about forums
gregorrothfuss: so that figures
Paradoxic: you have never found anything from a forum tho /
gregorrothfuss: well, maybe some posts from the googleguy
gregorrothfuss: but since most forums have horrible urls they are not indexed
gregorrothfuss: so how would i find the gems
Paradoxic: what is your solution for forums then
Paradoxic: there needs to be a way for communities to discuss
gregorrothfuss: forums are ok for nebies
gregorrothfuss: because novice web users do not realize they use the medium ineffectively
gregorrothfuss: if you work on the web all day, you appreciate better tools
Paradoxic: i don’t wanna argue with you on it, just seeing what solution is more effective
Paradoxic: mailing lists aren’t
gregorrothfuss: yeah
gregorrothfuss: mailing lists suck too
Paradoxic: you waste a shitload of time downloading useless crap
gregorrothfuss: for different reasons
gregorrothfuss: and blogs suck for yet other reasons
gregorrothfuss: i think you can do a lot with netiquette
gregorrothfuss: if you have good titles, concise posts, forums work well
gregorrothfuss: same for mailing lists
gregorrothfuss: i would focus on educating people how to use the tools properly
gregorrothfuss: seems the best ROI
gregorrothfuss: i wonder if tools can be made to enforce netiquette
gregorrothfuss: for instance, it should not be possible to send email without a subject
gregorrothfuss: that is just plain broken
Virtualization
the top memory consumers on my machine:
- javaw.exe 102476KB
- java.exe 101064KB
- mozilla.exe 81148KB
- SharpReader.exe 55180KB
- Thunderbird.exe 48888KB
- soffice.exe 45620KB
interestingly, all of them are virtual machines. javaw is Eclipse, and hence SWT and regular JVM. java (Tomcat) is JVM, Mozilla uses the Netscape Portable Runtime, Sharpreader uses the .NET CLR Thunderbird uses the NPR too, and OpenOffice has some sort of abstraction layer (UNO) too.
sometimes i wonder whether all this virtualization is a good idea.