roothausen

  • Impressum
  • Administration
  • Kontaktformular
  • Jabber
  • Tagcloud
  • Twitter
  • Soup
  • Github

Entries tagged as jabber

Entries tagged as jabber

Related tags

android apple code computer google gui ios iphone java linux misc mobile opensource presentation programming rant screenshot sdk shortys software tail -f /var/log/life video web webdesign xml zeitgeist blog blogging contentmanagement documentation feedreader html http markup networking realtime rest rss ruby scala server stuff swing tool websockets webwide windows xslt bad world browser captcha changes cheatsheet comic css datamining dns eigenfaces encryption firefox fun hardware howto im javascript life lighttpd linux&unix mail media murphy newsbeuter picture podcast politics privacy psi regular expression s9y security spam subnetting test truecrypt unix wordpress 42 coffee conference dslr free nikon photography science tv codec perl vp8

Medianight 2009

21:05

Wednesday, July 1. 2009

Medianight

Morgen, am Donnerstag den 02.07.2009 wird an meiner Hochschule wieder die Medianight stattfinden. Hier werden die Studenten ihre Projekte des letzten Semesters praesentieren. Ich werde dort unter anderem mit meinem eigenen Projekt am Start sein.

YAXIM

Wie schon zuvor gesagt, werde ich zusammen mit Chris unser Semesterprojekt, das den Namen YAXIM traegt, vorstellen. YAXIM steht fuer "Yet Another XMPP Instant Messenger" und ist ein Jabberclient fuer die Android-Plattform. Als kleinen Vorgeschmack folgen hier noch unsere Folien und das Video der heutigen Praesentation:


Posted by Sven Pfleiderer in computer | Comments (5) | Trackback (1)
Defined tags for this entry: android, code, computer, jabber, java, linux, opensource, presentation, programming, software, video

Smack: XMPP fuer java

23:08

Saturday, April 18. 2009

Da ich gerade an einem Projekt arbeite, dass XMPP auf Java verwendet, hab ich mir zu Testzwecken eine Klasse gebaut, die Smack verwendet und ein paar Moeglichkeiten der API nutzt. Es ist unter anderem moeglich sich zu verbinden, das Roster auszulesen und empfangene Nachrichten anzuzeigen. Da mir bei der offiziellen Dokumentation Beispiele gefehlt haben, die man auf einen Rutsch kopieren und bearbeiten kann, moechte ich hier ein wirklich lauffaehiges Beispiel veroeffentlichen. Ich hoffe, damit kann jemand was anfangen:


import java.util.Collection;

import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.Roster;
import org.jivesoftware.smack.RosterEntry;
import org.jivesoftware.smack.RosterListener;
import org.jivesoftware.smack.SASLAuthentication;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.filter.PacketTypeFilter;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Packet;
import org.jivesoftware.smack.packet.Presence;

public class SmackTester {

        private XMPPConnection conn;
        private String username;
        private String password;
        private String server;

        public SmackTester() {
                // debug option
                XMPPConnection.DEBUG_ENABLED = false;

                username = "einuser";
                password = "einpasswort!";
                server = "jabber.foo.bar";

                makeConn();
                doConnect();
                makeRoster();
                chatAction();

                // wait ... (I know that's pretty ugly)
       
                while (conn.isConnected()) {
                        try {
                                Thread.sleep(Long.MAX_VALUE);
                        } catch (InterruptedException e) {
                                e.printStackTrace();
                        }
                }
        }

        // nothing interesting here
        public static void main(String[] args) {
                new SmackTester();
        }

        private void doConnect() {
                // let's connect
                try {
                        conn.connect();
                        conn.login(username, password, "someRessource");
                } catch (XMPPException e) {
                        System.err.println("Login failed!");
                        e.printStackTrace();
                        System.exit(1);
                }
                System.out.println("Login succesful!");
        }

        private void makeConn() {
                ConnectionConfiguration config = new ConnectionConfiguration(server,
                                5222);
                // pass some connection options
                config.setSASLAuthenticationEnabled(true);
                SASLAuthentication.supportSASLMechanism("PLAIN", 0);

                conn = new XMPPConnection(config);
        }

        private Roster makeRoster() {
                Roster roster = conn.getRoster();
                Collection<RosterEntry> entries = roster.getEntries();

                // print out all entries in roster
                System.out.println("---------- entries in roster -----------");
                for (RosterEntry entry : entries) {
                        System.out.println(entry);
                }
                System.out.println("---------- entries in roster -----------");

                // react to changes in roster
                roster.addRosterListener(new RosterListener() {
                        // called methods ...
                        public void entriesDeleted(Collection<String> addresses) {
                                // do stuff
                        }

                        public void entriesUpdated(Collection<String> addresses) {
                                // do stuff
                        }

                        public void presenceChanged(Presence presence) {
                                System.out.println("Presence changed: " + presence.getFrom()
                                                + " " + presence);
                        }

                        public void entriesAdded(Collection<String> arg0) {
                                // do stuff
                        }
                });

                return roster;

        }

        private void chatAction() {
                PacketTypeFilter filter = new PacketTypeFilter(Message.class);
                PacketListener myListener = new PacketListener() {

                        public void processPacket(Packet arg0) {
                                if (arg0 instanceof Message) {
                                        Message msg = (Message) arg0;
                                        System.out.println("Message: " + msg.getFrom() + " "
                                                        + msg.getBody());
                                }
                        }

                };

                // Register the listener.
                conn.addPacketListener(myListener, filter);
        }

        private void doDisconnect() {
                conn.disconnect();
                System.out.println("Disconnected");
        }

}
 
Posted by Sven Pfleiderer in computer | Comments (6) | Trackbacks (0)
Defined tags for this entry: computer, im, jabber, java, opensource, programming, software

PSI und das Thinklight

20:26

Wednesday, July 16. 2008

Schon lange moechte ich das Thinklight meines T60 zur Ankuendigung neuer Nachrichten benutzen. Leider gab es hierfuer bisher nur Plugins fuer Pidgin oder Kopete und die wollte ich beide nicht benutzen. Fuer meinen bevorzugten Jabberclient, PSI, gab es bisher kein solches Plugin. Also war es Zeit fuer mich selbst etwas passendes zu basteln. Herausgekommen ist dabei ein Shellscript und ein dreckiger Hack in den Einstellungen von PSI.

Hier kommt nun zu erst mal das Shellscript, das ich unter /usr/local/bin/thinkblink abgelegt habe. Es laesst das Licht 4 mal kurz aufblinken.


#!/bin/bash

for ((a=1; a <= 4 ; a++))
do
   echo "on" > /proc/acpi/ibm/light
   sleep 0.4
   echo "off" > /proc/acpi/ibm/light
   sleep 0.4
done
 

Damit man das Licht auch als User ansprechen kann, ist es notwendig dem entsprechenden /proc-Device die notwendigen Zugriffsrechte zu verpassen. Hierzu habe ich folgenden Eintrag in meiner /etc/rc.local eingerichtet:


chmod 666 /proc/acpi/ibm/light
 

Mit diesen beiden Teilen kann man duch die eingabe von /usr/local/bin/thinkblink das Thinklight schon als User blinken lassen. Was nun noch fehlt, ist die Anbindung in PSI. Ich habe hierzu das Audio-System von PSI missbraucht um das Script zu starten. Hier sind mal die Einstellungen:

Posted by Sven Pfleiderer in computer, misc | Comment (1) | Trackbacks (0)
Defined tags for this entry: computer, howto, im, jabber, misc
(Page 1 of 1, totaling 3 entries)

JavaScript String .fromCharCode

Calendar

« May '13 »
Mo Tu We Th Fr Sa Su
    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 28 29 30 31    

Quicksearch

Kategorien

  • XML computer
  • XML misc
  • XML web
  • XML zeitgeist


All categories

Archiv

  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • Recent...
  • Older...

Feeds

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Comments

Links

Retinacast
Shackspace
Yaxim
Radio Tux
Kais Blog
Blumen Pfleiderer
Alk
paxos
filzo
Marc Seeger
polzifer
Moritz Haarmann

Tags

android bad world blog blogging browser changes code comic computer contentmanagement encryption feedreader firefox free fun google gui hardware howto html im jabber java life lighttpd linux linux&unix markup media misc mobile murphy networking newsbeuter opensource picture politics presentation privacy programming regular expression rss ruby s9y scala screenshot sdk security server shortys software stuff tail -f /var/log/life test tool tv unix video web webdesign webwide windows xml zeitgeist

Lizenz

Creative Commons License - Some Rights Reserved