Postings tagged with techie
TrendMicro - Die die die!
TrendMicro is suing BarracudaNetworks over the incredibly novel idea of scanning email for viruses (via the excellent open-source ClamAV ) on an SMTP server. To me, this is akin to suing someone for locking their doors at night. I mean, who could’ve ever thunk to scan email before it hits mailboxes? Unpossible.
Sigh. Add me to the list of sysadmins that think TrendMicro sucks and doesn’t deserve your money.
My MythTV setup
- Case: Antec NSK2480, 380W PS
- Motherboard: ASUS M2NPV-VM AM2 NVIDIA GeForce 6150 MicroATX
- Wireless Card: SMC SMCWPCIT-G PCI V2.2 (5V/3.3V) Wireless Adapter – Retail
- HDD: Seagate Barracuda 7200.10 ST3400620A 400GB 7200 RPM IDE Ultra ATA100 Hard Drive – OEM
- Processor: AMD Athlon 64 LE-1620 2.4GHz Socket AM2 45W Single-Core Processor Model
- Capture Card: Hauppauge WinTV PVR 350
- DVD: ASUS 18X DVD±R DVD Burner with LightScribe Black PATA Model DRW-1814BL
- Memory: Crucial 1GB 240-Pin DDR2 SDRAM DDR2 667
Synopsis
This hardware works excellently right out of the box with Knoppmyth – part of the reason is that I did my homework beforehand. Everything was purchased at NewEgg and arrived promptly and worked perfectly. I found this mix of hardware to be an excellent place to start if you’re looking to build a MythTV PVR. Total cost was a hair under $600, with shipping.
To go through each piece:
The Case – Antec NSK2480
It’s bigger than I thought – about the size of a component stereo tuner. NewEgg has the size wrong.
It’s quality stuff. Good fit and finish, easy to work with, quality fans and a quiet power supply.
The Motherboard – ASUS M2NPV-VM
More features than you can shake a stick at, including:- Built-in nVidia graphics,
- Many video-out options,
- Paravirtualization support,
- Onboard LAN,
- SATA RAID.
Everything worked fine, and I’m using the proprietary nVidia drivers. The heavy emphasis on multimedia options (and the microATX form factor) makes this an excellent PVR chassis.
Wireless Card – SMC
The SMC has an Atheros chipset and is supported directly in recent linux kernels. I had to use wpa_supplicant to get WPA encrypted wireless connections working.
HDD – Seagate Barracuda 400GB Ultra ATA100
I screwed up and bought an IDE drive – woops. No big deal – it’s still plenty fast enough for recording live TV.
Processor – Athlon 64 LE-1620
This is a low power single core AMD 64-bit chip. I find myself doing more post-processing of video than I thought I would, so if I had it to do again I’d probably get a faster dual-core chip. BUT – this machine idles at 64 watts, so I should save some scratch on electricity in the long haul.
Capture Card – PVR-350
Excellent capture quality – but I had much trouble with the TV-out. It’d work fine for a few hours – then I’d lose red output and everyone would look like a smurf until I rebooted.
So I just started using the TV-out provided by the motherboard – and my problems disappeared. Were I to do it again, I’d either buy two of the cheaper PVR-150s or the PVR-500 to get dual tuners.
A plus – the remote is high quality and works perfectly via lirc. Load is very low during video capture because of the PVR-350’s hardware MPEG decoder.
DVD – ASUS 18x DVD±R Burner
Not much to say – works fine and is darned quiet.
Memory – Crucial 1GB DDR2 667
This is plenty of RAM – after a month it essentially never hits the swap file.
Things I’d do differently
I alluded to some of this above, but:- I’d get two cheaper PVR-150s or the more expensive PVR-500. TV-out on the PVR-350 was buggy for me, has a low maximum resolution and is handled admirably by the motherboard. More than once I’ve wanted to watch live TV while recording – but I’ve found as my library has increased this happens less often.
- I MIGHT get a faster dual-core AMD processor. It’s not a problem and I’m patient, but for an hour-long show the post-processing for commercial detection and transcoding takes about an hour. Slow, but tolerable.
- You can’t have enough HDD space. I’d get a larger hard drive.
- I would use a standard Debian Etch install instead of Knoppmyth. Now that the system is working the way I want, I’ve realized that Knoppmyth really didn’t do anything I couldn’t have, and I may have saved some time starting with Debian Etch proper. But – if you’re not a Debian zealot like myself, you really can’t go wrong with Knoppmyth.
Notes
I transcode video after recording, shrinking it to about 60% of its original size. I can store 14+ days of TV. ARMAGEDDON, HERE I COME!
I switched the default desktop from XFCE (or whatever it was) to my currently preferred KDE – I’ve got plenty of RAM, and I wanted to use Amarok to stream my music collection from my OpenBSD firewall/router/home server. Sound is piped out through my (somewhat old) component stereo and is excellent.
I do not know what I did before commercial auto-skip. I cannot stand watching TV now without it. Were MythTV made of the blood of innocents, I’d still use it because of commercial auto-skip.
This system would serve as an excellent chassis for pretty much any MythTV system – it’s got tons of room, it’s very quiet and the motherboard gives you a ton of connection options – with excellent linux support (proprietary drivers aside).
When I record, transcode and watch TV at the same time, load averages around 1. Very impressive.
Currently I have standard cable. My next upgrades will be a HD Tuner and HD cable – along with a much bigger HDD and a filesystem managed via LVM.
I am ridiculously happy with this system – it’s changed how I watch TV, listen to music and is worth every penny. I cannot say enough good things about it – and because of prudent hardware choices it was quite easy to set up.
If you’re looking to create a MythTV system, this’d be a great place to start.
LG Musiq review
Nice phone. I’ve had it a few weeks since my Treo 600 gave up the ghost. There’s no way in hell I was going to spring for the derivative rip-off that is the IPhone (more on that), and another Treo would just be overkill for me.
So this $99, feature-packed number caught my eye.
The highlights:- FM transmitter,
- MicroSD, up to 4GB according to the docs,
- Plays WMA, mp3 and a couple other formats,
- Includes a stereo headphone adapter,
- Built-in camera / camcorder,
- Java,
- GPS,
- External ipod-like controls,
- Speakerphone
And a slew of other crap that you can find out about at the end of a google search.
The good
- The FM transmitter is quite nice,
- Music sounds great. I’ve got a bunch of MP3/ogg players and this sounds as good as any of them on quality headphones,
- The phone feels solid and looks great,
- The external controls are quite handy,
- The included mini-stereo headphone adapters are a nice touch,
- Flexibility for transferring music and photos – you can pop the microSD card into your computer with an adapter or use the supplied USB cable. With the cable, the phone was recognized on my Debian Etch system with a vfat filesystem and transfers worked perfectly.
- Cheap.
The bad
- It comes with an insultingly small 64 meg microSD card – money grubbing bastards. What is this, 1998?
- No ogg support.
It’s probably hard to beat this phone as far as the features/value ratio and, most importantly, it’s a damn good phone.
Microsoft Exchange Lameness
So we provide really, really good MX-proxy based spamfiltering services at work via exim , clamav , spamassassin and a slew of other open-source tools and DNSRBLs.
Our system:- Requires no training,
- Has no black holes for messages to fall into,
- Notifies the rare false positive when we don’t accept a message,
- Sends no “backscatter”,
- and is stupidly accurate.
One of the most basic tests is to confirm whether or not a recipient is valid before filtering email for them – after all, why scan email that’ll never get delivered? This test involves a mini-SMTP transaction from our spamfilters to the target server, asking “does this email address exist?”
Here’s where Exchange’s lameness comes in – it accepts email for all recipients, valid or not by default, bouncing them later on if they don’t exist. That makes it impossible to reject emails to invalid recipients at SMTP time from the spamfilters. And it means your stupid Exchange server is left vulnerable to backscatter should a spammer chooses to spoof sending from your domain.
No wonder Exchange message stores get piggishly large so quickly.
Fortunately, you can disable this by turning on “recipient filtering” in Exchange 2003. Please do. Why accept email you’re never going to deliver?
Bach's Toccata and Fugue in D minor
An oldie but goodie. . .
If you’ve ever watched Norton SpeedDisk while it’s defragmenting a drive: this is for you. Imagine satisfying “blocks go by and change color in patterns” animations combined with one of the world’s best classical pieces- and you’ve got this.
Damn Small Linux - Damn amazing.
A friend had her Dell Inspiron 9300 give up the ghost this week – and unfortunately it had her un-backed-up Master’s Thesis on it. For reals (hey – sometimes apocryphal stories are true).
The symptoms she described to me suggested out-and-out hardware failure, and I expected that the HDD was probably fine.
Luckily, I’ve got an extra Dell laptop (with a broken LCD but perfectly fine CRT-out) that I could pop her HDD into – but for the life of me, I couldn’t get a Knoppix live CD distro to boot.
So I downloaded the Debian / Knoppix based Damn Small Linux. Amazing – Firefox, busybox, sshfs, XMMS, openSSH and a slew of other tools that fit in a 50 meg ISO! You can load the whole OS to 128meg of RAM.
So I fired up Damn Small Linux, had it load to RAM, mounted an NFS export on my OpenBSD server and copied her files off.
I find the fact that you can fit an extremely useful OS into a 50 meg ISO amazing.
A forgotten *nix gem
Alright. Forgotten by me. Sometimes the extreme coolness that is ‘nix slides right by.
Xnest allows you to “nest” X sessions and can act as both a client and server. I wanted to get remote X connections working to my OpenBSD firewall/router from my Debian workstation. GDM, XDMCP and Xnest to the rescue.
Steps
- Install GDM on the OpenBSD box.
pkg_add -i gdm
- Enable XDMCP in /etc/X11/gdm/gdm.conf. Make sure you lock down port 177! Unencrypted remote X sessions are not safe, and you don’t want the unwashed masses poking around your X server.
#stuff up here [xdmcp] #stuff. . . Enable=true
- Start gdm on the OpenBSD box, and add it to /etc/rc.local.
So we’ve got GDM running on the OpenBSD box, accepting XDMCP connections. Now we need to get the remote host ready.
- Install Xnest on the remote machine.
aptitude install xnest
- Connect!
Xnest :10 -query 10.0.0.1where ”:10” is some unused display on the host running XDMCP and “10.0.0.1” is its IP address.
You should have a GDM login screen. Huzzah! You can specify a specific height/width via the Xnest’s -geometry option, among about a billion other options. Xnest and XDMCP are both ridiculously flexible. I barely notice lagtime over wired or wireless connections. Very nice.
More Info
Why does RMS hate America?
If you use free software, the terrorists have won.
I don’t have a problem with Cuba adopting free software country-wide. Free software means free, for everyone that agrees to play along.
I just wonder about my technological bedfellows when they turn out to be Cuba, Venezuela and China.
Being in questionable company isn’t going to make me go proprietary, though.
Creating image buttons with Ruby and RMagick
Below is a simple script that saved me some time – for various reasons I had to replace horrid image buttons used on a web site with more compliant-looking image buttons. You could get buttons that look exactly like this via CSS, but in this case swapping out the images was the easiest fix.
In comes RMagick , the ruby interface to the venerable ImageMagick graphics library.
First you create the canvas, then you create the Magick::Draw object that you draw onto the canvas. On linux/unix machines you can directly display the image, too via canvas.display.
The script:
#!/usr/bin/env ruby
require 'RMagick'
[
['add to basket','buy.gif',100],
['change','change.gif',60],
['checkout','checkout.gif',75],
['continue','continue.gif',75],
['continue shopping','continue_shopping.gif',130],
['go','go.gif',30],
['next','next.gif',45],
['place order','place_order.gif',90],
['previous','previous.gif',70],
['product list','product_list.gif',90],
['update','recalculate.gif',60],
['submit','submit.gif',60],
['update','update.gif',60],
['please wait','wait.gif',90]
].each{|button|
canvas=Magick::Image.new(button[2],25){
self.background_color='#BED8F1'
}
d=Magick::Draw.new
d.stroke('transparent')
d.fill('black')
d.font='/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/Verdana_Bold.ttf'
d.pointsize=11
d.font_weight=Magick::BoldWeight
d.text(0,0,button[0])
d.text_antialias(false)
d.font_style=Magick::NormalStyle
d.gravity=Magick::CenterGravity
d.draw(canvas)
canvas=canvas.raise(3,3)
# canvas.display
canvas.write(button[1])
}
The result:

Saved me some time, and I learned a bit out Rmagick in the process.
Get the script here
Ordb.org goes the way of the dodo
Sad, really. The ordb database helped us reject a whole slew of spam right off the top. Kudos for the great work over the years, and many happy returns.
Oh well – I guess it’s better to shut the whole thing down if the maintenance was too difficult to keep on top of.
I really should write an entry about the entirely open-source spam filtering system we use at End Point. I call it the “holy grail,” as it does pretty much everything right. No backscatter, no messages rejected without notification and extremely high-performance.
