Friday, February 29, 2008
seems like we're still screwed by null; some day maybe there will be a consistent, concise, and non-suckful answer available to us all?
so i'm starting to come across ever more neat security systems, but i guess i feel like they all need to be rolled into one thing that just works? like, how well do they work? are they mostly researchy? if you haven't had a zillion people actually using it then i think it can't be considered a really tested robust thing, really.
so... blogger is bought by google, but if i type "blogger OR blogspot" into the search field in blogger itself for my blog, it doesn't return results, but if i do basically the same query via google it does. wtf!?
security sucks. well, maybe some day it will suck just a tad less. although i'm sure somebody will still be willing to hock their password for a candybar.
well, at least Emacs has my back for one of them. and i only just discovered the unix doomsday version, which is freaking genius. oh oh oh!
you think you're so smart? good! then please contribute some ideas! or are you too stingy?
it is sort of shocking to find educators who apparently actually give a damn, enough to be introspective and open source.
bloody heck i've got a lot of reading to do. and a lot of experimenting to do.
as somebody famous once said, "On the other hand, purity and minimalism, however difficult to live with, often offer deep and general insights" which i think can be very true - if you are somebody smart enough to be able to see deeply to create things like purely functional data structures, or math in prolog.
hey, time to kick it nerdy, old school, if you are into that kinda thing.
generally speaking (GNOME being the obvious exception) it seems like while Gnu was OK at making replacements for clunky CLI-based unix utils, there was never a Gnu application with a gull-on GUI that was much good usability wise? nowadays there's the Mozilla products, and Open Office with less-lame UIs, and which aren't Gnu.
Thursday, February 28, 2008
eclipse has its strong points, but consistent and good user interface and usability sure ain't one of them. it is partially because it is a plug-in architecture, but even core components (like the new "Extract Class") have some real hefty UI suck to them.
i'm sure there are a zillion sites that talk about design patterns, but i did like Vince's.
all big companies, it seems, and at least especially things like megalith att, have this thing where on the one hand they try to shove packages and services down your throat, and then also ask "did we do everything to make your customer support experience great?" we've all created for ourselves some kind of Doublespeak Planet. i don't know if it was the companies or the governments or maybe the religions that started it all, but reality is no longer real, ya know? talk about doomed.
hm, why is it that so often the web maps seem to load the central square last? like, with a lot of delay? like, wouldn't you maybe want that one to get the highest priority?
firefox 2 is like "restore session?" and "clear private data?" and i say "yeah, clear the private data" and then i go to gmail and it has all my credentials still. uh, and i think i had all things checked off in the "clear" list.
great.
great.
Wednesday, February 27, 2008
i guess rumsfeld was good for something, besides just comedy-horror.
back on the subject of hate, i'd like to call out all those xenon or whatever they are headlights which blind all other drivers. ditto all the new led-based tail lights which are like twice as bright as any previous tail light. really helpful for other drivers to be blinded by all this photonic overkill.
hey, some good food for thought on writing code, which, oddly enough, is something i like to think about.
anybody who claims to be making a secure product is most likely either a shyster, or an idiot. or both.
as with all things, communication is hard, what with tomato and tomato.
if you are supposed to code to interfaces and not concrete classes, then technically that means you need a suitable interface for any given concrete type so you can write TheInterface variableName = new ConcreteClass(args), no? that's a lot of interfaces.
capabilities are interesting; might even be able to hack something up in current languages, although "hacking" capabilities is sorta not the best approach :-). so there are more disciplined variants.
capabilities are interesting; might even be able to hack something up in current languages (although "hacking" capabilities is sorta not the best approach :-).
Tuesday, February 26, 2008
while i agree P.G. can be sorta over-rated, at the same time he's got a good point now and then. and that Spolsky guy cracks me up once in a while, too.
Monday, February 25, 2008
god, it really is such a classic. the shining! beams! of! light! are particularly freaking perfect.
i hate how Eclipse just decides to randomly forget anything about paths to source files when debugging.
usability with security? security with usability? shyeah, right, as if! (i actually really hope it can happen some day; i'm just joshin') i guess one can hope that since there are so many pretty stunning examples of how not to do it... wait, what was i hoping?! we're so completely and utterly freaking doomed!
Sunday, February 24, 2008
pretty much every freaking time i try to do something unix-y involving shell scripts in cygwin it is a complete lustercay uckfay.
however it all turns out, i think olpc is cool just for trying to do this at all.
nice how gmail says e.g. there are hundreds of messages matching the search criteria, and lets you page through them, but doesn't give you a way to just go directly to what would be the last page of results.
Saturday, February 23, 2008
linkedin kills me. "see your other invitations." <click> "You currently have no unarchived received invitations."
so why did you show me that stupid freaking link, you ass-hats?!
so why did you show me that stupid freaking link, you ass-hats?!
Friday, February 22, 2008
in my not-too-in-depth experience with Java serialization i think i've learned that it is all a big freaking lie, that all options completely suck ass, and that really we'd all be much better off if we were using Lisp.
having said that, i'd recommend not using JSON since the only 2 libs for Java i've found really suck, and i'd suggest trying xstream instead since so far (so far) it seems to Suck Less. (except for the part where the name of the xpp jar contains stuff that looks like a version number, but then uses 'oh' in a place where you'd expect it to be a 'zero'?!)
having said that, i take that back and re-proclaim it is all doom and gloom :-(
part of the problem is that reflection is often involved, which explodes all sorts of abstractions.
having said that, i'd recommend not using JSON since the only 2 libs for Java i've found really suck, and i'd suggest trying xstream instead since so far (so far) it seems to Suck Less. (except for the part where the name of the xpp jar contains stuff that looks like a version number, but then uses 'oh' in a place where you'd expect it to be a 'zero'?!)
having said that, i take that back and re-proclaim it is all doom and gloom :-(
part of the problem is that reflection is often involved, which explodes all sorts of abstractions.
much like tabs vs. spaces, i think there is probably a never-ending flame-fest with respect to case vs. non-case sensitive things (file systems, languages). personally i fall on the +1 for case sensitivity side. which means the Mac OS X file system kinda drives me nuts!
more Mac OS X usability crack smoking crap-ola: after you've installed the software updates, the title of the dialog box is still saying that there are updates to be installed. even though there aren't.
Thursday, February 21, 2008
pac man was great, but ms. pac man was like the best game in the series (up to the xbox version). so it is a little bit astounding to hear that she was an impostor of sorts.
the wonderful thing about Lisp is that if you actually grok the different implementations you must be pretty darned good at memorizing minutia. ;-P
in my collection of cheesy software ideas, i'd like to add: a setup aimed at increasing security / reducing risk to your precious machine and data where when you need to do something with a file format your machine doesn't know about (e.g. some new video format), an OS-in-a-VM is automatically created, the file is moved into it, and appropriate software is downloaded and run, and then when you are done it is either all archived in case you want to see it again later, or it is just nuked outright. yeah, yeah, there are all sorts of blatant problems with the whole idea. it is just sorta food for thought.
it was hard for me to deal with the bad things about IDEs like Eclipse and IntelliJ. their usability still sorta drives me bonkers. and i do still use Emacs pretty often for some tasks that are just too painful in those hypothetically wonderful modern IDEs. having said all that, i have to say that the basic refactoring ability to easily rename things in those modern IDEs is super great. basically, i think people who aren't using a modern IDE probably aren't able to do as good a job of keeping the entropy of the source code under control.
recommendation for the layout of your resume: give it slightly bigger margins than you might have off hand, because it is probably going to get scanned and/or fax'd with a high risk of bad chopping and alignment.
i am shocked, shocked, at how the JSON libraries for Java are pretty much completely freaking useless when it comes to simply round-tripping the primitive and basic and requisite Java array type. complete and utter insanity.
yes, Virginia, software design is hard, at least if you are trying to not just completely suck.
more mac super suck: the Open File dialog box (at least in VLC) does not include all of the columns you get in the Finder, so i can't sort by file size. which, gosh! happens to be what i want in this case.
i think i would have to add to the list of shame the fractured state of video playback on computers. as far as i know there is no OS you can get which will automatically play the major brands of video including QT, MPGEs, AVIs, DIVx, OGG, and whatever else kids these days use. it is apparently especially suckful on Macs as far as i can tell.
Wednesday, February 20, 2008
it blows my mind how microsoft actually gets it when it comes to games.
one occupational hazard of long term exposure to unix: my fingers pretty much always automatically add the letter 'd' at the end when i type 'push'.
apparently firefox 3 beta 3 is smoking some bad (not in the good sense of bad, either) stuff. i've got gmail open in it. the application doesn't have focus. i click on a checkbox in gmail. normally this would do nothing other than give focus to the app. fine. so i have to click twice, right, to get the check mark set. ff does this weird thing where if i don't wait a long time between clicks, it actually marks the checkbox on and then immediately unchecks it. as if i had either clicked 3 times, or as if the application had focus to begin with. this is all repeatable on this here MBP.
reinstate some nerd humility, for those of us not at e.g. google. ;-) interesting to see how many of the items are about folks who were at one point stunning successes, only to fritter away their lead.
i actually in some ways kinda hope that windows has jumped the complexity shark and is beyond hope, mathematically speaking, and that soon we'll all get to use Linxu/xBSD/xSolaris/MacOSX instead!
java sucks. security sucks. maybe the two together somehow won't suck quite as much?! ;-)
i dunno, JNI has always seemed to suck ass to me. turns out somebody is doing something about it, which is pretty swank (if you are into that kind of thing).
i guess there is a chance that if SQL didn't suck so much i might actually find myself liking databases.
anybody got some free time they can spare me to catch up on reading? wait, did i mention the reading?
most definitely in the category of web sites i wish i'd thought of.
there's a fair bit of 'competition' in the "you got your pattern matching in my object orientation" world, which i think is a good thing. if only i could find time and an extra brain to understand it all. like, who can do total matching vs. just partial? like, who is statically checked vs. runtime? maybe if we fast-forward a decade the smart folks will have worked it all out into something really nice and smooth and powerful.
it is super neat to see somebody merging the different kinds of pattern matching, as well. (and xtc sounds like a pretty swank tool, what with the support for debugger metadata.)
not that everyone agrees.
it is super neat to see somebody merging the different kinds of pattern matching, as well. (and xtc sounds like a pretty swank tool, what with the support for debugger metadata.)
not that everyone agrees.
it kills me that people still don't know how to make a home page for their project. pot-kettle-black-and-glass-houses of course, but still.
Tuesday, February 19, 2008
while i can appreciate the thinking behind Perl's TMTOWTDI, i cannot abide by it inside actual application code. no sir, i don't like it! forget that stuff!
take this somewhat (somewhat) tongue-in-cheek, but i think i just found out precisely where i have to start the killing.
as far as i know, exception handling as generally practiced in the Java and C# worlds really really really sucks ass. people don't do it right and then have to heap on more hacks to try to deal with it. for example, often you will be a "catch all" kind of statement somewhere deep in the code. eventually a new type of exception which you don't want to have caught there gets added, and now you are sorta screwed.
i've written that kind of code myself more often than not. :-(
you end up with your code having all sorts of special cases for exceptions of various ilk, which i think is completely counter to the whole original claim of exceptions being a side-band channel that doesn't pollute your ASCII sources all the way through the call stack! dogged.
the problem is that people didn't think through precisely what exceptions they are trying to catch at that level. admittedly, this can be a hard thing to get right. but overall, i think the best approach is probably to avoid catching things at all if you can; defer it to some super top level handler. if you do feel the need to catch things (which admittedly can seemingly be desirable for logging purposes), then try to really catch only what you must rather than "just everything, you know".
i've written that kind of code myself more often than not. :-(
you end up with your code having all sorts of special cases for exceptions of various ilk, which i think is completely counter to the whole original claim of exceptions being a side-band channel that doesn't pollute your ASCII sources all the way through the call stack! dogged.
the problem is that people didn't think through precisely what exceptions they are trying to catch at that level. admittedly, this can be a hard thing to get right. but overall, i think the best approach is probably to avoid catching things at all if you can; defer it to some super top level handler. if you do feel the need to catch things (which admittedly can seemingly be desirable for logging purposes), then try to really catch only what you must rather than "just everything, you know".
all i'm sayin' is, if your middleware doesn't have ways to support and deal with case insensitivity vs. sensitivity, then you might be in for some pain.
boy, you just gotta love the web, and all 'at. i mean, it all started out as an abstract, descriptive, declarative language, and quickly fell into a much more imperative one, both in HTML and CSS. presumably that was motivated by at least two things: one is that designers are full of themselves and the other is that it is actually a really hard problem to get resizing things working totally right, and the technology didn't support it either easily or at all, causing designers to be like "screw it, we're going fixed size!" i dare say that another problem is that the technology apparently was never taken to the extreme required to make it all work: apparently, browsers hard coded 1.5x at first then 1.2x later when the CSS specs changed, which makes me ask rantingly why that sort of data wasn't abstracted out to a specification xml doc maintained by the WWW so that they could change it and your browser could get the change without having to actually get a new binary? anyway. at least those people linked above are fighting the good fight, along with Web Standards.org. and some are at least concisely documenting the suck, tra la.
(update: oh, crap, super deja vu! i think i've been here before, now that i read it again. we're all just completely doomed, or something.)
what i really want to know is: has anybody made a collection of base stylesheets, on per browser make and model, which give really good scaling? (I'm on the accessibility / user-has-control side of the argument vs. pixels.) Seems like we know what the browser is when the server gets the request, no? Couldn't CSS be used to as-much-as-possible make them all work well and alike?
(update: oh, crap, super deja vu! i think i've been here before, now that i read it again. we're all just completely doomed, or something.)
what i really want to know is: has anybody made a collection of base stylesheets, on per browser make and model, which give really good scaling? (I'm on the accessibility / user-has-control side of the argument vs. pixels.) Seems like we know what the browser is when the server gets the request, no? Couldn't CSS be used to as-much-as-possible make them all work well and alike?
for sundry reasons i've been thinking about how much run-of-the-mill software architecture, design, and implementation sucks. a lot of it has to do with the fact that requirements change. well, and that oo is, i am currently thinking, usually done poorly and is therefore inherently fragile in many ways. so i have been thinking that the key is to leave things as ultimately flexible as possible, yet to somehow have a way of ensuring you aren't writing total nonsense, you know? i mean, that is why we have schemas and type checking and unit tests and stuff (er, well, some of us do, anyway). but those seem to end up making the system brittle. i think at the very least it would be interesting to try going the relational route rather than doing anything oopy, even if you are using an oopy language. anyway, i'm intersted in other takes on it all, like alloy, and the good ol' tablizer, and Flow.
oh blogger, how i <expletive> hate your completely lack of any basic understanding of usability (or perhaps if i'm going to give any benefit of the doubt, discoverability). take, for example, moderating comments: it doesn't show me the freaking post to which the comment is a response. it shows a few words from the start of it. i had to copy and paste that into the search of the blog to go find out what post it was all about. wtf?!
Gmail sucks because Ajax sucks: I click "save" on the email and then click to go back to the inbox, and the save hasn't made the round-trip to the server so i get a dialog box talking about how if i navigate away from the letter it will be lost. freaking great usability there folks!
Monday, February 18, 2008
holy deity excrement, is there nobody who makes a web server that isn't a complete usability cluster uckfay when it comes to configuration? i mean, come on.
yeah, google! let's create GWT, and nurse it though and beyond Beta, and still not have any official, concise, coherent, accurate documentation about how to release it with Apache Tomcat?!
Sunday, February 17, 2008
the whole point of distinguishing between a Java Interface and Class sorta sucks. i'm experimenting with some new framework, following a tutorial, and doing stuff in Eclipse. so i'm adding a new class and i was told it has to be a framework XYZClass so in Eclipse i'm trying to set XYZClass as the superclass, but can't find it. turns out it is an interface. i think that's sort of a cart-before-the-horse thing in many ways; it would be great if Eclipse somehow showed interface matches when looking for classes and vice-versa. maybe.
ok, so after all this claim of GWT being the bees' knees, it turns out that somehow their own web pages of documentation for it break the back key in my firefox (v2): i can't use Alt-LeftArrow to go back from that page! i tested manually going back with the browser back button, going to a different page (up one level was a set of google search results so i just picked a different, non-google one) and then trying Alt-LeftArrow and it worked just fine. so it is something about whatever monkey crack the google people are smoking that is causing them to do some fine old pooch screwing here.
and it isn't something like the focus being weird, i did various experimental click-then-alt-leftarrows to try to see if that was it; nothing worked.
gah!
i mean, if you've got all those freaking machines, maybe you could put some of them to work actually testing your [pardon the french] shit?!
(it exhibits the same broken-ness in IE as well, so there.)
and it isn't something like the focus being weird, i did various experimental click-then-alt-leftarrows to try to see if that was it; nothing worked.
gah!
i mean, if you've got all those freaking machines, maybe you could put some of them to work actually testing your [pardon the french] shit?!
(it exhibits the same broken-ness in IE as well, so there.)
ok, i think these folks are cool and helpful and stuff. (well, i mean, if you are a geek who likes that kind of thing.) i even braved my love PayPal to donate some money to 'em.
while i appreciate the technical and artistic merits of things like PostScript out of Adobe, i have to say that their acrobat reader plugin freaking sucks big doney butts when it comes to integration with firefox (maybe ff is to blame, who knows). to wit: i have 2 tabs open, one of which is a regular html page, the other of which is a pdf in the embedded reader. i am in the html tab and do Ctrl+w to close the tab... and get a dialog box from reader saying "This action cannot be performed from within an external window."
i mean, don't even get me started about how completely crappy that is usability wise even if you are in the pdf tab!
i mean, don't even get me started about how completely crappy that is usability wise even if you are in the pdf tab!
i love how when i try to leave a comment on somebody else's blogger blog, the ui sucks ass: there isn't anywhere remotely enough room to comfortably edit the post.
i dunno if it is firefox (v2) or acrobat reader (v8) which is sucking the dirty donkey butt, but when i alt-tab out and back to the embedded reader it loses keyboard focus so i can't page down until i click in it again. haaaayyyttteee!
food for thought: how do you have your layer cake and eat it, too, in the world of software development?
it is way more trouble than i want to go to, myself, but i'm actually glad that somebody out there is exploring the anality of freedom in software; knowing the ultimate helps us understand the run-of-the-mill (and perhaps more usable (although i am apparently not talking about their web site when i say that!)).
Saturday, February 16, 2008
the unix package maintenance utility "yum" turns out to be a four letter word. i mean, rare case, my ass! (it doesn't matter to me if it is rare if it happens to me.) maybe rpms just freaking suck no matter what, and i should nuke centos in favor ubuntu or something?
bleck.
bleck.
i want a laptop skin. now, here's the thing: i want it to protect the laptop from getting discolored and filthy. so i want it not just for the outside back of the laptop monitor, i want it for the keyboard surround. apparently such things don't exist for my particular make and model; only stickers that go on the back so you can - i guess - feel all hip and cool?! whatever.
Friday, February 15, 2008
go ahead, kid: smoke some of that space crack and have some fun.
i don't want the monopoly to happen, but i have never ever thought that Yahoo! didn't mostly suck so i'm not going to shed tears since they still haven't clued in after all these years. kinda ditto for Microsoft. if they go the way of the dodo and we're all forced to name our children either Sergey or Larryetta it is because they did a damned good job (and/or bought people who were doing a damned good job).
ok, these folks are cool, even if i can't afford the goods.
so i think i've figured out what that thing firefox does really is (although this is now in firefox 3 beta 3, last time it was beta 2): i think it is first drawing the page in some text size smaller than the one i have set as the required minimum, and then it enlarges it. it happens pretty quickly and is pretty ugly and bad.
nice to know Haskell has its issues, like anything. ;-) as super neat as laziness is, there are interesting arguments against it being a language default (modulo the other discussions on that page about what, precisely, the style of laziness haskell uses as the default).
aircraft are cool - well, except for all the green house emissions, and all the crashing that goes on.
Thursday, February 14, 2008
oh, Java, you silly little bunt, you. (if i have to do this, i'd rather just be using Scala!)
ORM is just hard, and i really don't think Groovy's GORM fixes that fundamental issue. there are entirely too many details that you have to get right. i've never used RoR, but maybe that Just Works a lot better? Probably the real answer is to avoid getting into the whole problem by either using an OODB or avoid doing OO in the first place?
go blogger! yeah! i'm on the "Dashboard" page and... there's a link that says "Dashboard". which... goes to this same "Dashboard" page... which has a link that says "Dashboard", as if it were somewhere else...
i appreciate that the "report spam" button in gmail should be the kind of thing that magically does what you want and gets it all right. but i think it is probably provably impossible for that to ever happen. and since i don't want to miss important email, i end up not being comfortable with the idea of clicking "report spam" on something like a particular thread i don't like, rather than a particular person i don't like, that kind of thing. so "report spam" really isn't helping me with weeding out ass-hats who reply-to-all, that kind of thing. so when the bloodbath ensues i can tell the jury to blame gmail?
my google search: "nabble msil scala raould OR raoul"
google's freaking genius question: "Did you mean: nabble msil scala raoul OR raoul"
what! ever!
google's freaking genius question: "Did you mean: nabble msil scala raoul OR raoul"
what! ever!
please to be paying respect to wise elders, and maybe try to, you know, learn from history.
could Java generics suck more? i mean, they're doing a pretty good job of sucking so far, so maybe they can really go for the gold?
why is it that firefox 3 beta 3 shows regular " characters rather than %22 in urls now? i guess they want to make it as hard as possible for me to copy-and-paste those urls into actual hrefs?
or maybe it is some security fu?
hate.
or maybe it is some security fu?
hate.
Wednesday, February 13, 2008
world's cheesiest non-static race condition detector (more of a hinter, really), which could possibly be done with help from something like Semmle and some sweaty AoP action:
for each instance field:
for each unsynchronized method reading/writing it:
for each thread using the methods:
if 2 threads aren't the same, log warning
by which i mean if Thread A is in the getter and Thread B is in the setter and they aren't synchronzied then that sucks.
for each instance field:
for each unsynchronized method reading/writing it:
for each thread using the methods:
if 2 threads aren't the same, log warning
by which i mean if Thread A is in the getter and Thread B is in the setter and they aren't synchronzied then that sucks.
Java sucks big donkey private parts, but the community is so large that some of the tools freaking rock. (as an aside, that particular tool uses k-object sensitivity which for k > 1 apparently is slow, which makes me wonder if some day a group which took quality seriously would have massive machines not for executing the final code, but for executing all the static analysis and various dynamic tests they have to ensure their final code doesn't, you know, actually suck so much.) Not that anybody bothers to use them. I mean, I could really see working in Java in an environment that leveraged all those tools. Even though Java's object modeling capabilities suck, it doesn't have closures, they keep adding pearls on the swine, all that kind of stuff. Some of the tools use bytecode analysis which means they could potentially be used with e.g. Scala, although I'm not sure it would be easy to find out what source lines of Scala code caused the reported issue.
with these miscellaneous concurrency tools one might actually be able to make Java server systems that suck a lot less than usual. gosh!
the only problem is that these tools make me steaming mad, because they show that all these supposedly smart and trustworthy people have been using Java and thinking they are hot shit for how they do concurrency, and it is all a freaking sham! some people have known this for a long time (that's just one example of somebody with a clue, there are others c.f. all the process algebras), and nobody really listened. at least now it is more visible.
with these miscellaneous concurrency tools one might actually be able to make Java server systems that suck a lot less than usual. gosh!
the only problem is that these tools make me steaming mad, because they show that all these supposedly smart and trustworthy people have been using Java and thinking they are hot shit for how they do concurrency, and it is all a freaking sham! some people have known this for a long time (that's just one example of somebody with a clue, there are others c.f. all the process algebras), and nobody really listened. at least now it is more visible.
no, i'm not cluefull enough to say what the solution is in other languages, but please tell me you smell something stinky there as well?
if you are a Java nerd, here's a bunch more to read. you know, for fun.
so i have a label in gmail that has a space in it. you'd think, well, i'd think that you could use it in the search field as label:"word word" but nooooooo it turns out it is label:word-word. i wonder what happens if you then try to make another label that is literally word-word? it gives you an error dialog saying that a label of that name already exists. so that's stupid wrong broken hateful dumb. (but hey, it's free!)
there are entirely too many possibly neat things in the world.
firefox 3 beta 3 still downloads things to the Desktop even though i've told it to save things in my Documents folder on this here mac.
firefox 3 updated itself to beta 3. it has some improvements, but still has some ui issues that a casual user can find w/in 10 minutes of using it. the tabs are visually not connected to the page, but to the tool bar, which i think is questionable. the tabs are too short to be easily clicked on, especially with the two or three pixels lost to the fact that they aren't connected to the page. i then tried to look for options to change how big they are, but didn't find any, but did see that the "applications" part of the prefs dialog is utterly blank for a while the first time you click on it, so it looks either broken, or like there is just nothing there. when i went back to that later it had stuff in it, however. so i guess it was just slow. which means it should have shown a wait cursor or something, rather than just a completely blank tab panel.
Tuesday, February 12, 2008
always fun to look back on software shenanigans, including the ones that are funny because they were at our enemy's (Soviets, MIT, whatever) expense.
while i sort of commend people who are doing something about accessibility [1][2], it bugs the crap outta me that they have to do it that way at all: i think one of the basic points about the web browser and the idea of html was to give the end-user the control of how things appeared. but that has been nicely subverted by all the designs out there.
indictment of current operating systems and user interfaces: you install some patches and then tell it to reboot and walk away to do something during that rebooting time, and when you come back it is saying "hey, i didn't reboot because there are some programs still running" and then you have to manually tell it to actually reboot. so now you've wasted more time rather than less.
Monday, February 11, 2008
maybe if I actually were Tim Sweeney it would be OK, but that-all sorta tells me I would not enjoy working on a video game.
Friday, February 08, 2008
Flash drives me nuts (when in a browser at least) because it doesn't seem to support the keyboard shortcut for "select all" in its text fields.
Thursday, February 07, 2008
for some reason, this makes me think of the "i'll tell you about my mother" scene at the start of bladerunner.
i think typography and logos are neat (and I like the old Canon rangefinders).
i think the format and ui and interaction and just the whole deal end-to-end of google gmail+calendar events is horrible. the email you get when somebody is trying to invite you to something is overwhelming and confusing, and even worse when it is an update (hard to see what the difference is vs. the original invite), and then the ui when you click yes to add it to the calendar is also horrible. the feedback the whole way through is less than reassuring or informative, too. it all just kinda really super sucks.
and i just don't think it should be that hard to make it simple and basically work. i swear, Outlook does a better job. well, almost. maybe. kinda-sorta.
and i just don't think it should be that hard to make it simple and basically work. i swear, Outlook does a better job. well, almost. maybe. kinda-sorta.
i'm not smart enough or experienced enough to get off this merry-go-round that is in my head with respect to programming styles. there's OO which can be nifty, but often has lots of problems, both in and of itself, and via the available implementations of it (Java, C++). so, then there's functional programming, which seems decent. so, then i think of O'Caml since it seems to balance well between the theoretic and the pragmatic, but then i remember that it can't do operator overloading. so then i look at G'Caml again, and see that it isn't really going anywhere (like, such that i'd feel happy using it to try to ship a product)? so then maybe it is on to Haskell? but that seems a little too academic, if you will pardon the off-the-cuff judgement, and that i should really just go with Scala... which, in some sense, has be right back with OO?
grn.
i guess for my purposes what i would like right this second would be Scala plus really freaking good support in Eclipse with all the refactoring things, like the ones available for Java.
grn.
i guess for my purposes what i would like right this second would be Scala plus really freaking good support in Eclipse with all the refactoring things, like the ones available for Java.
it is cool that i can get new music through pandora or last.fm (well, i could if the uis didn't kill me, but that's another story). but the sad thing is that i'm playing it in the background, and it is mixing up artists per track, so i have a hard time ever really knowing what i'm even listening to! on the other hand, if i go and buy the album or tracks or whatever and more manually listen to them i'm then more involved and likely to remember who it is. so i guess i'm doomed to be an old geezer who doesn't really know crap about new bands.
oh. my. god.
there is like a 2 pixel tall line between the tabs and the page in firefox (3 beta). if you somehow manage to double-click on it, when you were actually trying to click on either a tab or the page, a new tab opens.
completely insane.
there is like a 2 pixel tall line between the tabs and the page in firefox (3 beta). if you somehow manage to double-click on it, when you were actually trying to click on either a tab or the page, a new tab opens.
completely insane.
one problem with really dynamic languages is you can't be sure if what you are seeing is a bug, or a feature. ;-)
all i'm saying is, using toString() should be considered harmful, i think. the problem is that later on you are going to want to use it for something else, and you won't know what-all it has been used for already, everywhere. it just doesn't have a sufficiently nailed-down spec.
it bugs me no end that this MacBook Pro has the eject button on the keyboard just above the delete key. so i hit it by accident often enough for it to be annoying; a big fat eject icon gets drawn overlaid across the whole screen, and the drive makes a mechanical puking noise. while i guess it might spoil someone's aesthetic sensibilities to move the key so it isn't integrated into the rectangular keyboard boundary, to them i say "piss off."
some random food for thought, and worth at least what you pay for it.
programming languages suck. they don't let us talk about things in a natural way. like, instead of saying "does this person have the same name as the other person?" (which is a long thing to say, now that i see it) i have to write personA.getName().equals(personB.getName()) (and worry about nulls e.g. if this is bog standard Java). it comes down to (at least) two hurdles. the first is that natural language is woefully nebulous. the second is that we can't easily build up our source code into a general naturalish language. maybe the best we can do is make a DSL for it. but then we'd have to figure out what is in the DSL and what is not; obviously it will be a restricted vocabulary and grammar. depending on just how restricted it is, it could still sorta kinda suck. so i dunno. it is a hard problem. but i'm pretty tired of having to read code like that Java snippet. and that's a pretty simple example.
the google cartoons for special events are cute. but i guess they don't check to see how they really look at different scales; the one for the Year of the Rat looks possibly like a rat putting its head into a guillotine in the smaller version of it.
i think it would be neat if there were a tool which let people easily play around with syntax for a programming language. like, if you had some standard definition (BNF or whatever) of Java, Python, Lisp, etc., you could load the definition into this utility program which would then let you try out adjustments and alternations.
it would be a real exercise in usability, trying to make something geeks-but-not-plt-geeks could use.
for example, java looks ugly with all the () and stuff when you have a long line. if you have foo.bar().baz( pdq.xyz().lmn( a, b, c ) ) would it look any better in some other format?
i'm not saying that it would rescue the language, because the semantics would still be the same, but sometimes there might be halfway usable semantics which are obfuscated by painful syntax.
maybe?
(for Java, I'd also at least do things like maybe try to get rid of "new" per Groovy (although sometimes it helps to be able to search textually for "new"), and try to do some really simple type inference so that you could write foo = ArrayList<Integer>() and foo would be a List<Integer> (yeah, and why not a Collection<Integer>? I hear you ask).)
it would be a real exercise in usability, trying to make something geeks-but-not-plt-geeks could use.
for example, java looks ugly with all the () and stuff when you have a long line. if you have foo.bar().baz( pdq.xyz().lmn( a, b, c ) ) would it look any better in some other format?
i'm not saying that it would rescue the language, because the semantics would still be the same, but sometimes there might be halfway usable semantics which are obfuscated by painful syntax.
maybe?
(for Java, I'd also at least do things like maybe try to get rid of "new" per Groovy (although sometimes it helps to be able to search textually for "new"), and try to do some really simple type inference so that you could write foo = ArrayList<Integer>() and foo would be a List<Integer> (yeah, and why not a Collection<Integer>? I hear you ask).)
we should avoid seeing everything as a nail, and the way OO has been done with Java and C# is pretty yukky, but i wonder if a really extreme OO system would actually be pretty powerful if it were under the right conditions. like, if you really did stop writing procedural code in Java maybe things would suck a lot less? (on the other hand, i strongly suspect that Java's anemic flexibility would probably make you want to shove pointy sticks into your own eye sockets pretty quickly - you'd be trying to be a good OO person only to face horrible obstacles from Java itself. so maybe something more like Smalltalk or Scala.)
firefox (3 beta) is doing this really creepy thing where sometimes when i close a tab the redraw flickers in such a way that it almost looks like two tabs have closed. not good feedback to the user. (guess i should go see if there has been an update...)
i kinda hate sites which get all cute with how hyperlinks are rendered (like when you mouse-over the ones up top).
it kills me that i use google to search for "xyz-pdq-abc googlegroups.com" and it gives zero results. then i search for "xyz pdq abc googlegroups" and it turns up a result which has a url like "xyz-pdq-abc".
maybe i'm unlike other people. i mean, i assume so since the mac os x ui is killing me: i pretty much want any un-docked window to be in the "Cmd-Tab" list. (well, at least i think i do. maybe it would end up killing me if that wasn't the case.) it seems like windows is more better for me generally in this regard.
i dunno how it works for anybody else, but i swear the google maps interface sucks ass. the fact that they use the scroll wheel to zoom rather than scroll kills me. their interaction for getting directions sucks ass; trying to get it to do directions along the roads i know i want (so i can send the directions to somebody else, capice?) is a nightmare of super suckitudity. the flow of how you get information about particular items on the map often doesn't do what i want (for example trying to copy text out of that overlay can be difficult because it takes clicks as an action rather than just as a setting of the text cursor). also, the way it figures out what i'm searching for based on what i've previously searched for is whacked - i cannot fathom when it does vs. does not grok what i'm really looking for. it feels completely arbitrary when it works vs. when it goes off into (from my perspective) complete and utter la-la land. etc.
firefox (3 beta) is killing me. when i switch tabs, it forgets where the cursor was. or maybe it is gmail's fault: i'm switching between a gmail tab where i'm composing directions, and a google maps tab. when i go back to the email the cursor is gone so i can't just start typing where i left off, i have to click.
Wednesday, February 06, 2008
i love the fact that because of differences in line endings and everything, you pretty much can't have a README file that will work nicely across all the major OSs: either things don't get put on new lines, or you see ugly control characters. maybe it should be a README.jar which when run prints out the message, ha ha, whimper.
pure suck: i end up going to a Microsoft web page while looking for some ODBC drivers. the page has a big fat advertisement for Silverlight floating over the top of it. then, the ad starts to descend herky-jerky down the screen. i guess it is loading stuff or evaluating stuff or something, causing it to thrash and stutter the slide animation? the result of which is that it is hard for me to just click on what i like to think of as the "EFF OFF!" button to close it.
hate.
(the extra kicker is the the page has urls in it to documentation about things, but they aren't hyperlinks, they are raw text. oh, i'm sure with Silverlight things won't ever suck ass in basic ways ever again, i'm sure, i'm sure!)
hate.
(the extra kicker is the the page has urls in it to documentation about things, but they aren't hyperlinks, they are raw text. oh, i'm sure with Silverlight things won't ever suck ass in basic ways ever again, i'm sure, i'm sure!)
i'm composing email in gmail. i have Person A and Person B in the to: line and i'm trying to add Person C and gmail insists on doing auto-expansion of what i've typed of them to be Perrson A. i'd think that since Person A is already in the to: list that shouldn't show up again as a completion.
of course, i'm sure there would be days when if they did what i want right now i'd be pissed off that they are broken that way. usability is hard.
of course, i'm sure there would be days when if they did what i want right now i'd be pissed off that they are broken that way. usability is hard.
good thing the version of POI just released in 2008 still doesn't support Java 1.5's enhanced-for syntax.
of course, the real eff-u here is that Java 1.5+ itself doesn't have magic ways to coerce Iterators into working with enhanced-for. i mean, come on, people. let alone that you can't find out what index the enhanced for loop is at. all in all, Java has this habit of making a big deal out of some feature that in actuality just completely isn't all that.
of course, the real eff-u here is that Java 1.5+ itself doesn't have magic ways to coerce Iterators into working with enhanced-for. i mean, come on, people. let alone that you can't find out what index the enhanced for loop is at. all in all, Java has this habit of making a big deal out of some feature that in actuality just completely isn't all that.
i'd like to nominate the apache site for so consistently being a less than ideal information architecture. any time i try to get what i want from a project there, be it a download, or tutorials, or whatever, i find it hard to find what i want.
Tuesday, February 05, 2008
"Error: Your Password does not meet our requirements. Please review the Password Guidelines and then enter a different Password."
with, of course, no link on the page to the Password Guidelines. you know, like if the freaking words "Password Guidelines" were a link? way to go, the new AT&T.
oh, wait: there's a miniscule "?" icon that turns out to be the link. argh!
with, of course, no link on the page to the Password Guidelines. you know, like if the freaking words "Password Guidelines" were a link? way to go, the new AT&T.
oh, wait: there's a miniscule "?" icon that turns out to be the link. argh!
the expression problem is a fun one in that it shows how both FP and OOP are sorta broken in opposite directions. while things like Tom (the old one, not the Java one), Sather, Scala, O'Caml, etc. claim to have sorta solved it, they all look sort of sketchy to me from a usability perspective. i think it is a hard problem from that vantage point. so i wish i understood Vesa's point to see if it is the crux of the nugget.
could we do RAII even in a GC world? for example, the program is leaving a particular scope (e.g. {...} in Java) and it might be neat if you could tell the system to finalize things on scope exit, like to make sure you've closed the file you opened. you know, some kind of RAII thing. you could just run the GC at every scope exit and anything with zero ref count should then have the chance to have the finalizer run. is the problem that there is too much work to do when GC is run? what if you could reduce the effort required? what if you only checked the local variables, and left everything else to the next "normally scheduled" GC?
my experience with asymmetric aspect-oriented programming has pretty much made me think that one should not use it. the only thing i'd use it for is to make private methods public for unit tests. otherwise, like other powerful tools such as C++ templates, it causes too much noise at runtime, leading to pain when you have to use the debugger.
i wonder if symmetric AOP will be any better? or should we all just be writing objects with no private anything, and using only multi-methods?
i wonder if symmetric AOP will be any better? or should we all just be writing objects with no private anything, and using only multi-methods?
always interesting to read about what not to do; learn from the past.
i continue to be frustrated every time i have to write a conditional in ASCII.
all i'm saying is, any language which doesn't give you something like the lisp/scheme "let" construct to make local functions is pretty freaking crappy.
Subclipse continues to suck in surprisingly basic ways: the dialog box for entering check-in comments doesn't support undo/redo.
Monday, February 04, 2008
when i'm downloading say a PDF in firefox, the dialog gives me the option of either viewing the thing, or saving it to disk. which to me makes it sound like it doesn't save it to disk in the first scenario. it actually does, i guess, which technically makes sense, but the ui feels wrong and sorta unsettles me every time i read it.
i do a search for something in my blog (this one right here, yes) that gets no results. the results page in no way shows what my original search was, so adjusting it isn't easy if i'm scatter brained at that moment. keen usability, for sure.
so. what is actually fundamentally new out there in programming languages? (not that i actually think syntax has zero importance.)
i guess the two things on my mind are:
i guess the two things on my mind are:
- Concurrency, of course. How to have it be easily and robustly: retargetable (i.e. across arbitrary concurrency architectures, doing adaptive deployment), distributable (i.e. handling the Fallacies), debuggable (i.e. deterministic replay, being able to attach debuggers to all processes at the same time and monitor them in some meaningful and successful manner), provable (i.e. you can avoid runtime deadlock, or livelock (pick any one, unfortunately)). [Erlang, PL3, CSP, Occam, FDR, etc.]
- Making it less of a manual task to take care of the runtime issues at authoring time. That is, to have just-in-time data structures and algorithms. Of course, logging enough so you can reconfigure on the fly is going to cost a lot, and debugging a system like that is going to be harder. [HotSpot, CHAOS++, etc.]
fun computer history document of the day: HAKMEM. (er, OK, it is actually more on the math-y side, yikes, run away!)
it always helps my understanding a lot when somebody kindly goes to the trouble of enumerating the options. some day i gotta do that web site which is nothing but tables of such things.
my billion dollar late night infomercial idea is to sell a cleaner for cleaning other cleaners: cleaners all the way down.
if you are going to do something concurrent, i'd suggest the actor model over the e.g. Java-esque shared mutable state thing with monitors if only because you'll get sick and tired of typing the word "synchronized" all the bloody time. (let alone because of the inevitable bugs in that approach.)
mac os x kills me when it tries to look cool but screws the usability pooch. for example, the modal dialog boxes which animate themselves into and out of existence. first, they are slow and the buttons on them are moving while they animate which means if i already know what button i want to click on i have to wait for the animation to finish before i can know where to click. second, they aren't movable which means it can cover information you need to know to make the decision the dialog box is demanding of you.
nice how blogger has all the fancy-pants stuff for template and colors and things. but what if i just want the colors and fonts to be whatever the browser wants? how do i turn off all font and color settings?
amazing how the voting machine debacle continues to screw the pooch in new and exciting dimensions.
Sunday, February 03, 2008
interesting to see other people besides just me wondering if Scala is too much for ordinary mortals.
is it just that polymorphism is hard?
are generics somehow better? like, should i just be using FP with generics rather than OOP with polymorphism? hm. what does Scala have over O'Caml's virtual/row types?
is it just that polymorphism is hard?
are generics somehow better? like, should i just be using FP with generics rather than OOP with polymorphism? hm. what does Scala have over O'Caml's virtual/row types?
hey, pretty neat how Eclipse's way to install extra features seems so not usable to me. The instructions you read (and this is probably more the fault of the Eclipse population at large) for how to install things can be quite different; sometimes you are supposed to drop the zip somewhere as-is, sometimes you are supposed to unzip it, sometimes you are supposed to add a new remote site to your list. Then (and this is just Eclipse itself sucking) the UI for managing whatever you might have tried to get installed sucks because it separates things too much; you have to know what menu item to choose too early to successfully do whatever task you had in mind, actually. I can sorta understand it all from a technical perspective, but I don't think it really works from a down-to-earth usability angle, really.
and it really sucks that it tells you X can't be installed because it needs Y without actually apparently having the (age-old in Linux) ability to go get Y for you right then and there if you want. wtf?!
and it really sucks that it tells you X can't be installed because it needs Y without actually apparently having the (age-old in Linux) ability to go get Y for you right then and there if you want. wtf?!
nice that things like last.fm can't even find close matches (off by one letter) when i'm searching.
hey all you supposedly hot-stuff auto-radio-station-making sites, here's a free usability feature clue: how about just adding some simple buttons like "faster" and "slower" etc. so you can keep the basic genre but adjust the overall tempo of things, ya know?
Saturday, February 02, 2008
if you've never run Lisp under SLIME, it is worth it just to see the initial show-off stuff once. small things, but really cute and cool when you aren't expecting them. oh, wait, i guess that means i spoiled it.
Friday, February 01, 2008
it bugs me that i'm trying to remove packages in Centos 5 and the package tool briefly flashes a dialog box showing the progress of downloading dependency files. presumbaly there aren't any actually downloaded since i'm removing things, and indeed the dialog box goes away immediately, but it is all just kind of a bad experience.
neat to learn that there are alternatives for doing dependency injection in the Scala world (more). dang, i need to get on that bandwagon!
Subscribe to:
Posts (Atom)