Friday, May 29, 2009

oh yes.
oh. my. gawrsh. (be sure to clicken-zie on dem linkenbitten.)
MMFs give you iterations in the Scrum sense, so you could have one type of review at the end of an MMF iteration, much like end-of-sprint.
"Arlo drew a very interesting graph at Agile 2008. The graph was business value against cost. He pointed out that the cost accuracy was log-normal. The value accuracy was a power law. As such the cost axis is pretty irrelevant when it comes to accuracy and hence investment decision making."

vs.

does too!

Thursday, May 28, 2009

yeah, i kinda hope we never get off the planet, just in case there is life anywhere else out there.
change is hard, let's go shopping.
"java generics" is a way of swearing, in my book.
generally speaking, i do not like "there's more than one way to do it" when it comes to the basic stuff in a programming language. it pisses me off that in Java you can say "private static interface" vs. "private interface", or how you can say "public abstract foo()" vs. "foo()" in an interface. i wish it were required to either always be explicit, or to always never be explicit in such situations.

Wednesday, May 27, 2009

it makes me laugh, in a h8tering kind of way, when i read about how easy it is to use java and xml together.

i mean, could you have reinvented lisp in any worse possible way? holy poop, batman.
i wonder if ihatetowerdefense.blogger.com is taken yet?
multi-monitor support even in applications in OS X still sucks stinky butt-poo.
"Kanban is a transparent work-limited value pulling system," giving the team the opportunity to improve.

Tuesday, May 26, 2009

"The folks who've been successful with Kanban have restricted their activities to the limit of the value stream that they can politically control and made that work effectively first. The mechanism of transparency and collaboration brings folks into the activities. The result is that the Kanban system tends to extend out over more of the value stream as other political groups volunteer to be part of it."

Friday, May 22, 2009

nice web site that says it is listing "all 0 entries (1 to 0)"
heh!
we'd all do well to learn how to think in erlang (firefox book/movie reference, if you will :-).
* The willingness to experiment
* A method for measuring success
* A way to scale the experiment to the organization at large
"kicking ass for humanity"

how do i get a job like that? i want it! (oh and it has to meet my income/living standards, too, therein lies some of the rub.)
aw, shit, there goes my advantage.
"a company whose success is driven by one part design innovation, three parts user testing, and two parts production value."
1. Produce to your takt time.
2. Develop continuous flow wherever possible.
3. Use supermarkets to control production where continuous flow does not extend upstream.
4. Try to send the customer schedule to only one production process.
5. Distribute the production of different products over time at the pacemaker process (level the production mix).
6. Create an “initial pull” by releasing and withdrawing small, consistent increments of work at the pacemaker process. (Level the production volume).
7. Develop the ability to make “every part every day” (then every shirt, then every hour or pallet or pitch) in fabrication processes upstream of the pacemaker process.

"But something wasn’t there, and that something is the foundation that keeps the house from sinking into the ground. It is the real basics.

Kaizen Express hints at it on pages 99 - 102, it is true employee involvement. And here is a real basic: Employee involvement is created by leader involvement. Not just top leaders, all leaders, at all levels."
heh, amazon vs. ebay, fight. if i were a trader...
"We did this by rigorously applying preventative maintenance; organizing a system for processing reports of problems and tracking resolution; developing a routine for routine maintenance."
so, how do you handle complexity?
hm. personally, i find this "feature" of Java (dunno if C/++ does this as well, but i sorta expect no since they have a cpp pass first) really freaking annoying: if you use /*COMMENT*/ inside a symbol, it won't compile. in my mind, the compiler should have removed all /* style comments before compiling.
please help me start my hi-fi audio company, which will introduce the new 17.7 surround sound specification. (if you believe that you only need one subwoofer, then all i can say is that i am sorry for your genetic inability to appreciate the nuanced improvement 7 subwoofers really brings.)
there are (at least) 2 things that pretty much completely suck ass about OS X when compared to even your usually dogged WinXP.

1: the password entry field don't tell you if caps lock is on.

2: "alt-tab" will pay attention to the mouse pointer, but in a really broken way when also trying to use the keyboard. e.g. you can point at something with the mouse, then hit tab so the selection is no longer what you are pointing at, then click the mouse, and the final focus will be not on what you clicked.

Thursday, May 21, 2009

"The Truth About the One True Authority: There isn't one."
in my dictatorship, any actiony game which supports keyboard use and which doesn't support wasd by default would pretty much earn some kind of amputation of something somewhere, off of the folks responsible for it. i wish the market would sorta just do that financially to people, kinda.
'The value from lean is about creative thinking for process improvement, not about assembling the parts. Lean manufacturing is a manufacturing engineering practice that extends to engaging factory workers in this process improvement. Software development and manufacturing engineering are both creative, empirical disciplines. In many situations, manufacturing engineers literally "program" the factory floor. Lean is more relevant when we look at the parallels between these two disciplines rather than the output of cars.'
"Classes are a conceptual monster: they mix code, data, type and namespace."
'Scrum has been slowly losing the battle of hearts and minds because it allows people to say they're doing "Agile" when really they're not at all.'

Wednesday, May 20, 2009

it's like an onion.

no, wait, it's like a funnel.

yeah, that's it.
also? the fact that google calendar doesn't let me use color to distinguish appointments is just plain broken wrong stupid backwards fail.
getting usability just right is hard. take Parallels integration with Spotlight. it actually really freaking pisses me off that it exists apparently by default, because i enter notepad out of habit rather than textedit and then get screwed as parallels painfully starts up and thrashes my machine -- all so i can eventually just try to quit the damned thing.
yes, i would like to make the non-evil, open-source apple.
"Agile development is [ought to be] a collaborative game"
"1. strict limit on WIP
2. pull value through
3. make it [the process] visible"
all i'm saying is, if your language doesn't catch typos at the compilation stage, i think it kinda sucks. which pretty much dooms all sorts of otherwise interesting languages e.g. everything in the Lisp continuity.
"Yes, we should determine all the information flows. Yes, we should identify all the dependencies, and once identified, try to break them somehow. As for Gantt charts..... They are the spawn of the Taylor. Gantt charts with their right to left or start to finish plan building and right to left excecution are insidious in their ability to force us into making decisions. Plans like the information flow should be built right to left. From the end to the start. This helps us identify the options and leave them open. There is no critical path in Real Options....... Just options which each have a critical path."
code sucks. programming sucks. languages suck. take enums, for example. on the one hand, aren't they supposed to offer some amount of abstraction away from underlying hard-coded values? yet how often do you add an enum in the middle and then find out things are broken because not all the code was appropriate recompiled, or there were external files which used those codes and they don't automatically get updated, or some other doom? hmm. and if your system is of any size, you might be worried that while you aren't aware of any such issues, they might happen, and so rather than putting the new enum in some logical place you end up being chicken / pragmatic and put it in the safe one.

Tuesday, May 19, 2009

yes, i want typechecking for safety. no, i don't want boilerplate verbosity. java the language for the fail. hopefully something like scala or (yeah, not statically typechecked, oh well) clojure for the win some day. i mean, should it really be that hard to return more than one result from a function call?

Monday, May 18, 2009

i hear, it is to w00t (if you are a bit of a neo-luddite like myself).
a nice visual, from a longer article. worth reading, if only to remind oneself.
"At the end of the day, people who don't agree that these information sources are triage tools and not diagnostic tools need to be kept at arm's length. Don't show them the graphs or numbers except to support the diagnosis you've already made. I'm not saying hide them, I'm saying if you put the graph on a presentation, it should be slide #10, not slide #2. Common rookie mistake in any methodology."
not the most succinct way to learn, but apparently a good intro to Kanban et. al.

Thursday, May 14, 2009

i dunno if this is mathematically impossible or what, but i day dream of a programming system where i can make queries like "show me all the places this domain decision is made", e.g. random hypothetical example "show me where in the code it decides if the User should be allowed to delete a file on disk." seems like if your system were developed with appropriate use of typing and semantics then one ought to be able to do such queries, no?

i think it would help a lot with maintenance tasks, where you are fixing one issue and want to know what other parts of the code are doing the same thing. in reality, it wouldn't be enough because often there are N places in the code where the code is doing stuff that is similar enough that it is relevant to the maintenance task, but is different enough that it probably wouldn't get caught by the query.

which just sorta folds back into asking, how do we make sure to write our code so that we avoid that, so that we don't prevent ourselves from being able to get solid code base query results?
yup, the buffers should be about 1/3rd of the whole project.
some tips on visualizing your way to success.
wow.

every time i have to use something Yahoo did, i end up in a bad bad funk.

could they ever do anything right? at all? ever? anywhere?

not for my tastes, as far as i can see.
mom, pie, agile.
the patriot act, animated.
"All systems have a life cycle and will eventually die. Some are even still-born, really."

Wednesday, May 13, 2009

"ASAPs approach to agility appeared to be to drop the design phase and then later drop the testing phase."
look, i know that there are a lot of interesting things which could not exist in the world as we know it today were it not for the $ involved in advertising.

but, basically, i hate most if not all advertising so much that i pretty much wouldn't mind (knock on a wood bust of faust?) living in the alternate universe that evolved w/out bloody advertising.
the reason repls and live coding are better than write-compile-run cycles, is that they give the developer slightly more opportunity to experience and play with the runtime behaviour, rather than just the static stuff you see in the ASCII source code. the gulf between what we write as source code and what happens when things are actually run is not an easy one to grok. the more ways we have to get a handle on it, the better. (i'm not arguing that people shouldn't have any idea at all, but even when you do think you have a sense of what it should do... sorta like the old adage of "i have only proven it correct, i haven't tested it.")
if you know Scrum, you can sorta flip things around to grok Lean-Kanban.
because, you know, if one person reports it, but that's the first time that particular customer support person has heard of it, it can't possibly indicate that it is a valid report. that other people have ever also encountered that issue.

nope.
fed ex is supposed to be this amazing company right? well, i gotta say their usability sometimes really sucks. they left a package and a door tag, and i thought the door tag meant there was another package. so i call the IVR and that sucks, it tells me the door tag number doesn't really exist. finally i talk with a human who says oh that particular tag means it was delivered -- not something i would at all say was obvious from the tag. so basically there are at least 2 wtf's from a usability perspective. the 3rd is that i'm sure even though i pointed all this out to the human that none of these issues will be mentioned up the chain to get anything appropriate done about it all.
in some ways, i think it would be nifty if explanations of things came with dynamic metadata to tell you what the current context was attempting to be / do. for example, during a multi-slide power point presentation of a monad tutorial, slides would have color-coded meta-tags like "math" (the categorical view), "concrete example" (Maybe, IO), "special case" (e.g. something in Haskell that wouldn't be done in Java like IO), etc.

(i'm not saying i know what the right tags are, or anything, i'm just blurting out some thoughts for brainstorming.)

another aspect would be to graph the discussion almost in flow-chart form, so you could e.g. see what parts of the overall story are motivating examples but are digressions from the core logical definition.
yup, time to go vegetarian.
ah, yes, speaking of lean.
Lean kinda == Systems Thinking.

[blogger: conflicting edits]
any time i work with non-programmers i feel sad about how stupid bad programming really is. i mean, it is full of so much minutia. obviously a lot of it is that way for good reason, but i do always wonder if there couldn't be a better, less sado-masochistic way to still get things safely done.
progress is sometimes two steps back.
a punchline for the mathematically inclined followers of escoffier: thereby reducing it to an earlier sauce.
1) zimbra is killin' me.

2) so are the people at companies that use zimbra but don't customize it in any way, so it looks like any other zimbra, so if you mistype a url and end up at a different zimbra instantiation, you don't know why it won't let you log in because they pretty much all look the same.

3) i shoulda been a bohemian.

Tuesday, May 12, 2009

usability sucks (is difficult to get right, especially in light of security -- at least, security the way it is mostly done these days). it is fun to hit ^Q, one key over from ^W which is what i wanted. and to have firefox set to delete all private data when it quits, since that is the safest. but most annoying, at times.
what about things like multiple dispatch, instead of just oo vs. fp? i still dunno. some folks don't see multimethods as quite the ultimate bees' knees, and it at least depends on how your multimethods work.
it strikes me as sorta funny. i think that things like monads can quickly lead to code which befuddles joe sixpack programmers (like me) because the boilerplate gets in the way even in pretty concise languages. haskell is that much even more concise when it comes to ASCII, and i think that really helps remove the incidental complexity from the source code.

admittedly, it can also mean that haskell is befuddling because there aren't as many obvious hints about what the constraints are vs. e.g. type declarations or whatever in other languages.

but, overall, i think haskell clearly has an advantage here.

(in other words, how do you make multi-paradigm languages which don't end up taking on too much boilerplate cognitive overhead? how do you find the fundamental abstractions which let you do more with less? reminder to self: bloody well go learn and use o'caml.)
"I find consistency in the design of a system supercedes any design technique."
if you really wanted to know about kanban. (you can download the pdf from scribd if you sign up with them.)
"Martin Fowler’s aphorism: Use iterative delivery only on projects you wish to succeed." (to which i'd add that you probably should also be doing things in an incremental fashion, not just an iterative one. unless your project is really teeny?)

Monday, May 11, 2009

while i appreciate some of the make-overs the Federation ships have received over the years, in reality they have just make me think the versions in the original Star Fleet Technical Manual are the best.

(yes, that was full-on super-nerd subject matter.)
the generation gap: those who think 'shooter' means shmup vs. those who think it means fps.
'The team defined consensus as “I can live with it”, with the rules 1) I won’t go into the hall and try to subvert it, and 2) I won’t lose any sleep.'
"Less fear can lead to cultural change."
"High performing teams uses Engineerings practices, WiP limit, leadership, removal of process waste"
"allocate rather than prioritize"
also?

i <expletive>ing hate Ant.

seriously, Make is better.
i. beg. to. differ. (haaaaaayyyyyytttttttteeeeeeee!)
i really love going back to code i wrote that now i swear is like completely crap! crap crap crap crap crap! i hate that code, it is crap!
boy, java sure likes to just dig itself deeper into badness.: 'There is a common theme among the problems I have outlined: they are all stemming from the fact that the annotations are heavily influenced by the framework needs, rather than helping describe what your code is trying to do. They are imperative rather than declarative. "Do this" vs "This is what I need". This is more than just a technical detail: it is a fundamental principle. And from what I can see right now, it's all imperative.' (of course, there's room for people to disagree. we'll see how it all ends up, but i suspect the approach of standardizing the least common denominator doesn't really buy us all that much, and might even lead people towards badness.)
java: write once, flail miserably and hate life everywhere. i mean, it ain't just mac os x that bites when it comes to java, kids.

Friday, May 08, 2009

schadenfreude.
you can tell who is a goddamned young whippersnapper get off my lawn by the fact that they don't know about ^S and ^Q in shells. (or ^h vs. ^? etc. ha ha ha, puke!)
ok. pure genius.
there are certain people and certain places where people make sure to drop the name of the place. like, instead of just saying, "back when i was in college..." they will say something like, "back when i was at Harvard...". just sayin'.
bloody hell, broomfondel, now that's what i call thinking. 'ere, 'ow come we never think of things like that?
here's something i think some folks do to a bit of a fault: they go with the technology they have as the thing directing their actions, rather than thinking about the properties they really want their system to embody. so then you get an unmaintainable inflexible big ball of mud and people sorta say well what else could we have done, that is how our tools work, no?

(or they go greenspunning, and really always quite badly.)

Thursday, May 07, 2009

buying stuff is risky.
you scream, i scream, we all scream for refactoring.
while i'm sure most people don't have a "blind spot" when it comes to understanding *variance, i have always had trouble getting it. so i really rather liked this explanation.
hey! Cynefin makes some real sense, at least at first blush. in a depressing sort of way. or just a humanistic one.
[old, but always 'fun' to re-read.]

Now there are other media too whose basic social role is quite different: it's diversion. There's the real mass media-the kinds that are aimed at, you know, Joe Six Pack -- that kind. The purpose of those media is just to dull people's brains.

This is an oversimplification, but for the eighty percent or whatever they are, the main thing is to divert them. To get them to watch National Football League. And to worry about "Mother With Child With Six Heads," or whatever you pick up on the supermarket stands and so on. Or look at astrology. Or get involved in fundamentalist stuff or something or other. Just get them away. Get them away from things that matter. And for that it's important to reduce their capacity to think.

Wednesday, May 06, 2009

like, i would describe the microsoft mobile stuff i've experienced as: the worst tub of poo short of an actual tub of poo.
from a user and developer stand point, i think it is safe to declare pretty much everything about Windows Mobile and .Net CF to be total cluster suckage, no matter what version(s) you are talking about. i mean, WM is bad enough on its own, but then try to mix it up with CF and you are talking about some new form of shit that is like 4x as powerfully shitty as the WM shit alone.

it completely boggles my mind that this kind of approach to systems can be even remotely viable. since it is MSFT, i assume a large part of the reason for it not just having utterly gone away is that it is MSFT shoving it down people's throats. on the other hand, i guess it could be that it works well enough often enough that enough people put up with it that there's enough money made to keep it all going.

but holy hell. the iphone and android and blackberry and palm pre thing hopefully will show anybody and everybody remotely associated with anything "mobile" from Microsoft that the whole MSFT WM or Smartphone thing should just be completely ignored.
hellloooo shee ple!! been bad for a while, getting worse, probably going to be a lot worse for a long time before it gets any better. heck, i sorta sometimes hope something just offs the humans so that the universe can get back to simple stuff like regular old predator-prey things, rather than effed-up abuses of any concept of Rights.
tear it down, man.
i love how most educational systems apparently don't bother to try to teach people how to learn. that is, you all get the same textbook, even if you don't learn best that way, etc. i'm not saying that the educational institutions have to customize teaching to each person, since that is economically difficult, but i think that the institution should have the conversation with the attendees about individual styles of learning, so that the attendees can try to make the best of things themselves.
wow, so wrong! and yet, so right. heh.
in my dictatorship, there would be a special prison for people who post things in online classifieds with "alternative" spellings. i mean, if i am looking to buy something then why would i ever want to see posts from people who also claim to be wanting to buy something? "w a n t e d" etc.

basically, all spammers need killed.
ah, yegge explains why i don't fit in with your regular java culture? "For some reason, programmers love to learn new stuff, as long as it's not syntax. They'll stay up all night reading about Hibernate or Jaxen or some godawfully complex new framework, but map is really scary for some reason. So are 'closures', evidently." I'm the opposite.
i wish a JVM language with static typing like Scala had macros like Nemerle.
basically, i think clis are horribly wrong uis for doing branch and merge things in a vcs. i think it should all be graphical, with some sort of really nice network/graph view/interaction.
any claims by java to "run anywhere" are a really, really sad joke. even more so when it comes to Macintoshes. fun.
ides suck. for example: are there any that have the ability to do fuzzy string matching? consider a log message that is a formatted string, so searching for an exact match won't work.
i thought the user experience of wifi on microsoft systems (widows, windows mobile) was bad. and it is. it really, really, is.

turns out? bluetooth is worse.

if i were to make a product that didn't completely suck usability ass, would that make it sell any better?
eh just ship it!

"Progress bar status may not update until this finishes."

yeah, that's microsoft quality for ya.
it also boggles my mind that we don't have a universal solution for doing safe and easy credit card purchases online -- i have to manually enter the credit card info all the time, which is just totally lame.
we make our own little hells on earth, time for me to take up transcendental meditation.
i cannot fathom how in this day and age people make ecommerce shopping web sites where to get something ordered and ship they tell you have to "register". talk about setting up mental hurdles for the end user. literally, places like that are losing at least my business, which means i assume they are also losing others' as well.

also? to add insult to injury? places that don't tell you shipping easily up front before committing to placing the order.

Tuesday, May 05, 2009

oh how jolly!
"One of the best things I learned from author Jim Collins is to study yourself as if you were a scientist observing a bug. Pay very close attention to the things that either make you feel great or feel crappy. Note the kind of environment, work, people, topics, industries, schedule, and activities that make you thrive. When you start your business with this awareness, you will feel natural energy and clarity which will make all the next steps of the process like choosing a business idea, figuring out the money, planning your business, identifying your customers, and creating a marketing process a lot easier."
better finger pointing.
a dead horse by any other name would still smell like plt nerdiness, which i happen to think is interesting and important (for some value of important).
know what i hate? yeah, probably just about everything. that is kinda my problem. but there are soooo many good reasons to hate! that's kinda the problem with the world in general. technology is especially something that drives me nuts. like, i love how i wrote a message in facebook, and then clicked on a photo to look at it before hitting "send" or whatever on the message, and when i came back from the photo... the text i had written up was gone. i mean, how better to say a big "fuck you" to somebody who is, you know, trying to be social with their friends on the bloody web site?
humans are so awesome. :-(
"This comes down to the difference between self-efficacy (belief in one's capability) and self-esteem (belief in one's worth). It turns out that building self-efficacy is much more important than building self-esteem which is devoid of self-efficacy. Self-esteem is better seen as a result of self-efficacy."

Monday, May 04, 2009

windows mobile, at least the older versions, are pretty much complete hindenburg pan am 911 titanic perfect shit storm failures with respect to usability.
yeah, (windows) computers rock.
wow, somebody who actually wants to think about usability for programming languages, how quaint!
while i think it is bad when people have to roll their own thing every time, the fact that some languages let you do that whereas other don't, so much, is i think an indictment of lame languages. (on the other hand, some languages e.g. java are lame on purpose, which is fine, just not something i really enjoy being saddled with myself.)

Friday, May 01, 2009

once again, will the real OOP please stand up?
"Actors model programming could be called analogous to responding to email. Pi-calculus could be called analogous to a teleconference. Reactive and event-driven programming could be called analogous to controlling a radio or responding to traffic lights."
String.valueOf( null ); throws NPE.

Object foo = null;
String.valueOf( foo ); doesn't.