Sometimes, Craigslist, you are an endless source of amusement.

I posted that, after our recent move, we had a lot of boxes that we were giving away for free:

To which I got the response:

hi-are these boxes still available & are they actual moving boxes or supermarket boxes?
I just found my roommate dead & am in urgent need of sturdy boxes to start packing.
thanx
Um, yeah, well, maybe you don't need boxes, maybe you need some carpet, some duct tape and 40# of quicklime...

UPDATE: Apparently, the person wasn't just yanking my chain, but was serious:

thanx for info- I'll be in touch.
 Long trip to you but I don't think I have much choice or time left in this apartment.
 
My room mate was the lessee & I'm sure any day now the manager will tell me how soon I have to be out.
 
Gotta be realistic. Don't know where me & my kid will go,
but at least our stuff will be properly packed.

apache ant WTF...

| No Comments | No TrackBacks
So as part of some work I'm doing, I have to install Apache tomcat and Apache ant. I downloaded the most recent version (1.9.0) and unzipped it as per the instructions. I read the INSTALL notes:

jbaltz@dev [~/apache-ant-1.9.0]>more INSTALL
For installation instructions see the manual in the docs subdirectory
or online at <http://ant.apache.org/manual/index.html>.
OK, so I go to the abovementioned page, which gives me the information:
This is the manual for version 1.8.2 of Apache Ant. If your version of Ant (as verified with
ant -version) is older or newer than this version then this is not the correct manual set. 
Please use the documentation appropriate to your current version. Also, if you are using a 
version older than the most recent release, we recommend an upgrade to fix bugs as well 
as provide new functionality.

...right. So just for fun, I check what version of Ant I actually have


jbaltz@dev [~/apache-ant-1.9.0]>bin/ant -version
Apache Ant(TM) version 1.8.4 compiled on May 22 2012
jbaltz@dev [~/apache-ant-1.9.0]>
...right.
(Just got back with the family from seeing the new version of Les Misérables. All I can say is, wow.)

I'm looking back at 2012, just like I do every calendar year, and I take stock of things all over again. (I take "spiritual stock" of myself every Jewish New year, and "secular stock" of myself every fiscal year. Sometimes there's overlap, so I end up checking twice.)

So where do we stand now, dear reader?

  1. 3 Phase Comuputing, my company, gave up 2 employees to 2 different clients. Others would call it "poaching", but these were all good moves for everyone involved, and I am still dealing with my former employees daily. So it's all a good thing.
  2. Yes, we're hiring again, and this time out of 62 responses to my post, only 12 made it through my first pass clown filter, which is actually just a bit shy of 20% yield...not as bad as it used to be, but Cragislist still seems to be watched mostly by automated 'bots that respond to every ad posted with a resume and a form letter. I suppose the same thinking that goes into spammers goes into these job applicants, most of whom get dumped unceremoniously into the bit bucket.
  3. In terms of other growth, I've been working weekly with my colleague Kevin Limperos on developing a best practices template for software development, looking both at the micro- scale (individual developers) to macro- scale (large systems architecture and management). There seems to be no end of opining about this, but very little in the way of hard evaluations of products. Marketing literature and MEAP texts are great at telling someone what products are good for and what problems they solve well, but also knowing what problems they aren't good for is just as useful. Just like having a product requirement that declares what something SHOULD NOT do is as important as declaring what it SHOULD, knowing what tasks a tool is unsuited for is almost as important as knowing what it is suited for.

    Coming up with these do/do nots (there is no try) is our big task.

  4. There is still a growing list of things I'd like to be relearning, both in the tech world, and in the not-so-tech world:
    • Clojure--because I still like LISP (although Clojure isn't quite LISP, and the differences can be jarring) and because JVM byte-code languages appear to carry a lot of promise in larger-scale software development.
    • SmartOS--because I still hold a soft spot in my heart for Solaris and zones, and I've already learned much about VMWare-style full virtualization.
    • There's a lot of Martial Arts still that I'm practicing on a daily basis--I'm not interested in hearing from nay-sayers, I'm enjoying learning some of the traditional "internal martial arts" systems (Taijiquan ???, Baguazhang ??? and Xingyiquan ???), so there. Come (try to) beat me up if you don't like what I'm learning.
  5. And, I am finishing up my tenure on the board of the Prospect Heights Shul. It's been a fun ride, I wish I could be more involved in the week-to-week goings on in the community, but I've been doing my level best to help from afar. It's been a bumpy ride for the shul, with a lot of turnover "at the top", but I have high expectations and higher hopes that this is going to take off!

I've looked back on a few of these thoughts I've discussed over the years (even though I missed one), and I do have to reiterate:

(I wouldn't be a geek if I weren't online now, just an hour or so before midnight EST.)
...on New Year's Eve.

Best wishes for a healthy and prosperous 2013!

Yes, hiring again.

| 2 Comments | No TrackBacks
(I have so many other things that I haven't had the time to sit down and write, but I figure I'd mention this.) 3 Phase has seen two valuable members depart recently, so we're hiring again. Let's see how long until the first bozo reply! I even made the darn thing a bit harder to miss:

Please send your resume, CV, or otherwise orderly representation--in plain text or HTML format only--of your relevant experience to the CL-provided address. Include in your cover letter how you meet the above skills. Please prove to us that you're a human by making a half-way decent attempt at passing a Turing test.
Thanks go to my good friend Mark Shoulson for help in discovering this.

So we're looking at some very old legacy code that does some date calculations in a particularly ... stunning ... fashion and we wanted to replace it with native Unix time functions for calculations.

So Mark and I wrote a test driver program to make sure that his functions would be bug-for-bug compatible with our current codebase, and instead uncovered the following interesting fact on HP-UX 11.3: one day after January 1, 2100 is January 1, 2100. (I guess Groundhog Day got moved that year.)

So we tried with this code:


#include <stdio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int
main(argc, argv)
     int argc;
     char **argv;
{
  struct tm thedate;
  time_t timet;
  int n;
  char outdate[11];
  char conv[11];
  if (argc<3) {
    printf("Usage: %s MM-DD-YYYY N\n", argv[0]);
    exit(1);
  }
  if (NULL==strptime(argv[1], "%m-%d-%Y", &thedate)) {
    printf("strptime(%s, \"%%m-%%d-%%Y\",...) failed.\n", argv[1]);
    exit(1);
  }
  n=atoi(argv[2]);
  thedate.tm_mday+=n;
  thedate.tm_hour=12; thedate.tm_min=thedate.tm_sec=0;
  timet=mktime(&thedate);
        printf("(mktime returned %ld)\n",(long)timet);
  strftime(outdate,11,"%m-%d-%Y",&thedate);

  strcpy(conv,argv[1]);
  printf("%s + %d days:\n\tstrptime computes:\t%s\n",
         argv[1], n, outdate);
}

(We set the hour to be 12n as opposed to midnight to avoid a timezone issue, we're in EST5EDT not GMT.)

Well, we get, on Linux:


[jbaltz@linux ~]$ ./FDATE 08-23-2012 1
(mktime returned 1345827600)
08-23-2012 + 1 days:
        strptime computes:      08-24-2012
and on HP-UX

jbaltz@hp-ux [~]> ./FDATE 08-23-2012 1
(mktime returned 1345827600)
08-23-2012 + 1 days:
        strptime computes:      08-24-2012
Not too shabby: tomorrow is indeed the twenty-fourth of August, 2012.

Let's try around the troublesome 32-bit overflow:


[jbaltz@linux ~]$ ./FDATE 01-18-2038 2
(mktime returned 2147619600)
01-18-2038 + 2 days:
        strptime computes:      01-20-2038
and

jbaltz@hp-ux [~]> ./FDATE 01-18-2038 2
(mktime returned 2147619600)
01-18-2038 + 2 days:
        strptime computes:      01-20-2038
OK, let's go for the gold: the year 2100:

[jbaltz@linux ~]$ ./FDATE 01-01-2100 1
(mktime returned 4102592400)
01-01-2100 + 1 days:
        strptime computes:      01-02-2100
but on HP-UX:


jbaltz@hp-ux [~]> ./FDATE 01-01-2100 1
(mktime returned 4102506000)
01-01-2100 + 1 days:
        strptime computes:      01-01-2100
jbaltz@hp-ux [~]> ./FDATE 12-31-2099 2
(mktime returned 4102506000)
12-31-2099 + 2 days:
        strptime computes:      01-01-2100
jbaltz@hp-ux[~]> ./FDATE 12-31-2099 3
(mktime returned 4102592400)
12-31-2099 + 3 days:
        strptime computes:      01-02-2100
jbaltz@hp-ux [~]> ./FDATE 01-01-2100 2
(mktime returned 4102592400)
01-01-2100 + 2 days:
        strptime computes:      01-02-2100

oopsie!

Yes, we're filing a bug report. Hopefully, if this hasn't been patched already, it will be before 2100.

I've already had many spammy followers on twitter, but now I've started getting them on LinkedIn as well. At least they're making themselves obvious:

That's...er...somehow I doubt that Larry Thurston has progressed that far along with his SRS without a name change...

(That's also the second invitation from Larry Thurston I've received, the last invitation came in over the holiday weekend and the account was marked as spam, as I expect this one will be shortly.)

CADR is LISP-speak for "First part of the rest of"

If you have a list (1 2 3) Then the CADR of that list is (2)

I did a google (and bing) search on "today is the cadr of your life" after I posted (somewhat flippantly) on a friend's Facebook status update the abovementioned phrase.

I got


                       today is the cadr of your life - Google Search (p1 of 7)

   Search Images Videos Maps News Shopping Gmail More »

   Web History | Settings | Sign in

   [logo_sm.gif]  today is the cadr of your life___________   Search
   Advanced Search
   Preferences

   Web Results 1 - 10 of about 1,080,000,000 for today is the card of
   your life. (0.23 seconds)

   Showing results for today is the card of your life. Search instead for
   today is the cadr of your life
   Grocery  loyalty  cards  help  trace  food-borne ... - Your Life - USA
   Today

   Nov 16, 2011 ... A new tool is being used by public health officials
   to figure out what makes
   people sick: the lowly shopper-loyalty card.
   yourlife.usatoday.com/fitness-food/safety/story/...cards.../1 - 48k -
   Cached - Similar pages

   Re-Create Your Life Today: A Smart Card Game

   Jan 13, 2012 ... Re-Create Your Life Today. If you want to improve the
   quality of your life, live
   better and be happier, then the principles of Positive Thinking can
   ...
   recreateyourlifetoday.blogspot.com/2012/01/smart-card-game.html - 63k
   - Cached - Similar pages

   Change your life today with an Attitude of Gratitude!
If I actually search for "today is the cadr of your life", I get, pretty much bupkis:

                       today is the cadr of your life - Google Search (p1 of 4)

   Search Images Videos Maps News Shopping Gmail More »

   Web History | Settings | Sign in

   [logo_sm.gif]  today is the cadr of your life___________   Search
   Advanced Search
   Preferences

   Web Results 1 - 10 of about 6,840,000 for today is the cadr of your
   life. (0.14 seconds)

   Did you mean: today is the card of your life

   Org Mode - Organize Your Life In Plain Text!

   1.1 Org-Mode Setup; 1.2 Organizing Your Life Into Org Files; 1.3
   Agenda Setup
   ...... If I want just today's calendar view then F12 a is still faster
   than generating the
   ..... (org-clock-is-active) (equal org-clock-default-task (cadr
   org-clock-history))) ...
   doc.norang.ca/org-mode.html - 314k - Cached - Similar pages

   Media Center - CADR - Welcome

   Valentine's Day Gift Ideas For the Allergy Sufferer in Your Life, PDF
   ... CADR
   Certified Air Cleaners Contribute to Indoor Workout Success for
   Allergy Sufferers ...
   www.cadr.org/mediacenter.htm - 19k - Cached - Similar pages

     VALENTINE'S DAY GIFT IDEAS FOR THE ALLERGY SUFFERER IN ...

Meh. Pretty weak, universe. Get out there and get your geek on.

Recent Comments

  • Jerry B. Altzman: Semi-bozo #2 came in at 0359 EST. Sent in a read more
  • Jerry B. Altzman: Wow! A new record! The first bozo came in with read more
  • Sinem: ceate a file called copy.bat (then name of file is read more
  • Mark: Just to be specific, we've pinned it down to mktime(). read more
  • Jerry B. Altzman: And now, for something completely naïve: this was brought to read more
  • Anhar: Would it be a step to far If I was read more
  • The FLUX Inc.: Thanks for sharing this awesome stuff. read more
  • Jerry B. Altzman: It seems that others are beginning to realize this same read more
  • Geoff: It's not possible (with current human brains) to know 10,000 read more
  • Jerry B. Altzman: I tried that--this is the case where a binlog might read more

Recent Assets

  • Photo_122808_001.jpg
  • Photo_122108_001.jpg
  • Photo_122508_001.jpg

Find recent content on the main index or look in the archives to find all content.