Recent blog posts
I'm learning AngularJS and noticed a few things going on. First is that there's a great tutorial out there called Angular JS in 60 Minutes Ish by Dan Wahlin. It's really good, and it's a little different from most tutorials. It read like the script of a screencast - and I thought it *was* the script of a screencast.
It's actually the inverse. It's the transcript of the screencast, and the images were taken from the screencast.
This is a work in progress. I wanted to log all our calls and found out that there's a feature in IP Office called SMDR that sends logs to a server.
There were a few programs that could receive these logs, but I couldn't find one that just logged the lines to a syslog. After initally reading how to do it in Python and looking a the Perl code from SimpleSMDR, it seemed like too much code. This small C program, smdr-syslog, to does what I want.
I like using NTBackup.exe on the old VMs, but discovered that if you don't keep up on the backup rotations, you will have a very hard time doing restores. The NTBackup.exe restore doesn't make it easy to restore all incrementals of a folder.
This code puts the first paragraph of the post into the description meta tag. It tries to strip out leading whitespace and any tags. If you insert an image, it should be stripped.
Last year, I got one of those little Raspberry PI (R-Pi) devices. It's pretty cool, but in the end it's a little PC. Since there's a big bad PC under the desk, the R-Pi didn't get much use. Also, I'm a chicken hardware hacker and so I never put anything onto the GPIO pins.
I'm learning R, and it's been interesting. The weird part is that I don't know stats. Yes, I know standard deviation, mean deviation, and easy stuff, but those are one-liners in the R tutorials. What I know in stats amounts to around 1/4 to 1/2 a page of the R tutorial. So to compensate, I have a stats text from the thrift store, so I'll eventually be less than a total ignoramus about what I'm reading.
One of the twists of what I'm messing with is that all our data is in a database. The normal mode of operation for R users is to load the entire data table into memory and do awesome reporting on it. Where I'm at, for better or worse, is more like a traditional web application with a database back end.
A problem with this is that MySQL lets me have only 16 connections going at the same time. I'm not sure if it's the driver, but I'll assume that. Since RStudio holds the connections, coding a lot of changes eventually leads to a lot of lost database connection handles, and eventually running out of connections.
For general instructions, see: http://cran.r-project.org/doc/manuals/R-admin.html#Managing-libraries.
In Ubuntu Linux, the path to the global libraries is: /usr/local/lib/R/site-library/
To install there, you can do install.packages(c('foo'), '/usr/local/lib/R/site-library/')
or take advantage of the built in variable: install.packages(c('foo'), .Library.site)
Check that .Library.site has the values you need.
You can also use R CMD INSTALL -l /path/to/library foo
I was called in to help fix a network that had been discombobulated. I didn't end up fixing it, but one staffer there did the trick by disconnecting a switch with a bunch of wires plugged into it.
We're in full drought mode in LA, and that means we follow the eleventh comandment: if it's yellow, let it mellow, and if it's brown, flush it down.
I was feeling like crap, so after taking the day off and taking a nap, I spent several hours learning Scrapy. Scrapy is a pretty awesome website scraper. This example logs into a website, extracts some data, and stores it locally.
This article has been completely rewritten, and expanded into a book: CSS: An Overview for Software Developers.
This article is obsolete and will go away eventually, and replaced with an excerpt from the book.
The original was written: 2004-11-18 03:16:46 -0700.
Here's a bit of the article:
Dang, but it took me forever to learn CSS. Maybe I should have used a book. Here, I'm going to share with you the hard-found knowledge, presented using technical programmer jargon. (Revised in 2014.)
It works. Haven't bought a graphics card since the mid 1990s, but did this because Gnome 3 feels a lot smoother with some extra cycles and memory. All the eyecandy effects now seem to run at around 20 fps, and the colors are nicer. Before, they were more like 10 fps and jumpy. This shows up in lspci as VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Caicos [Radeon HD 6450/7450/8450]. Seems to be a bit of a power hog, but it doesn't use a fan, so it's not going to burn too much coal.
This snippet of code can be modified and used to change the stylesheet on your page. I set it up to work against a layout extracted from Salsa, but it should work on generic pages. It's good for demos, discussions about a layout, trying different colors, etc.
I'm working on this at work - using CSS to alter Salsa's rigid layouts. :/ Yeah, it's here because I wasn't in on the issue of building backlinks.
This is yet another sendmail wrapper to help detect webmail scripts that might be spamming. It's designed for the qmail with the QMAILQUEUE path, and the qmail-qfilter filter framework. You need to write a filter that will scan the mail going out, or use Spamassassin if you want general spam filtering.
What you do is, change the sendmail program setting in php.ini to run this program, which I call metasendmail.