Archiv ‘IT’

Samstag, 4. Juli 2009

Limewire Megafail

Eine Mitarbeiterin von Limewire (dem Hersteller eines gleichnamigen, schrottigen P2P Filesharing-Programm, das hierzulande noch von mindestens einer blonden Master of Law-Absolventin benutzt wird) hält eine Standpauke über Eigentumsrechte:

Woman: (didactically snobbish) We don’t want your money. No.  Enjoy the pizza, but you can’t steal other people’s things.  You can’t take what’s not yours

Quelle: Dovecote Records

Wer die Pointe nicht begreift: Mit Limewire werden täglich Millionen von urheberrechtlich geschützten Musik- und Filmtitel getauscht …

Tags: ,
Labels: Funny, IT

Keine Kommentare | neuen Kommentar verfassen

Donnerstag, 2. Juli 2009

lprng debuggen

Gerade habe ich eine Stunde mit debuggen von LPRng verbracht, bis ich schlussendlich feststellen musste, dass das angebliche Druckerproblem mit einem Kaltstart des Druckers (!) gelöst werden konnte.

Dennoch ist es für die Nachwelt sicherlich von Interesse, wie man LPRng im speziellen und Druckerprobleme unter Linux im allgemeinen debuggt.

lprng ausschalten

Damit man ungestörten Zugriff auf den Parallelport hat, schaltet man kurzerhand den von Debian automatisch geladenen Druckserver aus:

# /etc/init.d/lprng stop

Module überprüfen

Anschliessend überprüfen wir grundlegend, ob die Parallelporttreiber geladen wurden:

$ lsmod | grep lp
lp                     11076  0 
parport                34280  2 lp,parport_pc

Berechtigungen des Parallelports

$ ls -l /dev/lp0
crw-rw---- 1 root lp 6, 0 2009-07-02 13:07 /dev/lp0

Sieht gut aus. Falls der Port nicht existiert, legt man in anhand einer anderen auf diesem Blog publizierten Anleitung an.

Auf Parallelport drucken

# cat sample.ps > /dev/lp0

ACHTUNG: Drucker, die kein Postscript sprechen (würde ich nie mehr in meinem Leben anschaffen!), werden seitenweise kryptische Codes ausdrucken. Eine Beispieldatei im Postscript-Format findet sich unter samplec.ps

In meinem Fall beendete sich dieser Befehl auch nach 20 Sekunden nicht, weshalb ich ihn mit Ctrl+C von Hand abbrechen musste (ansonsten hat man nach 1-2 Sekunden wieder freie Hand, sofern die Postscript-Datei nicht gerade 50 MB gross ist …). Hier ging mir plötzlich ein Lichtlein auf, dass das Problem wohl nicht am Druckserver selber zu suchen war, sondern irgendwo an oder zwischen dem Drucker und dem Server lag.

lprng debuggen

Wenn bis hierhin alles geklappt hat, muss das Problem wirklich an lprng liegen. Deshalb starten wir den Druckserver im Debug-Modus:

# lpd -F -D1 >&/tmp/lprng.debug &

Ich habe Werte für D von 1, 2 und 9 ausprobiert, hat alles geklappt. In /tmp/lprng.debug werden alle Statusmeldungen akribisch aufgelistet. Anhand dieser ist es im Zusammenspiel mit Google möglich, andere Leidensgenossen zu finden und eventuell sogar die Lösung des Problems präsentiert zu erhalten.

Tags: , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Samstag, 20. Juni 2009

Systeminformationen in der Linux-Shell auslesen

Da unser Printserver auf der Arbeit in letzter Zeit oftmals einen ausgereizten Arbeitsspeicher meldet, werde ich heute ein, zwei zusätzliche Riegel RAM installieren gehen. Doch was für Module muss ich in unserem Ersatzteil-Lager suchen? Mit einem SSH-Zugang ist es absolut kein Problem, alle Fragen zu klären:

PCI-Bus auslesen

Zeigt die Chipsets und alle verbauten PCI-Karten an:

$ lspci
00:00.0 Host bridge: Intel Corporation 82815 815 Chipset Host Bridge and Memory Controller Hub (rev 04)
00:02.0 VGA compatible controller: Intel Corporation 82815 Chipset Graphics Controller (CGC) (rev 04)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 02)
00:1f.0 ISA bridge: Intel Corporation 82801BA ISA Bridge (LPC) (rev 02)
00:1f.1 IDE interface: Intel Corporation 82801BA IDE U100 Controller (rev 02)
00:1f.4 USB Controller: Intel Corporation 82801BA/BAM USB Controller #1 (rev 02)
00:1f.5 Multimedia audio controller: Intel Corporation 82801BA/BAM AC'97 Audio Controller (rev 02)
02:08.0 Ethernet controller: Intel Corporation 82801BA/BAM/CA/CAM Ethernet Controller (rev 01)

CPU-Eigenschaften auslesen

Verbaut ist also ein Pentium III („model name“) mit 1 GHz („cpu MHz“):

$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 8
model name      : Pentium III (Coppermine)
stepping        : 10
cpu MHz         : 996.828
cache size      : 256 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse up
bogomips        : 1995.74
clflush size    : 32
power management:

RAM-Typ

Auf das Tool dmidecode bin ich über der Blog-Artikel Linux: Check Ram Speed and Type aufmerksam geworden. Wie die nachfolgende Ausgabe zeigt, ist momentan ein RAM-Baustein verbaut – und zwar ein Riegel SDRAM 133 MHz mit einer Kapazität von 256 MB. Weiter hat es anscheinend noch Platz für zwei weitere Module („Size: No Module Installed“). Um was für Speicher es sich beim letzten Eintrag handelt, weiss ich hingegen nicht.

# dmidecode --type 17
# dmidecode 2.9
SMBIOS 2.3 present.

Handle 0x0023, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0021
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 256 MB
        Form Factor: DIMM
        Set: None
        Locator: XMM1
        Bank Locator: Not Specified
        Type: SDRAM
        Type Detail: Synchronous
        Speed: 133 MHz (7.5 ns)
        Manufacturer: JEDEC ID:C1 49 4E 46 49 4E 45 4F
        Serial Number: EEC20808
        Asset Tag: Not Specified
        Part Number: HYS64V32300GU-7.5.

Handle 0x0024, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0021
        Error Information Handle: Not Provided
        Total Width: Unknown
        Data Width: Unknown
        Size: No Module Installed
        Form Factor: DIMM
        Set: None
        Locator: XMM2
        Bank Locator: Not Specified
        Type: SDRAM
        Type Detail: Synchronous
        Speed: Unknown
        Manufacturer: JEDEC ID:
        Serial Number:  
        Asset Tag: Not Specified
        Part Number:  

Handle 0x0025, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0021
        Error Information Handle: Not Provided
        Total Width: Unknown
        Data Width: Unknown
        Size: No Module Installed
        Form Factor: DIMM
        Set: None
        Locator: XMM3
        Bank Locator: Not Specified
        Type: SDRAM
        Type Detail: Synchronous
        Speed: Unknown
        Manufacturer: JEDEC ID:
        Serial Number:  
        Asset Tag: Not Specified
        Part Number:  

Handle 0x0027, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0022
        Error Information Handle: Not Provided
        Total Width: 4 bits
        Data Width: 4 bits
        Size: 512 kB
        Form Factor: Chip
        Set: None
        Locator: XU15
        Bank Locator: Not Specified
        Type: Flash
        Type Detail: Non-Volatile
        Speed: Unknown
        Manufacturer: Not Specified
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified

Nachtrag

Wie ich vor Ort feststellen musste, unterstützt Intels 815er Chipset nur maximal 512MB RAM – egal, ob im dritten DIMM-Slot noch 256MB stecken oder nicht …


216-Memory Size Exceeds Maximum Supported
Originally uploaded by emeidi

Tags: , ,
Labels: IT, Linux

3 Kommentare | neuen Kommentar verfassen

Mittwoch, 10. Juni 2009

Microsoft festgefahren

Microsoft’s monopoly essentially attacked itself as if an autoimmune disorder; the company has worked so hard to prevent new competitors from entering the market that it now can’t offer anything really new itself either.

Quelle: AppleInsider | Snow Leopard gets richer, thinner, cheaper than Windows 7

Mit jedem Tag fällt Microsoft einen Schritt weiter hinter die Konkurrenz. Die langen Produktentwicklungszyklen, die Microsoft in vielen Bereichen an den Tag legt (Client-Betriebssystem, Browser, Service Packs, etc.) sind im Zeitalter des Internets und der ewigen Betas ein immens grosser Nachteil. Nur scheinen das die Entscheider bei Microsoft nicht bemerkt zu haben und vertrauen immer noch darauf, dass die Grosskunden, die den grössten Teil des Umsatzes generieren, noch konservativer und unbeweglicher sind als der Softwarekonzern.

Schauen wir uns einige konkrete Produkte an:

Während für Mac OS X 10.5 seit Oktober 2007 sieben kleinere Upgrades herausgekommen sind, haben wir bei Windows Vista bisher zwei grosse, fette Service Packs gesehen. Schaut man sich zudem an, wie viele Betriebssystem-Versionen seit 2000 herausgekommen sind, sieht die Bilanz für Microsoft noch schlimmer aus: Erst im nächsten Jahr – so Gates … eh, Gott will – wird Windows 7 erscheinen, was vier Betriebsssystem-Versionen in 10 Jahren entspricht. Bei Mac OS X werden es deren sechs sein.

Weiteres Beispiel gefällig? Browser. Der Internet Explorer 6 erschien im … bitte festhalten … August 2001! Gerade im schnelllebigen Web ist es Pflicht, dass ein Unternehmen fähig ist, innert 365 Tagen eine neue Browserversion herauszubringen, die neuesten Entwicklungen Rechnung trägt. Ah, und standardkonform sollte das Ding natürlich auch sein. Nachdem Microsoft wieder einige Gänge zugelegt hat, ist nun mittlerweile Internet Explorer 8 draussen. Das Produkt hinkt aber – wen wunderts – immer noch Jahre hinter der Konkurrenz hinterher. Aber bitte, es soll dies niemand den letzten verbliebenen Endanwender stecken. 8 Jahre – 3 Versionen. Safari 1.0 erschien im Juni 2003; die Version 4.0 ist gestern Montag veröffentlicht worden. 6 Jahre – 4 Versionen.

Na, klingelts?

Microsoft gerät deshalb ins Hintertreffen, weil es anscheinend gerade dieses Ur-Gestein im Software-Markt nicht schafft, Produktupdates derart klein zu halten, dass seine Entwickler sie tatsächlich innert der selbst gesetzten Frist fertigstellen kann. Weniger ist mehr! Ob es an der veralteten Code-Basis liegt? Die Konkurrenz zeigt jedenfalls nicht nur, dass man ehrgeizige Zeitpläne durchaus einhalten kann, sondern die neuen Versionen auch mit tatsächlich erlebbaren Features anreichern kann. Aber vielleicht sind die Microsoftschen Produktzyklen nicht die Ursache des Mankos, sondern nur die Symptome von viel grösseren internen Problemen.

Weiterführender Link: Why Apple wins. every. time.

Oh, you like the Pre. Here’s the 3G for 99 bucks. YThanks for the three days, Palm. And how about the G2 having no headphone jack. Apple doesn’t even have to win with this kind of competition. Seriously, who is the guy at Google who didn’t step up and flag that at the meeting?

Kurz: Wenn heute jemand Blitzkriege führt, dann ist es Apple. Auf diese Panzertruppe ist jeder Kompetitor neidisch.

Tags: ,
Labels: Apple, IT

Keine Kommentare | neuen Kommentar verfassen

Montag, 8. Juni 2009

Wie sag ich’s dem Computer?

Programming is really just the act of teaching a computer how to do something that you know how to do yourself. It’s a matter of understanding how to do something and then translating your thoughts into computer code.

Quelle: How to „think“ as a programmer : reddit.com

Tags: ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Samstag, 6. Juni 2009

Mein erstes "Hello World!"

I wrote my first traditional program using BASIC on an Apple II circa 1982. The program printed my name on the screen. At the time, it was the coolest thing I’d ever seen.

Quelle: Hivelogic – Regarding The Switch to ExpressionEngine

Mir ging es irgendwann einmal vor 1995 genau gleich: Mein erstes BASIC-Programm auf einem betagten i286er veränderte mein Verhältnis zum Computer für immer. Auf einmal konnte man der Maschine Befehle erteilen – und noch viel spannender, mittels einer Eingabeaufforderung Variablen einlesen. Der Rest meiner Familie kann sich vielleicht noch vage daran erinnern, als ich sie zum ersten Mal vor den Computer setzte und mit einem von mir geschriebenen BASIC-Programm interagieren lies.

Die Routine funktionierte etwa folgendermassen (Pseudo-Code):

echo "Wie heissen Sie?"
input $name
echo "Hallo $name. In welchem Jahr wurden Sie geboren?"
input $year
$age = date('Y') - $year
echo "Lieber $name, Sie sind heute $age Jahre alt."
exit 0

Das war der Hammer – auch wenn die Nicht-Geeks um mich herum still den Kopf schüttelten. Abgesehen von Kollege Stewä interessierten sich auch viele (männliche) Klassenkollegen nicht für diesen Durchbruch. Ich kann mich ganz genau daran erinnern, wie Kollege Fabio arrogant reagierte: „Ja und?“. Zum Glück habe ich mich von solchen Reaktionen nicht beirren lassen.

Tags: , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 2. Juni 2009

Wie man als Programmierer seinen Arbeitsplatz auf Lebzeiten sichert

Köstlich – der ganze Artikel muss gelesen werden!

If you call your variables a, b, c, then it will be impossible to search for instances of them using a simple text editor. Further, nobody will be able to guess what they are for.

Quelle: How To Write Unmaintainable Code

Tags: , ,
Labels: Arbeit, Funny, IT

Keine Kommentare | neuen Kommentar verfassen

Dienstag, 2. Juni 2009

Wie man sich bei Web-Buden anständig bewirbt

Was ich in einem früheren Artikel bereits auf meine Art ausgedrückt habe, schildert David von 37Signals auf Englisch und aus aktuellem Anlass (Suche nach einem „Junior Support Programmer“):

This advice is probably exactly the opposite of what you’ll if you’re aiming to get into a big shop with a formal HR department. In that scenario, it’s often last man standing in the numbers game and checklist requirements. Personality doesn’t matter to make it through the first cut.

But when you’re looking to get hired by managers who actually have to work with you, personality is almost all that matters to get to the interview. So beef up your cover letter and let your personality shine […]

Quelle: Forget the resume, kill on the cover letter – (37signals)

Mit ein Grund, wieso ich die ersehnte Anstellung bei Liip gekriegt habe, war genau ein solcher nicht standardkonformer Begleitbrief zum Bewerbungsschreiben – das wurde mir von einem der neuen Chefs nach einige Arbeitswochen explizit so mit auf den Weg gegeben. Inwiefern darin meine tatsächliche „Personality“ durchschien, könnte das Liip-Management mittlerweile sicherlich sehr gut beurteilen … Auf jeden Fall hatte der Brief die Aufmerksamkeit der Rekrutierenden geweckt.

Tags: , ,
Labels: Arbeit, IT, Schweiz, Web

1 Kommentar | neuen Kommentar verfassen

Dienstag, 26. Mai 2009

Unser vetterliwirtschaftliche Bundesverwaltung schafft es auf reddit!

Red Hat Sues Switzerland Over Microsoft Monopoly – Linux vendor Red Hat, and 17 other vendors, have protested a Swiss government contract given to Microsoft without any public bidding

Quelle: Red Hat Sues Switzerland Over Microsoft Monopoly – Linux vendor Red Hat, and 17 other vendors, have protested a Swiss government contract given to Microsoft without any public bidding : technology

Ein grosses Bravo und Dankeschön an Red Hat, um unser Seldwyla in aller Welt bekannt zu machen. Ein weiteres Beispiel dafür, dass unsere Bundesverwaltung von Gehilfen unzähliger Microsoft-, Oracle- und SAP-Beratern durchsetzt ist.

Tags: , , , ,
Labels: IT, Linux

Keine Kommentare | neuen Kommentar verfassen

Sonntag, 3. Mai 2009

cacti-Verzeichnis zügeln

In den letzten Tagen habe ich die Verzeichnisstruktur auf meinem lokalen Web-Server angepasst. Unter anderem war von dieser Säuberungsaktion auch meine cacti-Installation betroffen.

Nachdem ich mich einige Stunden über nicht aktualisierte Graphen geärgert hatte, fand ich zu später Stunde dann endlich die Lösung des Problems:

UPDATE poller_item SET rrd_path = REPLACE(rrd_path,'/var/www/cacti/','/var/www/system/cacti/')
UPDATE poller_item SET arg1 = REPLACE(arg1,'/var/www/cacti/','/var/www/system/cacti/')

Offensichtlich ist die Software nicht derart intelligent programmiert, dass Verzeichniswechsel reibungslos über die Bühne gehen. Wieso Script-Pfade absolut und nicht wie beispielsweise die RRAs relativ in der Datenbank abgelegt werden, ist mir ein Rätsel.

Schriften

Als nützlicher Nebeneffekt konnte ich in diesem Anlauf in der Administrationsoberfläche auch endlich anständige Schriften definieren – vorher wurden Graphen in einer wüsten Serifenschrift ausgegeben. In Debian ist die wohl beste Schrift für RRD-Graphen die DejaVu Sans, welche unter folgendem Pfad liegt:

/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf

Tags:
Labels: IT, Linux, Web

Keine Kommentare | neuen Kommentar verfassen