Youtube HD Videos herunterladen mit Linux

Juni 15, 2009 by admin · 2 Comments
Filed under: Internet, Software, Tutorials 
Youtube Screenshot

Youtube Screenshot

Gerade habe ich einen sehr interessanten Bericht auf http://youtube.com entdeckt. Glücklicherweise gab es das Video sogar in HD Qualität.

Ich habe ein paar Youtube Downloader für Windows ausprobiert, jedoch hatte ich bei keinem die Chance die Videos in HD Qualität herunterzuladen. Mittels dem Kommandozeilenprogramm youtube-dl für Linux habe ich einen Trick gefunden wie man HD-Videos von youtube downloaden kann.

Ich nutze (x)Ubuntu als zweites Betriebsystem neben Windows XP. Hier meine Anleitung wie ich vorgegangen bin.

youtube-dl herunterladen & installieren

sudo apt-get install youtube-dl

youtube-dl starten & video HD herunterladen

youtube-dl -f 22 -o hd_video.mp4 http://www.youtube.com?v=xxxxxx-xxxx

Dabei steht -f 22 für die Qualität des Videos. Früher gab es maximal format 18 (High Quality Modus). Das HD Format läuft momentan auf format 22, somit ergibt sich die Möglichkeit HD Videos herunterzuladen. Der Parameter -o hd_video.mp4 gibt die Ausgabedatei an. Anschließend folgt der Youtube-Link.

Xubuntu Screenshot youtube-dl

Xubuntu Screenshot youtube-dl

Mysql nächste ID einer ID herrausfinden

Juni 15, 2009 by admin · Leave a Comment
Filed under: Datenbank, Programmieren 

Heute bin ich bei einem Pager einer Webapplikation auf das Problem gestoßen die nächste ID eines MySQL Datenbank Eintrags herrauszufinden. Nach kurzem suchen habe ich im Netz folgenden Lösungsvorschlag gefunden.

Nächste ID

SELECT MIN(id) FROM tabelle WHERE id > {letze ID}

Vorherige ID

SELECT MAX(id) FROM tabelle WHERE id < {letze ID}

Damit kann man über SQL die nächst größere beziehungsweise die nächste kleinere ID ermitteln.

Layer-Ads Werbung von 15. Juni 11:00 Uhr bis 16. Juni 9:00 Uhr

Juni 15, 2009 by admin · Leave a Comment
Filed under: Allgemein 

Um den Wert meines Blogs mal zu ermitteln blende ich für einen Tag Werbung ein. Keine Angst morgen früh ist diese wieder verschwunden.

EEEPC 1000H Ubuntu WLAN Problem mit WPA2

Juni 7, 2009 by admin · 6 Comments
Filed under: Tutorials 

Ich habe die aktuelle Version von xUbuntu 9.04 auf meinem EeePC 1000H installiert. Bedauerlicherweise musste ich feststellen, dass es nicht möglich ist mich mit meinem Router (Speedport W700V) bei dem die WPA2 Verschlüsselung aktiviert ist zu verbinden. Seltsamerweise wurde nach Eingabe des WPA2 Key ein Hex Wert im Passwort-Feld angezeigt. Somit wurde der von mir eingegebene Key immer wieder überschrieben.
Dieses Problem lässt sich jedoch wie folgt lösen:

Den aktuellsten vorinstallierten Treiber umbennenen damit er nicht automatisch geladen wird. Hier liegt er in folgendem Verzeichnis. Je nach verwendetem Kernel kann das Verzeichnis auch zum Beispiel 2.6.28-12-generic oder 2.6.28-15-generic heißen.

  • cd /lib/modules/2.6.28-11-generic/kernel/drivers/staging/rt2860/
  • sudo mv rt2860sta.ko rt2860sta.bak

Quellen aktualisieren und fehlende Pakte installieren (besorgt euch eine Internetverbindung)

  • sudo apt-get update
  • sudo apt-get install dkms
  • sudo apt-get install build-essential
  • sudo apt-get install linux-headers-generic

In Ordner wechseln indem sich rt2860-dkms_1.7.1.1_all.deb befindet und Debian Paket installieren

  • sudo dpkg -i rt2860-dkms_1.7.1.1_all.deb

Anschließend müsst ihr euren EeePC neustarten. Jetzt müsste die WPA2 Verbindung problemlos funktionieren. :D

Java JTable Beispiel

Juni 4, 2009 by admin · 2 Comments
Filed under: Programmieren 
JTable - Screenshot

JTable - Screenshot

Seit längerem beschäftigt mich die Problematik “Tabellen auf der Benutzeroberfläche von Java Anwendungen abzubilden”. Mit Hilfe der Swing Komponente JTable ist dies möglich. Unsere Beispieltabelle soll zwei Spalten besitzen. Als erstes legen wir diese mittels eines String-Arrays an. Anschließend erzeugen wir unsere Daten die wir in einem zweidimensionalen Array ablegen. Um die Tabellenspalten anzuzeigen müssen wir die Tabelle über eine JScrollPane zum Container hinzufügen. Die Tabelleninhalte können per Knopfdruck getauscht werden. Hier der Quellcode.

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;

public class Tabelle implements ActionListener {

     boolean tableModel;
     
     Container mainContainer;
     JFrame frame;
     
     JButton wechseln;
     JTable tabelle;
     DefaultTableModel tabellenmodellGruppeA;
     DefaultTableModel tabellenmodellGruppeB;

     // Spalten anlegen
     String spalten[] "Mannschaft""Punkte"};
     

     // Datenmodelle anlegen
     String gruppeA[][] {
               "Die Gelben Uboote""9.6" },
               "FatFighters""8.1" },
               "Biertrinker""6.2" }
     };
     
     String gruppeB[][] {
               "KillerBienen""10.4" },
               "Citties""6.2" },
               "Team ohne Namen""5.8" }
     };

     public Tabelle() {
          frame = new JFrame();
          mainContainer = frame.getContentPane();
          frame.setLayout(new BorderLayout());

          wechseln = new JButton("wechseln");
          wechseln.addActionListener(this);

          mainContainer.add(wechseln, BorderLayout.NORTH);
          
          tabellenmodellGruppeA = new DefaultTableModel(gruppeA, spalten);
          tabellenmodellGruppeB = new DefaultTableModel(gruppeB, spalten);
          
          tabelle = new JTable(tabellenmodellGruppeA);

          // Um die Spalten der Tabelle anzuzeigen muss die Tabelle
          // über eine ScrollPane hinzugefügt werden
          mainContainer.add(new JScrollPane(tabelle));
          
          frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
          frame.pack();
          frame.setTitle("JTable Beispiel");
          frame.setVisible(true);
     }

     public void actionPerformed(ActionEvent arg0) {
          if (tableModel){
               tabelle.setModel(tabellenmodellGruppeA);     
               tableModel = false;
          }else{
               tabelle.setModel(tabellenmodellGruppeB);
               tableModel = true;
          }
     }
     
     public static void main(String[] args) {
          new Tabelle();
     }
}

Hier könnt ihr euch den Quellcode herunterladen.
Drückt man auf den Button wird das Table Model neu gesetzt.