Entries tagged as shortys
Related tags
android code computer google gui jabber java linux&unix misc mobile opensource presentation programming screenshot sdk software video web webdesign xml changes bad world blog blogging captcha contentmanagement hardware murphy s9y security server spam tail -f /var/log/life wordpress zeitgeist feedreader html markup rss ruby scala stuff swing tool webwide windows xslt browser cheatsheet comic css dns encryption firefox fun howto im javascript life lighttpd mail media networking newsbeuter picture podcast politics privacy psi regular expression subnetting test truecrypt tv perl coffee conference dslr free nikon photography science forum unb 1Vor kurzem hatte ich das Bedürfnis Bilder automatisiert, mit Hilfe eines Ruby-Scripts, zu verkleinern. Dieses Script sollte zudem ohne Änderungen sowohl auf Linux als auch auf Windows lauffähig sein.
Fuer diese Aufgabe ist Imagemagick natürlich ein super Werkzeug, da man es auch als Bibliothek von Ruby aus nutzen kann und auch für Windows verfuegbar ist. Unter Windows ist hierfür eine Installation von Ruby, sowie die Installation von Imagemagick und dem passenden RMagick Ruby-Gem notwendig. Unter Linux reicht es Imagamagick und Ruby mit dem Paketmanager seiner Wahl zu installieren und mittels "gem install rmagick" das Gem zu installieren.
Der eigentliche Code gestaltet sich relativ simpel. Prinzipiell lässt sich ein Bild mit wenigen Anweisungen verkleinern:
#!/usr/bin/env ruby
require 'rubygems'
require 'RMagick'
@debug = true
def resize_image(file)
puts "let's resize #{file} ..." if @debug
img = Magick::Image::read(file).first
img.resize_to_fit(1024, 1024)
img.write(file)
puts "resizing of #{file} successful" if @debug
end
Die Methode resize_to_fit() sorgt hier für das Verkleinern auf bestimmte Maximalwerte in Länge und Breite. Weiteres erfährt man aus der Doku
.Nachdem ich es schon lange vor hatte, habe ich mich nun mal an LaTeX heran getraut und damit die ersten Texte formatiert. Als die Ergebnisse nach den ersten Gehversuchen schon sehr vielversprechend aussahen, habe ich zudem beschlossen meine naechsten Praesentationen ebenfalls in LaTeX zu schreiben. Auf der Suche nach einer Vorlage bin ich auf diesen Beitrag in einem Forum gestossen, der mir sehr geholfen hat:
\documentclass[ngerman]{beamer}
\usepackage{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usetheme[secheader]{Madrid}
\useinnertheme{circles}
\setbeamercovered{transparent}
\beamertemplatenavigationsymbolsempty
\author[Tester]{Tester}
\title[Minimalbeispiel]{Minimalbeispiel ist immer BESSER}
\begin{document}
\begin{frame}[plain]
\maketitle
\end{frame}
\begin{frame}
\tableofcontents
\end{frame}
\setbeamertemplate{headline}
{
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,center]{section in head/foot}%
\usebeamerfont{author in head/foot}\raggedleft\thesection.~\insertsection\hspace{2em}\null
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,center]{subsection in head/foot}%
\usebeamerfont{author in head/foot}\hspace{2em}\raggedright\insertsubsection
\end{beamercolorbox}}%
\vskip0pt%
}
\section{Test}
\subsection{Test unter}
\begin{frame}
\frametitle{Testfolie}
\begin{itemize}
\item Eintrag
\item Ende
\end{itemize}
\end{frame}
\section{noch ein Test}
\subsection{noch ein Test unter}
\begin{frame}
\frametitle{Testfolie}
\begin{itemize}
\item Eintrag
\item Ende
\end{itemize}
\end{frame}
\end{document}
Wirft man diesen Code nun pdflatex vor die Fuesse, generiert dieses eine schoene Praesentation, die man sich hier ansehen kann.
Sollte jemand auf die Idee kommen eine alte Version von Android (z.B. den -RC7 Build in Europa) mal "schnell" auf den neusten Stand bringen zu wollen hier ein paar Schritte mit denen man auf neue Upgrades und den Status des Downloads pruefen kann:
- Man besorgt sich das Programm AnyCut aus dem Market. Dazu sollte die Suchfunktion genutzt werden.
- Danach legt man mit Anycut eine Verknuepfung auf "Activites/Device Info" an
- Ist das erledigt, startet man die Verknuepfung auf dem Homescreen, scrollt bis ganz nach unten und drueckt "Check for upgrade"
- Dort kann man den Downloadstatus beobachten und bekommt die Meldung, dass ein Upgrade verfuegbar ist, sobald es herunter geladen wurde. Ich persoenlich haette ja zuerst gefragt und dann herunter geladen aber ...

Anmerkung: Ja ich hatte fast zwei Wochen lang ein G1 und bin momentan dabei mich in das SDK dafuer einzuarbeiten. Ja ich werde noch detaillierter darueber bloggen und nein ich besitze es nicht mehr, da es sich heute wieder auf den Weg zum Verkaeufer gemacht hat.
Ich bin gerade dabei von zu klein gewordenen Festplatten auf groessere Platten zu migrieren. Hierbei arbeite ich unter anderem mit dd. Leider ist dd von Haus aus nicht sehr mitteilungsbeduerftig. Aber ich habe hier schnell Abhilfe gefunden:
dd if=input | bar -s sizeinbytes > destination
Da das Programm bar schon in grml integriert ist, steht dem munteren Migrieren nichts mehr im Wege.
Auf einem PC (oder wie bei mir auf dem Router) laesst man den Server laufen:
root@flynet:~# iperf -su ------------------------------------------------------------ Server listening on UDP port 5001 Receiving 1470 byte datagrams UDP buffer size: 106 KByte (default) ------------------------------------------------------------
Danach kann man mit einem anderen Rechner den Durchsatz testen:
iperf -u -c [ip -des-Servers] -t 60 -b 54M
In diesem Fall werden UDP-Pakete uebertragen. Ohne die Option -u bei Server und Client waeren es TCP-Pakete. Wichtig ist auch die Option -b, da sonst die Bandbreite auf 1MBit/s begrenzt ist.
Zum Schluss sieht man dann so etwas:
[ 3] local 192.168.13.23 port 33010 connected with 192.168.13.1 port 5001 [ 3] 0.0-60.0 sec 200 MBytes 28.0 Mbits/sec [ 3] Sent 142996 datagrams [ 3] Server Report: [ 3] 0.0-60.0 sec 200 MBytes 28.0 Mbits/sec 1.305 ms 13/142996 (0.0091%)
Hier sieht man auch erst mal, was von den brutto 54MBit/s bei WLAN uebrig bleibt.
xrandr -s 1280x1024
Somit ist es nicht notwendig wegen einer temporaeren Aenderung die xorg.conf zu editieren.
Heute bin ich auf zwei Pakete gestossen, die einem das Arbeiten mit dem Packetmanager pacman und AUR sehr erleichtern.
Beim einen handelt es sich um yaourt. Dies ist ein Shellscript, welches als Frontend fuer pacman, das unter anderem farbige Ausgaben liefert, nicht benoetigte Pakete entdeckt und auch zum einfachen installieren und aktualisieren von AUR genutzt werden kann. Fuer alle Arch-User: Schaut es euch an. Es lohnt sich.
Das zweite Tool ist aurvote mit dem man fuer bestimmte Pakete waehlen kann, damit diese in das Comminty-Repository kommen.
Ein wirklich cooles Feature ist die Moeglichkeit beim Start automatisch das WLAN-Profil, das gerade in Reichweite ist, zu starten. Hierzu richtet man in /etc/network.d/ die gewuenschten Profile ein. Um das Feature beim Systemstart zu starten, traegt man folgendes in die /etc/rc.conf ein:
# Network profiles are found in /etc/network.d/ NETWORKS=(auto-wireless eth1)
eth1 sollte durch das entsprechende WLAN-Interface ersetzt werden.
Bei mir laeuft so ein Setup seit ein paar Wochen sehr erfolgreich. Ob ich nun zu Hause, bei Freunden oder an der FH bin, immer wird das richtige Profil geladen.
Bei Bedarf lassen sich so auch noch automatisch Dienste wie OpenVPN etc. starten.
Seit heute ist im offiziellen Paket von pacman fuer Arch Linux auch eine Autovervollstaendigung fuer die ZSH dabei:
pacman -Ql pacman|grep zsh pacman /usr/share/zsh/ pacman /usr/share/zsh/site-functions/ pacman /usr/share/zsh/site-functions/_pacman
Ich hatte das zwar schon vorher, musste aber nach einem Upgrade die Dateien von Hand patchen, da sich Pfade geaendert hatten. Nun ist es super das bei pacman dabei zu haben. ![]()
Zudem habe ich mir vor ein paar Wochen auf Basis des Codes aus AUR eine Vervollstaendigung fuer netcfg2 gebastelt:
local expl list intf sep
local -a disp
case $OSTYPE in
aix*)
intf=( ${(f)"$(lsdev -C -c if -F 'name:description')"} )
if zstyle -T ":completion:${curcontext}" verbose; then
zstyle -s ":completion:${curcontext}:" list-separator sep || sep=-
zformat -a list " $sep " "$intf[@]"
disp=(-ld list)
fi
;;
darwin*|freebsd*|dragonfly*) intf=( $(ifconfig -l) ) ;;
irix*) intf=( ${${${(f)"$(/usr/etc/netstat -i)"}%% *}[2,-1]} ) ;;
linux*) intf=( /proc/sys/net/ipv4/conf/*~*(all|default)(N:t) ) ;;
*) intf=( $(ifconfig -a|sed -n 's/^\([^ :]*\).*/\1/p') ) ;;
esac
_arguments -C \
'*:profile:->profilelist' \
'-d[Take specified profile down]:profile:->profilelist' \
'-a[Take all profiles down]' \
'-c[Do not start profile if interface is already up]:profile:->profilelist' \
'-i[Take down profile active on specified interface]:interface:->interfaces'
if [[ "$state" = profilelist ]]; then
_description path_files expl 'Netwok Profiles'
_path_files "$expl[@]" -W '/etc/network.d' -g '*~*template'
fi
if [[ "$state" = interfaces ]]; then
_wanted interfaces expl 'network interface' compadd "$@" "$disp[@]" - "${(@)intf%%:*}"
fi
Das Ganze sollte in der Datei /usr/share/zsh/site-functions/_netcfg2 abgelegt werden.
Besonders schoen ist die Moeglichkeit bei WLAN-Verbindungen zuerst nach dem Netz zu scannen oder bestimmte Kommandos zu starten bevor/nachdem das Interface gestartet/gestoppt wurde. Hilfestellungen zu den Profilen gibt es hier.
Da ich schon lange mal den schicken und schnellen lighty ausprobieren wollte, habe ich nun komplett auf lighty umgestellt. Zusammen mit xcache laeuft das Setup, im Vergleich, verdammt schnell. Ein gutes Howto wie man php mit lighty sicher aufsetzt findet man hier.
Probleme gab es nur bei den Rewrite-Regeln fuer Wordpress. Hier haben folgende Anweisungen das Problem geloest:
"^/(.*)?/?files/$" => "index.php",
"^/(.*)?/?files/(.*)" => "wp-content/blogs.php?file=$2",
"^/(wp-.*)$" => "$1",
"^/([_0-9a-zA-Z-]+/)?(wp-.*)" => "$2",
"^/([_0-9a-zA-Z-]+/)?(.*\.php)$" => "$2"
)
server.error-handler-404 = "/index.php"
Das mit dem "server.error-handler" ist zwar nicht besonders schoen aber funktioniert.
- http://bsdinstall.de/
- http://www.cyberciti.biz/tips/howto-keep-freebsd-system-upto-date.html
- http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/
- http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/
- http://www.bsdwiki.de/Kategorie:FreeBSD
- http://wiki.bsdforen.de/Kategorie:FreeBSD
- http://www.freebsd.org/de/
Hinzu kommen noch:
Ich habe das Ganze mal getestet und muss sagen: Funktioniert prima
Bei Gregarius gibt es die Option sich die abonnierten Feeds als OPML ausgeben zu lassen. Dies Funktioniert, indem man "/opml" an die URL von Gregarius haengt. Also zum Beispiel: http://rss.roothausen.de/opml. Diese URL kann man nun ganz einfach herunter laden und mit newsbeuter importieren. Dazu habe ich mal diesen Einzeiler verfasst:
wget http://gregarius-url.tld/opml -o /tmp/rss.log -O /tmp/rss.opml && newsbeuter -i /tmp/rss.opml
Packt man das Ganze nun in einen Cronjob, wird newsbeuter regelmaessig mit den neuen Feeds aus Gregarius versorgt.
Powertop ist von Intel und daher speziell fuer Intel Hardware gedacht. Ich habe mal fuer die aktuelle Version ein PKGBUILD fuer Arch Linux erstellt. Wer daran Interesse hat:
pkgname=powertop
pkgver=1.5
pkgrel=1
pkgdesc="A tool that helps you find what software is using the most power."
arch=('i686')
license="GPL"
url="http://www.linuxpowertop.org"
depends=('ncurses')
source=(http://www.linuxpowertop.org/download/$pkgname-$pkgver.tar.gz)
build() {
cd $startdir/src/$pkgname-$pkgver
mkdir -p $startdir/pkg/usr/bin
make || return 1
make BINDIR=$startdir/pkg/usr/bin MANDIR=$startdir/pkg/usr/man/man1 install
}
md5sums=('163c65bde5aa4edc5b1b578035cbc72b')
Quicksearch
Kategorien
Links
Tags
del.icio.us
- Appcelerator Developer Center - Documentation
- Coderspiel — Rewiring Android for type-safe layout resources
- pkrumins's stackvm at master - GitHub
- Netty - the Java NIO Client Server Socket Framework - JBoss Community
- Learn Your Motherf#@kin' Science: A Textbook for Juggalos | Cracked.com
- The C Book - Table of Contents
- andrewvc's node-streamlogger at master - GitHub
- Setting up a JavaScript Build Process – JavaScriptr
- js-build-tools - Project Hosting on Google Code
- YUI Compressor
- JsUnit
- InfoQ: Ralph Johnson, Joe Armstrong on the State of OOP
- ztellman's aleph at master - GitHub
- Clojure - home
- Mac OS X keyboard shortcuts

