« July 2006 | Main | October 2006 »

August 25, 2006

Random stupidities that just annoyed me now

A few random stupidities just now crossed my path.

  1. I just a few minutes ago received a phone call asking me to take a survey on communications decisions something-or-other. I assented to take the survey, and the surveyor began her little scripted speech. She asked me a question, and as soon as she hit the answer that was appropriate (“Are you X, Y, Z or ...” where X, Y and Z are disjoint), I interrupted her and said “Ok, ‘Y’” (or whatever was correct.) She then told me “Sir, I have to read the entire text here, please.”
    Now, I'm sorry, but this is silly. But I can almost see the point—I mean, maybe there’s an answer later in the list that is more appropriate.
    The next question was “What is your age bracket? Is it 16, 17-18, blah blah blah”. As soon as she hit my age bracket, I responded “That’s it—34-45”. I’m not going to find a better bracket later; I do not age that quickly. Once again she responded sternly, “Sir, I’m sorry, but I have to read this.”
    Now I got ticked off. “Listen, if you can’t use your brain here—it isn’t like I’m going to change my mind about my age, then I can NOT take this survey. Good bye.”
    Don’t tell me that this person is only doing her job, etc., because even IVR systems can do better than her mindless droning.

  2. I am trying to configure a Fortigate 60 for a client who is deploying an SSL VPN system. There is a desire to have a “split tunnel”: the client only wants traffic destined for the VPN to go down the SSL tunnel, and all other traffic to go out the regular user’s internet connection.
    Putting aside how hard getting the tunnel system to get set up is (it requires Windows, and IE6, and a whole bunch of ActiveX controls), it ends up creating a plain old PPTP interface on the Windows side. That you can’t edit or change. (Typically, one could drill down through the interface properties and uncheck the box “use default gateway on remote network”.)
    On the admin page for the Fortigate itself, there is a section under “User Groups” (of course), under “SSL-VPN” (the first time something on this box makes sense), and under that, a checkbox “Allow Split Tunneling” with a pair of boxes labelled “Restrict tunnel IP range for this group”.
    There are no instructions in the page as to what to put in there, and no indication as to what should work, and any reasonable input I can think of results in “Invalid IP Range”.
    Bleah. Makes me long for my PIX.

Playing catchup after a brief stint away; spam, communigate and PIXen

Phew! I've spent the entire week playing catch-up.

For the first time since August 2003, I took a short vacation with my family. Just a short trip to Connecticut to see Mystic Seaport, with a short trip up to Touro Synagogue in Newport, RI,

Digression: it really is a cool synagogue; it isn’t terribly large—our synagogue here in Brooklyn is about the same size (maybe a little larger) but it wasn't built in the 1700’s, and doesn’t have its balcony finished yet. Plus, they have a 500+ year old Torah scroll given to them as a gift from the Jewish community of Amsterdam that is displayed quite nicely in a glass case....
and a trip back on a ferry from New London, CT to Orient Point, NY.


On Sunday night, I got a frantic call from a client who just converted over to using CommuniGate Pro for their mail server. It appears that the stock spam filters that they provide just don't cut the mustard. Luckily, one of my cohorts found a spamassassin conduit for CGP that appears to have stemmed the onslaught of unsolicited mail. Of course, once that was working, it uncovered yet another problem, having to do with the fact that some email from one machine wasn't making it from a qmail install on one branch of a firewall arm to another, exacerbated by the fact that I have not yet set up separate bind views , and that there is NATing going on to allow external hosts to reach the CGP machine. (The solution to that is to use qmail’s smtproutes function to point to an internal address for the CGP machine.)

Now I have to find the time to begin the architecture work for my most recent project, LTR.com, a new-and-improved dating website being started up by my acquaintance David Siegel, which I’ve put off all week...

whine whine whine

August 17, 2006

Zoom...splat!

Well, I took my two older sons to see Zoom last night.

I can see why it was so universally panned at Rotten Tomatoes. On the plus side, both of the kids loved it. They’re into the whole superheroes thing—saw all 3 X-Men movies this summer (one on the big screen, two on DVD) so this was something good and wholesome for them.

I can say, without going into spoilers, that by and large the acting is flat, the premise is as bad as they say it is, but if you’re under the age of 12, these things probably don’t matter much.

Plus: the obvious product placements for Wendy’s restaurant and for Firefly phones got to be a bit much.

SPOILERS:

Jerry’s complaints:
  • First of all—if you watch the trailers, you miss almost half the point of the movie. The trailers make it look like Tim Allen’s character (a has-been superhero who’s “lost” his powers pro tem) is some enthusiastic go-getter coach who is going to teach the four neo-heroes how to go out and save the world. Instead, in a most annoying bait-and-switch, the coach is a bit reluctant, nasty, sniping and by-and-large unbelievable as a nasty guy; plus if you saw the trailers, you know he doesn’t end up that way. When he’s trying to be a wise-cracking smartass, he just comes off mean. When he tries to be nice, he seems totally ungenuine. He doesn’t generate any chemistry with anyone else on the set at all. When he finally does decide to turn into the rah-rah goodguy coach, it is for no apparent reason; you think you can tie it back to something, but it is just all a confused mishmash.
  • Chevy Chase. Nothing he’s done since Caddyshack has been anything of worth.
  • The cuteness of the little-girl-who-tosses-around-multiton-weights just can not carry the film for 90 minutes. It even grated on my kids.
  • Even for a kid’s movie, the characters are two-dimensional, and the ending far too saccharine.
  • Don’t even get me started on the plot—suffice it to say that the movie spends 80 minutes building up to an ending that just doesn’t seem to matter to the characters, wraps itself up into a neat bow through a totally inexplicable deus ex machina and then finishes with a “where are they now” that would lead neatly into a sequel, if for some reason Tim Allen needs to generate another movie to add onto his list. Oh yeah, that tattoo of his is totally idiotic. I don’t know if it’s something just for the movie or if he did that to himself a long time ago, and don’t particularly care. It’s just distracting.
I’m not sure what I was expecting—more of Sky High I suppose—but it just wasn’t there.

August 9, 2006

interesting mod_rewrite tricks for zencart

So I receive a request from one of my co-workers to do the following:

Please redirect https://xxx.yyy.org/index.php?main_page=product_info&products_id=21 https://xxx.yyy.org/index.php?main_page=product_info&cPath=8&products_id=21 and https://xxx.yyy.org/index.php?main_page=product_info&products_id=138 https://xxx.yyy.org/index.php?main_page=product_info&cPath=8&products_id=138 to

http://www.zzz.com/abcdefgh/nnnnn.htm


Now, the site that's being rewritten from is a big ol’ PHP application (Zencart) and it’s not really amenable to just going in and toying with—it has a nice administrative interface, but nothing obvious that lets you do a redirect from a random item in the inventory.

“Ah”, I say, “time for mod_rewrite, Apache's answer to everything.”

Well, it’s not that simple, you see.

You might think a simple RewriteRule would suffice, rewriting the whole URL at once:

RewriteRule /^index\.php\?main_page=product_info&products_id=21$ http://www.zzz.com/abcdefgh/nnnnn.htm [R]
But that won’t work, because RewriteRule only works on the URL. In this case, the URL is just https://xxx.yyy.org/index.php, and we don’t want to rewrite THAT, because, well, there are other things on the site they’d still like to sell. Remember—the trick is to match on the stuff after the question mark, and that isn't accessible to RewriteRule!

It is accessible, however, via the variable %{QUERY_STRING}. (This took me half an hour of looking and finding.) That is because the query part (that important stuff after the question mark) gets handled differently when the web server receives and parses the URL: the expectation is that whatever the URL indicates, it is something that consumes input to generate output (so it isn’t a static page, generally speaking).
In this case, RewriteCond is the thing that does the trick. I have to chain four of them together to get them all to work, but the following did the trick:

RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=21$ [OR]
RewriteCond %{QUERY_STRING} ^main_page=product_info&cPath=8&products_id=21$ [OR]
RewriteCond %{QUERY_STRING} ^main_page=product_info&products_id=138$ [OR]
RewriteCond %{QUERY_STRING} ^main_page=product_info&cPath=8&products_id=138$

RewriteRule ^/index\.php http://www.zzz.com/abcdefgh/nnnnn.htm [R=permanent]


The [OR]s at the end of the first three lines mean “combine this rule with the next one”, the RewriteRule then says “for the URIs beginning with index.php, that have already matched the conditions above me, rewrite the URL to be the new, foreign one, using an HTTP redirect with a ‘moved permanently’ condition (HTTP response code 301)”.

This appears to have done the trick, and now everyone is happier.

OK, so it isn’t heavy wizardry, but it might be useful elsewhere.

August 8, 2006

Veotag picking up steam

If you haven't tried the veotag service, give it a swing. Its secret sauce—making parts of a video searchable (so it isn’t just text tagging)—in addition to “marking up video”, is something really cool. It’s been picked up in Guy Kawasaki’s blog as well. (Guy is a multiple techie-author and big-time blogger, so this is a nice coup.)

I really didn't gush about it enough in the comments there; it's truly a cool service.

DISCLAIMER: I have no financial interest in Veotag (in case you were wondering), I’m just a satisfied user and benefit from the works some others have posted on the site.

August 3, 2006

Daniel Noadyah, this little one, may he grow.

On Wednesday morning, I brought my youngest son into the covenant of Abraham, our forefather—in other words, we gave him a b'rit milah (ritual circumcision).

No, I’m uninterested in hearing your tirade about circumcision: male circumcision is not the same thing as female circumcision, aka female genital mutilation either in quantity or quality. Moreover, we don’t do it because we want to make a health statement—although there are undoubtedly health benefits (that site is not exactly non-partisan, by the way)—we (in our family) do it because it is incumbent upon us to do so from our religious perspective. In other words: God said so.

People asked me about his name quite a bit (Daniel Noadyah, in Hebrew דניאל נועדי-ה—tradition has us not write the final two letters together because they spell a name of God.) so I thought I'd write about it some. This is more or less a distillation of my discussion of it at the little “feast” we had after the circumcision on Wednesday. (Times are relative to Wednedsay; remember this.)

8 days ago our son was born on the first of the Jewish month of Av, which is an inflection point in one of the saddest eras in Jewish history. Beginning about 3 weeks ago (on the 17th of the month of Tammuz), the walls of Jerusalem were breached. On the first of Av, the holy Temple itself was invaded and destruction of it began—on two separate occasions 400 years apart—and culminated with the final destruction (first by the Babylonians, then by the Romans) on the ninth of Av [which was earlier today, and there was one rebuilding in between–ed.]. Daniel, in the bible, was born in the diaspora following the first destruction, and grew into a man described as “beloved”

כִּי חֲמוּדוֹת, אָתָּה
“For you are beloved” (Daniel 9:23)
and “wise and understanding”
וְשִׁמְעֵ עֲלָךְ, דִּי רוּחַ אֱלָהִין בָּךְ; וְנַהִירוּ וְשָׂכְלְתָנוּ וְחָכְמָה יַתִּירָה, הִשְׁתְּכַחַת בָּךְ
“For I have heard about you that the spirit of God is in you, and light, understanding and great wisdom is found in you” (Daniel 5:14)
Noadyah is only mentioned twice in the entire Bible, once in Nehemia (and there it refers to someone not so nice) and once in the eighth chapter of Ezra:
וּבַיּוֹם הָרְבִיעִי נִשְׁקַל הַכֶּסֶף וְהַזָּהָב וְהַכֵּלִים בְּבֵית אֱלֹהֵינוּ, עַל יַד-מְרֵמוֹת בֶּן-אוּרִיָּה הַכֹּהֵן, וְעִמּוֹ, אֶלְעָזָר בֶּן-פִּינְחָס; וְעִמָּהֶם יוֹזָבָד בֶּן-יֵשׁוּעַ, וְנוֹעַדְיָה בֶן-בִּנּוּי--הַלְוִיִּם.
“And on the fourth day, the silver and gold vessels in the house of God were weight by the hand of Meramot son of Uriyah the priest, and with him Eliezer son of Phineas [another priest]; and with them Yozavad son of Yeshua and Noadyah son of Binui the Levites”
(Ezra 8:33)
Now the name comes, I hope, a bit clearer; and it is very apropos for the time. It represents my and Elana’s wishes for our child: that, like Daniel he begins his life here in the diaspora, beloved, and with understanding and wisdom, and like Noadyah, he should merit to return to Jerusalem to see the rebuilding of the Temple.


A few other things:
  • I am a Levite, and therefore so are my sons. It has become popular to name a series of children in a “theme” (all names beginning with “a” or “y”). Our theme is giving our children names after biblical Levites: Amram, Levi, Eliezer. The betting pool in the neighborhood was that we’d pick another one in the same series (giving us either “Kehat” or “Moshe”, those two being the missing “links” in the biblical chain:
    Levi→Kehat→Amram→Moses→Eliezer
    but we decided to go a bit further afield.
  • If you’re looking for interesting Biblical names, you really could do worse than to look towards the back of the Bible: the books of Ezra/Nehemia and 1,2 Chronicles are full of names you don’t normally run into, and many of them carry beautiful meanings in Hebrew and are pleasant-sounding in English translation.
  • The title of this piece comes from the blessing (in the Ashkenazic [European] rite) given to the child after he is given his name: “פלוני) זה קטן, גדול יהיה)” “(so-and-so) this little one, may he become great [lit: big]”. It finishes:
    “כשם שנכנס לברת, כן יכנס לתורה, לחופה, ולמעשים טובים” “As he hs brought into the covenant, so may he be brought to Torah [to study], to the chuppah [the wedding canopy] and to good deeds.

  • Amen!