Archiv der Kategorie Allgemeines

Video von Fukushima innerhalb der Sperrzone

Manche haben scheinbar nichts Besseres zu tun, als mit einer HD-Cam da rumzulaufen. Die Hälfte des Films piepsen die Geigerzähler..

via fefe

Mac OS X: Maus springt [Update 12.04.2011]

Problem: Am Mac bzw. unter OS X springt aus heiterem die Maus. Da ich eine Funkmaus (Logitech) verwende, habe ich das natürlich zuerst auf die Funkverbindung geschoben — auch wenn ich es eigentlich nicht wahr haben wollte. Der Gegentest mit einer Magic Mouse zeigte auch wenig (erfreuliche) Resultate. Anders herum funktionierte die Funkmaus aber an einem anderen Ort (und anderem Rechner).

Als jedoch auch die eigens dafür organisierte Kabelmaus auch sprang, musste der Fehler woanders liegen. Ich habe die üblichen Maßnahmen abgeklappert: PRAM-Reset, Caches löschen, Neustarten, Rechte prüfen. Alles Dinge, die zwar sowieso ‘mal sinnvoll sind, nur mir irgendwie nicht weiterhalfen.

Über Google findet man zwar einiges zum Thema, aber wenig davon hilft (und teilweise sind USB-Probleme, die irgendjemand mal mit einer Festplatte hatte, schon uralt oder zu situationsspezifisch). Schließlich aber brachte mich DIESER GENIALE BEITRAG auf eine kuriose, aber schlussendlich einfach brilliante Idee: Displayportstecker ab!

Damit wäre zwar die Frage noch offen, was da Probleme macht (Spannung am Stecker?!).. aber zumindest ist USB wieder nutzbar.

Ich schließe den Tag mit einem.. WTF?!

Update: Andreas (Kommentar #1) gab mir den sehr wertvollen Tipp, dass es an dem, zwar Original Apple, passiven DisplayPort-zu-DVI-Adapter liegt. Ein aktiver Adapter kostet heute auch nicht mehr viel mehr als ein sein passives Pendant. Im Internet geistern (alte) Preise von bis zu 100$, das ist also längst Geschichte. Über Amazon gibt es den Adapter von XFZ für knapp 20 €.

In der englischsprachigen (wo sonst!) Wikipedia liest man, dass das was mit Dual-DVI zu tun hat. Und mein externer 24″-Monitor braucht die…

iTunes und Xcode4

Da war ich wohl etwas leichtgläubig, als ich dachte, “dann installierste mal eben Xcode 4″. Jenes gibt es ja (angeblich) bereits als Goldmaster (mit Developer-Zugang). “Angeblich” deswegen, weil das, was mir da gestern Abend widerfahren ist, nun alles andere als Gold ist.

Oder anders ausgedrückt, in Stichworten:

  • Problemlösung iPhone reagiert nicht mehr
  • Problemlösung iPhone iOS 4.3 Fehler 10

Chronik

Die Installation von Xcode 4 GM selber war wie immer einfach — er schaufelt insgesamt einige Gigabytes von Daten für Compiler, Doku und Xcode selber auf die Platte. Ein Neustart wird nicht empfohlen/vorausgesetzt, aber… es wird kein iPhone mehr erkannt. Nicht einmal die Akku-Ladefunktion funktionierte, geschweige denn eine iTunes-Synchronization (Symptom: iPhone wird als Gerät überhaupt nicht vom System erkannt. Allerdings konnte ich sehen, dass der USB-Hub ein Gerät “erkennt”, d.h. eine physikalische Verbindung bestand.) Ein Reboot löste das Problem — zunächst jedenfalls. Abgesehen davon ließ sich Xcode aber nicht vernünftig starten (immer 2 Fehlermeldungen, keine Reaktion bei “New Project”), was mir dann erstmal egal war.

Daraufhin wollte ich auch gleich die neue iOS 4.3 GM ausprobieren. (Ich denke, das Problem wäre auch mit jeder anderen Firmware passiert, siehe dazu später.) Ungefähr in der Mitte des Prozesses schlug das Aufspielen der Firmware fehl und das iPhone verblieb im Wiederherstellungsmodus (mit dem iTunes-Symbol und dem Kabel auf dem Display). Das Wiederherstellen per Backup brachte überhaupt nichts bzw. es resultierte mit dem gleichen Fehler. Der Fehler war immer eine Kombination verschiedener Meldungen, u.a. auch der o.g. “Fehler 10″ während der Wiederherstellung.

Der Ansatz, einfach Xcode 3.x wieder drüberzubügeln, fruchtete zunächst nicht. Auch nach einem Reboot veränderte sich das fehlerhafte Verhalten nicht. Sh..! Die hilfreichende Lösung war dann, iTunes 10.2 einfach *nochmal* zu installieren. Ich brauchte noch nichtmal das System neu zu starten, die Wiederherstellung funktionierte sofort.

Da besteht Verbesserungsbedarf, wenn iTunes und Xcode solche zentralen Abhängigkeiten untereinander haben.

Fazit

Eine Goldmaster ist wohl heute auch nicht mehr das, was es eigentlich mal bedeutete.

webM für OS X (QuickTime)

Keine brandaktuelle Neugigkeit: Auch für OS X gibt es bereits webM.

Im Downloadbereich des webM-Projektes gibt es Installer für ein QuickTime-Plugin. Damit “kann” der Safari dann auch webM, beispielsweise YouTube HTML5 Demo mit webM (anstatt H.264).

OviStore

Ach ja…

Oder mit anderen Worten: Angry Birds ist zwar (mutmaßlich dürfte das stimmen) eins der best verkauftesten Spiele, aber die Wahrscheinlich ist hoch, dass der Besucher ein inkompatibles Handy/Phone besitzt. Denn es funktioniert nur mit Androids..

“Nein, was du schreibst ist dumm.”

So ähnlich lassen sich die Antworten zusammenfassen, die einige nicht ganz Unbekannte der Informatik als Antwort auf ihre Einreichungen erhalten haben. Lesenswert.

Hier als PDF.

via fefe

The Unix-Haters: The X-Windows Desaster

Hihi: "Programming X-Windows is like trying to find the square root of pi using roman numerals."
@knalli
knalli

Ein schönes Kapitel aus dem The Unix-Haters Buch, passend zu einem Thema dieser Woche.

Lobbyismus für Dummies

Ein neues Werk von Alexander Lehmann. Wie immer sehenswert.

Exklusiv bei Extra 3: Neuer Film von Alexander Lehmann! Lobbyismus für Dummies - wie man Politiker effektiv beeinflusst http://bit.ly/dtzgu0
@extra3
extra3

{DEVELOPERS SHAME DAY}

Cem hat kürzlich den Developers Shame Day ins Leben gerufen.

Als Stichtag würde ich den 3.11.2010 vorschlagen. Ich stelle mir vor, dass an diesem Tag alle Entwickler, die ein Blog oder eine Seite betreiben, ein kleines Stück Code präsentieren, dass aus heutiger (oder vielleicht auch damaliger) Sicht total hirnverbrannt ist. Ein Stück Code, dass uns selbst die Schamröte ins Gesicht steigen lässt. Dabei ist egal, ob es sich um PHP, JavaScript, CSS, HTML, Java, C oder sonst etwas handelt. Es muss nur von euch sein und es darf nicht verändert werden (umeventuell doch als total verrückter Hund dazustehen ). Ein kleiner erläuternder Text sollte natürlich auch nicht fehlen.

Und das ist mein Beitrag, wohl einer meiner ersten Gehversuche in PHP. Der Quellcode entstammt einer Datei namens “functions.inc.php” [sic!]. Und es scheint so ;) , also wäre es eine größere Anwendung gewesen, ich habe jedoch echt keine Ahnung mehr welche — vielleicht die erste PHP-Homepage in Eigenentwicklung? Die Datei hatte sich irgendwie auf meine “Informatik-Diskette” [sic!] (Oberstufenkurs) verirrt, von der ich tatsächlich noch ein Abbild hatte. Der Rest der Programmiersünden muss entweder (m)einen Backup-Aufräumaktionen oder einem vor einigen Jahren aufgetreten Backupmediumfehler zum Opfen gefallen sein. Zu meiner Verteidigung kann ich wohl nur sagen hoffen, dass dies einer erste Spielversion war und nie “produktiv” wurde.

Listing

Bitte in voller Länge genießen. Jede Zeile ist ein Genuss. *ankoppfass*

Unverändert, nur Benutzername/Passwort habe ich ausgeixt.

Datei: functions.inc.php (von 2002 oder 2003)

<?php
//conf.inc.php
//please don't change this file manually - go to your admin-area to change settings!!!
$listname="Meine Linkliste";
$listname2="Downloads";
$linkwidth="100%";
$addpagewidth="50%";
$catorder="name";
$incatsort="Hits";
$perpage="5";
$max_search="10";
$adminpw="a";
$max_desc_leng="500";
$html="ON";
$language="german.lang";
$timeformat="1";
 @include("global/$language"); // language-file
 @include("../global/$language"); // language-file
//connect.inc.php
// DON'T CHANGE THIS FILE MANUALLY - EDIT ONLY VIA ADMIN-AREA
$server="localhost";
$user="xxx";
$pass="xxx";
$mydb="xxx";
$db_prefix="xl_";
$db_prefix2="dl_";
function JPDiv ($a,$b) {
  $i=0;
  $j=0;
  while($j==0) {
    if(($a/($b*($i+1)))>1) {
      $i++;
    } else {
      $j = 1;
    }
  }
return $i;
}
function JPDatumZeit ($a) {
  $JPTag = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
  $JPMonat = array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
  $JPDatumTag = $JPTag[date("w",$a)];
  $JPDatumMonat = $JPMonat[date("n",$a)-1];
  $JPDatumJahr = date("Y",$a);
  $JPZeit = date("H:i:s",$a);
  $b = $JPDatumTag . ", " . date("j") . ". " . $JPDatumMonat . " " . $JPDatumJahr . " [" . $JPZeit . "]";
return $b;
}
function JPDatumZeit2 ($a) {
  $JPDatumJahr = date("Y",$a);
  $JPZeit = date("H:i:s",$a);
  $b = date("j") . "." . date("w",$a)+1 . "." . $JPDatumJahr . " [" . $JPZeit . "]";
return $b;
}
class my_zugriff{
//Variablen für Zugangsdaten
var $user="xxx";		//Benutzername für den MySQL-Zugang
var $password="xxx";		//Passwort
var $host="localhost";	//Name (IP-Adr.) des Rechners mit MySQL
var $dbname="xxx"; 	//Name der Datenbank
//Weitere Variablen
var $db_verbindung=false; //Speichert die Verbindungskennung
var $sql_result=false; //Speichert die Kennung eines ausgewerteten SQL-Befehls
//Konstruktor definieren
function my_zugriff(){
   //Funktion verbinden wird bei Aufruf der Klasse ausgeführt
	 $this->verbinden();
}
//Falls keine Verbindung besteht,
//Verbindung aufbauen und Datenbank als Standard definieren
function verbinden(){
if ($this->db_verbindung==false){
   $this->db_verbindung = @mysql_connect($this->host, $this->user, $this->password);
   if(empty($this->db_verbindung)){
      $this->fehler("Beim Verbinden");
   }
   $auswahl = @mysql_select_db($this->dbname, $this->db_verbindung);
   if(empty ($auswahl)){
      $this->fehler("Beim Ausw&auml;hlen der DB");
   }
   return $this->db_verbindung;
}
}
//Gibt Fehlermeldung aus und beendet das Skript
function fehler($fehlerpunkt){
    echo $fehlerpunkt . " ist ein Fehler aufgetreten!<br>";
		echo mysql_error() . "<br>"; //Fehlerbezeichnung
		echo mysql_errno();	 	 		//Fehlernummer
		echo "</body></html>";		//Html-Tags schließen
		exit;
}
//SQL-Befehl ausführen
function sql_befehl($sql){
$this->sql_result = @mysql_query($sql, $this->db_verbindung);
if (empty($this->sql_result)){
	 $this->fehler("Beim Senden der Abfrage");
}
return $this->sql_result;
}
//Falls zuvor ein SQL-Befehl ausgeführt wurde,
//wird hier das Array mit den Datensätzen ausgegeben
function sql_daten(){
if(!empty($this->sql_result)){
		$sql_array=@mysql_fetch_array($this->sql_result);
		return $sql_array;
}else{
		$this->fehler("Beim Ausgeben der Datens&auml;tze");
}
}
//eig. Fkt
function sql_num_rows($sql){
$this->sql_befehl($sql);
$rows = MYSQL_NUM_ROWS($this->sql_result);
return $rows;
}
}
$db=new my_zugriff();
$db->sql_befehl("SELECT elem_string FROM elem_global WHERE elem_name='JPmyVersion'");
$myVersion_now = $db->sql_daten();
 $JPmyVersion = $myVersion_now[0];
?>

Selbstreflexion

  • Struktur: globale Variablen
  • Struktur/Aufbau:Â als Script noch okay, aber als Include? Oweh..
  • Includes mittendrin
  • Variabel- und Funktionsnamen multilingual
  • Inhalt der Funktionen..
  • kein gängiger Codestyle (ja, der Blog zeigt’s richtig an)
  • Inline-SQL(!)

Kurzum: What the hell…?

Weitere via Google oder Twitter oder Facebook.

[Howto] Maven: Wie man eine ausführbare Jar in eine Java-Webanwendung (War) via Webstart integriert.

Die Situation

Es bestehen zwei lauffähige, fertige Projekte in Maven, welche beide auch vollwertige Artefakte bilden können.

Zum einen die Webanwendung — nennen wir sie hier mal webportal — mit einem WAR-Artefakt, etwa für einen Tomcat. Ob das Artefakt als Snapshot oder Release gemacht wird, ob es nur generiert oder auch in ein Repository deployt wird, ist hierbei nicht von weiterer Bedeutung.

Zum anderen die normale Clientanwendung — nennen wir sie doch einfach userclient — mit einem JAR-Artefakt. Wichtig ist natürlich, dass hier eine startfähige Main-Klasse vorhanden ist. Dies sollte jedoch der Regelfall sein, daher nur der formale Hinweis.

Zusammengefasst, und der Auftrag an dieses Howto ist also: Wie konfiguriert und erweitert man den Buildzyklus in welchem Projekt an welcher Stelle am geschicktesten, um auf einfachem Wege die JAR-Datei userclient in die Webanwendung webportal als Java Webstart zu integrieren. Dabei ist es hilfreich, wenn man via pom.xml (und natürlich der Macht der Properties) die Versionen spezifizieren kann. Der gesamte Prozess von auswählen, signieren und ausliefern soll dabei automatisch und ohne weiteres Eingreifen des Entwicklers geschehen können. Idealerweise sollte das ganze auch optional sein — dazu gibt es dann mehr unter “Optimierungen und Verbesserungen”.

Den Rest des Eintrags lesen. »

Tags: , , , ,