Perl Programmer/Consultant
Remote System Administrator
Free Software
... contact me
 
  while ($making_other_plans) { life(); }
  location('ipsstb', '?_start=11');

 For Web Designers 2017-03-30 18:27:31 UTC Mail Delivery Problems? 

Friday, July 25 2014

Todoist, GTD, and Inbox Zero

I'm big on keeping my world in order. I want my email inbox to be empty every time I finish processing my mail, and I want all of my upcoming tasks to be committed to some trustworthy application that will keep track of them so I don't have to. That's one of the principles of David Allen's Getting Things Done, but it's something I started doing long before he wrote the book.

I developed my own version of GTD in the 1980's when I inherited the highly dysfunctional service department of an electronics manufacturer. It was explained to me by my employer's production manager thusly: "Service is an evil, a necessary evil". I was shocked to hear that, but soon came to understand why it was seen as a necessary evil within the company. The department was chaotic in just about every way, left behind a trail of dissatisfied customers, and had never in the company's history operated at a profit. I brainstormed a system to bring order to the chaos and transparency to the opacity, implemented as a handful of manila folders and a magnetic whiteboard. There were, of course, many other changes required, but the core of the system consisted of the folders and whiteboard. Proving out my perception that we had good people on staff, within a few months we had nothing past due in our repair queue, our efficiency was greatly increased, and our turnaround time greatly decreased. The technicians were happier, too, because our system was predictable, easy to live with, and drove away the unreasonable time pressures that had been a constant. At the close of the fiscal year the CEO dropped by to congratulate me for being the first one in the company's 20 year history to manage the service department profitably.

Tangentially, turning the service department around proved to be the key to making customer win-backs, too.

There's more ...

→ committed: 7/25/2014 23:00:00

[ / technology / miscellany] permanent link

Comments: 0    Trackbacks: 0

   

Monday, May 19 2014

Logitech M705 Mouse Button Fix

My Logitech mouse was giving me fits with click-and-drag operations, as when selecting ("highlighting") text to copy, as if it was releasing the button despite my having ample and consistent pressure on the actuator. Apparently the most common Logitech mouse button problem is erroneous double-clicks, but I was only rarely experiencing those. The fix for that can be found here, and is the reference for the rest of this brief article.

The requisite caveats: If your mouse is under warranty, give the problem to Logitech. If you proceed with this fix, you risk breaking your mouse, and the fix might not work anyway. There may be other failures that mimic the one described here. You may be bitten by a radioactive spider but not be transformed into Spiderman. Or you might win a lottery jackpot. Such is life.

If your Logitech mouse button is foiling your attempts to copy text because it's apparently releasing the button, but is not suffering the double-click failure, this fix is easier than is the one for the well known double-click failure. Disassemble the mouse as far as opening the switch as in the article above, but do not remove the copper reed. Instead, cut a couple of strips of printer paper a few inches in length and about ¼" in width. Insert the first small strip of paper between the contacts, which are at the front end of the reed, the end furthest from the battery. Gently close the switch (depress the reed) with a small screwdriver, a pen, pencil, or even a fingertip, and drag the paper through the contacts. Repeat this closing/dragging operation several times, then repeat with the other, clean strip of paper. Then, partially reassemble the mouse with two or three screws, install the batteries, and test. If it proves to be working nicely again as mine is, finish buttoning it up and be happy — you've just saved yourself right around fifty bucks. If instead it's still a bit twitchy, try another clean strip of paper and a bit more cleaning. If that doesn't work, be happy but try some other fix, or replacing the recalcitrant rodent.

A side note: The switch enclosure I encountered was slightly different from the one in the referenced article, in that the locking tabs were on the sides rather than the ends. It's not a big thing, but you should look at the one you encounter carefully, and proceed more carefully. If you apply the correct pressure in the correct place, the cover should come away easily. You don't want to hear the wrong snapping noise!

I recommend a contact cleaning if you're in there to fix the infamous double-click failure, too.

I think I'm going to spend the next few minutes just randomly highlighting text to see it working properly.

→ committed: 5/19/2014 17:16:09

[ / technology / miscellany] permanent link

Comments: 0    Trackbacks: 0

   

Thursday, May 15 2014

Schedule Change, TBD

I gave my "work/life balance" schedule a fair trial, about two years, and have determined that it was just not right for me. When I say "not right" what I really mean is very wrong, as I am about to explain.

It's not really news that many programmers will work at night whenever possible. The two most common explanations given are that (a) the brutal conditions of startup companies place unreasonable demands upon their usually short technical staffs, and (b) those whose primary work requires prolonged periods of intense concentration find the quieter time more conducive to that work. I am wholly unqualified to speak to the former as I've never been directly employed by a startup company, but of the latter I can say that there is some truth to it. I've often said that a two minute interruption can set a project back by two to four hours, and I stand by that. The only time this is not true is when the software project at hand is trivial. But there's more to the story, at least in my own case there is more to it. Another thing I am wholly unqualified to do is to speak for my entire profession, and I won't pretend otherwise. I acknowledge that I might be and probably am an outlier. With that said:

There's more ...

→ committed: 5/14/2014 23:16:38

[ / administrivia] permanent link

Comments: 0    Trackbacks: 0

   

Saturday, September 28 2013

Wuala

As you might guess a guy like me ought to be, I'm absolutely compulsive about avoiding data loss. I provide an off-site backups service for my clients, and of course I take backups of my own stuff to the same server upon which I keep client data, and I keep another external drive sync'd with the most important stuff from my workstation. But that's not enough because I need off-site backups for my own data, too. I also need to keep a few devices synchronized. But I can't use the most popular services because they don't provide the level of security that I demand, the same level I provide for my clients.

Enter Wuala. It's similar to Google Drive and Dropbox, but with one very vital distinction: It's encrypted end-to-end, not just in transit. That means that the good folks of Wuala can't get at my data. It's mine. They won't be indexing my data to figure out which ads to serve to me. Someone getting hold of the files I've stored there, which are encrypted, won't be reading them any time soon.

The synchronization service ensures that my netbook has the files I consider most important on my workstation, up to date, when I hit the road. Any work I do while away is already on my workstation when I get back to the office -- no more fooling around with USB sticks, no more rsync'ing to get everything caught up. I just keep the Wuala client running, and the rest happens automagically.

And they give up 5GB of storage for free.

If you need something like that, give Wuala a try.

→ committed: 9/28/2013 00:34:38

[ / internet] permanent link

Comments: 0    Trackbacks: 0

   

Thursday, June 20 2013

Gnome3 Sucks

Hoping you'll pardon me for going off on a bit of a rant here...

I was recently compelled to upgrade my workstation from Debian GNU/Linux 6 to 7 ("Wheezy"). I'd gone along happily for years with Gnome2 and Compiz. Compiz was removed from Debian Wheezy for what may or may not be perfectly valid reasons, and Gnome3 replaces Gnome2. I was unhappy about both of these things, but I've got Gnome3 on my netbook and haven't yet thrown it out the window so it seemed worthy of an open minded trial.

The trial lasted all of one evening. Gnome3 sucks. I could not get past the feeling that Gnome3 is just about what Windows For Workgroups 3.11 would have become if the interface paradigm were not abandoned. Please allow me to explain:

There's more ...

→ committed: 6/20/2013 17:54:56

[ / technology / miscellany] permanent link

Comments: 0    Trackbacks: 0

   

Friday, May 24 2013

AVX for Android

I'm really not a phone nerd, but the ability to carry a client for my server monitoring system in my pocket wherever I go makes the phone an essential device for my business.

That said: If you need or want a Siri-like application for your Android phone, just get AVX. Really. It's the best there is and just getting better.

There's more ...

UPDATE 2015/02/10:
I really hate to say it, but AVX falls flat on its face in Android 5.n Lollipop and it appears that the developer has lost interest in the project. It's a real shame, as AVX still would do far more than Google Now and I hate being without it, but whatcha gonna do?

I'll update again if the developer gets AVX debusticated.

→ committed: 5/24/2013 14:59:00

[ / technology / miscellany] permanent link

Comments: 0    Trackbacks: 0

   

Wednesday, May 22 2013

More Web Hosting Frustrations: Solved

About four months ago I wrote about some web hosting frustration I was enduring that was resolved in part by moving from one outfit to another. In discussion with my client then, I explained that my perspective of web hosting providers is that they're like white athletic socks — when you get tired of them falling down, you get new. They'll be great for a while, but it's just a matter of time before they're falling down. I could be jaded by too many unsatisfactory experiences with too many web hosting providers.

I recently acquired a new client who was tired of their web host falling down all the time. The web hosting provider in question is the one that the client from January moved to in order to escape frustration. Yes indeed, web hosting providers are like white athletic socks.

There's more ...

→ committed: 5/21/2013 21:00:12

[ / system_admin] permanent link

Comments: 0    Trackbacks: 0

   

Wednesday, March 20 2013

Blacklisted! Follow-up

Some time ago I wrote the first three of what was to be a four part series, and eventually I'll get around to part four. Today, though, I just want to do a little follow-up so we can all see how well getting our stuff in order can work.

If you've read those prior articles, you might remember this image from August of last year:

Sender Score Initial Recovery

What's happened since then? This:

Sender Score Final Recovery

The bulk mail is still going out as two campaigns per week, but we've trimmed out about a quarter of the recipient addresses. Whereas it was a list of over 40,000 addresses a year ago, it's about 31,500 addresses today. None of them spamtraps, all of them deliverable. And with a Sender Score of 99, it's probably a safe bet that those messages are not being automatically filtered as bulk by the mail service providers, so they're actually getting in front of human users.

I'm going to call it a win now.

→ committed: 3/19/2013 18:02:26

[ / e-commerce / bulkmail] permanent link

Comments: 0    Trackbacks: 0

   

Sunday, February 03 2013

Curses::UI::Notebook Page Delete Bug, Part Two

Just a while ago I wrote about a bug in Curses::UI::Notebook delete_page. Well, shucks, I found another. This one will puke up the error The notebook already has a page named... whatever previously used and then deleted name you've chosen.

This bug manifests itself as widget (page) objects not actually being removed from the UI::Curses::Container object by UI::Curses::Notebook. The page/tab disappears but the object itself hangs around, so if you try to reuse the name your application dies. To duplicate:

There's more ...

→ committed: 2/3/2013 01:56:00

[ / perl_programming] permanent link

Comments: 0    Trackbacks: 0

   

Curses::UI::Notebook Delete Page Bug

The Problem: Curses::UI::Notebook delete_page() crashes the application.


  #!/usr/bin/perl

  use strict;
  use Curses::UI;

  my $ui = Curses::UI->new();

  my $win = $ui->add('win1', 'Window',
    -border => 0,
    -y      => 0,
    -bfg    => 'blue',
  );

  my $notebook = $win->add(undef, 'Notebook');

  my $p1 = $notebook->add_page('Page 1');
  $p1 -> add(undef, 'Label',
    -x    => 1,
    -y    => 1,
    -text => "This is Page One",
  );

  my $p2 = $notebook->add_page('Page 2');
  $p2 -> add(undef, 'Label',
    -x    => 1,
    -y    => 1,
    -text => "This is Page Two",
  );

  # Now the fun part:
  $ui->set_timer(
    'delete_active_page',
    sub {
      $notebook->delete_page($notebook->active_page());
      $_[0]->delete_timer('delete_active_page');
    },
    5
  );
  # What we expect to happen is that five seconds into runtime, the
  # currently active page will disappear.
  #
  # What ACTUALLY happens is that the application crashes.

  $ui->set_binding( sub { $ui->mainloopExit() }, "\cQ" );

  $notebook->focus();
  $ui->mainloop();

Never mind the use of the undocumented features set_timer() and delete_timer() for now. I'll 'splain 'em momentarily. They're very handy. I'm a source code reading fool but if you haven't seen it yet I'll save you the bother. First, though:

There's more ...

→ committed: 2/2/2013 19:03:50

[ / perl_programming] permanent link

Comments: 0    Trackbacks: 0

   
Save the Net

Creative Commons License

Project Honeypot Member

 
April 2017
Mon Tue Wed Thu Fri Sat Sun
         
30

By Month:

By category:

Feeds:

Served to 54.92.190.158:47401 at 18:27:31 GMT on Sunday, April 30, 2017.

return(0.8694);