Seite wählen

NETWAYS Blog

Weekly snap: Twitter, Personas, Teltonika and fallacies

weekly snapAugust 17-21 mixed modems with distributed computing, Twitter and Nmap for a good blog blend.
Julian kicked off with a reminder to heed the 8 Fallacies of Distributed Computing, while we answered some FAQs on Nmap in automatically generating Nagios configurations.
On cue, Bernd rolled on with his Twitter Development series and explained the workings of Twitter ‘replies’ and ‘mentions’ as well as the many ‘tweet’ search capabilities. Just for fun, he tipped off MIT’s uncanny natural language processing site – Personas, for the online vain to view their internet portrait.
Hardware man Martin announced his successor to the soon-to-be discontinued Falcom Samba 55 USB GSM Modem: the quad-band Teltonika Modem USB/G10. Besides heralding its features, he promised test results for it with AKCP securityProbe and Intellipool Network Monitor in the coming weeks and its availability from the end of September on our online hardware shop. Stay tuned!

Twitter Development – Replies und Mentions

twitter-tUm mit anderen Benutzern und deren Tweets zu interagieren gibt es bei Twitter so genannte Replies bzw. Mentions. Der Begriff Mention ist seit März 2009 in Gebrauch. Twitter reagierte auf die Tatsache, dass häufig mehr als ein Benutzer pro Nachricht angesprochen wurde, z.B. sitze im Zug mit @BenutzerA und @BenutzerB. Verbunden damit ist der Hinweis auf den anderen Benutzer somit auch nicht mehr am Anfang der Nachricht und erfordert das Parsing der ganzen Mitteilung.
Für Nutzer besteht der Vorteil von Mentions darin, auch die Nachrichten zu verfolgen, die nicht ausschließlich an sie gerichtet sind aber inhaltlich beziehen. Da die Ermittlung in der API quasi fertig ist, kombiniere ich in folgendem Beispiel zwei API-Calls um die ermittelte Tweets mit Nutzer- und Profilinformationen anzureichern.
[code lang=“java“]package org.netways.api.twitter;
import java.util.List;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
public class TwitterFunctions {
Twitter twitter;
public TwitterFunctions(String user, String password) {
twitter = new Twitter(user, password);
}
public List getMentions() throws TwitterException {
List mentions = twitter.getMentions();
return mentions;
}
public Status getStatus(long id) throws TwitterException {
Status status = twitter.showStatus(id);
return status;
}
}[/code]
Mit den ermittelten Mentions suchen wir danach die Ursprungsnachricht:
[code lang=“java“]package org.netways.api.twitter;
import java.util.Iterator;
import java.util.List;
import twitter4j.Status;
import twitter4j.TwitterException;
import twitter4j.User;
public class TwitterApi {
/**
* @param args
*/
public static void main(String[] args) {
try {
TwitterFunctions tf = new TwitterFunctions("netways", "password");
Status status;
User user;
List statusList = tf.getMentions();
Iterator it = statusList.iterator();
while(it.hasNext()) {
status = it.next();
user = status.getUser();
System.out.println("Sender: " + user.getName());
System.out.println("Screen: " + user.getScreenName());
System.out.println("Location: " + user.getLocation());
System.out.println("Message: " + status.getInReplyToStatusId());
try {
System.out.println("Original: " + tf.getStatus(status.getInReplyToStatusId()).getText());
} catch(TwitterException te) {
System.err.println(te.toString());
}
System.out.println("Text: " + status.getText() + "\n");
}
} catch (Exception e) {
System.err.println(e.toString());
}
}
}[/code]
Output der Konsole:

Sender: Sebastian Duschinger
Screen: jackhuaberbauer
Location: Nürnberg / Nuremberg / Bavaria
Message: 2440420942
Original: Treten Sie ein und schauen Sie sich ruhig um: 
Text: @netways nice office ;)
........

Durch die Kombination der verschiedenen API-Calls und das durchgängige ID-System für Nachrichten und Personen, können Mentions zu einem Post ermittelt werden oder einfach auch das Antwortverhalten anderer Benutzer auf eigene Tweets untersucht werden.
Der nächste Blogpost widmet sich der Suche von Tweets.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Weekly snap: Twitter to Ice T and Mumble to FrOSCon

weekly snap
August 10-14 had grassroots IT in the limelight with Christian D tipping off our participation at FrOSCon 2009, where we will be exhibiting NETWAYSGrapherV2 in open source spirit.
In suit, Stefan introduced his new voice chat hailing from the gamer community, known as Mumble. Swearing by its better latency, speech quality and connection to disparate locations, he offered tips for installation and transition from the old Teamspeak.
Bernd moved on with his Twitter Development series, looking at public and private timelines of status updates and Twitter’s transmission and receipt of messages.
Julian added a Nagios twist, with his explanation on how to link Nagios in 30 seconds to send alerts via Twitter. Alongside reiterating the importance of using multiple alert methods, he followed up last month’s hard disk formatting post with an alternative method courtesy of rapper Ice-T. We recommend it for data erasure with stress release.

Twitter Development – Senden und Empfangen

twitter-tTwitter ist eigentlich als Broadcast-Medium aufgebaut, was erstmal keine Erstellung von direkten Nachrichten an Benutzer vorsieht. Das Versenden von direkten Nachrichten ist jedoch an Benutzer möglich, die einem selbst folgen. Durch das aktive Folgen eines Benutzers als Vorraussetzung für den Nachrichtenversand wird das Spamen somit aktiv verhindert.
Aktuell besteht lediglich die Möglichkeit durch „wahlloses“ Folgen von Benutzern und Hinweisen auf eigene Produkte und Dienstleistungen im Profil und Meldungen auf sich aufmerksam zu machen. Aus meiner Sicht ist dieses Grundkonzept, abgesehen von ein paar negativen Beispielen, Grund für die problemlose Nutzung des Dienstes, der ansonsten durch Spam, Werbung und andersartige Zwangsnachrichten schnell unbenutzbar wäre.
Nun zum Versenden und Empfangen von Nachrichten:
[code lang=“java“]package org.netways.api.twitter;
import java.util.List;
import twitter4j.DirectMessage;
import twitter4j.Twitter;
import twitter4j.TwitterException;
public class TwitterFunctions {
Twitter twitter;
public TwitterFunctions(String user, String password) {
twitter = new Twitter(user, password);
}
public void sendMessage(String user, String message) throws TwitterException {
twitter.sendDirectMessage(user, message);
}
public List receiveMessages() throws TwitterException {
List messages = twitter.getDirectMessages();
return messages;
}
}[/code]
Sollte der String beim Versenden die maximale Größe von 140 Zeichen überschreiten, so wird der Rest abgeschnitten.
[code lang=“java“]package org.netways.api.twitter;
public class TwitterApi {
/**
* @param args
*/
public static void main(String[] args) {
try {
TwitterFunctions tf = new TwitterFunctions("netways", "password");
tf.sendMessage("netways", "Testmessage for API Blog-Series");
} catch (Exception e) {
System.err.println(e.toString());
}
}
}[/code]
Folgender Snip ermöglicht die Anzeige aller vorhandenen Messages:
[code lang=“java“]package org.netways.api.twitter;
import java.util.Iterator;
import java.util.List;
import twitter4j.DirectMessage;
public class TwitterApi {
/**
* @param args
*/
public static void main(String[] args) {
try {
TwitterFunctions tf = new TwitterFunctions("netways", "password");
DirectMessage dm;
List messages = tf.receiveMessages();
Iterator it = messages.iterator();
while(it.hasNext()) {
dm = it.next();
System.out.println("Sender " + dm.getSenderId());
System.out.println("Text " + dm.getText() + "\n");
}
} catch (Exception e) {
System.err.println(e.toString());
}
}
}[/code]
Output der Konsole:

Sender 17650139
Text Testmessage for API Blog-Series
........

Im nächsten Blogpost geht es um Replies, Mentions und was genau da eigentlich der Unterschied ist.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Benachrichtigungen per Twitter versenden

Heute machen wir es uns mal richtig leicht und binden Twitter als Benachrichtigungslösung für Nagios ein. Die Einrichtung dauert geschätzte 30 Sekunden, denn man muss lediglich die folgenden Notification Commands in Nagios einbinden. Nur falls man Curl noch nicht auf dem System hat, müsste man das noch schnell installieren. Unter Debian reicht dazu ein „aptitude install curl“ und fertig.
[code lang=“bash“]define command {
command_name notify-by-twitter
command_line /usr/bin/curl –basic –user "user:password" –data-ascii "status=[Nagios] $NOTIFICATIONTYPE$ $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" http://twitter.com/statuses/update.json
}
define command {
command_name host-notify-by-twitter
command_line /usr/bin/curl –basic –user "user:password" –data-ascii "status=[Nagios] $HOSTSTATE$ alert for $HOSTNAME$" http://twitter.com/statuses/update.json
}[/code]
Das wars eigentlich schon. Wenn Nagios nun eine Benachrichtigung per Twitter schickt, sieht das im Webinterface ungefähr so aus:
twitter
Auch wenn Twitter als Benachrichtigungsweg auf den ersten Blick eher wie eine Spielerei aussieht, kann man diesen Weg doch sinnvoll einsetzen, denn Twitter bietet gegenüber den anderen Benachrichtigungskanälen einige Vorteile. Da es inzwischen für so gut wie alle Betriebssysteme, Plattformen und auch Smartphones Twitter Clients gibt, kann man es fast als plattformübergreifend bezeichnen. Es ist kostenlos und man kann in den Account Einstellungen angeben, dass nicht jederman die Updates sehen kann. Durch den Follow-Mechanismus wird es möglich, dass sich einzelne Mitarbeiter selbst in die Benachrichtigungen einklinken können, ohne dass man am Server etwas konfigurieren muss.
Problematisch bleibt natürlich die Zuverlässigkeit. Gerade bei großen Ereignissen hatte Twitter in den letzten Jahren immer mal wieder mit kürzeren und längeren Ausfällen zu kämpfen. In Kombination mit einem anderen Übertragungsweg, der wichtige und dringende Meldungen sicher übermittelt, kann Twitter aber schon Sinn machen.
Für alle die Twitter sowieso schon nutzen, an dieser Stelle nochmal der Hinweis, dass NETWAYS auch twittert. Unter http://twitter.com/netways können Sie unsere Tweets (nein, nicht die Nagios Fehlermeldungen) abonieren und immer auf dem laufenden bleiben.

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.