Setup a Plex server on Debian

On your Debian server Download Plex media server: wget Install Plex media server: dpkg -i plexmediaserver_1.13.5.5332-21ab172de_i386.deb On your Windows machine To perform the initial setup the Plex GUI needs to be accessed locally, a step only needed once. To do this you can establish a SSH tunnel using Plink: plink.exe <REMOTE_IP> -P <REMOTE-SSH-PORT> -L <LOCAL-LISTEN-PORT>:<REMOTE-FORWARD-IP>:<REMOTE-FORWARD-PORT Assuming your Debian server has the IP address, SSH runs on port 22 and Plex is locally accessible via 127.

Generating Maven projects in batch mode using PowerShell

It just took me 75 minutes to create a Maven quickstart project on Windows 10 using PowerShell in batch mode. DONT MAKE MY MISTAKES. Do the following instead: Provide all mandatory parameters or batch mode won’t work. This is poorly documented in the official Maven tutorial, but correctly documented here: -B for batch mode or -DinteractiveMode=false instead -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.1 -DgroupId=com.example -DartifactId=app -Dversion=1.0-SNAPSHOT -Dpackage=com.example.project In PowerShell you have to use double quotes around every parameter, e.

Minimal Docker Images for Java Applications

Minimal Linux Images Although Alpine is incredibly small, Debian’s official slim version of Stretch is now down to 55.3MB. Compare this to the Ubunto 17.10 image with 96.8MB! And while tklx/base and bitnami/minideb are a little smaller, I don’t think that 2.5MB in reductions is relevant enough to replace the official Debian image. An interesting approach was taken by blitznote/debase. Getting rid of systemd and unnessecary tools for file system management reduces the images size to an impressive 39.

Remove all untagged images from Docker using PowerShell

With multi-stage builds, you use multiple FROM statements in your Dockerfile. Each FROM instruction can use a different base, and each of them begins a new stage of the build. You can selectively copy artifacts from one stage to another, leaving behind everything you don’t want in the final image. However, every step creates a new, untagged image (or “dangling” image), which serves as the base for the next step.

How to setup Apache Subversion behind Apache HTTP Server on Debian using dav_svn and authz_svn

Prerequisites Apache 2.4 is installed Let’s Encrypt is installed Subversion is installed Some SVN repositories have been created /opt/svn/repo1 /opt/svn/repo2 Subdomain pointing to the IP address of your Subversion server SSL Certificate Request a SSL certificate for using Let’s Encrypt: service apache2 stop ./letsencrypt-auto certonly --standalone -d service apache2 start You’ll find your certificate here: /etc/letsencrypt/live/ Apache Modules On Debian you have to install libapache2-mod-svn in order to use the required Apache modules dav_svn and authz_svn:

Günstige vServer mit SSD im Vergleich

Die folgenden Tabellen listen Angebote für vServer in unterschiedlichen monatlichen Preiskategorien auf. Alle aufgeführten vServer verfügen über SSD-Speicher, sind unmanaged, laufen unter Linux und bieten vollen root-Zugriff. Die Distribution kann in der Regel frei gewählt werden. Virtuelle SSD Server für 3 - 10 € monatlich Anbieter RAM CPUs SSD Uplink Preis in EUR Contabo 12 GB 4 / - 300 GB 100 Mbit/s 8,99 netcup 6 GB 2 / - 40 GB - 8,99 1blu 6 GB 2 / - 120 GB - 7,90 VCServer 4 GB 2 / - 100 GB (Hybrid) 200 Mbit/s 7,99 Server4You 4 GB 2 / - 100 GB 100 Mbit/s 8,00 myVirtualserver 4 GB 4 / - 20 GB 1 Gbit/s 9,99 webtropia 4 GB 2 / - 150 GB 500 Mbit/s 9,99 PHP-Friends 4 GB 1 / - 25 GB 100 Mbit/s 6,00 Host Europe 2 GB 2 / - 100 GB 100 Mbit/s 9,99 StorageBase 2 GB 2 / - 50 GB 1 Gbit/s 7,99 Hetzner 2 GB 2 / - 50 GB 1 Gbit/s 8,21 Host Unlimited 2 GB 2 / - 30 GB - 9,95 VCServer 2 GB 1 / - 50 GB (Hybrid) 200 Mbit/s 3,99 webtropia 2 GB 1 / - 75 GB (Hybrid) 500 Mbit/s 4,99 Hetzner 1 GB 1 / - 25 GB 1 Gbit/s 4,64 StorageBase 1 GB 1 / - 20 GB 500 Mbit/s 3,00 Virtuelle SSD Server für 10 - 20 € monatlich Anbieter RAM CPUs SSD Uplink Preis in EUR Contabo 24 GB 6 / - 600 GB 100 Mbit/s 14,99 webtropia 16 GB 8 / - 500 GB 500 Mbit/s 19,99 1blu 16 GB - / 6 320 GB - 16,90 Server4You 12 GB 10 / - 300 GB 100 Mbit/s 17,00 1blu 12 GB - / 4 240 GB - 12,90 netcup 12 GB 4 / - 60 GB - 14,99 webtropia 8 GB 4 / - 250 GB 500 Mbit/s 14,99 myVirtualserver 8 GB 8 / - 40 GB 1 Gbit/s 19,99 Mittwald 8 GB 4 / - 200 GB 100 Mbit/s 19,99 PHP-Friends 8 GB 2 / - 50 GB 100 Mbit/s 12,00 OVH 8 GB 2 / - 40 GB 100 Mbit/s 14,30 Host Europe 6 GB 4 / - 200 GB 100 Mbit/s 19,99 Host Unlimited 6 GB 6 / - 90 GB - 19,95 Host Unlimited 5 GB 2 / - 50 GB - 14,95 Hetzner 4 GB 2 / - 100 GB 1 Gbit/s 11,90 LeaseWeb 4 GB 4 / - 80 GB 1 Gbit/s 17,97 Host Europe 4 GB 2 / - 150 GB 100 Mbit/s 14,99 Virtuelle SSD Server für 20 - 30 € monatlich Anbieter RAM CPUs SSD Uplink Preis in EUR Contabo 50 GB 10 / - 1200 GB 1 Gbit/s 26,99 1blu 24 GB - / 10 460 GB - 21,90 netcup 24 GB 8 / - 120 GB - 26,99 Server4You 18 GB 16 / - 400 GB 100 Mbit/s 21,00 PHP-Friends 16 GB 4 / - 100 GB 1 Gbit/s 24,00 Host Unlimited 12 GB 10 / - 120 GB - 29,95 Mittwald 12 GB 6 / - 400 GB 100 Mbit/s 29,99 Host Europe 8 GB 4 / - 400 GB 100 Mbit/s 29,99 Hetzner 8 GB 2 / - 200 GB 1 Gbit/s 23,68 OVH 7 GB 2 / - 100 GB 250 Mbit/s 24,00 Erläuterungen RAM Angegeben wird nur die Größe des garantiert verfügbaren Arbeitsspeichers.

Find out what Apache version you are running on Debian

Use apache2ctl: ~ # apache2ctl -V Output: Server version: Apache/<version> (<operatingsystem>) Server built: <datetime> Server's Module Magic Number: <number> Server loaded: APR <version>, APR-UTIL <version> Compiled using: APR <version>, APR-UTIL <version> Architecture: <value>-bit Server MPM: <value> threaded: <value> forked: <value> Server compiled with.... -D <value> -D <value> -D <value> ...

Packliste für Reisen für Männer

Das Wichtigste Reisepass (Handgepäck) und Reisepasskopie (Koffer) Flugticket Nötige Dokumente (ESTA, Visa, “Blaues Formular”, etc.) Kreditkarten und Bargeld Führerschein Telefon und Ladekabel Hotelreservierung Für längere Flüge in der Economy Class Rechtzeitig einchecken und gute Plätze reservieren. Sitzplatzbewertungen für verschiedenste Airlines und Flugzeuge finden sich hier: Nackenkissen Zahnbürste oder Zahnpflegekaugummis Schlafmaske, Oropax Feuchtigkeitscreme und Lippenbalsam gegen die trockene Kabinenluft Kleidung je nach Anlass und Wetter Warm T-Shirts Geschlossene Schuhe Offene Schuhe (Flipflops, Slippers o.

Upgrade to Debian Jessie

Only do this if you know what you are doing. Backup your old sources.list: cp /etc/apt/sources.list{,.backup} Replace all occurrences of wheezy by jessie, update the package list and run the upgrade: sed -i "s/wheezy/jessie/g" /etc/apt/sources.list aptitude update aptitude dist-upgrade"

Linux users and groups

Groups List all groups cat /etc/group Create new group groupadd mygroup Use -f to exit successfully if the group already exists. Users List all users cat /etc/passwd Create new user useradd -g GROUP -d HOMEDIR USERNAME Will fail if GROUP does not exist yet. Print a user’s home directory echo ~username Print user information id -u tomcat Print all files owned by a user find / -user tomcat -print Delete a user and the user’s home directory userdel -r tomcat"

How to install Nginx on Debian 8 Jessie

Download the repository key file, add the key to apt-get and delete the file: :~# cd /opt/ :~# wget :~# sudo apt-key add /opt/nginx_signing.key :~# rm /opt/nginx_signing.key Add the Nginx repository to /etc/apt/sources.list: Nginx Repository deb jessie nginx deb-src jessie nginx Install Nginx: :~# apt-get update :~# apt-get install nginx Starting, stopping, and reloading the configuration: :~# nginx // start server :~# nginx -s stop // fast shutdown :~# nginx -s quit // graceful shutdown :~# nginx -s reload // reloading the configuration file For security reasons, disable PHP’s fix_pathinfo setting in php.

Frontend Frameworks for the Web

UIkit - “A lightweight and modular front-end framework for developing fast and powerful web interfaces. Bootstrap - “Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive, mobile first projects on the web. Pure - “A set of small, responsive CSS modules that you can use in every web project. Foundation - “A Framework for any device, medium, and accessibility. Foundation is a family of responsive front-end frameworks that make it easy to design beautiful responsive websites, apps and emails that look amazing on any device.

Free Mail Server Services

SendGrid (12k emails/month) SparkPost (10k emails/month) Mailgun (10k emails/month) Mailjet (200 emails/day)”

Alternatives to Disqus for Blog Comments

Ghost is a great blogging platform, but it does not come with a commenting system. If you want comments, you have to embed a third party solution. Platforms like Disqus offer such solutions, however, you give away the data that actually belongs to you and your users. In addition to data ownage, data availability might become another issue, as various commenting services have been discontinued in the past. One example is Haloscan: Acquired by JS-Kit in 2008, renamed Echo in 2009 when JS-Kit was discontinued.

Hot Java Stuff

A note to future me: Have a closer look at the technologies and developments listed below. Why? Read Hildeberto Mendonça’s article Leaving JavaEE Behind. Unsorted VertX Akka The reactive Manifesto Cloud Why and how Autoscout24 moves to the Cloud NoSQL Databases Nice picture: Visual Guide to NoSQL Systems. Very nice comparison of lots of products: Apache HBase HBase and Cassandra store data in a map-type structure.

How to Migrate from Textpattern to Ghost CMS

Migrating Articles The most important thing is to migrate the old posts (articles) from Textpattern to Ghost. To do so, a mapping between the corresponding database table columns needs to be defined. The table containing the Textpattern posts is called textpattern. In Ghost it is simply called posts. We will try to put a reasonable value into every column of posts, as this is the target table. We might not be able to map all informatin that is present in Textpattern.

Open Imaging - Development of a free GIF decoder

I finished development of my very own GIF image decoder. It’s freely available on GitHub (see and licensed under the Apache License, Version 2.0. During the development the following resources have been very helpful to me: GIF Specification Project: What’s In A GIF - Bit by Byte by Matthew Flickinger Detailed introduction, well written, plain and clear. Uses a tiny sample image to help understanding of what’s going on.

How to decode / parse base64 Strings in Java

/** * @param base64 * A valid base64 String, without any prefixes * e.g. no leading "data:image/png;base64" * @return Decoded base64 String as plain text */ public static String base64ToString(final String base64) { return new String(DatatypeConverter.parseBase64Binary(base64)); } /images/book.jpg

Deutsche Manager in der Media- und IT-Branche

Netflix kommt nach Deutschland, Maxdome schläft weiter. Der zum ProSiebenSat1-Konzern gehörende VoD-Dienst Maxdome, der neben einem Flatrate-Paket auch Filme zum Einzelabruf anbietet, sieht den Deutschlandstart von Netflix nach eigenen Angaben gelassen. Siehe Heise-Artikel vom 11.06.2014. Und das sagt Maxdome-Chef Andreas Heyden, während Vivendi darüber nachdenkt, Watchever zu verkaufen, weil man sich im Wettbewerb mit Netflix keine Chancen ausrechnet. Wer die Dienste kennt, weiß eigentlich jetzt schon, wie beknackt diese Aussage ist.

Apache Issue after changing a Server's Hostname

If you changed your server’s hostname and Apache is now redirecting a domain to the default vhost configuration, read Slopjong’s article on this topic. It explains what’s going on and how to solve the problem. If you are too lazy to read the article, just add a ServerName * to /etc/apache2/sites-available/default and reload Apache’s configuration using service apache2 reload. /images/server.jpg

Installing VirtualBox Guest Additions on Debian

To install the guest additions on a Debian guest, first login as root. Then update your APT database: aptitude update Install the latest updates: aptitude upgrade Install the required packages: aptitude install build-essential module-assistant Configure the system for building kernel modules: m-a prepare Click on Devices and select Mount Guest Additions from the menu. Run the following command: sh /media/cdrom/ Follow the instructions on the screen.

Bash ShellShock Scans

Some scans that have been ran against my server: - - [25/Sep/2014:09:26:40 +0200] "GET / HTTP/1.0" 200 310 "() { :; }; ping -c 11" "shellshock-scan (" - - [25/Sep/2014:10:29:24 +0200] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.0" 404 411 "-" "() { :;}; /bin/ping -c 1" - - [26/Sep/2014:02:20:24 +0200] "GET /cgi-sys/defaultwebpage.cgi HTTP/1.1" 400 415 "() { :;}; wget -O /tmp/syslogd; chmod 777 /tmp/syslogd; /tmp/syslogd;" "() { :;}; wget -O /tmp/syslogd http://69.

Find out which process is listening upon a port

To find out which process is listening upon a certain port, you can use the tool lsof: :~# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apache2 26503 root 4u IPv6 1234567890 0t0 TCP *:http (LISTEN) apache2 26506 www-data 4u IPv6 1234567890 0t0 TCP *:http (LISTEN) apache2 26507 www-data 4u IPv6 1234567890 0t0 TCP *:http (LISTEN)

How to check the current and maximum PermGen size of Tomcat

Checking current JVM memory limits During development, when redeploys occur frequently, you might run into this error from time to time: java.lang.OutOfMemoryError: PermGen space. To get an overview of JVM memory organization, read this short article. In addition, here is a quote from a detailed SUN paper on JVM memory management: PermGen space [...] is the area of the heap where the JVM stores its metadata. If an application loads a large number of classes, then the permanent generation may need to be increased.

Learn something new

Currently I’m teaching myself how to develop applications for Android. Arguably, I’m a bit late, but I’ve been busy finishing my studies in computer science and, in my free time, advancing to higher levels of profession in various fields such as web development, java ee, databases, performance research, web crawlers, automated load testing and other stuff. And despite being a computer scientist and software engineer, I still love to draw, design and layout things.

Ad captcha services

Here is a list of services that offer advertisement captchas: Comment: Not tested yet. You can only register via email. Comment: Registration is open to everyone. However, until now, I only get error messages complaining about a missing API key (I do have a key though). Comment: Not tested yet. Comment: Not tested yet. The service is currently in closed beta, but you can leave your email address to get an invite.

Secure instant messengers

The following messengers claim to be secure, though I haven’t tested any of them yet. Like many others, I’m currently looking for a reasonable alternative to WhatsApp. Threema – Telegram – ChatSecure – Conversations –"

Warum Google und ich keine Freunde mehr sind

Klarnamenzwang bzw. -nötigung in vielen Diensten, insbesondere in YouTube. Mein YouTube-Account hat nichts mit meinem E-Mail Account zu schaffen und ich möchte, dass das so bleibt. Ich möchte nicht in allen Diensten den gleichen Namen und das gleiche Profilbild verwenden müssen. Wenn ich meiner Tante eine E-Mail schreibe, hat da mein richtiger Name zu stehen, wenn ich ein Video auf YouTube kommentiere, hat dort ein anonymer Name zu stehen. Trotzdem fragt mich YouTube bei jedem Besuch auf’s neue, welches Konto bzw.

Spiegel Online Backend

In case you ever wondered: Spiegel Online seems to be running Apache Tomcat 5.5 and Squid. Two random error messages told me so :-) __________ UPDATE NOV 2004 __________ ERROR The requested URL could not be retrieved Der folgende Fehler wurde beim Versuch die URL zu holen festgestellt: Zugriff verweigert. Die Anfrage wurde aufgrund mangelnder Zugriffsrechte verweigert. Bitte kontaktieren Sie Ihren Dienstanbieter falls sie denken, dass dies ein Fehler ist.

Vertical Rhythm on the Web

"Space in typography is like time in music. It is infinitely divisible, but a few proportional intervals can be much more useful than a limitless choice of arbitrary quantities." So says the typographer Robert Bringhurst, and just as regular use of time provides rhythm in music, so regular use of space provides rhythm in typography, and without rhythm the listener, or the reader, becomes disorientated and lost. Read the full article on 24ways.

Transfer files from one server to another using rsync

I needed to transfer 10.000 images from one server to another, so I used rsync for this task: rsync -ahuzP --stats -e "ssh -p 4721" "/var/www/img" This will copy the folder /var/www/images and all of its contents from the local server to the remote server The folder /images will be created in the target’s /var/www/ directory. I specified a non-standard SSH port using the -e parameter and root as user.

How to cite a RFC

The Internet Engineering Task Force (IETF) maintains a list of all RFCs and how to cite them in a bibliography. See the RFC Bibliography Listing:

SVG: Arch Path + Arrow Head Marker + Centered Textpath

Live example: <path d="M0, -5L10, 0L0, 5"></path> <!-- DEFINE A TEXT PATH FOLLOWING THE PATH DEFINED ABOVE. USE STARTOFFSET TO CENTER TEXT. --> <textPath xlink:href="#edge-state8-state5" startoffset="50%">Centered edge label</textPath> Source: <html> <body> <svg width="600px" height="400px" style="border: 1px solid grey;"> <defs> <!-- DEFINE AN ARROW THAT WE CAN PLACE AT THE END OF EDGES. --> <!-- USE REFX TO MOVE THE ARROW'S TIP TO THE END OF THE PATH.

JavaScript Graph Visualization Tools

A collection of JavaScript graph visualization tools that look promising to me. D3.JS Link: Well known and probably the best one. Today I read aboute Hive Plots for the first time (see this amazingly good looking and well written article: and guess what: D3.JS already has support for Hive Graphs. And of course tons of other examples and graph types. Sigma.js Link: And a plug-in for custom node shapes and images: https://github.

Delete a folder and its contents in Java

You can use the following method to delete a folder and all of its contents in Java: /** * Deletes the given folder and all of it contents if and only if the folder * exists. * * @param folder * The folder to be deleted */ public static void deleteFolderAndContents(final File folder) { if (folder.exists()) { final File[] files = folder.listFiles(); if (files != null) { // Some JVMs return null for empty directories for (final File file : files) { if (file.

PropertyNotFoundException: Target Unreachable ... returned null

JSF Situation <h:inputText value="#{myBean.myEntity.myProperty}" /> Possible Error Sep 16, 2013 5:40:11 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/MyContext] threw exception [javax.el.PropertyNotFoundException: Target Unreachable, 'myEntity' returned null] with root cause javax.el.PropertyNotFoundException: Target Unreachable, 'myEntity' returned null Solution In File do this: public class MyBean { // Explicitly create a new instance, so the property is not null: private MyEntityClass myEntity = new MyEntityClass(); // This was the error's cause: // private MyEntityClass myEntity; }

Raspberry Pi Alternatives

A small comparison of current board models. Raspberry Pi Odroid U2 ASRock AD2550-ITX BeagleBone Black Cubieboard 2 Hackberry A10 Credit Card Raspberry Pi Model BOdroid U2ASRock AD2550-ITXBeagleBone BlackCubieboard 2Gooseberry BoardHackberry A10 CPU1 x 700 MHz4 x 1,7 GHz2 x 1.86 GHz Intel Atom D25501 x 1 GHz AM33592 x 1 GHz ARM Cortex-A71 x 1 GHz ARM Cortex-A81 x 1 GHz ARM Cortex-A8 GPUBroadcom VideoCore IVMali 400 Quad Core 440MHzPowerVR SGX545PowerVR SGX530Mali 400mp2Mali 400Mali 400 RAM512 MB SD2 GB DDR20 / 4 GB DDR3512 MB DDR31 GB DDR3512 MB ?

Eclipse JSF JPA CDI Maven project (Juno Update)

Updated version for Eclipse Juno. Get Eclipse Juno Download Eclipse IDE for Java EE Developers. Unzip Eclipse to a directory of your choice, start it and choose a location for your workspace folder. Configure Eclipse (can be skipped) Personally, I don’t like some of Eclipse’s default settings and will change them right now. But this is completely up to you, feel free to skip this section. Set editor font to Courier New 10 pt Set all default encodings to UTF-8 (General – Workspace, Web – CSS Files, Web – HTML Files, Web – JSP Files, XML – XML Files) Enable Refresh using native hooks or polling and Refresh on access Show line numbers Go to XML – XML Files – Validation and set No grammar specified from Warning to Ignore.

Long Term Review of the Dell Colour Laser Printer 3110cn

I bought my Dell 3110cn laser printer back in March 2008 for 362,95 EUR. It’s got 600 x 600 dpi, USB2 and an ethernet port. The first thing to note is: the printer still works, me and my flat mates never had any problems with it. Just connect it to your network, give it a static IP address and install the drivers on every network computer that needs to print. Dell states that the included print cartridges last for approximately 5.

The file beans.xml for CDI projects

To enable CDI in your project, you need (among other things) to place a file called beans.xml in your WEB-INF folder. It may remain mostly empty, until you start using some of the more advanced CDI features, e.g. interceptors or decorators would be defined in this file. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="" xmlns:xsi="" xsi:schemaLocation=""> </beans>

JAX-RS and CDI using Resteasy on TomEE 1.5

Create a basic Maven project called “RestTest” with no archetype in Eclipse. Add the dynamic web project facet to your project and let Eclipse generate a default web.xml file for you. Add the file beans.xml to your project/txp:permlink. Then add the following Resteasy dependencies to your pom.xml: <!-- Java EE 6 Webprofile APIs provided by TomEE --> <dependency> <groupId>org.apache.openejb</groupId> <artifactId>javaee-api</artifactId> <version>6.0-4</version> <scope>provided</scope> </dependency> <!-- JAX-RS --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.3.5.Final</version> </dependency> <dependency> <groupId>org.

JAX-RS and CDI using Resteasy and Weld on Tomcat 7

Create a basic Maven project called RestTest with no archetype in Eclipse. Add the dynamic web project facet to your project and let Eclipse generate a default web.xml file for you. Add the file beans.xml to your project/txp:permlink. Then add the following Weld and Resteasy dependencies to your pom.xml: <!-- CDI --> <dependency> <groupId>org.jboss.weld.servlet</groupId> <artifactId>weld-servlet</artifactId> <version>1.1.10.Final</version> </dependency> <!-- JAX-RS --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.3.5.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxb-provider</artifactId> <version>2.3.5.Final</version> </dependency> <dependency> <groupId>org.

Monitor a log file live

You can watch a log file as it grows using the following command: tail -f -n 50 /opt/tomcat/logs/catalina.out -f, --follow[={name|descriptor}] output appended data as the file grows; -f, --follow, and --follow=descriptor are equivalent -n, --lines=N output the last N lines, instead of the last 10; or use +N to output lines starting with the Nth"

JAX-RS using Resteasy and Maven on Tomcat 7

Create a basic Maven project called RestTest with no archetype in Eclipse. Add the dynamic web project facet to your project and let Eclipse generate a default web.xml file for you. Then add the following Resteasy dependencies to your pom.xml: <!-- JAX-RS --> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxrs</artifactId> <version>2.3.5.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jaxb-provider</artifactId> <version>2.3.5.Final</version> </dependency> <dependency> <groupId>org.jboss.resteasy</groupId> <artifactId>resteasy-jettison-provider</artifactId> <version>2.3.5.Final</version> </dependency> Add the following servlet and servlet mapping to your web.xml: <servlet> <servlet-name>RestServlet</servlet-name> <servlet-class>org.

JAX-RS using Jersey and Maven on Tomcat 7

Create a basic Maven project called RestTest with no archetype in Eclipse. Add the dynamic web project facet to your project and let Eclipse generate a default web.xml file for you. Then add the following Jersey dependencies to your pom.xml: <dependencies> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-servlet</artifactId> <version>1.17.1</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.17.1</version> </dependency> </dependencies> And the following servlet and servlet mapping to your web.xml: <servlet> <servlet-name>JAX-RS Servlet</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JAX-RS Servlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping> Now lets create a very basic JAX-RS service:

Random CDI JAX-RS Tomcat TomEE frustration

The injection of a CDI bean into a JAX-RS service does not seem to work when using CDI-Weld and Resteasy as correspondent implementations. This sucks, since I wanted to inject a self implemented and session scoped security manager into my restful services to implement role based access restrictions. The desire to do so actually feels quite natural and various posts on stackoverflow suggest that other people have tried this before. I read it should (by specification) work when using EJB and I also read some guys got it to work using just OpenWebBeans and Jersey as CDI / JAX-RS implementations (though it is not clear, if this is actually covered by the CDI specs).

JSHint in Eclipse

See on how to install the JSHint Eclipse plugin. Open Window – Preferences – JSHint – Options. Set the following JSHint options: devel: true, regexdash: true, so we can use console.log() and [a-zA-Z-] (unescaped dash at the end of a regex character class) withouth warnings. Sadly, the regexdash option seems not to be in the official options documentation, though it was added more than two years ago. But it is implemented, which is good.

JAX-RS returns Object.toString() instead of JSON

Suppose you have a JAX-B annotated class and you want to return objects of that class in one of your JAX-RS services, but the result is always equal to that of a toString() call on that object. E.g. com.domain.MyClass@1796224 is returned, if you didn’t override toString(). The problem will probably be, that your JAX-RS method is annotated with @Produces("text/plain") instead of @Produces("application/json"), which makes your clever JAX-RS implementation think that it’s more appropriate to return a plain String representation of your object.

Fix Tomcat Warning on APR based Apache Tomcat Native library

If you start Apache Tomcat 7 on a Windows machine from within Eclipse, you might get the log message The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path. In fact, this library – which is called tcnative-1.dll – is already present in the tomcat/bin directory of tomcat’s windows release, it’s just not on the library path when you start the server using Eclipse.

Eclipse Indigo - Install PHP Development Tools

Click “Help” Click “Install new Software” Select the Indigo releases website to work with Expand the node “Programming Languages” Check entry “PHP Development Tools (PDT) SDK Feature” Click “Next” and install the plugin”

YouTube's new API v3 sucks

What the new YouTube Data API v3’s Java library should be like: String requestUrl = ""; String json = Youtube.request(requestUrl); List<Video> videos = Youtube.getAsList(json, Video.class); Video video = videos.get(0); String title = video.getTitle(); What it actually is: Broken. No documentation at all. Pain in the ass. Just so bad.

Playing around with Unicode Angle Brackets

HTML Decimal HTML Named Character Name Support 10216 ⟨ MATHEMATICAL LEFT ANGLE BRACKET 1 10217 ⟩ MATHEMATICAL RIGHT ANGLE BRACKET 1 9001 &lang; 〈 LEFT-POINTING ANGLE BRACKET 2 9002 &rang; 〉 RIGHT-POINTING ANGLE BRACKET 2 12296 〈 LEFT ANGLE BRACKET 2 12297 〉 RIGHT ANGLE BRACKET 2 62 &gt; > GREATER-THAN SIGN 60 &lt; < LESS-THAN SIGN [1] Not supported by the Arial font [2] Supported by “Arial Unicode MS”

Get Request Headers in a JSF Backing Bean

In your backing bean use the following: final HttpServletRequest request = (HttpServletRequest) FacesContext .getCurrentInstance().getExternalContext().getRequest(); final Enumeration<String> keys = request.getHeaderNames(); while (keys.hasMoreElements()) { final String key = keys.nextElement(); final String val = request.getHeader(key); System.out.println(key + " : " + val); } The result could be something like this: host : localhost:8080 user-agent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0 accept : text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 accept-language : de-de,de;q=0.8,en;q=0.5,en-us;q=0.3 accept-encoding : gzip, deflate dnt : 1 connection : keep-alive content-type : application/x-www-form-urlencoded; charset=utf-8 faces-request : partial/ajax referer : http://localhost:8080/Project/html/foo.

Defekte Seagate Barracuda 7200.11 selbst reparieren

Wenn eine Seagate-Festplatte aus der Reihe Barracuda 7200.11 im BIOS nicht mehr erkannt oder im Betriebssystem erkannt, aber mit einer Gesamtkapazität von 0 Byte aufgeführt wird, liegt ein bekannter Firmware-Bug vor. Sowohl die Daten als auch die Platte sind dann physisch noch intakt, letztere kann ohne spezielles Werkzeug aber nicht wieder zum Laufen gebracht werden. Möchte man die Platte nicht zur kostspieligen Reparatur geben, kann man den Fehler auch selbst beheben.

Eclipse JSF JPA CDI Maven project

Last article update: Dec 2012 Get Eclipse Download Eclipse Indigo for Java EE Developers. Do not download Eclipse Juno at this point (Oct 2012) since JBoss Tools is not yet compatible with it. Juno seems to be even slower than Indigo anyway. Unzip Eclipse to a directory of your choice, start it and choose a location for your workspace folder. Configure Eclipse (can be skipped) Personally, I don’t like some of Eclipse’s default settings and will change them right now.

JRebel stops redeploying in Java development

I found a very promising Eclipse plugin called JRebel. Here is a short information snippet from the JRebel website: * **Lets You See Changes to Code Instantly** Without JRebel, Avg. redeploy time is 3.1 minutes, 4x per hour * **Handles Lots of Changes** Class Structures, Frameworks, Java EE * **Enables Instant Builds** Eliminates the build &amp; redeploy phases * **Supports your Stack** All major containers, frameworks, IDEs...with no memory leaks Unfortunately it costs between 140 and 365 dollars per year, depending on the size of your team.

Classpath entry will not be exported or published

Environment: Eclipse 3.7.2 (Indigo) Project: JSF + CDI + JPA running on Tomcat 7 Problem: Classpath entry org.eclipse.jdt.USER_LIBRARY/CDI Weld will not be exported or published. Runtime ClassNotFoundExceptions may result. Solution: Rightclick the project, click Properties. Select Deployment Assembly and click the “add” button. Add a new Java Build Path Entry and select the library that you want to ship with you WAR file. Click apply and okay. Done.

JavaScript variables and this

Currently I’m taking a more serious look at JavaScript and its concepts. Initially I often got confused about the visibility of variables in an object and how to use the this keyword. So here is a little example as a reminder for myself and anyone who cares: <html> <head> <title>Test</title> <script type=&#39;text/javascript&#39;> window.onload = function () { var Woman = function () { var name = &#39;Nobody&#39;; // Access via name this.

Could not load a dependent class com/jcraft/jsch/Logger

Get jsch-x.x.xx.jar from Rename it to jsch.jar Place it in the ant/lib folder as indicated in the error Add the .jar to the ant classpath in Eclipse: Window/Preferences/Ant/Runtime/Ant Home Entries – Add external JARs, choose your jsch.jar”

Den Start von Eclipse beschleunigen

Auf werden fünf Punkte genannt, die den Start von Eclipse erheblich beschleunigen. Ich persönlich habe folgendes übernommen und die Startzeit so auf 6 Sekunden reduzieren können: Eclipse, den Workspace sowie alle Server zur Ausnahmeliste des Virenscanners hinzugefügt. 2.1 Alle Validierungen bis auf die für mich relevanten deaktiviert: 2.2 Unter Startup and Shutdown alle Default-Optionen deaktiviert (ich scheine nichts davon zu benötigen… insbesondere kein Usage Reporting welcher Art auch immer).

Java Externalizable vs. Serializable

Statt des Java Interfaces Serializable kann mit dem alternativen Interface Externalizable die volle Kontrolle über den Vorgang der Serialisierung übernommen werden. Insbesondere lässt sich in vielen Situationen der Speicherbedarf des serialisierten Objekts deutlich verringern, indem man bewusst auf einigen Overhead verzichtet. Um diesen Unterschied zu messen, kann man zwei Klassen erstellen, die jeweils Serializable bzw. Externalizable implementieren und einige Variablen mit festen Werten enthalten. Anschließend schreibt man diese Objekte via ObjectOutputStream und FileOutputStream in zwei Dateien und betrachtet die resultierende Dateigröße – allerdings nicht die Dateigröße auf der Festplatte, die von der Blockgröße des Dateisystems abhängt, sondern nur die Größe des eigentlichen Inhalts.

Bücher nach ISBN verkaufen

Kürzlich ist mir ein Dienst über den Weg gelaufen, bei dem man Bücher nach ISBN verkaufen kann: Nach Eingabe der ISBN erhält man sofort eine Rückmeldung, wieviel Geld man für das Buch bekommt. Man kann dann einfach eine Reihe von ISBNs eingeben, die Bücher sicher verpacken und abholen lassen. Ein interessantes Konzept, wenn man viele nicht mehr benötigte Bücher, DVDs, CDs etc. zu Hause hat, man aber zu Faul für den Flohmarkt oder Ebay ist.

Dropbox Alternativen und andere Cloud Software

Unvollständige Liste kostenloser Anbieter und Anwendungen: Dropbox – 2 GB (bis zu 16 GB durch Einladen von Freunden) Windows Live Mesh – 5 GB kostenlos, Live Mesh verwendet Microsofts SkyDrive Cloud T-Online Mediencenter – 25 GB kostenlos, Download von Dateien leider erst bei Zugriff, dafür z.B. Streaming von Musik möglich TeamDrive – 10 GB kostenlos, nicht getestet SugarSync – 5 GB kostenlos, nicht getestet SparkleShare – Kostenlose Anwendung für den eigenen Server, noch nicht für Windows verfügbar IFolder – Kostenlose Anwendung für den eigenen Server FTPbox – Kostenlose Anwendung für den eigenen Server, ähnelt Dropbox, Dateitransfer per FTP/SFTP, optional TLS/SSL encryption (FTPS)

Backing Bean Constructur Called Multiple Times

If the constructor of a backing bean is called multiple times during one single request, the reason might be that the backing bean has no scope annotation. I experienced this problem using CDI, but it might also be the case for JSF managed beans. I expected the default scope to be @RequestScoped, but as it turned out this is not the case. For CDI the default scope is @Dependent and for JSF it’s None – which seems to be basically the same:

Broken font size when using UTF-8

Today I migrated one of my websites from the german ISO-8859-1 charset to UTF-8. I started with converting all documents to UTF-8 and checked the website afterwards. As expected, the german Umlaute turned out to be a mess. So the next thing was to change the charset definition in the HTML code: <!-- old <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> After this, the whole layout moved about 20 px away from the top and the font size of many elements was way too big.

Password input using Eclipse, Ant and AntForms

Some Ant tasks such as ftp and scp require the name and password of a user. Certainly you don’t want to have passwords in plaintext form in your build scripts. Ant’s input task can be used to read input such as passwords from the console, which is more safe. Unfortunately it also echoes the entered values back to the console in plaintext form, which might not be wanted. To prevent this, one could use a SecureInputHandler as desribed in a stackoverflow discussion.

Import und Export von .3dxml

(Für Ungeduldige: Ansätze zur Konvertierung finden sich im 2. Teil) 1. Teil: Erläuterung Ich bin ein totaler Anfänger in Sachen 3D-Modellierung und habe vor einigen Monaten ein paar erste Gehversuche in diese Richtung gemacht. Dabei stellte sich das kleine Modellierungsprogramm 3DVIA Shape – vergleichbar mit Google Sketchup – als sehr elegant und für Einsteiger gut bedienbar heraus. 3DVIA Shape speichert fertige Modelle allerdings ausschließlich im hauseigenen Format .3dxml ab – ungut.

CSU Irrlicht fordert Klarnamenzwang im Internet

Wie kommen derart verantwortungslose Menschen wie Hans-Peter Friedrich in so verantwortungsvolle Positionen wie die des Bundesinnenministers? Folgt man seiner Forderung nach dem Verbot der Anonymität im Internet, so müssten politische Rebellen, Dissidenten, Menschenrechtler und andere auf Meinungsfreiheit angewiesene Berichterstatter oder auch nur (Vor)Denker demnächst unter ihrem bürgerlichen Namen schreiben. Später werden sie dann verhaftet, gefoltert oder einfach erschossen. “Offenes Visier” nennt Friedrich das. Die Microsoft Wissenschaftlerin Danah Boyd beschäftigt sich mit den sozialen Aspekten von Medien, dem Internet und dessen Netzwerken.

MySQL auf Windows 7 deinstallieren

Wird MySQL nicht vollständig deinstalliert, werden nach einer Neuinstallation die Benutzerdaten und Passwörter der früheren Installation weiter verwendet. Der MySQL-Konfigurationswizard kann sich dann nach der Neuinstallation mangels Kenntnis dieser Zugangsdaten nicht zum MySQL-Server verbinden und somit kein neues root-Passwort setzen. Daher folgende Punkte beachten: Systemsteuerung – Programme/Funktionen – MySQL deinstallieren Auf der früheren Installationspartition, je nach gewählter Einstellung eventuell auch andernorts, befindet sich ein Ordner der etwa “MySQL Data” heißt.

Eclipse Helios Subversion Installation

The following steps were taken from the Polarion website. Starting from version 0.7.8.I20090808-1900 you can install just Subversive SVN Team Provider (without installing SVN Connectors from another update site) and the new Connector Discovery feature helps you find and install right versions of SVN Connectors. However, you can optionally use the update sites below to get them. Subversive Update Site is a part of Helios Update Site. To install: On main menu, choose Help > Install New Software.

Debian & Linux Commands

Install, uninstall or modify software User aptitude. Description: Example on how to install programs: aptitude update aptitude install myProgram Uninstall package only: aptitude remove myProgram Uninstall package and configuration files: aptitude --purge remove myProgram Install Firefox and Thunderbird Im Zuge eines Namensstreits zwischen Debian und Mozilla hat Debian Firefox in Iceweasel und Thunderbird in Icedove umbenannt. Weitere Informationen hierzu finden sich im verlinkten Wikipedia-Artikel. Die Installation der Pakete erfolgt wie gewohnt mit Aptitude.

Promote JS!

Bei Mozilla versucht man derzeit den Misstand zu beheben, dass eine Google-Suche nach JavaScript eher nutzlose bis wirre Ergebnisse liefert, obwohl die Skriptsprache in den letzten Jahren enorm an Bedeutung gewonnen hat. Speziell wünschen sich die Jungs, dass gängige Suchanfragen, beispielsweise nach “JS Documentation” oder “Javascript Guide”, unmittelbar zu einer angemessenen und korrekten Dokumentation führen. Will heißen: Zur Dokumentation der Mozilla-Community. Wer diese Idee unterstützen möchte, kann sich auf entsprechende Promo-Codes generieren lassen.

Virtuelle Hosts in JBoss 5.1 einrichten

Auf gibt es eine prima Erklärung, wie man virtuelle Hosts in JBoss 5.1 einrichtet. In meinem Fall befindet sich nur eine (Seam)Anwendung auf dem JBoss, die über das root-Verzeichnis erreichbar sein soll. Die WEB-INF/jboss-web.xml habe ich daher wie folgt angepasst: <jboss-web> <context-root>/</context-root> <virtual-host></virtual-host> </jboss-web> Der Blog-Eintrag erwähnt allerdings nicht, dass es im Falle einer als EAR deployten Anwendung – also nicht nur als WAR – einen weiteren solchen Eintrag in der META-INF/application.

Windows Passwort mit Knoppix zurücksetzen

Reset Windows Password using Knoppix Unterstützte Betriebssysteme Die folgende Anleitung kann genutzt werden, um ein vergessenes Passwort auf einem Rechner mit installiertem Windows Vista Home Basic zu entfernen bzw. ein neues Passwort zu setzen. Die Anleitung sollte ohne Änderungen auch mit jeder anderen Vista-Version funktionieren. Das verwendete Linux-Tool chntpw wurde laut der Website des Autors mit folgenden Betriebssystemen erfolgreich getestet: NT 3.51, NT 4 (all versions and SPs), Windows 2000 (all versions & SPs), Windows XP (all versions, also SP2 and SP3), Windows Server 2003 (all SPs), Vindows Vista 32 and 64 bit (SP1 also), Windows 7 (all variants).

Apache Ant auf Debian installieren

Im folgenden wird die Installation von Apache Ant 1.8.2 auf Debian Lenny (5.0) beschrieben. Zuerst apache-ant-1.8.2-bin.tar.gz herunterladen. Das Archiv so entpacken, kopieren und umbenennen, dass das /bin/-Verzeichnis von Ant über folgenden Pfad erreichbar ist: /usr/local/ant/bin/. Nun wird Ant zum PATH hinzugefügt und die Umgebungsvariable ANT_HOME definiert. Hierzu müssen am Ende der Datei /root/.bashrc folgende Zeilen hinzugefügt werden: export ANT_HOME=/usr/local/ant/ export PATH=$PATH:$ANT_HOME/bin Um die Änderungen wirksam werden zu lassen, folgenden Befehl in der Konsole ausführen: source .

PMD mit Jenkins nutzen

PMD ist ein Tool zur statischen Code-Analyse von Java- und anderen Programmen. Die folgenden Punkte beschreiben, wie man PMD 4.2.5 auf Debian Lenny (Debian 5.0) installiert und mit Jenkins 1.403 verknüpft. Zuerst herunterladen. Das Archiv so entpacken, kopieren und umbenennen, dass das /bin/-Verzeichnis von PMD über folgenden Pfad erreichbar ist: /usr/local/pmd/bin/. Nun aufrufen, dort zuerst Jenkins verwalten und anschließend System konfigurieren auswählen. Im Abschnitt Globale Eigenschaften das Häkchen bei Umgebungsvariablen aktivieren und folgende Umgebungsvariable hinzufügen: Name: PMD_HOME, Wert: /usr/local/pmd.

Star Trek/Wars Gesellschaftsanalyse

Star Trek/Wars Gesellschaftsanalyse Man kann wohl sagen das die Schlacht zwischen Star Trek und Star Wars entschieden ist. Star Trek ist nicht K.O., aber doch deutlich angezählt. Dies passt in die heutige Zeit. Seit den 90ern wendet sich die moderne westliche Gesellschaft ab von Selbsterkenntnis und Vernunft und hin zu Mythen und Symbolen, allgemein bekannt unter dem Sammelbegriff Religion. So hat auch bei diesem Vergleich die Religion und das Schwarz-weiß-denken gegenüber Aufklärung und Logik gewonnen.

Kostenloser Webspace

Hier eine kleine Auswahl empfehlenswerter Anbieter kostenlosen Webspaces. Das Augenmerk liegt auf möglichst zuverlässigen und langlebigen Diensten, die PHP sowie MySQL anbieten und nicht zur Einblendung von Werbung verpflichten. Die Hoster eignen sich vor allem für Anfänger und Fortgeschrittene, die kleine bis mittelgroße Websites betreiben oder datenbankgestützte Projekte betreuen und hierfür kein Budget zur Verfügung haben. Mithin finden sich hier einige der besten Freehoster, dennoch muss man sich auf Einschränkungen der Verfügbarkeit und unregelmäßige Lastspitzen einstellen.

gcc und g++ auf Debian installieren

Den Befehl sudo aptitude install gcc zur Installation von gcc verwenden Analog für die Installation von g++ vorgehen: sudo aptitude install g++ Anschließend which gcc oder which g++ eingeben War die Installation erfolgreich, wird in der Konsole nun der Pfad zu gcc bzw. g++ ausgegeben: /usr/bin/gcc bzw. /usr/bin/g++“


Betreiber und inhaltlich Verantwortlicher gemäß § 10 Absatz 3 MDStV: Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte extern verlinkter Webseiten. Für den Inhalt dieser Seiten sind ausschließlich deren Betreiber verantwortlich. Sollte ich unwissentlich ein Urheberrecht verletzt haben, schreiben Sie mir bitte eine E-Mail mit entsprechendem Hinweis. Ich werde die betroffenen Inhalte unmittelbar nach Kenntnisnahme der E-Mail entfernen. Falls Sie Inhalte meiner Website weiterverwenden möchten, freue ich mich über eine E-Mail oder einen Link.

CSU will verbieten

Einfach mal googlen. Man könnte auch einen Wettbewerb daraus machen: Wer findet die meisten und/oder tollsten CSU-Verbotsforderungen. Ich lege mal vor: CSU will Islamsatire “Four Lions” verbieten CSU will Computerspiel “World of Warcraft” verbieten CSU will Burkas im Staatsdienst verbieten CSU will First-Person-Shooter verbieten CSU will Linkspartei verbieten CSU will Klagen gegen Kindergeschrei verbieten CSU will deutschen Politikern gemeinsame Flüge verbieten CSU will NPD verbieten CSU will Datenhandel verbieten CSU will ungedeckte Leerverkäufe verbieten CSU will Konzert der Dark-Metal-Band “Eisregen” verbieten CSU will Alkoholausschank zu unangemessen niedrigen Preisen verbieten CSU will Handys im Unterricht verbieten CSU will jetzt auch MP3-Player im Unterricht verbieten CSU will Harry Potter Film verbieten CSU-Aigner will den Anbau von genmanipuliertem Mais in Deutschland verbieten CSU-Aigner stimmt bei EU-Agrarministertreffen für Zulassung der Genmais-Sorte MIR604 CSU-Aigner genehmigt Gen-Kartoffel Amflora CSU will Demonstrationen am Reichstag verbieten CSU will Handyverbot für junge Kriminelle CSU will Scientology verbieten CSU will giftige Farben auf Lebensmittelverpackungen verbieten CSU will teure Warteschleifen verbieten CSU will Genuntersuchung befruchteter Eizellen verbieten CSU will kontrollierte Sichtflüge verbieten CSU will Freiflächenanlagen auf landwirtschaftlichen Flächen verbieten CSU will Freizeitspiel “Paintball” verbieten CSU will Modellflieger verbieten CSU will Raucherclubs verbieten CSU will Verleih von Pornofilmen verbieten CSU will Kopftücher in der Schule verbieten CSU will Ausstrahlung indizierter Filme ausnahmslos verbieten CSU will Versandhandel von verschreibungspflichtigen Arzneimitteln verbieten CSU will Abgabe von Arzneimitteln in sogenannten Pick-up-Stellen verbieten CSU will Kartendienst Google Street View verbieten CSU will Essen und Trinken auf Teststrecke der Nürnberger Verkehrsgesellschaft verbieten CSU will Fremdalkohol auf angrenzenden Straßen und Plätzen der Auerdult verbieten CSU stellt First-Person-Shooter auf eine Stufe mit Kinderpornographie CSU will Tanzen nach Halloween verbieten CSU will Discos mit lauter Musik verbieten CSU will Ausnahmen bei Praxisgebühren verbieten CSU will Gaststättenbetrieb nach 3 Uhr verbieten CSU will konventionelle Autos verbieten CSU will Kindern unter 14 Jahren Ausgehen nach 20 Uhr verbieten CSU will Werbung für private Sportwetten verbieten CSU will Gentechnik verbieten CSU will kurzfristige Boni verbieten CSU will Langzeitarbeitslosen Urlaub verbieten

Speed up your web site

Yahoo beschreibt in diesem Artikel bewährte Methoden, um die Ladezeit der eigenen Website gering zu halten. Auch falls man das alles schon wissen sollte, kann die Seite immer noch als prima Checkliste dienen, wenn man gerade in der Situation ist, wirklich alles auf den Prüfstand stellen zu müssen – oder zu wollen.

Windows 7 Probleme mit eSata

Windows 7 hat unter Umständen Probleme mit externen Festplatten, die über eSata angeschlossen sind. Im BIOS AHCI statt IDE einstellen kann grundsätzlich helfen, führt jedoch zu Bluescreens beim Start, wenn Windows auf einer Festplatte im IDE Modus installiert wurde. Die Lösung zum Bluescreen gibt es bei Microsoft selbt, einige weitere Informationen z.B. hier. Gelegentlich sind auch eSata Hardwarekomponenten des Mainboards oder entsprechende Treiber schuld an Problemen in diesem Zusammenhang.

Arbeiten mit PDF-Dokumenten

Der folgende Eintrag ist teilweise schon etwas älter und war bisher Teil einer bunten Linksammlung. Hierfür ist die Passage inzwischen aber zu umfangreich geworden. Falls also ein Link nicht mehr funktioniert, bitte einen Kommentar dazu schreiben. Babinszki World – Net Distillery – Kostenloser Online Service zur Umwandlung von PostScript in PDF. Funktioniert einwandfrei, allerdings sind die so erzeugten Dateien im Ausgabesystem für jederman frei zugänglich. Man sollte daher inbesondere persönliche Dokumente nach dem Download mit identisch benannten, jedoch leeren Dateien überschreiben.

Lehrvideos zu Mathematik

Die Website bietet eine Fülle von anschaulichen und gut verständlichen Lehrvideos zu den meisten Themen der Schulmathematik, teilweise wird auch Universitätsstoff wie beispielsweise fortgeschrittene Analysis und anderes mehr behandelt. Auch bei YouTube findet man eine ganze Reihe hervorragender Mathematikkurse, besonders hervorzuheben wären dort z.B. die Videos von JosefRaddy. Grundsätzlich eignen sich die Videos sowohl als Ergänzung des Selbststudiums, aber auch als Alternative zu bezahlter Nachhilfe. Ebenso kann man Wissenslücken ergänzen, alten Stoff auffrischen oder die Kurse zur Klausurvorbereitung nutzen.

JavaScript erst nach dem Laden der Seite ausführen

Möchte man bestimmte JavaScript Anweisungen erst nach dem Laden der Webseite ausführen, so kann man zum Beispiel folgende Methode verwenden: <head> <script type="text/javascript"> <!-- function waitUntilReady() { if(document.readyState != "complete") { window.setTimeout(waitUntilReady, 100); return false; } alert("Diese Anweisung wird erst nach dem Laden der Seite ausgeführt."); } --> </script> </head> <body onload="waitUntilReady()"> Um sich davon zu überzeugen, einfach eine ausreichend große Grafik in die Seite einbinden und diese online aufrufen.

Linux files and folders

Copy and rename, prompt before overwriting Move and rename Recursively delete a folder and its contents Only remove the contents of a folder Show the size of a file or folder Show disk space used Show disk space left Download a file from the internet Pack and unpack a folder Pack folder Unpack archive Unpack archive to target Monitor log files live Copy and rename, prompt before overwriting cp -i file dir1/file2 Move and rename mv file dir1/file2 Recursively delete a folder and its contents rm -rf /opt/folder/subfolder/ Only remove the contents of a folder rm -rf /opt/folder/subfolder/* Show the size of a file or folder :~# du -hs /opt/tomcat/logs/ 825M /opt/tomcat/logs/ Show disk space used cd / du -hs --block-size=M Show disk space left cd / root@debian / # df -TH Filesystem Type Size Used Avail Use% Mounted on /dev/md2 ext4 1.

Windows 7, VirtualBox, Debian und SSH

Nach langer Suche habe ich jetzt endlich herausgefunden, wie ich mich via SSH zu meinem Gastsystem Debian verbinden kann. Dieses Szenario ist vor allem dann interessant, wenn man die virtuelle Maschine als Entwicklungsserver verwendet, der analog zum Produktivserver nur von außen erreichbar sein soll, ohne grafische Oberfläche etc. Folgende Schritte sind nötig: Netzwerkeinstellungen der virtuellen Maschine in VirtualBox öffnen. Bei “Angeschlossen an” wählen wir statt NAT die Netzwerkbrücke. Als Schnittstelle wählen wir unter “Name” das Gerät, mit dem wir normalerweise online gehen.

Windows 7, VirtualBox, Debian und gemeinsame Ordner

Um Ordner von Windows mit dem Gastsystem Debian gemeinsam verwenden zu können, sind folgende Schritte nötig: Zuerst muss unter Windows ein Ordner für die gemeinsame Verwendung erstellt werden, hier “WinShare”. Als nächstes müssen die VirtualBox-Gasterweiterungen unter Debian installiert werden: Als root einloggen und die Konsole öffnen Mit den folgenden vier Zeilen bereiten wir die Installation vor: apt-get update apt-get upgrade apt-get install build-essential module-assistant m-a prepare In VirtualBox im Menü “Geräte” auf “Gasterweiterungen installieren” klicken Die CD mit den Installationsdateien mounten: mount /media/cdrom Gasterweiterungen installieren: sh /media/cdrom/VBoxLinuxAdditions-x86.

OpenGL Probleme mit Windows 7 64-Bit und Counter-Strike 1.6

Verschiedentlich wird im Zusammenhang mit der 64-Bit Version von Windows 7 über OpenGL Probleme mit Counter-Strike 1.6 berichtet. Häufig geht es um starkes Flimmern, bei mir stürzte Counter-Strike jedoch komplett ab. Das Problem ließ sich wie folgt beheben (siehe auch hier): Rivatuner herunterladen, installieren und starten Im “Main”-Reiter unter “Driver settings” auf das “Customize”-Icon klicken und das Symbol für OpenGL wählen Ein neuer Dialog öffnet sich, hier zum Reiter “Back / depth buffering” wechseln Die Einstellung “Block transfer” von “Auto select” auf “Block transfer” setzen

Telefonanrufe der Telekom abstellen

Laut WhoCallsMe wird z.B. die Nummer 08003009924 von der Telekom verwendet um Leuten morgens auf den Sack zu gehen. Da ich nicht rangehe, weiß ich nicht worum es geht, es scheint sich aber um Kundenakquise zu handeln. Das freut einen natürlich ganz besonders, wenn man ohnehin Kunde der Telekom ist, klar. Jedenfalls gibt es im Online-Kundencenter die Möglichkeit das abzustellen, einfach direkt nach dem Login auf “Informationsservice der Deutschen Telekom und der T-Mobile” klicken und dort dann alle Häkchen entfernen.

Windows 7: Virtual PC deinstallieren

Falls sich jemand die gleiche Frage gestellt hat: Der XP-Mode lässt sich ganz normal über “Programme und Funktionen” in der Systemsteuerung deinstallieren. Windows Virtual PC hingegen kommt als Windows Update und muss deshalb z.B. über “Installierte Updates anzeigen” entfernt werden. Einfach im Startmenü “Updates” eingeben und den entsprechenden Punkt auswählen.

Nützliche Tools

Einige nützliche Tools, die man nicht ständig benötigt und daher leicht vergissst. Memtest86 kann den Arbeitsspeicher eines Computers mittels eines Stresstests auf Fehler überprüfen und gegebenenfalls die Speicheradresse von fehlerhaften oder defekten Speicherzellen in einer Liste anzeigen. Die Software wird direkt nach dem Systemstart gestartet und ausgeführt, es ist kein Betriebssystem nötig. **Potrace **konvertiert Raster- in Vektorgrafiken. Als Ausgabeformate sind unter anderem PostScript, PDF und SVG möglich, die entstehenden Grafiken sind jedoch schwarz-weiß.

ToDo-Liste für Neuinstallation des PCs

Bloße Notiz für mich selbst: Liste aller von mir benutzten Software für die Neuinstallation des PCs. System & Treiber Chipset LAN Grafiktreiber Audio Sata Druckertreiber DVB-T Treiber Software Microsoft Security Essentials Mozilla Firefox (Adblock Plus, Flash, Flashblock) Opera Logitech Setpoint Maustreiber Pidgin (Plugins: BotSentry, Senden-Knopf, Verlauf, Theme: Clearlooks/Industrial/MS-Windows) Thunderbird Office JDK Eclipse 7-Zip Adobe Reader und SumatraPDF WinSCP und PuTTY Notepad++ HexEdit Daemon Tools VLC Steam WAMP Dropbox BoxCryptor IrfanView Photoshop GitHub Skype und TeamSpeak”

Windows Vista deinstallieren und XP behalten

EasyBCD ist ein Bootmanager mit grafische Oberfläche, der in seinen Funktionen dem in Windows Vista integrierten Kommandozeilen-Tool BCDedit entspricht. Hat man beispielsweise je eine Installation von Windows XP und Windows Vista auf unterschiedlichen Partitionen, kann man mit EasyBCD sehr einfach eines der Betriebssysteme aus dem Bootmenü entfernen. Lässt sich das System anschließend fehlerfrei neustarten, kann die Partition der nicht mehr benötigten Windows-Version bedenkenlos formatiert werden. EasyBCD verfügt außerdem über einige andere nützliche Funktionen, z.

SSH vor Login-Angriffen schützen

Ein schöner Artikel von heise Security beschreibt Möglichkeiten, wie man einen SSH-Server vor Login-Angriffen schützen kann. Dabei werden die Tools DenyHosts und fail2ban sowie das iptables-Modul recent angesprochen. Zusätzliche Sicherheit kann die Umstellung auf Public-Key-Authentifizierung bieten, bei kleineren Servern empfiehlt sich zudem ein weniger naheliegender Port für den SSH-Server.

Kollaborative Textbearbeitung in Echtzeit mit EtherPad

EtherPad unterstützt das kollaborative und simultane Arbeiten an Textdokumenten direkt im Browser. Benutzereingaben erscheinen unmittelbar in Echtzeit auf den Bildschirmen der übrigen Teilnehmer. Einfach ein “public pad” erzeugen und die URL des Dokuments an beliebige weitere Teilnehmer verschicken, es ist keine Anmeldung nötig. Die Import/Export-Funktion unterstützt verschiedene gängige Formate, z.B. Textdateien, HTML-Dokumente, PDF, Microsoft Word und OpenDocument. Schneller und einfacher geht es denke ich nicht, am besten selbst ausprobieren.

Seltsame Einträge in Debians auth.log

Nachdem ich mich in letzter Zeit etwas mehr mit der Sicherheit meines Debian Servers beschäftigt habe, sind mir (wie schon etlichen anderen Leuten zuvor) seltsame Einträge in Debians auth.log aufgefallen. Eine offizielle “Anleitung zum Absichern von Debian” bietet hierzu unter Punkt 12.2.6 folgende Erklärung: Ich habe seltsame Root-Sessions in meinen Logs entdeckt: Wurde ich gehackt? Sie sehen folgende Art von Einträgen in der Datei /var/log/auth.log: May 2 11:55:02 linux PAM_unix<sup id="fnrev19256972414dd03b2927832" class="footnote"><a href="#fn19256972414dd03b2927832">1477</a></sup>: (cron) session closed for user root May 2 11:55:02 linux PAM_unix<sup id="fnrev13552939854dd03b29287d2" class="footnote"><a href="#fn13552939854dd03b29287d2">1476</a></sup>: (cron) session closed for user root May 2 12:00:01 linux PAM_unix<sup id="fnrev1548145584dd03b2929772" class="footnote"><a href="#fn1548145584dd03b2929772">1536</a></sup>: (cron) session opened for user root by (UID=0) May 2 12:00:02 linux PAM_unix<sup class="footnote"><a href="#fn1548145584dd03b2929772">1536</a></sup>: (cron) session closed for user root Sie kommen von einem ausgeführten Cron-Job (in unserem Beispiel alle fünf Minuten).

Passwort unter Debian ändern

Passwort für root ändern: Shell:# passwd Shell:# [Aktuelles Passwort eingeben] Shell:# [Neues Passwort eingeben] Shell:# [Neues Passwort wiederholt eingeben] Passwort für andere Benutzer ändern: Shell:# su – [Benutzername] Shell:# passwd Shell:# [Aktuelles Passwort eingeben] Shell:# [Neues Passwort eingeben] Shell:# [Neues Passwort wiederholt eingeben]

JDBC Tuning beschreibt in einem empfehlenswerten englischsprachigen Artikel wie die Performance von JDBC-Anwendungen verbessert werden kann. Themen sind z.B. die richtige Treiberwahl, Connection-Pooling, Batch-Updates oder Optimierungen im Zusammenhang mit dem ResultSet. Einen deutschsprachigen Artikel zum Thema JDBC-Treiberwahl bietet auch

MySQL Tuning mit

Matthew Montgomery, Mitarbeiter bei MySQL, hat ein Tuning-Script für MySQL bereitgestellt, welches auf Basis von Statusdaten einige Empfehlungen für Konfigurationswerte in der my.cnf ausspricht. Neben Verbesserungsmöglichkeiten lassen sich so auch deutliche Fehlkonfigurationen entdecken. Benutzung wie folgt: Verzeichnis wechseln: cd /etc/mysql/ Script herunterladen: wget Ausführbar machen: chmod 755 Falls nicht installiert: apt-get install bc Script ausführen: ./ Damit dem Script aussagekräftige Daten vorliegen, sollte der MySQL-Server mindestens 48 Stunden gelaufen sein, besser noch einige Tage.

Zweiten Administrator löschen - Windows XP

Normalerweise arbeite ich unter Windows XP als “Administrator”, ohne weitere Benutzer- oder Gästekonten einzurichten. Hat man jedoch einmal aus welchem Grund auch immer einen zweiten Benutzer “Hans” mit Administratorrechten angelegt, so erscheint beim Systemstart erstens ein Anmeldebildschirm und zweitens lässt sich dort der alte “Administrator” nicht mehr auswählen. In der Systemsteuerung lässt sich unter “Benutzerkonten” immerhin die “Art der Benutzeranmeldung” ändern, so dass beim Systemstart je ein Feld für Benutzername und Passwort erscheint.

Dual Channel Modus der Chipsätze für DDR2 und DDR3 DRAM

In vielen Foren tauchen nach wie vor sehr ähnliche Fragen zum Dual Channel Modus von DDR2 und DDR3 auf. Häufig ist unklar ob und wann eingebauter Arbeitsspeicher im besagten Modus arbeitet, welche Bedingungen er hierfür erfüllen muss und wie die Speicherslots des Mainboard belegt werden müssen. Auf dieser Seite eines Spezialisten für Arbeitsspeicher wird das ganze Thema noch einmal sehr schön und anschaulich erklärt.


Derzeit häufen sich vermeindliche Trojanerfunde durch die Antivirensoftware AntiVir, so wurde auch bei mir die Datei CmdLineExt03.dll als verdächtig eingestuft. Laut Avira gehört die Datei jedoch zu Sonys Kopierschutzmechanismus SecuROM. Für weitere Informationen bitte diesem Link folgen: Avira Support Forum.

Windows Fenster mit Tastatur verschieben

Fenster mit Tastatur antippen und verschieben Vermutlich sollte ich mich schämen, aber im Moment überwiegen die Glücksgefühle. Ich habe endlich herausgefunden, wie ich unkompliziert Fenster verschiebe, die sich durch die Verwendung zweier Bildschirme dauerthaft im Nirvana positioniert hatten. Die “Verschieben”-Option (erreichbar z.B. über einen Rechtsklick auf das Programm in der Taskleiste) funktioniert nicht unmittelbar mit der Maus, sondern zunächst mit den Pfeiltasten der Tastatur. Entweder verschiebt man das Fenster nur mit Hilfe der Tastatur und bestätigt die neue Position durch Drücken der Enter-Taste.

Umlaute nach Import von MySQL-Datenbank fehlerhaft dargestellt

Nach Export und anschließendem Import von MySQL-Datenbanken, kann es sein, dass Umlaute plötzlich falsch dargestellt werden. Das kann z.B. daran liegen, dass PHPMyAdmin inzwischen UTF-8, die alte Datenbank aber noch ISO-8859-1 oder ISO-8859-15 als Zeichensatz verwendet hat. Dies kann vermieden werden, wenn man seinen SQL-Dump vor dem Importieren in einem Texteditor wie Notepad öffnet und noch einmal explizit als Datei mit UTF-8 Codierung abspeichert.

Neuer Kontostand in Disneyland

Das Mädchen mit den drei Ohren nahm seine Kopfhörer ab, Mischas Dose mit den Scheiss-Egal-Pillen war gerade über Bord gegangen. Er hatte ihr fasziniert hinterher gesehen. Es dauerte einen Moment, bis seine linke Augenbraue nervös zuckte. Er wirkte nun irgendwie überascht, neigte aber lediglich den Kopf zur seite, als wäre er ein beknackter Kanarienvogel. Der Pudel, den sie als Köder verwendeten, war vermutlich ziemlich tot, denn der Kutter schaukelte wie verrückt.

Wer ist Dr. Matthias Mönch?

Hinweis: Bitte das Update vom März 2012 gegen Ende des Artikels beachten, es gab unerwartete Wendungen. Der Originalbeitrag von 2006 Willkommen im Online-Zwielicht, wo sich alles um Geld, Sex, Junkmails, Viagra, Betrug und ähnliches dreht. Kürzlich habe ich folgende Spam-E-Mail erhalten: Received: from [] ( by with smtp (WEB.DE 4.107 #114) id 1GOkWF-0007Z9-00 for; Sun, 17 Sep 2006 02:28:24 +0200 From: “SP online” To: Subject: RE: Wie einfach ein Date sein kann!

Alternative zu Adobe Reader

Aktuelle Empfehlung Für den Alltag, klein und schnell: SumatraPDF Immer dann, wenn SumatraPDF nicht ausreicht: Adobe Reader September 2012 – Update Heute habe ich kurz den Aloaha PDF Reader angetestet. Viele Funktionen, dennoch zurückhaltende Oberfläche und nur 1,4 MB klein. Portabel und ohne Installation, benötigt allerdings das .NET Framework (häufig bereits vorhanden). Der Reader startete beim ersten Versuch relativ langsam (könnte an .NET liegen), beim zweiten Mal recht flott. Öffnet man PDF-Dokumente und ändert die Fenstergröße des Readers, verhält dieser sich beim Neu-Rendern des Dokuments derart träge, dass er mir ohne Umwege auf den Sack ging.

Groß- und Kleinschreibung nach einem Doppelpunkt

Notiz für mich selbst: Wird nach einem Doppelpunkt großgeschrieben? Nach einem Doppelpunkt wird großgeschrieben, wenn ein ganzer Satz folgt: Angebot: Heute bieten wir Ihnen frische Brötchen! Nach einem Doppelpunkt wird kleingeschrieben, wenn kein ganzer Satz folgt, also nur ein Satzteil oder ein Wort: Heute im Angebot: frische Brötchen!


Pizzateig zum selber machen. Pizzateig für 1 Blech 280g Mehl 1,5 TL Salz 30g (maximal 40g) frische Hefe auf 1 kg Mehl 5 EL Wasser (lauwarm) 1 TL Zucker 2 EL Olivenöl 100 ml Wasser Das Mehl in eine größere Schüssel geben, mit dem Salz mischen und in die Mitte eine Vertiefung drücken. Die frische Hefe in eine kleine Schüssel bröseln und in 5 EL lauwarmem Wasser unter Rühren lösen.


Leckere Grillbeilagen sorgen für Abwechslung, hier ein paar Anregungen. Brot (z.B. Brotfladen mit Gemüsefüllung, Ciabatta, Kräuterbaguette, Steckerlbrot, Toastbrot, Weissbrot) Couscous, Reis Datteln in Speck gewickelt (eventuell mit Mandelkern) Gemüsespieße und gegriltte Gemüsescheiben (z.B. mit Auberginen, Champignons, Cocktailtomaten, Mais, Mozarella, Oliven, Paprika, Zucchini, Zwiebeln, etc.) Zu gegrilltem Gemüse oder allgemein zum Dippen passen Quark (mit Kräutern oder ohne), türkischer Yoghurt, Tzatziki, Sour Cream, etc. Gewürze (z.B. Basilikum, Grillgewürz, Knoblauch, Kräutersalz, Olivenöl, Oregano, Sesam, Zwiebel, etc.


Sommernächte, Lagerfeuer und Steckerlbrot :-) 1000 g Weizenmehl 1 Würfel Hefe 50 g Butter 60 g Zucker 50 ml Milch, lauwarm 3 Tl. Salz Holzstäbe Das Mehl in eine große Schüssel sieben. In die Mitte eine Mulde drücken, die Hefe hinein bröckeln, 1 TL Zucker zugeben und mit einer Gabel in der Mitte verrühren. Auf den Rand die Butter in kleinen Stücken verteilen. Ein Tuch darüberdecken und an einem warmen Ort ca.

Enable syntax highlighting for Nano on Debian or Ubuntu

Nano is a simple editor for editing files in a terminal. It’s limited functionality makes it my personal favorite for quickly editing configuration files. To enable syntax highlighting, which is disabled by default, run the following commands: mkdir ~/.nano wget "" --quiet -O - | while read prefix; do wget "$prefix.nanorc" --quiet -O ~/.nano/$prefix.nanorc; done wget "" -O ~/.nanorc Nano will now highlight the syntax of files with a known file extension such as .

How to create thumbnails of WebM videos using Libav and the avconv tool

I’m using Debian. First we need to install the libav-tools. Open a terminal and type in aptitude install libav-tools. Now open the Libav documentation. At first sight it looks like a huge pile of command line options with little to no meaning at all. If you copy the site’s content over to a Word document, you’ll end up with 183 pages. Don’t waste your time reading all of it. Just scan and skim and then move on to try-and-error.

How to install Subclipse 1.8.x in Eclipse Luna

In Eclipse, open Help and click on Install new software… Work with the following URL: The following features must be installed: Subclipse: Main feature, includes the Subclipse core and UI plugins Subversion Client Adapter: The Subversion API wrapper that Subclipse uses to talk to Subversion The CollabNet Merge Client is not technically required, but recommended One or both of the following Subversion Client API providers must be installed: JavaHL - this is recommended as it is the API provided as part of Subversion itself.