Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
User Journal

Journal Journal: Serious proposals to replace obamacare begin 49

The WSJ has floated an opinion piece offering what it calls a conservative alternative to Obamacare, that I think is the first time I've seen any conservative alternative except "Nuh-Uh!" Google news popped it up with a link to which seems to be some sort of glorified rss feed with an HTML skin, so I have no idea if the link will be good for anyone else in the future.

It is, in my opinion, a beginning. In the past, I've called obamacare the wrong answer to the wrong question. This article suggests extending the current employer tax writeoff so that everyone, not just the employers, can buy insurance with tax-free money. Then it goes a step further by means-testing a tax credit for the poor so they can buy privately operated insurance with their tax credit instead of getting Medicaid. I think this is a good start to answering the question of how to make it possible for everyone to get at least minimal health insurance (if they want it. This is the conservative version, remember).

It is still the wrong question, though.

User Journal

Journal Journal: 2.8 seconds of hate - bash-completion 1

In an effort to be fancy and helpful, bash now has context aware tab completion (in the bash-completion package on Debian). Based on where you are and what command you're typing, pressing tab will Do (what the completion script writer thought was) The Right Thing.

Unless what you think is the right thing was was the behavior of older versions of bash where you could do


and (eventually, ** is damn slow) get a list of all of the matching files. It also worked with [...] {...} ? or any of the other bash wildcards. You know, just in case you wanted to see what your command is going to do before you hit enter.

Now I have to ^U, ls ^Y, then ^Y, which takes about 2.8 seconds (including the realization that bash is just going to keep beeping at me if I keep hitting tab). Or disable fancy and helpful completion with complete -r

User Journal

Journal Journal: Two minutes of WTF 1

So I right clicked in an explorer window in windows 7 and went to "New >" on the menu and the submenu didn't open. I clicked it a few more times and nothing happened. I clicked it a few more times and the entire explorer shell crashed and restarted.

Wish I knew why the hell it sometimes takes 30+ seconds to get to "New Word Document" on my work computer.

User Journal

Journal Journal: 2 mins of hate: What can make me switch to a new RCS again 1

Three words: Four. Way. Diff.

Show me where my patch (before and after) conflicted with the last patch (via blame) before and after. Bonus points if you can show both complete commit messages. Extra bonus points if you look at the branch, figure out where it went wrong (at what point did my patch last apply cleanly?) and show me all the commits since.

Telling me shit's fucked up doesn't help anyone (that's what I got with cvs).

Telling me what I was trying to do tells me what I was trying to do, not what Bob was doing when he checked in before me, but at least I know what the hell I was doing when I did it months/years ago (this is where I am now with git rebase).

Telling me what the hell I was trying to do and what the hell Bob was trying to do, now that's what I need, because now I know what it's supposed to be doing when I'm done merging the code and can do so with a reasonable degree of confidence that both Bob and I will be happy with the result.

For my company's workflow, this would be the holy grail of revision control. I'd even be tempted to use a graphical tool to do it.

User Journal

Journal Journal: Today's two minutes of hate

git, a love/hate relationship. Right now, hating really really hard.

You can do all sorts of incredible things with it, but there's so much that seems obvious I ought to be able to do, but just can't see how.

Case in point: git rebase. This is an incredibly powerful tool that lets you take changes and apply them to a different branch, one at a time very rapidly (if there are no conflicts). If a conflict arises, the process pauses, tells you where it died, lets you fix it, then you git rebase --continue. EXCEPT you get half of the first line of the commit message (despite being on a 128 column terminal it cuts off at 80) and no hash or any other way (I can find) to look up the complete description of the current commit being fixed (other than aborting the whole thing, going through the complete log to find the commit starting with whatever message then starting again (rerere makes this not painful, just annoying)). Oh, and if you used a branch name, that branch name is MOVED to the new location.

Other case in point: git merge. This is an incredibly powerful tool that throws everything together all at once and lets you deal with the aftermath. Conflicts, conflicts everywhere and no explanation of what the code is supposed to be doing. Fortunately, someone made a git-merge-like-rebase script that creates a temporary branch, rebases it to the target, then deletes the temporary branch leaving you with the original branch where it was (like merge) but applying one commit at a time (like rebase).

Still, I just took 2 hours of work doing something that would have taken 2 days in CVS, thanks to git rebase (rolling out a new version of our code for one of our customers with a heavily customized application. Rebased their custom branch onto our new release branch, fixed all the conflicts where they want customers sorted firstname lastname or blinking red lights or whatever and done). Probably could have done it in 1:30 if I didn't have to go back through the log to figure out how to fix "Change order of fields so that customer rep appears before ". I'm working in more and more tricks to reduce conflicts every upgrade so hopefully I'll have it down to less than an hour soon.

So now I love it again.

User Journal

Journal Journal: Life post Google-Reader 5

So Google followed through on their threat to kill Reader and I ended up having to track down a new RSS feed reader. Having been bitten by the Cloud, I decided it'd have to be locally installed, after trying a few I've settled on FeedDemon (now discontinued, a shame) as "best so far".

The one thing I really, really miss about Google Reader (which in fact was the reason I started bothering with RSS in the first place) is that it had a bookmark you could set that would open the URL of the next unread item in your queue. Dragged the bookmark to the bar, and one click gets me to read something new and exciting (and middle click to read lots of new and exciting things in tabs). Sure, every time someone published an RSS entry without a URL google gave me a 500 error and marked every single article read, but hey, it was damned convenient when it didn't implode.

FeedDemon gives me a link to click on each article to open in its (embedded IE) browser, but as I go down the list of articles it doesn't automatically remove the read ones nor does it automatically add new unread articles unless I manually refresh the article list (maybe I'm doing it wrong?). It has a "Next Unread" button but it doesn't open the URL, it just shows the RSS item header and then I have to click it to open the URL.

Strongly considering taking some of what I learned in the Coursera python class a while back, this feed parsing library, and learning wxPython (platform independence!) and spinning my own. It won't do much, but it WILL have a button that launches a chosen browser with the chosen URL (thinking of making it a systray icon: left click to open next item, right click for menu, blinks when there are unread articles).

It could even pop up a window to display an article with no URL.

User Journal

Journal Journal: 20 seconds of hate: outlook, *again* 1

Hello, Microsoft. Please explain to me the reasoning why when a meeting is sent to people, they get a blank email with an .ics file attached, which is absolutely fucking useless to everyone not using a calendar app?


BTW, yes, I know about the option to turn ical off, explain to me why the FUCK you are incapable of sending a readable email with an attachment.

User Journal

Journal Journal: Today's two minutes of hate 2

In every version of it Outlook I've used, it stands out as being terrible at dealing with email in general (aside from the various exploits just from opening malformed emails). It's got rules that cancel themselves because the computer just woke from sleep and isn't connected to the internet (and therefore the rules are "invalid") to having a hojillion different sources of email addresses, none of them configurable or editable (Seriously, why can't I fix a misspelling in an email once it's been saved wherever the hell it gets saved?). Autocompletion of email addresses is a complete clusterfuck. I had to delete a customer from my contact list completely and start over because her email address changed and when I edited her contact, her record refused to come up when I'm sending an email (Doesn't come up when I type, doesn't come up in the contact list when I press the "To" button, but if I write her email by hand and choose "Look Up Outlook Contact" bam there she is complete with name and company information)

If it weren't for Exchange, I'd have ditched this shit long ago. Sadly, it's still the best I've got at dealing with scheduling meetings (at least as long as they're in our own time zone).

User Journal

Journal Journal: Today's two minutes of hate (yay backups!) 1

So years ago I needed a backup drive for my home computer after the last backup drive up and died on me, so I was possessed by idiocy and decided to get one of those external RAID blocks with two drives in it, RAID-1. Worked fine for years, now it's got a red blinking light on it and doesn't show up to the system anymore.

This is one of those things where foresight would have said "Hey, why are you spending 3x as much on drives when you're going to be stuck with a box with one red light to tell you there is a problem and no way to find out what the problem is". Hindsight says I'm an idiot.

At least it's just a backup.

Maybe next I'll get a LTO drive for a few thousand bucks for shits and giggles. Of course we had one of those at work that ate a tape. Better get two and take redundant backups...

User Journal

Journal Journal: Today's two minutes of hate 1

God damn where do I get a fucking ftp server that can run a command after an upload without preaching to me about how insecure yadda yadda yadda. I'm not running a goddamned anonymous ftp site (and even if I was, MAYBE I'd like to have a virus scanner run on whatever bullshit goes in and out!)

Currently using ProFTPd because mod_sftp appears to be the only way to get an sftp server with virtual users on Linux without using OpenSSH+PAM voodoo. mod_exec runs programs on every single little command EXCEPT the completion of an upload because fuck you. The documentation suggests logging to a FIFO and writing a program to read lines from the FIFO and acting on each line of the log. Great, only two problems: 1) proftpd shits itself if nothing is listening to the FIFO which means the listening program has to immediately reopen the socket when logrotate restarts proftpd 2) proftpd's xferlog format can't be changed and rather than doing any sane quoting, replaces spaces in filenames with underscores because fuck you.

User Journal

Journal Journal: 30 minutes of hate 4

I just spent 4 hours doing onsite customer training for a customer of ours who is transitioning from an ancient terminal-based software to our software. These customers had therefore bought all new laptops with all new Windows 8 to replace their old terminals. The decision to use laptops had been made because 1) the network infrastructure in place currently ran the terminals which were actually win95 computers plugged into a local network and using telnet to reach the server so wireless was necessary until the old equipment could be removed and 2) the computers running the old system needed to stay there until after the training was complete and they were ready to switch.

I estimate 30 minutes of that time was spent unfucking shit that went wrong when people who had never seen a GUI or used a touchpad in their life had their palms brush the touchpad and trigger random win8 gestures, opening the charms bar, opening bing, opening the start screen, and in at least one case, somehow closing the program window (or was it open somewhere but alt-tab no longer works in windows 8? Damned if I know!)

For the next round of training tomorrow I plan on disabling the gestures. Easy peasy, just a few SynTPEnh\ZoneConfig registry entries to change. And they say Windows 8 isn't ready for the desktop!

User Journal

Journal Journal: Today's two minutes of hate, redux 3

Customer: Your website is broken, I can't log into it

Me: What exactly do you mean?

Customer: I decided to work from home and when I go to your website it gives me this list of things so I clicked on the first one and it gives me an error when I go there

Me: It sounds like you put the address into google and clicked on someone else's site.

Customer: Well, what search engine am I supposed to use?

At this point, I was about to say "well, lady, whichever search engine that links to the actual website when you type into it" but then I realized the answer was "none of them". After all, how would you get people to click on your ads if you took them where they really intended to go?

I explained to her about Ctrl-L and pressing it before typing in a website. I think she got it.

User Journal

Journal Journal: Silly SQL trick 2

Tonight's task is to manually categorize a rather flat tree structure in SQL (currently two levels only) by reading the top level entry and assigning it and its children to a category. On a lark I gave this a shot:

update tree set category=1 where 5 in (id,parent);

and it worked in PostgreSQL.

Why? Because I'm sitting here reading the list of top-level entries in one window while using psql in the other and pressing up to edit the previous query. Before I tried that I had

update tree set category=1 where id=4 or parent=4

so I'd have to retype TWO numbers instead of just one.

User Journal

Journal Journal: Today's two minutes of hate 2

Today's rage divides evenly between:

  1. people who type site addresses into the search box instead of the address bar
  2. for not putting "join a meeting" link on their search engine landing pages

That's 15 minutes of my life I'll never get back.

Slashdot Top Deals

No line available at 300 baud.