staging.inyokaproject.org

freiesMagazin 12/2009 erschienen

fM-logo-klein.png

Heute ist die Dezemberausgabe von freiesMagazin erschienen. Falls man hinter einer Firewall sitzt, die FTP nicht zulässt, ist das Magazin auch per HTTP-Zugriff auf das FTP-Verzeichnis zu erreichen.

Auch diesen Monat gibt es wieder eine HTML-Ausgabe für Mobilgeräte ohne Bilder und mit Bildern (ca. 1,7 MB). Unter der Adresse http://freiesmagazin.de/mobil/ findet man immer die aktuelle und alle bisher erschienenen Mobil-Ausgaben.

Inhalte der Ausgabe 12/2009 sind

  • Ubuntu 9.10 - Die neue Version „Karmic Koala“ vorgestellt

  • Google Summer of Code

  • Der November im Kernel-Rückblick

  • Java, Teil 2 - Grafische Programmierung mit Swing

  • Erstellen geometrischer Skizzen mit kig

  • wmii: Weitere Konfiguration

  • Lösungen zum Artikel „Shebang - All der Kram“

  • Mad Skills Motocross

  • Open Clip Art - Die vergessenen Grafiken

  • Veranstaltungskalender und Leserbriefe

Das vollständige Inhaltsverzeichnis findet man auf der Webseite der aktuellen Ausgabe. Leserbriefe mit Lob, Kritik, Anregungen oder Fragen können an die Redaktion geschickt werden.

Wer jeden Monat an die neue Ausgabe erinnert werden will, kann auch den RSS-Feed abonnieren. Auf der Magazin-Seite können die letzten drei Ausgaben von freiesMagazin abgerufen werden, ältere Ausgaben findet man im Archiv.

Veröffentlicht von DonKrawallo | 6. Dezember 2009 10:31 | Kategorie: Allgemeine Nachrichten | # Fehler im Artikel melden

just_for_fun

Avatar von just_for_fun
1 6. Dezember 2009 10:48

Die Themen hören sich gut an, ich werd's mal lesen! Außerdem schön das freiesMagazin im Gegensatz zu yalm immer noch lebt und noch nicht aufgegeben hat! 👍

dandedilia

Avatar von dandedilia
2 6. Dezember 2009 12:19

Ja Yalm =(

Niveau

Avatar von Niveau
3 6. Dezember 2009 12:49

naja da sind ja zumindes ein paar yalm -wie sagt man?- redaktuere, journalisten mit am scvhreiben...

YEPHENAS

4 6. Dezember 2009 12:56

@3: "wie sagt man?" - Autoren? Schreiberlinge?

Niveau

Avatar von Niveau
5 6. Dezember 2009 15:18

okay das kann auch sein... mir fiel das wort nich ein...

totobingo

6 6. Dezember 2009 17:32

😈

user_unknown

Avatar von user_unknown
7 17. Dezember 2009 23:12

Kritikpunkte:

S.15, rechte Spalte: "Keine Probleme treten auf, wenn das offizielle sun-java6-jdk und die sun-java6-jre installiert sind. Eine ,,openjdk"-Variante tut es aber auch, falls großer Wert auf freie Lizenzen gelegt wird." Wieso sollte nicht jedermann das openjdk verwenden? Seltsam, wie Open-Source hier in die Ecke gedrängt wird als etwas, dass der besonderen Rechtfertigung bedarf.

S. 17, Codeblock mitte: "View myView = new View ();" Die Referenz myView wird nie benutzt. ein "new View ();" tut es hier genauso.

"An dieser Stelle wird auf den Stolperstein Layout-Management hingewiesen. Dabei sind frustrierende Erlebnisse bei Einsteigern leider an der Tagesordnung." Der Stolperstein ist doch gerade null-Layout, während sich durch ein geplantes Layout mit Managern das konkrete Layout an die Komponentengröße automatisch anpasst, beispielsweise an längere oder kürzere Beschriften in anderer Sprache, oder an größere Schriftarten für Kinder/Senioren.

S. 18, Listing 1: statt EXIT_ON_CLOSE sollte man DISPOSE_ON_CLOSE empfehlen. Ruft man aus einem Javaprogramm ein anderes auf, so spart man Zeit und Speicher beim Starten, aber wenn dieses andere mit EXIT_ON_CLOSE geschlossen wird reißt es seinen Gönner mit in den Tod. s.u. für ein Demo.

S. 18, mitte: "Unter Windows würden Sternchen angezeigt werden, unter GNOME Kreise, ..." Wieso wird Windows als erstes genannt? Wieso nicht MacOS oder Solaris?

S. 18, rechts: [BorderLayout] "Das mag auf den ersten Blick wenig sinnvoll erscheinen. Doch verglichen mit dem Aufbau moderner Webseiten mit Header, linker Navigation, Inhalt, rechter Navigation und Fußzeile, lassen sich schnell die Parallelen erkennen." Nur was hat das mit Webseiten zu tun - kann man mit Swing Webseiten bauen? Man muß nicht alle Segmente oben/unten/links/rechts/mitte verwenden, und erhält so viele Gestaltungsoptionen, das ist der Kasus Knacktus. Insbesondere, wenn man die Layoutmanager kombiniert, und links beispielsweise eine Panel von Buttons einfügt, das selbst per BoxLayout.PAGE_AXIS organisiert ist.

S. 20, Performance ­ Halbwahrheiten und Trugschlüsse "Hinter vermeintlich einfachen Fensterelementen können sich immens aufwendige Speicheroperationen verbergen." Das glaube ich nicht. Ich weiß auch nicht was es heißen soll. Das Java langsam ist? Ich habe schon vor 8 Jahren Eclipse verwendet, ohne gebremst zu werden, und seit dem ist die Rechenpower stärker gewachsen, als der Hunger von Eclipse. Ich sehe keinen Bedarf für Ausreden. Der ganze Abschnitt klingt, als habe sich der Autor beim Schreiben von der Überschrift verabschiedet.

Insgesamt kann man auf 5 Seiten natürlich nicht Swing erklären, auch wenn man die Abstecher zu Eclipse und dem AWT beiseite gelassen hätte, was man durchaus hätte tun sollen, um z.B. den Event-Dispatching-Thread anzusprechen.

Generell stört mich aber vornehmlich die defensive Haltung, daß man Microsoft als erste Option nennt, nur verschämt das OpenJDK erwähnt, als müsse man sich dafür entschuldigen, und von vermeintlichen Defiziten (Layoutmanager, Performance) ausgeht, statt von Stärken.

Hier das versprochene Demo, mit java Frame12 starten, oder java Frame12 exit. Mal werden beide Fenster geschlossen, mal nur das, das der User geschlossen hat, unabhängig davon, welches der beiden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Frame12 extends JFrame 
{
	private static final String progname = "Frame12, Element: ";

	public Frame12 (int nr, boolean exit)
	{
		super (progname + nr + " " + exit);
		add (new JLabel ("a Frame to exit the jvm " + exit));
		pack ();
		setLocation (200* nr + 100, 200 * nr + 100);
		setDefaultCloseOperation (exit ? JFrame.EXIT_ON_CLOSE : JFrame.DISPOSE_ON_CLOSE);
		setVisible (true);
	}

	public static void main (String args[])
	{
		boolean exit = false;
		if (args.length == 1 && args[0].equals ("exit"))
			exit = true;
		new Frame12 (1, exit);
		new Frame12 (2, exit);
	}
}