Gosh, I’m looking forward to tomorrow.
SpamAssassin has made spam a lot more fun. My top-rated spam so far is 26.30, which is a far cry from some SA veterans, but then, I’ve only been running it a few days. My anti-spam strategy now consists of a combination of the rule-based SpamAssassin, the blacklist-based SpamCop, and the Bayesian-based Mozilla Mail. I get about two spams a day and block about 50, with no false positives.
It has been a lifelong dream of mine to tango at my own wedding. I have no idea where this dream came from; all I know is that it requires two things: someone to marry me, and someone to give us tango lessons. Dora has graciously agreed to fill the first role, and now Jason Laughlin is filling the second. It’s probably best to leave it that way, rather than the other way around.
Fuck the warblogs. You want mainstream? My dance instructor runs Movable Type.
I got my complimentary copy of Google Hacks today. Who are the people in your neighborhood? is on page 192. :)
I’m using MT-Macros to auto-generate smilies. Yes, I have too much time on my hands. They’re secretly enabled for comments, too, but you’ll have to look at the source to figure out which ones are supported and how to generate them. Here are the macros, because you have too much time on your hands too.
:) :( :O :D :P ;)
Speaking of having too much time… based on advice from my readers, I’ve set up an LDAP server to maintain our family address book. (In 1995, my dog had an e-mail address and a home page; in 2003, she was the first entry in my LDAP directory. This we call progress.) Specifically, OpenLDAP on Debian GNU/Linux. I maintain the directory with Turba, which runs on Apache, PHP, and MySQL. All our mail clients (Mozilla Mail, Mail.app) are LDAP-enabled, so they all automatically look up email addresses by name. I also do custom searches and generate custom reports with some simple Python scripts, thanks to python-ldap. Finally, I use a keyword bookmark in Mozilla that redirects to my search CGI script, so I can type “a dora” in my browser to look up my lovely fiance’s number and bug her at work.
In the future, there will be so much open source software available, programmers will be judged by how much they know about it and how well they can glue it together to build solutions.
§
Congrats on getting LDAP setup. I’ve wanted to put my addresses in there so many times… but every time I load up the console and try to install OpenLDAP, I get stuck. it would be a great companion to my IMAP accounts. someday.. someday…
— eliot ![]()
Oh, and I get stuck because I have no idea how to add entries. Seems like an easy task… but no.. not for me.
— eliot ![]()
> In the future, there will be so much open source
> software available, programmers will be judged by
> how much they know about it and how well they can
> glue it together to build solutions.
Sounds like in the future programmers will be sys admins.
“Sounds like in the future programmers will be sys admins.”
Programs can be glue. (All gluing is accomplished with programs?) Sometimes you need to write your own script/app/whatever to tie two systems together. A little sysadmin knowledge is good, so you can more easily leverage the work others have already done.
I think the line between programmer and sysadmin is pretty blurred, with regards to scripting tasks. When do you draw the line between a complex script and a program? Very sophisticated things can be accomplished with languages usually relegated to the “scripting” category.
All my words look funny late at night. Am I making sense?
“in the future”? It’s been the case for years that keeping up with the Debian new-packages list and the CPAN updates is a big advantage when building software systems. Freshmeat has RSS feeds, SourceForge has per-project RSS feeds as well as global ones…
Now if only more people would remember that when they come up with a clever software idea, google and see if there’s another implementation out there already that they can help with :-) (Sure, there are reasons to do it from scratch anyway, the common ones being self-education, licensing, and how well the interface “fits” an existing project… I’m just objecting to doing that solely out of ignorance.)
Sounds like that “middleware” thing that I ostensibly write. Except instead of trying to get SAP, Domino and Websphere to talk to each other, it’s actually fun and rewarding.
“In the future, there will be so much open source software available, programmers will be judged by how much they know about it and how well they can glue it together to build solutions.”
Vernor Vinge, in his sf novel _A Deepness in the Sky” had the same idea, describing a future where
you hadn’t programmers as much as you had software archeologists. Deep deep down in the system there was a layer of software dating to the time the first man set foot on the moon…
Yeah, getting all the pieces together for the LDAP server wasn’t easy. I got OpenLDAP up and running (compiled from source, I couldn’t find an up-to-date apt-gettable package) with a minimum of fuss. This tutorial helped with the configuration:
http://www.direct-to-linux.com/TUTORIALS/LinuxTutorialLDAP.html
Then to delve into the wonderful world of LDAP to figure out how to maintain it. There are dozens of generic LDAP admin modules, but I wanted one specifically for maintaining a simple address book (i.e. one that was as easy for my fiance to use as all the other ways she’s previously maintained address books, like Yahoo Mail and Outlook). I finally settled on Turba, which is not the easiest thing in the world to set up, and relies on the Horde framework, is which also not that easy to set up and has its own dependency issues (apt-get to the rescue, at least for 90% of them).
Then on to digging into the Turba configuration files to set up the fields we needed and map them to LDAP attributes. Then finding and delving into RFC 2254 (LDAP search filter syntax) to generate the custom reports and search script.
http://www.ietf.org/rfc/rfc2254.txt
And finally, figuring out why none of it was working in Mozilla Mail (answer: it doesn’t speak LDAP 3, and OpenLDAP doesn’t speak LDAP 2 until you put the magical “allow bind_v2″ option in your slapd.conf file).
— Mark ![]()
I’m hoping that you have some form of rudimentary authentication happening on the LDAP searches?
I’ve seen some spammers mine open LDAP servers for email addresses..
— don ![]()
It’s not a public LDAP server. It requires authentication to read anything, plus it’s behind our family firewall (as are all the search scripts and reports). It’s only for the plethora of computers we have in the house.
— Mark ![]()
Mark,
I know Address Book will read directories; can it not update them? (Meaning can you not drag an address from your AB into a directory?)
No, I could not find a way for Address Book to update the LDAP directory, even when I (temporarily) set it to globally anonymously writeable. I did not even find a way for it to browse the LDAP directory; it does name-based searches, but that’s all.
Keep in mind that both of these limitations are probably Good Things. Few people ought to be updating an LDAP directory, so it makes no sense for a consumer application to have that functionality. And most LDAP directories are quite large, so allowing anyone to click a button and browse the entire contents could easily lead to unacceptable levels of network traffic.
I’m a strange case, and I’ve found software that allows my usage patterns. And where I couldn’t find it, I made my own.
— Mark ![]()
re comment #8: if you read the Vernor Vinge reference more closely, he makes it clear that the dates go to *shortly after* the moon landing. It’s actually a (only-slightly) veiled reference to Unix time which has an epoch of 1970-01-01…
Let me get this straight: you setup an LDAP server for _fun_? I wish you luck in the ring of hell to which you have descended (little known fact: OpenLDAP is right below the sea of sighs in Canto 8).
I just finished up a big project using a custom schema, OpenLDAP and python-ldap, and my ears are still ringing. It’s got to be the most useful undocumented technology on the planet.
I’ve now got a binder full of RFCs I really wish I hadn’t read, and a newfound respect for those that can think in BNF. May you never suffer the same fate at the hands of LDAP.
Oops, forgot to metion that you’ll want to get GQ for doing LDAP browsing. It has saved my butt any number of times. It’s not everying you’d want out of an LDAP browser, but it’s the best thing I’ve found to date for Linux:
Long time listener, first time caller… ;)
I feel the need to to pick nits, but I’ll make it quick…
See:
http://dictionary.reference.com/search?q=fiancee&r=2
There are two different spellings for the betrothed depending on who you are referring to, the bride or the groom.
— Damon ![]()
I stand corrected. I’m a fiance, she’s a fiancee. Actually, fiancée, but who’s counting.
Yes, I set up an OpenLDAP-based LDAP directory for fun. In my defense, it actually was kind of fun, and it expanded my knowledge of available technologies quite a bit, which is never a bad thing.
— Mark ![]()
When describing allowed syntax for parsing and composing, I love BNF. Love it.
Only many occasions, I’ve wished that I could write BNF and be understood by people in general. It would make writting certain QA-oriented documents ever so much quicker.
Sure, it’s dense, but that’s part of what I like. You can get -so- much information at once.
Also, once you’ve established a good parser/writer for a particular expression, you can ignore that it’s actually composed of other expressions 9 deep.
;-)
Speaking of which, does anyone know of a (E)BNF parser in PHP? Or a lexer, bison, … ?
— Jan! ![]()
Dora (la fiancée) et Mark (le fiancé) se sont fiancés lors de leurs fiançailles.
Easy =)
I’m always looking for weblogs with dance content (esp lindy hop) but I think it more accurate to say that your dance instructor has MT installed. not much sign of him using it.
I enjoyed my taste of tango last fall!
http://www.anitarowland.com/gmarchives/00000659.html
Have you ever noticed that
http://dictionary.reference.com/search?q=fiance
Is so similar to
http://dictionary.reference.com/search?q=financier&r=2
Co-incidence? I think not….
— Nik ![]()
I am no longer accepting public comments on this post, but you can use this form to contact me privately. (Your message will not be published.)
§
© 2001–present Mark Pilgrim