Friday, February 27, 2009
"The principal failure mode of waterfall (large or small, few or many)... is the arrival of unknown amounts of unplanned rework when the post-hoc tests fail.
There are a very few kinds of development work where the waterfall is effective, maybe you are doing those. But I doubt it. If you are successful (I'm assuming you are) then I'll bet you a pound that upon closer inspection your engineering practices turn out to be iterative."
There are a very few kinds of development work where the waterfall is effective, maybe you are doing those. But I doubt it. If you are successful (I'm assuming you are) then I'll bet you a pound that upon closer inspection your engineering practices turn out to be iterative."
Thursday, February 26, 2009
augh! in a good way. ever more to learn and, some day, somewhere, actually get the chance to apply.
i pretty much just about come this close to beating to death with a baseball bat whoever came up with the gmail "you are working on a letter in the trash" user interface experience.
but, fortunately, i wouldn't really do that, and i don't even know who they are.
but, fortunately, i wouldn't really do that, and i don't even know who they are.
i really wish i had taken a picture of the bumper stick version of TIS back when i was there. it was such utter genius in advertising.
i would like there to be a really good point-and-click programming language, so when i've got a baby to support with one hand, or a pet animal to pet, or heck just some fritos that really need eating, i can still muck about with doing some programming. ideally it would be an interactive game making environment.
i kinda think that if you are using a built-in type (e.g. String, int, etc. in Java) then you are losing a good opportunity to make the code more clear by using a typedef that would really say WTF the thing is meant to represent. like, seeing Map sure is a great way to help future maintainers of the code! of course, Java doesn't make it easy to typedef things. ha ha!
i do also see mathematica as art tool. need! more! free! time!
i love how for lots of things in eclipse when you open the "details" extra bit of the dialog box it only shows you a copy of what you already were seeing -- it provides no new information.
nice! maybe something good (to me, i mean) actually did come out of twitter.
Wednesday, February 25, 2009
i think things like java apps could stand to have a 'hotspot'/jit type thing for memory. it would automate the manual work some people do over time to fix up their memory use.
the shadows under windows in os x cross multi-screen system boundaries. so something at the edge of one screen but not really on another screen can actually be casting shadow on that other screen.
which is kinda subtly annoying.
which is kinda subtly annoying.
if i ever hit the lottery, i'm going to get myself a lifetime supply of Green & Black's chocolate. also, i think i have to add Alter Eco chocolate. they're both really good and less full of things like slavery (a time honored tradition, by the way), i trust. and, thus, are expensive.
apparently, the nfl drafting college players specials on tv are good soft pr0n for ladies on the treadmills at the gym. seems like the advertising they slot for it could change in recognition of that?
i love (just love!) how Eclipse releases have names like Ganymede, but the About box only gives numbers, not names.
hm. so, like, shouldn't everything simply be running some form of hypervisor? so that it is automatically backed up every night or whatever, so that recovering or upgrading hardware is a no-brainer? or is it not quite that easy-pie-in-the-sky yet?
wow. while the syntax kinda kills me, the approach erlang takes to processes sure does make it easier to be robust. i am sure kinda hating the "usual" approach to memory.
there are so many reasons to be doing more-like-TDD than not. (or BDD or whatever variant you prefer.)
Tuesday, February 24, 2009
suse 11.1 mount is killing me. things that are read-write don't let me write (even as root), and trying to use "mount -o loop" doesn't work, but manually using "losetup" and then doing mount does work. whatever.
well, now, there's a file how-do-you-do. i tried to post, and it said "conflicting edits" so i clicked back (this is in Opera) but i guess went one click too far so then clicked forward to try to be on the "create a post" page so i could post it again... but all the text was gone. yay blogger! yay opera! yay technology!
Monday, February 23, 2009
i think i will never understand why people like opera. then again, a lot of the things that frustrate me about it are problems found in the other browsers, too -- but then opera has to go and add a few extra layers of tweaky weirdness.
ever again, i gotta say, mac os x really screws the pooch on the window title bar buttons for minimize, maximize. really weird given that i think it all worked fine in pre-X mac os. (especially because for the most part personally speaking i do not like drag and drop. in a boat. or with a goat.)
nothing new here, move along.
so far i guess i think xubuntu >> suse
and maybe even xubunto >> ubuntu
and linux >> windows
and maybe mac os >> everything (ignoring price, and unless you want to use java or something that isn't in mac ports).
i mean, the user experience of things like suse and windows are painful. but at least with linuxen it is pretty easy to install software -- well, at least for the major distros, anyway.
the mac probably has better look and feel overall, but can be a real pain in the ass wrt installing non-mac-more-unix-y things.
so far i guess i think xubuntu >> suse
and maybe even xubunto >> ubuntu
and linux >> windows
and maybe mac os >> everything (ignoring price, and unless you want to use java or something that isn't in mac ports).
i mean, the user experience of things like suse and windows are painful. but at least with linuxen it is pretty easy to install software -- well, at least for the major distros, anyway.
the mac probably has better look and feel overall, but can be a real pain in the ass wrt installing non-mac-more-unix-y things.
"So, i would submit to you that it's not about 'pure' vs 'impure', it is about compositionality as means to support scalable design. Pure is just simplistic slogan to point in the direction of a much more powerful principle."
open suse 11.1 kinda... sucks.
like, firefox is busted on it. and beagle seems to go nuts. and the menu for launch applications sucks. and they did evil stupid things with tooltips. and, and, and.
oh well. i guess there never will be a linux distro that doesn't have painfully blatantly evil stupid things about it. it really does make mac os x seem so great, in a lot of ways. (not that mac os x is perfect, there's plenty to whine-bitch-moan about, there.)
like, firefox is busted on it. and beagle seems to go nuts. and the menu for launch applications sucks. and they did evil stupid things with tooltips. and, and, and.
oh well. i guess there never will be a linux distro that doesn't have painfully blatantly evil stupid things about it. it really does make mac os x seem so great, in a lot of ways. (not that mac os x is perfect, there's plenty to whine-bitch-moan about, there.)
i need to catch up and grok frp for real. i mean, i get the basic gist and all, but.
Sunday, February 22, 2009
yeah, yeah, nobody knows what OO is. cry me a river - we have search engines now, you know.
did i mention i'm sick?
man, i hate being sick. i always swear i'm going to eat right and exercise when i'm sick. i mean, when i'm sick, i swear i'll do those once i'm better so i won't get sick again. not that i do those during the time that i'm sick. well, maybe i eat better, but i probably don't suddenly exercise more or anything.
man, i hate being sick. i always swear i'm going to eat right and exercise when i'm sick. i mean, when i'm sick, i swear i'll do those once i'm better so i won't get sick again. not that i do those during the time that i'm sick. well, maybe i eat better, but i probably don't suddenly exercise more or anything.
apparently, the stars have aligned for me.
now, of course, while "when it rains, it pours" is sucking for me right now, i have to at least be thankful for the fact that i'm not, like, dead from this. well, not yet at any rate. how prophetic will that thought be?
- city power outage at home one night. when it comes back, it looks like my main server disk is having 'issues': the openvz-centos kernel loaded, but the vms didn't because of problems on the disk. that sucks for all sorts of reasons. i figure it isn't a huge deal, since it looks to just be a sector or something small on the disk. so like a complete dumb ass i figure i'll just order a replacement disk and then copy things over once the new disk is in -- rather than starting to immediately siphon everything off of the disk...
- then, my laptop also dies. the power system just goes out. the charger is on, but nothing is happening, charging, in the machine. i was doing some development work on it, which was being backed up with tar+scp to my home server, to the openvz kernel part of the disk that was still working.
- so i need to get another machine up and running to continue the development work. i finally get that going, sorta.
- but now my openvz machine instance isn't responding. oh fudge in a handbasket. it is saying it needs to run fsck and that i need to enter the root password, which of course i have long forgotten since i only use sudo.
- ok, i'll whip out one of the various linux live cds i have, and try to mount + fsck from there. first cd i try never really boots up. second cd i try gets going ok and starts up anaconda and asks me what keyboard layout etc., and then asks me for network setup... and then dies with some python error about how it was expecting N arguments in some function call and instead got M. as if nobody had ever apparently actually ever bothered to actually test that? so then i try yet another live cd, and that gives some seg fault or something. maybe it is the machine over-all that is dying or something, like the IDE subsystem on the (old dual celeron bp6) motherboard?
- so yank the drive and find a spare external hd enclosure and set it up in that with the intent of hooking it up to my old mac os machine and see if the mac can at least syphon off all my bloody home email, which was only last backed up like 6 months ago now of course. try to get the disk into the enclosure, apparently the screws aren't quite right, end up with everything just about closed and then not just strip a screw, but break the head of the screw off so there's a screw hole with a screw shaft in it and i'll never get the thing out.
- whatever, i'll just run with it anyway. plug it in via firewire (old mac with usb 1.1, not 2.0 hi-speed) only to later realize i did that by yanking the firewire cable out of my other external hd for that mac, while it was powered up and connected and in use and all that.
- take a break to cry a little and write this up in the hopes of venting some of the stressy steam.
- did i mention i'm sick from everybody at work and from whatever my kid has? and that i haven't been sleeping well? etc.
now, of course, while "when it rains, it pours" is sucking for me right now, i have to at least be thankful for the fact that i'm not, like, dead from this. well, not yet at any rate. how prophetic will that thought be?
Friday, February 20, 2009
i dunno. maybe they know what they are talking about, but their home page was kind of an outright insult to usability. i mean, it put up some evil "TAKE A POLL!!" dialog box up first thing. before i even could read anything on the page to find out who they are. and then, after i got rid of that, the page pretty much failed miserably to render like anything halfway decent in firefox 3 mac os x.
not impressed.
not impressed.
making a restaurant reservation on-line is sorta a mixed bag. like, it is a way better experience for me than having to pick up a phone. but on the other hand, i'm never really all that confident that the reservation is going to be honored or anything.
all i can say is, i find this to be entirely all too true. it drives me bat-shit crazy (whatever that might mean?!) when i come across it.
is your software process all about a product, or moustachesknowledge?
if you want to hire me as a pro bono consultant, let me know. you'll get to obtain one of my business cards that has my catch phrase: A Free Lunch of Silver Bullets.
(ok, i'm not a consultant, and if i were, it wouldn't be pro bono. still, you can hire me if you really want.)
(ok, i'm not a consultant, and if i were, it wouldn't be pro bono. still, you can hire me if you really want.)
"Frankly, the trend toward Agile in the Large, Scrum certification, etc has led to a downplaying, maybe even disregarding, of the technical skills that are the bedrock of Agile and are a necessary condition for teams to plan and develop iteratively. Without the technical foundation, iterative planning and development fail because the code base is not malleable."
yup. it is a layer cake. if any layer tastes like poo...
yup. it is a layer cake. if any layer tastes like poo...
argh, i still haven't learned Clojure and it is already leaving me behind. well, maybe it is good that i won't have to unlearn the old ways. as if i'll ever have the luxury of the time to learn it.
awesome. apparently, somehow, the tabbing-among-fields order inside flash apps can be different in different browsers.
"More generally speaking, locking within a standard library is the wrong thing to do: that doesn't prevent race conditions at the application level, and for reasonable performance you need to lock at a much coarser grain, again at the application level. (That's one of the things that make shared-memory programming with threads and locks so incredibly painful and non-modular.)"
Thursday, February 19, 2009
it is both deeply sad that the industry apparently really still sucks, and also pretty darned great that folks at mozilla are so cool as to share their experiences in making things suck less. so hopefully everybody else can suck less, too?
oh, and, word.
oh, and, word.
i think it is pretty clear to me these days that the quantity of law is simply self-evidently proof that the system has gotten entirely out of hand. not a new idea, of course. but ever more obvious with modern tech.
"Jeff: Drive fear out of the organization.
Randy: Be passionate about what you do.
Chip: Know when to say no. Too often people say yes to everything.
Bob: Fight as if you are right, listen as if you are wrong."
Randy: Be passionate about what you do.
Chip: Know when to say no. Too often people say yes to everything.
Bob: Fight as if you are right, listen as if you are wrong."
yeah, for me i think that if you really want to use C++ then there is something wrong with you. hell, make a simple implementation of Scheme in C++ and use that instead. anything other than using C++ itself directly.
[blogger: conflicting edits.]
[blogger: conflicting edits.]
so (i can't find the bloody article right now) there's Scott Meyer's rule that concrete classes have to be leaf nodes of the inheritance hierarchy. i think the reason was that implementing equals is all broken otherwise, along with some other issues. i don't grok it all enough to know how much that rule is valid for non-C++ OO languages.
beuller? beuller?
beuller? beuller?
bloody hell. i already own a copy of CTM, and i haven't gotten even half-way through it. so then there's also HtDP which i don't have but which is available free online as a pdf, which i also would really like to work through. augh! where's my winning lottery ticket?
[blogger: conflicting edits.]
[blogger: conflicting edits.]
"It is unfortunate that much of what is called 'object-oriented programming' today is simply old style programming with fancier constructs. Many programs are loaded with 'assignment-style' operations now done by more expensive attached procedures."
Alan Kay, History of Smalltalk (1993).
(supposedly - i took that from HtDC.)
Alan Kay, History of Smalltalk (1993).
(supposedly - i took that from HtDC.)
a programming language without straight-forward deterministic destructors is, i think, pretty freaking lame. and anybody who says "oh, well, you can just use something like IDisposable" is a dumb jerk. ahem.
tactics without correct strategy will fall in the face of better strategy. amazon kindle. adobe flash. microsoft windows.
speaking of leaky abstractions: flash supports vector stuff, and yet apparently if you try to do anything particularly demanding with it on main-stream hardware (we're still in the days where they haven't tapped the GPUs) then you find out you need to tell it to do everything as bitmaps. ha ha ha sad.
"eXtreme Programming is interesting because it has practices in place for ensuring that the people on the project work together as a team. By forcing developers to communicate about the system they are building, eXtreme Programming is re-creating a craft studio where everyone learns from each other."
funny how the java debugger in eclipse doesn't seem to be able to show NaN. it just shows... blankness. that's helpful.
so, like i was saying: floating point is fun. for example, in java if you divide by integer zero you get an exception, but if you divide by float zero you get no exception, just NaN.
[blogger: conflicting edits.]
[blogger: conflicting edits.]
"although he has converted his classic Aston Martin to run on biofuel made from wine."
"Delays are bad for several reasons (e.g., delays cause knowledge to degrade). They are therefore useful indicators to improve your process. Without a value stream map to give you a complete picture you might try to improve one part of the value stream at the expense of another (sub-optimization). Delays are often an indication that too many things are being worked on. Very often we start with a small delay (e.g., the need to wait for a key person) but then increase it by adding new work while we are waiting. We're accommodating the problem - not going to root cause of it. Hence, to me, the real value of the value stream occurs when we use it to both illuminate a problem, get to its root cause and keep the big picture in mind to ensure we're not causing another problem.
But many times, just looking for delays, rework, etc., and getting to root cause can be just as valuable as using a value stream map. Again, any change must take in the entire process, however. Getting to root cause is critical in order to improve your process. Unfortunately, we often have unexamined assumptions or look in the wrong area. Many problems that look like they are due to the team are really due to other things."
But many times, just looking for delays, rework, etc., and getting to root cause can be just as valuable as using a value stream map. Again, any change must take in the entire process, however. Getting to root cause is critical in order to improve your process. Unfortunately, we often have unexamined assumptions or look in the wrong area. Many problems that look like they are due to the team are really due to other things."
Wednesday, February 18, 2009
i dunno. it sorta bugs me when people crow about something that is so great in Ruby/Groovy/Whatever that has existed for a long time in some similar fashion in real functional languages. and it further bugs me that the things in Ruby/Groovy/Whatever have some funky new name. (because, er, uhm, things like "monad" and "functor" are so friendly.)
"So while Kanban does ask for a behavioral change initially the change requested is (a) use a transparent method for viewing work and organizing the team, (b) limit WIP and pull work when the team has capacity. These are very non-threatening to any existing team member's skills. The only significant change/challenge (and this is not to be underestimated) is the relationship with the business / product owner that occurs when the pull system is initiated. The business no longer gets to "push" and hence something needs to be traded for that. The suggested trade is a regular and frequent cadence of release, transparency and a commitment to continuous improvement. However, it might not be the most appropriate trade and your situation may differ."
i dare say that most uis for printing documents still really freaking suck ass.
[blogger: conflicting edits]
[blogger: conflicting edits]
debugging tools suck. it still flabberghasts me. if i were rich, i'd sponsor some open source tools to make it all suck less (probably something for the jvm).
"Remember people act the way they do because they are basing their decisions on unstated (and often unexamined) beliefs. Management often looks like they are not cooperating with Agile adoption because they don't seem to care about the team or its process. Perhaps they should, but the way things are set up, that's often not their job - or at least not their focus. They are looking out at a bigger thing. Lean-thinking would actually tie their job and assisting teams together because it transitions them from managing to leading - and this is what they should be doing."
MMF vs. Backlog: "The MMF decomposition is easier because it is a smaller amount of analysis work then required for an iteration so the PO has less to prepare."
Tuesday, February 17, 2009
"Waste comes in three
abstract types...
(1) Rework (or Defects)
(2) Transaction Costs
(3) Coordination Costs"
abstract types...
(1) Rework (or Defects)
(2) Transaction Costs
(3) Coordination Costs"
hm. how about a "time management" video game where you are, like, managing an abattoir? (i don't like time management games, personally.)
dilemma: the world is ending, so does that mean i should get the used 1997 Audi A4 1.8T (manual, of course, and not quattro, thanks) and drive it while rome burns, or should i not waste money like that, and stick with my 200k+ miles '92 honda civic?
having special values (0, -1, that kind of thing) in your (my) code is a small big sign of suck suck suck.
yes. hard-core real-world doom. (to go along with our self-created financial doom.)
[blogger: conflicting edits.]
[blogger: conflicting edits.]
if you don't know how to screw things up repeatedly, here are some tips for ya.
The Business Case for Agility explains the 5 reasons for becoming agile: quicker return on investment, get better clarity on customer needs, better project management, assist teams' learning, and higher quality software.
"Culture is an idea arising from experience. That is, our idea of the culture of a place or organization is a result of what we experience there. In this way, a company's culture is a result of its management system."
'3M had this saying : “Get it done, and QUICK!” and then there was the “Ask forgiveness, not permission.” and “Take an idea and run with it.” and so on. The whole system was set up to make it very easy and cheap to get a new product commercialized. In fact, new products were considered experiments. The process was effective. It produced high quality. And there were amazingly few rules. But not so many companies do things that way. I know your company has a very different culture that you have to work within.'
Friday, February 13, 2009
"If the Level II team sees an undesirable trait in the Level I team, it must be an expression of or reflection of Level II teamwork and the Level II team members. This pattern applies to teams at all levels, right up through the corporate ranks."
ah, yeah, sure, but does it run Quake?
(apparently, they are MIPS cores. so, this is the kind of thing SGI should have done, tra la.)
(apparently, they are MIPS cores. so, this is the kind of thing SGI should have done, tra la.)
somebody should make a short kung fu movie with the four schools of software testing.
"The second day we do future value stream maps so people can apply what they learned. This is without doubt the highlight of the class for many people."
'But the important thing here, I think, is that many employees will not strongly challenge a manager when they think he is wrong about something if the "system" gives that manager nearly full jurisdiction over that employee's compensation and employment.'
laptop computers which do not respond to commands to change/mute the volume until after you have logged in and sat through the bloody windows "hey i'm logging in!!!" tune, suck.
Thursday, February 12, 2009
"hi, i work for about.com, and i'll continue to miss the point and clutter up the search engines with bad results."
well, programming languages suck, because everything sucks, because people suck.
word: simplicity and restrictions can be good. i mean, other than how java does it. ;-)
sure, sytrofoam may be bad for the environment, but it sure does keep my drink cold/hot!
sure, imperialism might have been bad for the natives, but bánh mì sure are delicious!
sure, imperialism might have been bad for the natives, but bánh mì sure are delicious!
Ruby on Rails: taking The Law of Leaky Abstractions to New Heights. (ok, well, i'm sure it isn't the absolute worst thing in the world, but still...)
it is the little things (well, and some of the big things, too) that really bug the heck outta me about Eclipse. for example: it seems like every hierarchy ui widget has a different interaction story. on some you can double-click to completely expand a sub-tree, but others don't support that. etc.
[blogger: conflicting edits.]
[blogger: conflicting edits.]
from my little experimenting, i think some of my issues with Ruby and with Rails -- for a newbie -- are:
- knowing when to use symbols vs. strings is confusing.
- i think the automatic pluralization thing is, frankly, bullshit, because there are plenty of times when i'm totally guessing which one should be used.
- things have apparently changed a lot over time, so trying to google for helpful tutorial can really just lead to confusion.
- on the other hand, things which are new features which are supposed to work sometimes just didn't, and i had to use some hard-coded or old-school style instead.
- apparently there is a debugger now, which i should use, because just trying to figure out the flow of what calls what else and how and when is not easy to divine and grok right away.
- yeah, on the whole i'd rather work from the database backwards to the code so the constraints (i mean even basic stuff like foreign keys -- which apparently are now somehow supported in rails?) are well enforced.
- often, things stump people for a while, and it is just dumb luck that you find the answer?
if you write a programming tutorial, i suggest you have a copy of the final complete code available as part of it.
Wednesday, February 11, 2009
wow, ok. i mean, i know the Good is better than the Best and all that, but holy cow. learning Rails is just re-enforcing to me that fact that just about everything about the web that is beyond http 1.0 (!) is just a huge nightmare of bull pucky that has been band-aided with various and sundry evil hacks and it is all just gross and now i feel dirty.
let me guess! it is 2009 and X Windows still has two bloody different and incompatible copy-text buffers?!
Tuesday, February 10, 2009
linux fonts are funny-sad. i love how the "dots" used to show characters of a password as you type it in are as if they come from fontsize+5 instead of the current size.
all i'm sayin' is, the mark mail look is just plain bad.
the race to be the loosest programmer out there. and then some.
"In Darley and Batson's study, the most powerful determinant of whether people exhibited pro-social behavior wasn't their occupation (after all, these were seminary students, people you'd expect to be highly attuned to alleviating the suffering of others and to the needs of the less fortunate). And it wasn't the topic of the talk they were told to give either. It was a far simpler, more mundane situational factor that had the biggest impact on them: only 10% of the students who were told they were running behind schedule stopped to help, while 63% of those who believed they were ahead of schedule did so."
i am an emacs person, not a vi person.
but some days my left pinkie is screaming at me to switch. i need to get one of those big foot-pedal ctrl keys.
but some days my left pinkie is screaming at me to switch. i need to get one of those big foot-pedal ctrl keys.
my (limited) experience with haskell's "do notation" and ruby's rails, i conclude that leaky abstractions will kill ya kill ya kill ya. it pisses me off when i get the feeling there's supposed to be this "it is so easy, we've made it so easy for you!" meme when in fact it is a bunch of bull-hooey, because inevitably you really are going to have to know and understand how things work under the covers, in order to make headway.
it is heart-warming to that some people are trying not to suck. now, if only i could find such a group to work with as a day job.
i'm just trying out xubuntu.
nice to see that the world of linux still doesn't understand good usability.
nice to see that the world of linux still doesn't understand good usability.
so far i'm still pretty skeptical of rails.
fyi, now that i've given up on running things under windows and am using xubuntu, ruby is a lot lot lot faster. almost bearable.
fyi, now that i've given up on running things under windows and am using xubuntu, ruby is a lot lot lot faster. almost bearable.
Monday, February 09, 2009
i think different software development approaches are non-linearly different, at least on either side of some inflection point: when you are doing things Right, it is a qualitative difference, not just a quantitative one.
i also think that a lot of people doing software don't know that. probably mostly because (a) they've never experienced it and so don't know any better and (b) they have insufficient imagination or introspection (or self-respect?).
i also think that a lot of people doing software don't know that. probably mostly because (a) they've never experienced it and so don't know any better and (b) they have insufficient imagination or introspection (or self-respect?).
i do believe that Java/C# etc. really went too far the wrong way.
i do not like the fact that Amazon doesn't have an explicit logout link (unless you go into the merchant ui) i think.
imperative/procedural vs. oop: and a Middle Way (or 2), along the lines of generic (a la stl) programming.
having to escape things sucks.
i think i would look for all ways to avoid having to do it and enforce that. like, for file systems, i would explicitly not allow for spaces in paths at all, ever. never ever ever. nope.
i think i would look for all ways to avoid having to do it and enforce that. like, for file systems, i would explicitly not allow for spaces in paths at all, ever. never ever ever. nope.
whatever chrome/chromium/iron offer in terms of robustness and security, they sure do make up for it with utterly cluster fudged usability! i mean, the whole download manager is a freaking joke. might as well just shove a pointed stick in your own eye.
Sunday, February 08, 2009
well, ruby is killing me dead. i mean, the whole rake test:units thing was like getting your tongue stuck to slowly moving winter molasses. so now i'm trying jruby which of course is sort of a joke if i can't use sqlite3 -- fingers crossed.
yeah, so far as i can tell, the docs from the ruby site itself are kinda full of misleading crap / guilty of sins of omission. that's a lot of fun for the newbie!
so, like, why isn't there a straight-forward way to make the ruby image just be a windows service, so we don't have to keep paying the startup cost? whatever.
could. running. ruby. from. the. (msdos.) command. line. be. any. freaking. s. l. o. w. e. r?
and people give java a hard time? shee-oot.
(maybe once i grok the basic gestalt of rails, i can try some tricks.)
cause, like, you know: nobody on earth would ever be using a windows machine for development. don't get me wrong, i freaking hate windows, too, but hello, reality check?!
and people give java a hard time? shee-oot.
(maybe once i grok the basic gestalt of rails, i can try some tricks.)
cause, like, you know: nobody on earth would ever be using a windows machine for development. don't get me wrong, i freaking hate windows, too, but hello, reality check?!
it really bugs the crap outta me that the rails docs i come across to not match the stuff that the actual installation of rails generates. e.g. the unit test class skeleton doesn't use "def" it uses "test", whereas all the docs on the web use "def".
i think there are several other ways in which a rails newbie can get screwed up, trying to cross-reference docs with actual results from code. like, i think it is sometimes the TIMTOWTDI rule, and as a n00b you are sorts left to thrash around trying to come up with some mapping among all the docs you find plus the code you got.
blah.
i think there are several other ways in which a rails newbie can get screwed up, trying to cross-reference docs with actual results from code. like, i think it is sometimes the TIMTOWTDI rule, and as a n00b you are sorts left to thrash around trying to come up with some mapping among all the docs you find plus the code you got.
blah.
i assume hard-core DB people are rolling over in their graves (how's that for a mixed metaphor) when it comes to how Rails does validation and stuff in code, rather than in the database schema. but there are valid reasons to do it that way, of course, which is (a) an indication that people suck for using crappy RDBMSs that e.g. don't (or didn't) support foreign keys and (b) kind of an indictment of the whole SQL standard isn't a standard debacle, let alone (c) a sad result of the general impedance mis-match between the (so-called when it comes to SQL) Relational vs. Object-Oriented philosophies.
i don't know what the right answer is, but on the whole i think i would really like to be able to have the specification for a coherent and consistent and constrained schema in the db itself. it bugs me to think that any newbie has to look at multiple systems to determine what the actual rules are. and it bugs me to think that if you try to add another feed to the database that it isn't protected unless you somehow manage to duplicate or share the validation logic.
which all just seems sad. i mean, is this really the best humanity can do?
i don't know what the right answer is, but on the whole i think i would really like to be able to have the specification for a coherent and consistent and constrained schema in the db itself. it bugs me to think that any newbie has to look at multiple systems to determine what the actual rules are. and it bugs me to think that if you try to add another feed to the database that it isn't protected unless you somehow manage to duplicate or share the validation logic.
which all just seems sad. i mean, is this really the best humanity can do?
oh. my. god. talk about bog-stupid wrong (the bit about insert_at, at the very least). my point is just that these things are rather subjective (since he thought what he said made obvious sense), and you have to know that if you are going to get yourself involved in the kerfuffle.
any system which (apparently) either prefers underscores over hyphens, or simply breaks if you try to use hyphens instead of underscores, is by my estimation kind of a piece of crap! (sql, rails, java, etc.)
so, like, ruby on rails is supposed to make use of convention? yeah, well, i'd hate to see what was done before rails.
i mean, as soon as you invent your own system, and have multiple versions of it, and theoretically support a range of OSs and RDBMSs, you are going to have a lot of stuff that is configuration and not convention.
and even the things which are supposed to be magically obtained from convention are whacked because there are apparently N different ways to get set up with rails, and they aren't particularly "wizardy", and it seems like things can be out of sync and one doesn't know why. presumably because some link in the chain of conventions isn't right, but a newbie sure doesn't know where or how.
at least, that has been my experience so far. i'm just sayin', is all.
i mean, as soon as you invent your own system, and have multiple versions of it, and theoretically support a range of OSs and RDBMSs, you are going to have a lot of stuff that is configuration and not convention.
and even the things which are supposed to be magically obtained from convention are whacked because there are apparently N different ways to get set up with rails, and they aren't particularly "wizardy", and it seems like things can be out of sync and one doesn't know why. presumably because some link in the chain of conventions isn't right, but a newbie sure doesn't know where or how.
at least, that has been my experience so far. i'm just sayin', is all.
is it me, or does lastfm not have a way to show you the previous artist's name?! yeah, that's a really good way to make sure people can't buy things, right?
i love trying to work on some new software project, because you get to go through all the random crap that randomly doesn't work and impedes any progress.
like, for some example, emacs has decided my makefile should be edited under "gnumakefile" mode rather than just "makefile" mode, and apparently the former decides to un-tabify whenever i save the file.
because, you know, tabs aren't important in makefiles.
WHAT?
THE?
FUDGE?
like, for some example, emacs has decided my makefile should be edited under "gnumakefile" mode rather than just "makefile" mode, and apparently the former decides to un-tabify whenever i save the file.
because, you know, tabs aren't important in makefiles.
WHAT?
THE?
FUDGE?
i really cannot ever remotely understand how anybody can possibly contemplate let alone undertake doing any sort of actual software development on a dos/windows machine.
maybe if i had vista and had already learned monad? but why bother when unixen are powerful and free?
maybe if i had vista and had already learned monad? but why bother when unixen are powerful and free?
Saturday, February 07, 2009
yuck. doesn't anybody else find it really annoying to have to figure out how to get google to decide to respond to the query with the calculator feature, rather than there just being an explicit calculator mode?
it is surprisingly hard to suss out how to bloody well set up emacs for ruby and rails editing. wtf?! i guess it just means times have passed emacs by?
Friday, February 06, 2009
uh, ok. i'm learning ruby (on rails) for fun and profit, ha ha. i've got a windows machine (woe is me) with cygwin on it. sufficeth to say, i don't think the windows ruby install was every designed to play nicely with cygwin because the way the scripts, like 'gem', are written causes cygwin to look for a hardcoded "D:/Users/Luis/projects/oss/installer2-trunk/ruby/bin/ruby.exe". which is, er, not really gonna work on most people's machines, i'm afraid.
so this isn't so much fun since i really do not enjoy having to use the msdos command shell.
so this isn't so much fun since i really do not enjoy having to use the msdos command shell.
some "if you liked this you might like that" things work well.
some do not. (i mean, it isn't like insultingly nsfw bad, but it is just plain lame.)
some do not. (i mean, it isn't like insultingly nsfw bad, but it is just plain lame.)
yeah, i've had that sub-idea before: word fragments for serial numbers, not digits.
here's something i want and i don't understand why (as far as i know) no programming system offers it: the ability to mark code that should be logged, without having to alter the source code. like, i should be able to start logging anything anywhere anyhow (there should be a programming language that has full access to the runtime, that one can use to define when things are logged) without having to recompile.
which unfortunately presumably means that either you can't generate code with some set of optimizations (because they would throw out data you need to support the logging goal), or it would have to be staged with an automatic 2nd build step that redoes the optimization when the logging specs change -- but at least you don't have to actually touch the source code in any way.
(i realize this might sound kinda like AOP but it is different. :-)
which unfortunately presumably means that either you can't generate code with some set of optimizations (because they would throw out data you need to support the logging goal), or it would have to be staged with an automatic 2nd build step that redoes the optimization when the logging specs change -- but at least you don't have to actually touch the source code in any way.
(i realize this might sound kinda like AOP but it is different. :-)
i just don't like AOP. sure, the ideas of orthogonality and separation of concerns is nice, but i don't buy the usual things i hear as means of selling AOP (transactions, security, etc.): i think they miss a point, that those things really aren't entirely orthogonal.
so, like, if somehow you can and do real OO, maybe it is cool?
i have firefox set to ditch all private data, cookies, etc. when it closes. so firefox goes and crashes. i restart it and tell it to restore sessions. apparently i still have the gmail cookie: i don't have to go through the login process. however, all the history is lost -- and it was the history that i was perusing with a purpose in mind when the bloody browser crashed.
somebody needs to come up with a way to, like, duh, not leave cookies around after a crash, ya know???
somebody needs to come up with a way to, like, duh, not leave cookies around after a crash, ya know???
well, all i can say is, even if i can't decide among git, darcs, and mercurial (or perforce :-), at least we now have an embarrassment of riches, rather than just being stuck with CVS and SVN (and VSS and ClearCase). oh, wait, i am using SVN! dammit. (although i did use SVK for a while at a previous place, and it was actually kind of nice, even if things did get all screwed up now and then to be sure.)
here's another free clue: if your bugs suck because your code sucks because your process sucks, you will have less ability to fix those things that the end-user notices because you'll be fighting too many more "important" fires.
Thursday, February 05, 2009
yeah, well, as much as bugs can be no fun, i have to say that getting through them and working towards ever more significant releases and versions of an app / system is pretty sweet. i mean, having actual people already using the stuff is an incredibly nice fancy luxurious happy problem to have. (especially in this economy, gulp.)
i might end up hating it, or it might require some amount of serious refinement, but:
there are times in editors (emacs, eclipse) when i do some magic key thing to invoke a command, and either i got the muscle memory wrong, or i made a typo in the process, or i didn't even intend to invoke anything at all.
so it would perhaps be neat if the editor would make it more visually obvious that something has been invoked, and what changed.
i have various ideas about how that might work, but nothing too concrete.
just something to muse about.
there are times in editors (emacs, eclipse) when i do some magic key thing to invoke a command, and either i got the muscle memory wrong, or i made a typo in the process, or i didn't even intend to invoke anything at all.
so it would perhaps be neat if the editor would make it more visually obvious that something has been invoked, and what changed.
i have various ideas about how that might work, but nothing too concrete.
just something to muse about.
debugging is twice as hard as writing the code in the first place, as the saying goes. but it is also, often, more than twice as annoying and boring and uninspiring. so i think you can work backwards from there, much like the old saying does, to reach some conclusions about how you should approach writing things in the first place.
but i guess that's just me.
but i guess that's just me.
one role i think i'd like to play in an organization would be the backseat driver, or adviser. whispering into the ears of other people to point out where they are starting to go astray.
of course, i think most people are like, "screw that, we don't have time for more quality!" which, of course, i find often, and tremendously frustrating.
(but i don't have the purse strings, so what do i know.)
of course, i think most people are like, "screw that, we don't have time for more quality!" which, of course, i find often, and tremendously frustrating.
(but i don't have the purse strings, so what do i know.)
here's the thing: if you want to design a good system, you have to not just say "oh there is a right way to get it done (as in, to get something to compile, or some tool to be configured right to work, etc.)" but to say "we've thought about all the ways it can go wrong, and made sure that they are fewer in number than the ways it can go right" or something to that effect.
wow. every time i have to do anything with Flash, i think to myself, "damn! these tools are crap! it can't even debug correctly, and the IDE doesn't even find references correctly, despite being an Eclipse derivative. maybe the Java world isn't so bad, after all!"
technology sucks because people suck.
technology sucks because people suck.
nice that it is apparently hard/impossible to downgrade the flash player plugin. the installer just tells me "there's nothing to do".
[blogger: conflicting edits.]
[blogger: conflicting edits.]
wow. pretty much anything other than craigslist to look for jobs is a freaking nightmare. i mean it is completely seriously as if the rest of the world that doesn't just use craigslist really wants to make sure that nobody will ever be able to apply for their job. it is <expletive>ing pathetic. i do not understand how in a real free, competitive market any of these places would continue to exist. the mind reels.
holy freaking <deity>! so i looked at jobs on monster.com, and even tried to update my resume. it was in doing that that i realized why i never use things like monster, and really only want to use craigslist: because monster is a <expletive>ing piece of <expletive>! like, editing resumes sucks, and the ui also does its best to screw you by not checkpointing your work and finally losing it, leaving you to decide if you will try again, or just never freaking ever use monster to apply for anything ever, and make daily offerings to whatever capitalist gods that could smite the whole bloody company.
Wednesday, February 04, 2009
"This is not healthy, but it was the only choice we had."
er, except for the other option. like, duh! oh, wait, i get it, that was meant to be an indication of how great they are. (and, yes, they are, because they actually made something.)
er, except for the other option. like, duh! oh, wait, i get it, that was meant to be an indication of how great they are. (and, yes, they are, because they actually made something.)
oh for crying out loud, caveat emptor, duh. ditto the bloody housing bubble (and i can say that since i was one of them).
i mean, it is a good thing that people get screwed by eulas and the like because they aren't going away and you have to stop assuming they can't possibly contain anything evil. right?
i mean, it is a good thing that people get screwed by eulas and the like because they aren't going away and you have to stop assuming they can't possibly contain anything evil. right?
there is a lesson to be learned from the fact that the conceit in River Raid is so freaking stupid and yet people really seem to love / have loved that game.
as depressing as most of the real world is, especially when you read about how it should be, at least there actually are some little pools of sanity. of course, heaven only knows what the next decade+ of economic <expletive>-fest-age will do.
there are comics who do Star Trek stand-up jokes. i wish somebody would get around to doing software development ones. they'd be the kind of jokes that are funny because they are based on reality and reflect back to us how bad things can be.
you and i might think this is obvious, but i think i've seen it happen enough in the wild done in Other People's Code (no, i'm not really Down with Other People's Code) to (a) think that maybe i'm not very honest and i do this too more than i believe / should and (b) want to note it here: if you put some kind of bandage into your code, it might help the thing you wanted to patch up, but it might lead to really foobaring other things. capice?
i'm sure we will all look back on this and ooze. "When high-schoolers are doing genetic engineering, you know the future holds some big surprises!"
do you think it will be funny or sad when future history says that the 2nd american revolution (we should be so lucky) was caused by housing prices?
hey! guess what!
i still <expletive> hate gmail.
too bad all the alternatives suck even more. oh the painful sick twisted evil irony.
(yes, it is the whole "you are replying to something in the trash" user interface thing that kills me. like, i would waterboard whoever came up with that. (kidding! i'm actually way anti-torture.))
i still <expletive> hate gmail.
too bad all the alternatives suck even more. oh the painful sick twisted evil irony.
(yes, it is the whole "you are replying to something in the trash" user interface thing that kills me. like, i would waterboard whoever came up with that. (kidding! i'm actually way anti-torture.))
maybe it is just that you can't really use mocks so well to retroactively test things, vs. using them in green field testing? it just seems broken that you have to hard-code the number of times methods are called and exactly what they will return, because that starts to hard-code the implementation into the tests, rather than higher level behaviour. i know you can say things like "i don't care how often or when it is called" but then you still have to be able to return appropriate values in the sequence of calls. i must be missing something: either there's a trick i don't grok, or i'm confused to think that anybody would claim mocks can be used to slowly introduce tests into a crappy code base that doesn't have tests.
i just don't see how people can call it "behavior verification" with a straight face! i really is implementation verification: how many times does the object under test call out to the ancillary and thus mocked objects, and what exactly would they say back? it just seems so broken-minded to me.
i just don't see how people can call it "behavior verification" with a straight face! i really is implementation verification: how many times does the object under test call out to the ancillary and thus mocked objects, and what exactly would they say back? it just seems so broken-minded to me.
Tuesday, February 03, 2009
my new video game treatment: "Zen vs. Tao: FIGHT!" like, you have to NOT mash the buttons AS FAST AS YOU CAN to win.
i can go along with the idea that there is a fundamental difference between how Google "gets" it vs. how most everybody else doesn't.
if you can't get rid of nil/null, can you tame it? ha ha ha, ugh.
"On that note, here’s a wrap-up: write about yourself, write a story, write real words, don’t write too much."
shoot, how long has it been since the Mayan's slash-and-burn self-destruction? how long has it been since Rome's fall? how many times do we have to have a Depression? before people see the (obvious!?) issue?
i am sure there are lots of people who will think the way things are is Good Enough (and it obviously is, to some extent, given that i'm posting this on a blog) but the fact that not only are javascript dom implementations horrible, but you also don't have a solid debugger story available makes me really rather detest nigh everything about the web.
i think i would like to start a company that has some kind of motto like, "doing our best to ignore who the real user is and what they really want." since that seems to be kind of a more accurate description of a log of things i see than any claim of "building something compelling". people seem to confuse effort and energy expended with, you know, actual results.
word, on good vs. bad measurement of a software team's progress.
Monday, February 02, 2009
i used to be good at shmups, but they've kinda gotten beyond me and my frail reactions.
Subscribe to:
Posts (Atom)