OviStore

Ach ja…

[blackbirdpie id=“23506675247874048″]

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..

{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“.

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

Mac vs. PC is dead – Long live PC vs. Mac.

Die Werbevideos von Apple waren stehts sehr amüsant, wenngleich natürlich immer mit den ähnlichen Klischees von „Mac“ und „PC“. So wurden einzelne Argumente gezielt überzeichnet, machten aber somit den ganzen Clip bzw. die Serie bisweilen unterhaltsam. Leider hat Apple sich in den vergangenen Monaten entschieden, die Serie einzustellen.

Nun scheint Microsoft sich gedacht zu haben, dass sie das auch können. Seltsamerweise machen sie aber keine lustigen Clips, sondern gehen ernsthaft mit einer PC vs. Mac Liste an den Mann. Und die meinen das wohl sogar ernst.

Microsoft: PC vs Mac

Unter der Fragestellung „Deciding between a PC and a Mac?“ werden eine Reihe von seltsamen Argumenten aufgelistet.

You can’t get a Mac that ships with a Blu-ray player, TV tuner, Memory Stick reader, or built-in 3G wireless. You can with PCs running Windows 7.

Richtig ist, dass man keinen Mac mit dieser Hardware zusammen oder integriert kaufen kann. Vorteil für den PC ja. Dafür braucht man aber kein Windows 7.

Most of the world’s most popular computer games aren’t available for Macs. And Macs can’t connect to an Xbox 360. PCs are ready to play.

Die Spiele-Karte ist immer gut zu ziehen. Auch ein Vorteil für den PC. Ob allerdings die fehlende Verbindungsmöglichkeit[1] eventuell nicht auch Microsofts Wunsch ist? 😉

Most Macs can’t hook up to your TV unless you buy a converter dongle. Many PCs runningWindows 7 are designed to connect directly to TVs, so you can watch movies and see photos on the big screen.

Generell wohl eher eine PC-Domäne, wohl aber PC-abhängig. Ob jedoch im Zeitalter von DisplayPort das heutzutage eine einfache Entscheidung ist? Und wieso braucht man dafür Windows 7?

Things just don’t work the same way on Macs if you’re used to a PC. For example, the mouse works differently. And many of the shortcuts you’re familiar with don’t work the same way on a Mac.

Das ist schon was lachhaft. Die Maus ist anders, und deshalb ist der PC besser? Das ist überhaupt kein Argument für „Mac vs. PC“. Das zielt augenscheinlich nur an Windows-Anwender, die mit dem Gedanken spielen, zum Mac zu wechseln.

Windows 7 was designed to make it simpler to do the tasks you do every day, with features that the Mac doesn’t have. For example, the new Snap feature makes it easy to view two documents side by side.

Windows wird mit jeder Version immer mehr ein Wizard-OS. Das Snap-Feature ist in der Tat ein sehr praktisches und vor allem produktives Feature. Und dafür braucht man, wenn man mal Zusatztools für andere Windows oder OS X ausser acht lässt, sogar wirklich mal Windows 7. Der Mac hat aber auch nette Features, die Windows nicht hat. Aber gut, das ist ja PR von Microsoft. Das sei das mal verziehen (würde Apple wohl auch so machen).

Unlike Macs, many PCs running Windows 7 support Touch, so you can browse online newspapers, flick through photo albums, and shuffle files and folders—using nothing but your fingers. PCs with a fingerprint reader even let you log in with just a swipe of your finger.

Der Brüller! Touch in der Domäne von Microsoft Windows! Wie viele PCs fallen uns denn so spontan ein, die „Touch“ können…. ja? Die Touch-Fähigkeit von Windows 7 steht nur auf dem Papier, in der Praxis gibt es da nichts. Vielleicht noch nicht? Und wenn es wirklich einen Hersteller geben sollte, der da was tolles gezaubert hat (Kommentare?), dann mit Sicherheit nicht durch den Verdienst von Microsoft.

If most of the computers in your office or school run Windows you may find it harder to get things done with a Mac.

Das passt natürlich wunderbar mit der Meldung, dass der Anteil an Macs an amerikanischen (Hoch-)Schulen weiter ansteigt bzw. überdurchschnittlich liegt.

If you use Apple’s productivity suite, sharing files with PC users can be tricky. Your documents might not look right and your spreadsheets might not calculate correctly.

Das ist richtig. Allerdings sollte jemand, der im Glashaus sitzt, nun wirklich nicht mit Steinen werfen.

You’ll have to buy a separate hardware dongle to plug your Mac into a standard VGA projector. Most PCs with Windows 7 hook up easily.

Was Beamer angeht: Richtig. Allerdings ist der Vorteil auch nur ein Neusprech für: PCs haben alle noch einen zusätzlichen, veralteten Analog-Anschluss. Kostet Gewicht, kostet auch Geld, kostet Platz.

On a Mac, out of the box, you can only encrypt your home folder. With Windows 7 Ultimate, you can encrypt your entire hard drive and even USB drives. So your stuff can be safer wherever you go.

Out of the Box ist das selbstverständlich richtig. Mit der Ultimate..

With a Mac, it’s harder to set up secure sharing for your photos, music & movies, documents, and even printers with other computers on your home network. With HomeGroup, it’s easy to connect all the computers in your house running Windows 7.

Sagen wir mal so: In einem reinen homogenen Windows 7- Netzwerk ist das sogar einfach schön. Durch zahlreiche neue Protokolle, Wizards und Austauschverfahren ist das tatsächlich irgendwie irgendwann einfach[2]. Aber bitte, bitte versucht nicht, eine stink normale Freigabe mit Kennwort für Nicht-Windows-7-Systeme (etwa XP) zu erstellen. Da kann man unter Windows 7 verzweifeln. Das ging unter XP besser. Und unterm Mac sowieso.

On a Mac, you have to manually set up photo sharing, manually set up music and movie sharing, manually set up file sharing, and manually set up printer sharing. It’s easy to automatically and securely network with all the computers in your house when they’re running Windows 7.

Einmal abgesehen davon, dass die Freigabe in iTunes (Musik) sogar automatisch geht. Ja, muss man vorher aktivieren. Muss man doch unter Windows auch? Pluspunkt ist aber natürlich ein Wizard *kicher* für die Verwaltung der Medienfreigabe. Also das mit dem Pluspunkt war jetzt ernstgemeint. Und dafür braucht man Windows 7, ja.

Apple’s productivity suite file formats won’t open in Microsoft Office on PCs. This can be a real hassle for Mac users sharing work documents with PC users.

Ja. Und Microsofts-Formate lassen sich mit einigen Abstrichen auf dem Mac öffnen. Ist das jetzt nicht eher ein Vorteil? Gefährliche Argumentation. Vor allem: Microsoft plant doch noch, Office für Mac zu veröffentlichen?

If there’s a Mac version of a program you need, you’ll have to buy it again and relearn how to use it on a Mac.

Das kann durchaus ein Problem sein, wenn man viel Software gekauft hat. Das ist kein Vorteil vom PC (wie oben), sondern eher ein Problem von einem generellen Plattformwechsel. Und tatsächlich kann auch der Wechsel von Windows XP zu Windows 7 dazu führen, dass man sich neue Software kaufen muss. Und das man die Bedienung neu lernen muss. Weil vielleicht jemand der UI-Abteilung auf die Idee gekommen ist, alles neu mit Ribbons zu machen? 😉

You can’t get a Mac with a Blu-ray player, TV tuner, Memory Stick reader, or built-in 3G wireless. PCs running Windows 7 often come with features that aren’t available on even the highest end Macs, including Blu-ray, eSATA, multi-format card readers, Touch, and mobile broadband.

Weil es so schön war, kommen jetzt die schönsten Argumente noch mal. Ich zitiere mich selber: „Richtig ist, dass man keinen Mac mit dieser Hardware zusammen oder integriert kaufen kann. Vorteil für den PC ja. Dafür braucht man aber kein Windows 7.“ Dazu kommt natürlich eSATA. Und das mit UMTS scheint so gut zu sein, dass man es sogar 2x sagt. Ist ja auch für manche sicherlich ein Kaufargument, keine Frage.

Macs only come in white or silver. PCs are available in a full spectrum of colors across a range of price points.

„Uns fällt sonst nichts mehr ein.“ – Mir auch nicht.

With PCs running Windows 7, you can play the videos and music stored on your home PC while you’re on the go, for free. Apple charges $99/year for its online service.

Ich schätze mal, Microsoft zielt damit auf ihren Dienst „Windows Live SkyDrive“ oder Windows Live Storage. Apples Gegenstück dazu ist MobileMe. Ob einem MobileMe wirklich 99$ wert ist, muss jeder selber wissen. Die beiden Dienste zu vergleichen (dazu gehört ja auch Features wie E-Mail, Echtzeit-Synchronisation, Kalender, Kontakte) ist auf Anhieb schwierig. In beiden Fällen würde ich jedoch zu Dropbox nutzen, weil es nicht nur unter Windows *und* OSX läuft, sondern auch unter Linux. Die Mehrwerte von Live und MobileMe sind ja eh belanglos, laut dieser Argumentation.

Fazit

Einige Punkte sind unlogisch oder zielen auf Windows-Nutzer ab (Gruber nennt’s defense), die wechseln könnten/wollten. Viele Punkte sind durchaus Pluspunkte für den PC, aber nicht für Windows 7 (obwohl Microsoft das so dahinstellt). Das eine oder andere liegt irgendwo zwischen PR-Geschwafel und ausgemachter Blödsinn.

  1. [1]Es gibt aber immerhin Connect360: http://www.nullriver.com/products/connect360
  2. [2]Das hat die c’t vor einigen Monaten schön als mehrseitigen(!) Bericht behandelt. #wizardos