Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Businesses

Journal Journal: ProVantage saves money

So there I was, with too many open projects, contemplating the purchase of a 160GB 2.5" Seagate Momentus drive. This laptop needs more storage, so why be stingy?

A little bit of poking around, and I end up at the ProVantage website. And there they clearly point out that if I want to offer to give them money, I must disable my Javascript-stripping proxy and enable Javascript in my browser.

Nice of them to be so clear about it. It saves me a lot of time and aggravation, plus, since I won't do that, it saves me all that money. I mean, if they don't want my money, that's fine with me, I'm sure I can find something else to spend it on, and it's not like I don't have sufficient projects to consume my time anyway.

So it's a big thank-you to provantage for not wanting to take my money.

Must be nice to be so flush you can treat customers like marks.

User Journal

Journal Journal: Remote Saga Continued

Where we left off: I wanted a remote for my JVC TV, and I discovered that the JVC website sucked.

But that's not the end of the story.

I still wanted a remote. I googled for the TV's model number, and got a couple of hits that claimed to have the remote for my TV. I went with the less-reliant-on-Javascript site -- PartStore.com -- and by searching on the TV's model number, I found a remote that was "compatible".

Yay.

"Compatible" ought to be good enough. All I really need is a way to navigate the menu so I can change aspect ratios and suchlike without having to stand next to the TV. So I order one.

It arrives in just a couple of days. Far faster than I expected.

Yay again!

So I unpack the remote, verify it's what I ordered, and go to try it out. It's even a JVC remote.

"Compatible" obviously means something different to the folks at JVC. There's virtually no useful feature of my TV that matches up with this remote.

A quick email to the support address and I go to bed, annoyed and frustrated. I am not a happy customer.

I get back a response informing me that I should call the toll-free support number. This I do.

And this is where the story gets short... after a couple of minutes on hold, I am on the line with a real human being. A helpful human being. He determines that yes, I did get the wrong remote for my TV.... and takes care of it.

I'm feeling like a customer. It's amazing. I was expecting to be told I was SOL, that the Computer Does Not Make Mistakes, and so on and so forth, and to end the evening in a lousy mood and a worse temper.

It's almost a let-down. Problem taken care of. End of problem. Finis.

The new remote arrived in two days. It's exactly the remote I need. As a bonus, it also can control the JVC VHS deck. (The remote that came with the VHS deck died. The universal remote isn't. But this one works. It's a bonus.)

This kind of service needs to be encouraged. I'm now wondering what other parts I need. They'll be the first stop.

But I won't use their webpage to order. I'll call to make the order.

And I'll ask for Don.

(The one downside of this is the FedEx website. Javascript Is Required, or you have a ton of manually parsing some convoluted javascript and source. Someone should take a stick to someone's kneecaps and knuckles over at FedEx.)

Businesses

Journal Journal: JVC Support Page

Well, it turns out I need a replacement remote for my JVC television. The so-called "universal" remote can just about power the thing on and off; I still need to go up to the TV and use the "menu" interface to change the aspect ratios. This is tedious and error-prone and distracts from the movie-watching experience.

"No problem," I say to myself. "I shall go to the JVC website and purchase one."

You can see it now, can't you? What a silly boy I am. I get to the JVC website, and it looks pretty, but I can't get it to do anything useful. No doubt I'm expected to "have an experience", but I can't see how that would benefit anyone if they don't make it dreadfully easy for me to part with my cash. I want to have experiences using their product, not their website.

I wonder what sort of thinking goes on in businesses these days. Has no-one pointed out the futility of having a pretty website that doesn't work for their customers?

Or do they expect that frustrated and annoyed customers are going to spend more money, and go around telling people (even strangers) how great their company is, than happy and satisfied customers?

What alternate dimension is this, and how did I get here?

Security

Journal Journal: TSA

So far as I am concerned, the goons in the TSA are thieves and vandals.

It's either that, or they're incompetent.

If you travel enough, you might begin to see a pattern. Stuff disappears when TSA gets involve -- not the expensive stuff, necessarily, but little things. Things that may only have sentimal value. And stuff gets damaged. Not everytime, surely, but at a high enough level to be aggravating.

I'm not saying that all TSA employees gleefully vandalie the contents of suitcases, or steal trinkets and suchlike from duffel bags. But it seems that some do, and the rest apparently don't care. Trying to report this sort of thing puts you into a voice-mail hell, and contacting a human tends to result in a "so what?" attitude.

(The alternative, that the TSA inspectors are, in general, incompetent to pack suitcases, brings up a worse issue -- if we're hiring incompetent goons for security, how does that make us any more secure? Assuming incompetence has far scarier implications... I don't want to go there.)

It's preposterous that by travelling, we should be expected to give permission for some faceless cretin to damage, steal, or lose our possessions, despite all the money we spend buying quality luggage to protect those possessions.

I think we need some basic rights back in our travel. Nobody, but nobody, should be allowed to search your possessions without your presence, and if they damage your possessions, they should replace them and be penalized for the damage. Automatically. Making someone run a bureacratic gauntlet is just another penalty for daring to complain. And that's just wrong.

User Journal

Journal Journal: "I waaaaant" Redux.

Well.

It seems that thinkgeek has a laser-keyboard widget. Yay! There's one problem taken care of right there.

Alas. There's still no way configure it with a non-Microsoft OS. Custom drivers still required, it seems.

But... it's looking better. Maybe the next version of OS X will fully support this sort of device naturally. We'll see.

User Journal

Journal Journal: Begin Bug Fixed

Well.

Some time ago, Microsoft didn't think things through, and introduced a bug into Outlook that caused problems if you used the word "begin" and it happened to end up at the start of a line, followed by a couple of spaces. As they redefined the world in their terms, they called this an "attachment", and this caused problems.

See http://lists.jammed.com/ISN/2002/02/0042.html -- essentially, the Microsoft "solution" was to stop using the word 'begin', or to capitalize it no matter where it was in the sentence. Instead of fixing the bug, they tried to change the language.

That just pissed me off. I started using "begin quoting..." as an attribution line. This pissed of some people, but they weren't generally willing to file a bug report... so screw 'em. Others started pissed at me, but got pissed at Microsoft after discussing the issue. A brief search, and I found someone actively trying to get others to join in at http://www.ichimusai.org/oe/.

However.

It seems that Microsoft finally fixed the bug: http://msmvps.com/blogs/spywaresucks/archive/2005/06/18/53813.aspx

Huzzah!

Handhelds

Journal Journal: I waaaaant!

I want one of these.

But I can't have one. First, not available in the USA. Wah! No explanation given. Oh, well, there are ways around that.

But.... it requires M$Windows to install drivers on PDA. Wah! I don't do MSWindows, and I do my damndest not to do business with companies that demand that I do do MSWindows.

It's not like I'm picky -- I have several Macs, several Linux machines, and several Solaris machines. I've successfully purged the microsoft operating systems from my home network (for usability, stability, and security reasons).

Bad vendor. No biscuit.

Software

Journal Journal: SCALE musings

Well, SCALE was interesting, educational, and fun.

The CA Cert folks had a booth, doing a brisk business in verifying identies. Nice guys.

The panel on OpenVZ was interesting, and the product seems to have quite a nice feature-set. And the logo is just gosh-darned cool.

Hans Reiser talked about Reiser 4, mostly about performance and efficiency... stuff I regard as interesting in an abstract way but not so really important for home use... and had a short digression into the elegance of the design, which *is* important, as that has a strong bearing on maintainability and stability, which are important for home use.

And then in response to a question at the end from jaqque (easily the best question of the presentation, in my opinion), talked a little bit about views and masks. This is Way Cool stuff, and is certainly a reason to look at Reiser4.

The most impressive panel that I attended was about using dtrace for debugging linux applications by running Linux under OpenSolaris using the BrandZ container.

Every developer should look at what dtrace does, and how well it does it, and then ask themselves why they don't have a solaris or opensolaris box -- Sun put an extremly powerful tool into the hands of developers, it should be used.

Every administrator should look at what dtrace does, and how well it does it, and them ask themselves why they aren't running their critical services on a solaris or opensolaris box -- Sun put an extremely powerful tool into the hands of the administrators, and it should be used.

If managers aren't getting demands from their developers and administrators for (open)solaris machines, they need to point their developers and administrators to dtrace.

Oh, and there was a toaster running BSD (NetBSD I think) on the exhibit floor.

Software

Journal Journal: TurboCAD

My wife and I were given TurboCAD as a gift -- mostly because we keep talking about remodelling the house, and bashing out the various ideas takes a lot of paper.

What are my impressions? Well... I haven't gotten very far, yet, but already I'm forming some significant impressions: The installation process is hindered by copy-protection and mandatory registration. You have to let the software vendor (IMSI or somesuch) snoop on your system. Well, okay, just once.

I don't object to paying for software (I rather approve of the idea, considering), and I realize that a lot of people out there do, so a reasonable level of care is okay. But I had a sneaking suspicion. . .

So I installed it on our (shared) Mac Mini. I logged in as the administrative user, and did the registration-all-of-our-customers-are-thieves-and-scum dance... and then tried using it. Whoops! It's not REALLY installed, I have to type in an obnoxious string. And then my wife tried using it, and look, here it is that dialog again! Then me... and again! WTF?

In short, the copy-protection mechanism is designed to be unfriendly and obnoxious. We'll have to see if they get any worse, but considering that I tried to find a place to leave feedback on their website, and noticed that "support" costs $1 per minute...

Y'know, I like recommending software to friends and acquaintances. I like telling folks "Hey, here's a good program, go buy it." I've barely started to use this program, and already, I can tell I won't be doing that with TurboCAD. I'll be telling people to go find some other software -- just so that can avoid the experience of paying for software broken in such a deliberate and fundamental manner.

Features? Who cares? This is the sort of treatment that customers should absolutely not put up with. And calling to complain will cost me $1/minute? That's a disincentive for me to call and a disincentive for them to provide me with actual, reasonable, timely support.

Something to look for boys and girls: if it says IMSI on the box, put the box down and go get some software from a vendor that doesn't despise you. Or at least one that doesn't shuffle the task of copy-protection off on to the least competent programmer in the house.

This is why open-source software will win -- given a choice between this and free-as-in-beer-and-won't-treat-me-like-scum software that does half the job in twice the time using three times the resources, it's a no-brainer. I'll take mutual respect any day of the week.

Programming

Journal Journal: Weblogic and JMS

Interesting problem this week...

It appears that one cannot connect, via JMS, to two separate Weblogic Appservers. At least, I have code that can connect to one, the other, but not both at the same time. So far I haven't found any documentation the describes someone doing just this (but then, the Web often hates me).

I have found a description of talking to two JMS servers at once, but they used a common JNDI service, which is cheating a little bit.

Very odd...

User Journal

Journal Journal: User Interface Policies

I just ran across an article on the evils of cut & paste, and I find my reactions mixed. I don't recall reading anything by Jef Raskin before, but he seems to be an articulate guy, and his argument stands by itself.

He starts off talking about UI faddishness, which I agree is a problem, and then discusses the problem with cut & paste. Namely, it's a bad idea, because while something's cut, you don't remember what it is, and you're likely to lose it.

To me, this borders on calling the user stupid, which seems a bit strong.

He then discusses the "often-proposed fix" of select-and-drag. He then discusses the problems with select-and-drag, and uses that to introduce an example of a "classic mode error".

Now, although I loathe select-and-drag, I haven't made this 'classic' error he refers to -- when re-selecting text, I first select some text, or click in the background, or do something to unselect the text. Handling the modes of "no selected text/have selected text" isn't really a problem for me. I have, however, accidently selected and then moved text (click-and-grab to move, except that the the click accidently strayed into an area where 'select' was an option), which is one of the reasons why I don't like select-and-drag.

Anyway.

He then goes on to describe his preferred solution -- the 'move'; that is, the selection doesn't go away until the new insertion point is specified. He goes on to point out that he's eliminated one command -- you use a move, instead of a cut AND a paste.

Well, sorta.

First, I don't buy the modes-are-always-bad line of thinking. Too many modes are, but no-modes/one-mode are almost just as bad -- there's a happy middle ground in there somewhere. But that's a different rant, for another day.

Second, then, is that it's not necessary that the buffer used in cut & paste be "invisible". For a long time, I used a tool called xcb (the X Cut Buffer) that allowed me to look at what I had cut. It also allowed me to keep several cuts on hand, so a new cut wouldn't necessarily cause the previous cut to be lost. The only problem with xcb was that it took up screen space, and there was a tradeoff in sizing the buffer display large enough to be useful, and small enough to stay out of the way.

But this leads us to consider some other possible solutions. The buffer doesn't have to be invisible. Multiple buffers can exist to be selected among, and/or a stack-approach could be used to keep all buffers around. After all, most of the time, you don't forget what you just cut.

Third, the 'move' command "solution" doesn't eliminate a command from your toolset, only from that one operation. You still need a command to cut-and-discard, and you still need a command to duplicate a chunk of text. When programming, we sometimes talk about the "minimal necessary set" and the "minimal usable set" of functions.

When you build an API, you want to keep in mind these sets. Otherwise, you clutter up your API with a bunch of convenience functions that do what you could do with only a little more work. The cluttered API is harder to learn and harder to use than a simpler API, especially for those who aren't experts in that API. Even those who are moderately familiar with the API will have to spend time looking through the options to find what the "best" way is.

When we edit text, we want a way to delete a chunk of text. Backspacing over a whole page could do the job (minimal necessary set) but being able to select-and-delete saves a lot of effort (minimal useful set). Likewise with copying text. We could just type it in again (minimal necessary set) but a paste saves us a lot of effort (minimal useful set).

So our "useful" set of commands for editing text provides a delete and a paste (select is implied). If we paste the most recent selection, we get our 'move' functionality for free, and our commands work on a very simple and consistent model.

If we add in our 'move' command, it looks like a more complicated version of what we can already do: select, paste, delete. If we choose to force our users to use the move command instead of the cut & paste sequence, we can say that the delete command discards the most recent selection entirely, and our user now needs to remember three commands instead of two.

Ah, that's only one more command! Where's the problem?

Not there, not really. But if every sequence of useful commands is replaced with its own command, we have done the user a disservice and made their life more complicated than it needs be.

That being said, I don't dislike the idea of a move command. I think it's a much better solution than select-and-drag, and I would use it in preference to select-and-drag (although I wouldn't avoid cut-and-paste as well, just select-and-drag). But a better solution yet would be to have a non-invisible buffer-stack, as that offers up new ways of working on certain problems, and doesn't presume that the user is an idiot.

IMNSHO, of course.

User Journal

Journal Journal: Version Control Tools

Recently I had an interesting discussion about version-control features. One feature that's frequently brought up is "file renames", and that's a feature that I just can't seem to see my way to considering all that useful.

First, if you're renaming a lot of files, it means you didn't do much thinking about your code before you started. As that seems to be the way of things these days (thinking ahead is hard and should be avoided, it seems), however, that's hardly much of an objection.

Second, how do you puzzle out cycles?

Consider a version control tool -- vct -- that supports a "rename" capability. And further, consider two files, A, and B, that might be renamed.

% ls
A B
% vct rename B C
% ls
A C
% vct rename A B
% ls
B C
% vct rename C A
% ls
A B
%

We've just swapped two files. When we look at the history of "A", do we see the thread back to B, or do we see that A was removed and later replaced with B? It seems that BOTH bits of information are important, depending on the question being asked.

Lather, rinse, repeat. The history becomes terribly convoluted. Obviously, we need a "swap" capability as well. . . which leads us to:

Third, a file rename is only the simplest form -- what about splits, swaps, and refactorings?

If we buy that renaming is an important operation for a version-control tool to support, we can't stop there. As we've seen, a swap operation CAN be composed of several renames, but that's not efficient. Therefore, we're compelled to clamor for file-swap support.

But it doesn't stop there.

More often than file renaming, we have splitting. A file gets just too big, or perhaps it encapsulates two relatively independent concepts, so we split out the functions/methods/whatnot into two or more files. You don't necessarily rename the file, you just copy it and delete all the bits out that are in the other file, and vice-versa. We record this in the version-control system by saying something like "Extracted -related methods into ." -- obviously, that's not good enough. We need to add in an "extract" capability.

Along those lines, there's the refactoring operations that ought to be supported. Many refactorings are along the lines of "extract code", and surely this should be tracked by the version-control tool explicitly, rather than relying on the user to remember to correctly document what was changed and where. Some of the 'extraction' operations aren't quite that simple, however...say, the extracting of an interface from a class.

So the various refactorings need to be supported. We can see that "extract_interface", "extract_superclass", "extract_abstract_class", "push_method_up", "push_method_down", "move_method", etc. etc. will be capabilities that need to be programmed into our version-control tool. And since the list of possible refactorings isn't all that static, we'll want to have a team to keep up with the refactoring community so that the version-control tool can keep up. Or we make our tool pluggable so that all someone needs to do is to write a plug-in to handle the NEW sort of operation.

Of course, the tool is now so awkward and difficult to use, we'll have to invent a process to manage everything. Otherwise those pesky developers will just go back to making changes and annotating what they did when they commit their changes, rather than using the many useful options our tool provides them.

We'll have to do something about that.

User Journal

Journal Journal: Proactive versus Reactive coding philosophies.

One of the ways to divide the programming community up is to consider the role of proactive and reactive coding philosophies. That is, do you look ahead and try to guess the sorts of changes that you may have to make in the code, or do you worry not at all about such things until the time comes to actually make the change?

Critics of the proactive approach (and generally proponents of the reactive approach) often sneer when asking if it's actually possible to see the future. Crystal balls are a favorite metaphor. Eventually, someone talks about "programmer efficiency" and the "inevitable" requirement to 'back out' a generalization or an abstraction.

Critics of the reactive approach (and generally proponents of the proactive approach) scoff at intractable codebases and point out that rewriting everything is only suitable for trivial problems anyway. The phrase "highly coupled" may be heard.

Like most things, a balanced approach is probably best. Somewhere in the middle -- where we peer into the dim future with the lenses of past experience to choose a path (but not rails).

I believe that one's experience has a strong effect on which stance we generally disapprove of least. If we've been burned by Process, or vacillating customers, or non-existent requirements, we're going to have less objection to the looser, more reactive approach. If we've been burned by trying to maintain code written by people who know they won't be the ones to maintain it, and who eschew structure in favor of "make it mostly work then ship it", we're going to have less objection to the more constrained, deliberative approach.

Entertainment

Journal Journal: WebComics

Scott Kurtz is a Putz.

Fred Gallager needs to get some thicker skin.

Okay, so some backstory. Scott and Fred are both webcomic artists. Fred writes and draws MegaTokyo, while Scott does the same with PVP Online. Scott has a habit of shooting his mouth off, and Fred has a habit of collapsing from acute lack of self-esteem.

There's some backstory involved with a friend of both of them, and Scott tried to make a funny (or so he says) that (a) wasn't funny and/or (b) fell flat.

Instead of actually apologizing, he's decided that it's no big deal and all this has been blown up all out of proportion by the fans of MegaTokyo. See: [PVPOnline Forum] -- and if you poke around on his website, you'll see more.

Fred didn't really need to provide an impassioned defense of his side of the story -- and doing so apparently only indicated to Scott that he [Fred] is just a big whiner. I somewhat agree; I think Fred should have just said that Scott was trying to tickle his [Scott's] tonsils with his [again, Scott's] toes, again, and let it go at that. But he didn't, 'cuz that's not his way, and apparently admitting to failure in humor isn't Scott's way. No, it's that we don't understand his Italian-German sensibilities.

However, I think Scott is in the wrong here. He's basically accused Fred of stealing, in print, in such a way so as to damage Fred's reputation. That certainly looks like libel to me. I think Fred is legally and morally justified in taking Scott to court, suing for damages, and getting enough from Scott to retire on. (Of course, attempting that would only enrich the lawyers, so you can't really blame Fred for trying to explain. It won't work with the anti-MegaTokyo subset over at PVPOnline, and it isn't needed for the fans of MegaTokyo, but hey, Fred is just this nice guy.)

Scott has made a jibe at a guy who is too nice to take his words and shove 'em down his throat sideways. Picking on nice guys doesn't demonstrate a sense of humor. Quite the opposite in fact.

And another reason I think Scott is in the wrong has to do with his recent set of confrontations with "Wiley" -- the creator of the newspaper strip "Non Sequitur". Wiley has been taking subtle and not-so-subtle potshots at Scott, and Scott gets pretty wound up about it. You'd think that someone who gets upset about something might be a little bit careful about making someone upset in a similiar way.

This whole debacle has me thinking that Scott is just as much of a blowhard as he [Scott] thinks Wiley is. There's deep wisdom in "do unto others as you would have them do unto you" -- and it gets all the more obvious when it's not practiced.

All that being said, I enjoy all three artists. Non Sequitur is capable of some deep insights while making you laugh, PVPOnline is consistently amusing, and MegaTokyo has some of the best graphical storytelling I've seen since Sandman. All three are good, in different ways.

It's quite possible that I have the whole thing wrong-way-round; these are just my impressions from watching this mess take place. As a fan, I'm appalled at the whole mess. You'd think this was taking place on Usenet or something!

The Internet

Journal Journal: Rhyming

As I was going to the Internet for my kicks,
I found a machine with seven NICs,
Every NIC has seven IPs,
Every IP sent seven packets,
Every packet had seven bytes;
NICs, IPs, packets, and bytes,
What was my bandwidth like?

Slashdot Top Deals

"Plastic gun. Ingenious. More coffee, please." -- The Phantom comics

Working...