A tale of two vendors
At my day job, I buy servers from two vendors, Dell and HP.
Dealing with dell sales is like stabbing yourself in the face over and over, but support is extremely pleasant to deal with, plus I usually don't have to do anything special to do firmware upgrades. Just download and go.
HP Sales bent over backwards to get my order done right and in time. Yet when it comes to support, they are awful. The website is much more complex to navigate, and assumes you have a windows machine. All the downloads are WIN32 .exes. The kicker is that they just uncompress the real upgrade file(ROMpaq in HP speak) and save it to a location. That's all it is. I had to call HP support and it took over an hour to explain that no, we don't use windows and no, I don't have access to a windows machine. The level 1 support tech had to call back after talking to with a L2 tech. In the end, I was sent a dd-made floppy image. I asked what I should do in the future when there are new updates and was told, "call back in and we'll make another disk." That's not very useful.
I wish there was a vendor out there with HPs sales team and Dells tech support. They'd get all my business in a heartbeat.
revdep-rebuild and library cleanup mess
I got tired of doing it by hand, so I wrote a somewhat simple script to do it for me. usage is:./lib_cleanup.sh libnspr4.so.6 libplc4.so.6 libplds4.so.6 libcrypto.so.0.9.7
b2evo sucks for trying to inline a script so see this link for the script.
***WARNING: THIS CODE MIGHT EAT YOUR SYSTEM, KILL YOUR DOG, AND MAKE YOU IMPOTENT. YOU HAVE BEEN WARNED***
Thanks Apple
Thank you for hyping up such a craptastic product like the iphone. I really enjoyed the iphone spam in my inbox this morning.
This one goes out to the RIAA
(This is not a test of the Emergency Broadcast System. This is the real thing)
Kick back watch it crumble
See the drowning, watch the fall
I feel just terrible about it
That's sarcasm, let it burn
I'm gonna make a toast when it falls apart
I'm gonna raise my glass above my heart
Then someone shouts "That's what they get!"
For all the years of hit and run
For all the piss broke bands on VH1
Where did all, their money go?
Don't we all know
Parasitic music industry
As it destroys itself
We'll show them how it's supposed to be
Music written from devotion
Not ambition, not for fame
Zero people are exploited
There are no tricks, up our sleeve
Gonna fight against the mass appeal
We're gonna kill the 7 record deal
Make records that have more than one good song
The dinosaurs will slowly die
And I do believe no one will cry
I'm just fucking glad I'm gonna be
There to watch the fall
Prehistoric music industry
Three feet in la brea tar
Extinction never felt so good
If you think anyone would feel badly
You are sadly, mistaken
The time has come for evolution
Fuck collusion, kill the five
Whatever happened to the handshake?
Whatever happened to deals no-one would break?
What happened to integrity?
It's still there it always was
For playing music just because
A million reasons why
(All) dinosaurs will die
(All) dinosaurs will die
(All) dinosaurs will die
credit to http://www.plyrics.com/lyrics/nofx/dinosaurswilldie.html
Local mirror inactivity got you down?
Then use SLP!
I setup my home network with openslp and wrote a little script that writes a script for portage to execute. The concept goes a little like this:
You run a local rsync/distfile mirror. You have clients that want to use emerge and you don't want it to suck up your bandwidth. Tell them to use your local services like this:
Server side:
emerge openslp
edit /etc/slp.reg so it looks like the following:
(yes I know I shouldn't have a /distfiles at the end of the URL, but I messed up my apache config and am too lazy to change it)
service:portage.rsync://192.168.1.1/gentoo-portage,en,65535
description=Gentoo Portage rsync tree
service:portage.http://192.168.1.1/distfiles,en,65535
description=Gentoo Portage distfiles mirror
now do /etc/init.d/slpd start and you're done with the server!
Client side:
emerge openslp
Using your favorite editor, create /usr/local/bin/portage-slp-services (or some other suitable location for a file to execute when a network device comes up) and add the following:
#!/bin/bash
PORTAGE_SOURCE_FILE=/etc/portage-slp.sh
rm ${PORTAGE_SOURCE_FILE}
touch ${PORTAGE_SOURCE_FILE}
SLP_SYNC=$(slptool findsrvs service:portage.rsync | sed -r -e 's/service:portage.(.*),(.*)/\1/g')
SLP_HTTP=$(slptool findsrvs service:portage.http | sed -r -e 's/service:portage.(.*),(.*)/\1/g')
SYNC=${SLP_SYNC}
GENTOO_MIRRORS="${SLP_HTTP} $(portageq gentoo_mirrors)"
echo "SYNC=${SYNC}" > ${PORTAGE_SOURCE_FILE}
echo "GENTOO_MIRRORS=\"${GENTOO_MIRRORS}\"" >> ${PORTAGE_SOURCE_FILE}
Then edit /etc/make.conf and add source /etc/portage-slp.sh to the end.
Finally, edit /etc/conf.d/net and add the following:
postup() {
/usr/local/bin/portage-slp-services
}
and you're done!
do a touch /etc/portage-slp.sh the first time so portageq doesn't barf(it barfs when trying to source a non-existent file) and restart your network device. You should find that you'll use your local mirrors first if found when the network device came up.
There is one security concern: At this moment, we assume that whoever publishes a slp record is honest, there is no checking. until we have tree signing in place, you can use gpg to sign the slp record and then verify it on the client, both that the record is correct and signed by someone you trust.
That's it for now, keep tuned for more developments!
Something new on the internet.
Link: http://www.youtube.com/watch?v=7MTAHjpL0xQ
I'm generally bored with the internet. However, this is as refreshingly new as it is odd.
EFIKA fun
So I received my EFIKA board last week. My project was supposed to be to integrate the opencores wishbone bus interface to the efika, but that requires a FPGA on board. This batch of the boards doesn't have one, though there is a "prototype" area where I think one was meant to go. This means I can't really do my project, as I'm left working through slow i2c or complex PCI.
All is not lost however. I won't be lame and do nothing with the board. I've ordered a bunch of stuff for a new project(about $200 USD worth) a 40G HDD, passive pci riser, picoATX PSU(DC-DC, 60W), and a intel PRO/1000 PCI ethernet adapter.
What am I going to do with all this you might ask? I'm going to try to turn the EFIKA into a iSCSI target. The board isn't really designed for it, but it'll do for a prototype. I'll soon buy some LiPol(Lithium Polymer) batteries and build a battery circuit for the board, probably interfacing to the i2c bus. I plan on stuffing all of this into a case the size of a small 5.25" external bay.
For those of you who don't know, iSCSI is a way to send/receive scsi commands via ethernet. I call it poor mans Fibre Channel. I decided to go this route because there is no sub $1000 iscsi target available. If sucessful, this should actually have some market value for small installs that still need some form of shared storage.
After I get a working prototype, I'll work with the GNAP folks to make a id10t proof install for the board.
Wish me luck!
PePLink 200BG and wifi.google.com
So, not satisified with the free wifi that the apartment provides(it's only to be used for occasional access), I bought a PePLink CPE device, recommended by google. This a ARM9 SBC with a 200mW 802.11b/g radio and a 5dbi antenna. Google caps your link at 1M/1M, but it's really a reasonable speed, considering it's free. A one time payment of $180(I paid more than I had to to pick one up locally) to bring the signal indoors is well worth it IMO. Testing at all the popular sites shows me at 960k/930k. I'm debating purchasing a higher gain antenna just for stabilities sake.
Now for the bad news on all of this. The PePLink device runs linux(no, this isn't bad), but it seems they violate the GPL license. I can't find the source code or a written offer anywhere on their website or in the support CD provided. I also cannot find a copy of the GPL license text anywhere in the mentioned areas.
I find this quite odd as peplink has openly supported linux in the past. They were a supporter of FOSDEM in bruxelles back in 2005. A quick google search returns lots of articles regarding peplink and OSS. Even some of the PR material they use mentions linux.
I suspect this is merely an oversight by the company(perhaps a www redesign?) and not a blatent misuse of GPL code. I'll be emailing their business development department in the next couple of days to point out the possible license violation and ask where I can find the source. I'll blog as I receive more information.
For the record, this is some info that I extracted from the kernel in the firmware image:
Linux
(none)
2.4.24-rmk2
#492 Fri Dec 2 13:03:43 HKT 2005
cpu fun
While looking at options 2.6.18 provided, I came across cpu "hotplug", where one can turn on/off CPUs on the fly. On my workstation(dual opteron 248) I enabled CONFIG_HOTPLUG_CPU and rebooted. A simple # echo 0 > /sys/devices/system/cpu/cpu1/online and /proc/cpuinfo only shows one processor. This showed up in dmesg:
CPU 1 is now offline
SMP alternatives: switching to UP code
After # echo 1 > /sys/devices/system/cpu/cpu1/online /proc/cpuinfo shows both CPUs and dmesg contains this:
SMP alternatives: switching to SMP code
Booting processor 1/2 APIC 0x1
Initializing CPU#1
Calibrating delay using timer specific routine.. 4410.23 BogoMIPS (lpj=22051180)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 1024K (64 bytes/line)
CPU 1/1 -> Node 0
AMD Opteron(tm) Processor 248 stepping 0a
CPU 1: Syncing TSC to CPU 0.
CPU 1: synchronized TSC with CPU 0 (last diff 2 cycles, maxerr 821 cycles)
This makes me wonder "how much" the CPU is shut down... I wonder if this could be used as some sort of power management for SMP systems.
Time to find a ammeter....
Mr Coffee
One of my favorites...
Mr. Coffee Lyrics
Artist: LagwagonMorning has broken
MR. Coffee has spoken
The familiar wake-up call
sings to my ears
I wake up with a shrug
To the floor with a thud
Where in this hellhole is my coffee mug?
I can now face the day
on legal speed (The American way)
I'm sketching
I'm seizing
I'm spazing
I'm shaking
I can not stop spilling on my brand new shirt
I-I-I'm wired
I'm so inspired
I drank the entire pot
so off to work
Here I come to save the day
on legal speed (The American way)
Drinking coffee
I drink coffee
Drinking coffee everyday
web based task managment software
I'm looking for some web based task managment software.
idealy it would have the following features:
web based
sends emails
per task journal
configurable
if anyone knows of some *free* software, please let me know.
Icecream and pickles....
Why is it that every pregnant woman likes icecream and pickles?
Beer!!!
So I bought a beer kit from http://www.mrbeer.com. My first brew is a blackberry stout. I used 2 cans of stout malt extract, a can of blackberries and a cup of molasses. It will ferment for up to 3 weeks, then I'll bottle and let it sit for many weeks so it can carbonate and the flavors can meld. I'll end up with 2 gallons of what I hope will be an extra tasty stout with about a 7% alcohol content.
If you're in the US and like real beer, I recommend looking into a kit like this. It's inexpensive, fun and easy. Plus you don't have to drink MGD all night.
Please configure your mailserver properly!
Am I the only one who's sick of getting bounced email to aliases that never ever ever send email, and spammers are obviously forginging headers? How does spamming my alias with bounces help anything?
Here's an example:
This is the Postfix program at host smtp.gentoo.org.
I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to postmaster
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The Postfix program
xxxp@xxxxxx.co.uk (expanded from amd64@gentoo.org): host
a.mx.pengus.net[80.249.110.195] said: 550 This message looks like spam.
This server will not accept spam. (in reply to end of DATA command)
Please, please, please, please configure your mailserver to silently reject spam. bouncing to an innocent group becuse some ass has forged our address does nothing, except makes YOU the spammer.
smartcards
I recently received a replacement smartcard and a RS232 based smartcard reader from Genesi. This time I managed not to brick the cards while setting things up. gentoo seems to have good support for the cards via pcsc-lite and opensc. I was able to accomplish a lot in just a few hours of hacking.
- local login support
- ssh/ssh-agent support
- xscreensaver support
- general PAM support(smartcard can be used in place of any PAM password)
The only thing I wish for is some agent to cache my pin number. I suppose I'll hack out some sort of pam-agent.
Thanks go to Pieter of genesi for sending me more gear.
Begining of the end
After watching people fight some more in #gentoo-dev this afternoon, the question "Why the fuck do I bother to waste my time with a distribution that only wastes my time?" popped into my mind. I haven't been able to find an answer yet. Sadly, this indicates the beginning of the end for me. I'm losing interest in anything gentoo at a fast rate. Just the thought of reading public gentoo mailing lists makes me physically ill. I want to vomit.
I still believe that most gentoo developers are good people. There are a lot of examples that can be pointed to to show that teamwork really does work. Unfortunately, people are now using trolling tactics to push their agenda. The recent "Paludis and Profiles" thread on the gentoo-dev mailing list is a perfect example.
So, to my fellow gentoo devs, I have the following 2 things to say:
1. Grow up. Fighting never solves anything.
2. Speak out about what you think is wrong. Don't allow others to bully you around into accepting something that you don't think is best for gentoo. You won't always win your argument, but in the end gentoo will be a better place.
Hardware donations
w00t!!!
A thanks to the following people/groups for some recent hardware:
Gensei: Smartcard reader + cards for AMD64 testing and integration into some of my embedded projects.
Tavros: Antec 500w PSU + opteron 248 + MSI SMP mobo to replace my aging socket 754 3000+
Thanks everyone!
Modular X on amd64 and xgl
I've just finished migrating from X.org 6.8.2 to Modular X 7.0, and everything built like it should. nvidia binary drivers even work as well. Kudos to the x11 team for the hard work. (Migrating to Modular X HOWTO)
After making sure X and GL were working properly, I started to build xgl. Here's how I did it:
# wget http://www.freedesktop.org/~davidr/xgl-svn_100.tar.bz2
# cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/cairo login
(press Enter for password)
# cvs -d:pserver:anoncvs@cvs.freedesktop.org:/cvs/cairo co glitz glitzinfo
# pushd glitz
# ./autogen.sh --prefix=/opt/fdo/
# make
# make install
# popd
# pushd glitzinfo
# PKG_CONFIG_PATH=/opt/fdo/lib/pkgconfig/ make -f Makefile.glx
# LD_LIBRARY_PATH=/opt/fdo/lib/ ./glitzinfo
# popd
At this point, glitzinfo should have told you a bunch of information about available features and formats. You'll have poor performance if you don't have the following:
texture rectangle
texture border clamp
multitexture
texture environment combine
Now it's time to build the xgl server.
# tar -xjvf xgl-svn_100.tar.bz2
# cd Xserver-6.6.1/
# PKG_CONFIG_PATH="/opt/fdo/lib/pkgconfig/" ./configure --disable-kdriveserver --enable-glx --enable-xglserver --prefix=/opt/fdo
# make
# make install
# cd /usr/bin
# rm X && ln -s /opt/fdo/bin/Xgl X
At this point you can now start X. I use
$ startxfce4
The server seems to be somewhat unstable, but that may be because I'm trying to run 2 displays on one video card. YMMV
To go back to the original X server,
# cd /usr/bin/
# rm X && ln -s Xorg X
I'll find out on Tuesday if I can have multiple 3D displays when my new video cards arrive.
EDIT: Sorry, no more comments because of nasty spammers
Part 1: tools for win32 development in linux
emerge the following packages to create a development environment:
dev-util/xmingw-binutils
dev-util/xmingw-gcc
dev-util/xmingw-runtime
dev-util/xmingw-w32api
app-emulation/wine
Use the following as a template for win32 makefiles:
CC=i386-mingw32msvc-gcc
CFLAGS=-O2 -pipe -std=c99 -mno-cygwin -mno-sse -mno-sse2 -mno-mmx -mthreads -DWIN32 -D_WIN32 -D_WINDOWShelloworld.exe: helloworld.o
$(CC) $(CFLAGS) -luser32 -o $@ $?helloworld.o: helloworld.c helloworld.h
$(CC) $(CFLAGS) -o $@ -c $<
NOTE: Now is not a good time to rice out your cflags. Debugging win32 code is hard enough without the compiler playing tricks on you.
To test your new win32 program:
wine ./helloworld.exe
Part 2 will talk about how to create win32 DLLs and import libraries.
*EDIT* I'm sick of all the lame losers out there that keep spamming my blog, so no more comments until something can be worked out
Compiling win32 .exes and .dlls from linux
That's right, it's possible, and not too painful to do. Over the next few blogs that I post I'll go into detail on how to make exes, dlls, and link against dlls that were produced with MSVC.
**again with the blogspam, comments disabled...