Dezember 8th, 2011 § § permalink
Schloss, Schalter, Arduino, Ethernet-Shield, Twitter
www.twitter.com/mr_door_status
http://mrdoor.paddd.de/
CODE:
#if defined(ARDUINO) && ARDUINO > 18
#include <SPI.h>
#endif
#include <Ethernet.h>
#include <EthernetDNS.h>
#include <EthernetDHCP.h>
#include <Twitter.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
const char* ip_to_str(const uint8_t*);
int state = 1; //door will be open at boot!!!
int sensorValue = 0;
Twitter twitter("your-token-here");
void setup() {
Serial.begin(9600);
network();
}
void network() {
Serial.println("attempting to obtain DHCP lease...");
EthernetDHCP.begin(mac);
const byte* ipAddr = EthernetDHCP.ipAddress();
const byte* gatewayAddr = EthernetDHCP.gatewayIpAddress();
const byte* dnsAddr = EthernetDHCP.dnsIpAddress();
Serial.println("DHCP lease has been obtained.");
Serial.print("IP address is ");
Serial.println(ip_to_str(ipAddr));
Serial.print("gateway IP address is ");
Serial.println(ip_to_str(gatewayAddr));
Serial.print("DNS IP address is ");
Serial.println(ip_to_str(dnsAddr));
}
// Just a utility function to nicely format an IP address.
const char* ip_to_str(const uint8_t* ipAddr) {
static char buf[16];
sprintf(buf, "%d.%d.%d.%d", ipAddr[0], ipAddr[1], ipAddr[2], ipAddr[3]);
return buf;
}
void loop() {
door_status();
EthernetDHCP.maintain();
randomSeed(millis());
}
void door_status() {
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
if(sensorValue>915 && state==1){
delay(3000);
int sensorValue = analogRead(A0);
if(sensorValue>915 && state==1){
delay(3000);
int sensorValue = analogRead(A0);
if(sensorValue>915 && state==1){
state=0;
tweet(state);
}
}
}
if(sensorValue<916 && state==0) {
delay(3000);
int sensorValue = analogRead(A0);
if(sensorValue<916 && state==0) {
delay(3000);
int sensorValue = analogRead(A0);
if(sensorValue<916 && state==0) {
state=1;
tweet(state);
}
}
}
//update margin
delay(10000);
}
void tweet(int state) {
if(state==1) {
int rand = random(5000);
char txt [120];
sprintf(txt, "der maschinenraum ist offen No. %d", state);
Serial.println("connecting to twitter...");
if (twitter.post(txt)) {
int status = twitter.wait();
if (status == 200) {
Serial.println("status tweet OPEN sent.");
} else {
Serial.print("tweet failed : code ");
Serial.println(status);
}
} else {
Serial.println("connection to twitter failed.");
setup();
}
}
if(state==0) {
int rand = random(5000);
char txt [120];
sprintf(txt, "der maschinenraum ist geschlossen No. %d", state);
Serial.println("connecting to twitter...");
if (twitter.post(txt)) {
int status = twitter.wait();
if (status == 200) {
Serial.println("status tweet CLOSED sent.");
} else {
Serial.print("tweet failed : code ");
Serial.println(status);
}
} else {
Serial.println("connection to twitter failed.");
setup();
}
}
}
März 23rd, 2011 § § permalink
in der M18 (Marienstraße 18 Weimar) am 2.4.11 21.00 Uhr.
Die Retro-Party wird eine Mischung aus 8-/16-Bit-Zockerei und Chiptunes-Livemusik.
Mit dabei:
– Timescratch (www.myspace.com/timescratchinyourhead)
– Bikecore (www.soundcloud.com/bikecore)
– Mister Triac (www.myspace.com/mistertriac)
Unter anderem stehen folgende Konsolen und Rechner bereit, um ausgiebig bespielt zu werden: NES, C64, KC85, Atari 2600, Master System, Atari 7800, MSX(2), Interton VC4000, MB Vectrex, SNES, Mega Drive, Amiga und einiges mehr.
Zu trinken gibt es SpaßMate!
be there or be square
Januar 22nd, 2011 § § permalink
youtube-dl-agent laedt eine liste von youtube-videos mit youtube-dl runter, konvertiert sie mit ffmpeg und fuegt sie mit mencoder zusammen. gedacht fuer splited youtube-videos.
usage:
$ youtube-dl-agent http://www.youtube.com/watch?v=Qpwj5k0zYDs \
http://www.youtube.com/watch?v=XCyXY4jLxo8 \
http://www.youtube.com/watch?v=BwJUV8vvGyA \
http://www.youtube.com/watch?v=xQuyiMravE4 \
--output="Weimar nach der Wende.avi"
#!/bin/bash
case "$1" in
"" )
exit $E_PARAM ;
;;
* )
TEMPPATH=$PWD"/youtube-dl-agent.swap/";
mkdir $TEMPPATH;
cd $TEMPPATH;
for i in "$@"
do
case "$i" in
http://* )
URL=`echo $i`;
echo " * * * "$URL" * * *";
###
# DOWNLOAD FLV WITH YOUTUBE-DL
/usr/local/bin/youtube-dl -t $URL
###
# FIND DOWNLOADED FLV FILE BY ID
ID=`echo $URL | /bin/sed -r 's/.*v=(.*)$/\1/'`;
# echo $ID;
IDS=$IDS$ID" ";
FLV=`/usr/bin/find $PWD"/" -maxdepth 1 -name "*$ID.flv"`;
# echo $FLV;
FLVS=$FLVS$FLV" ";
###
# COVERT FLV TO AVI
/usr/bin/ffmpeg -i $FLV -vcodec copy \
-acodec libmp3lame -ab 128k $FLV".avi"
AVI=`/usr/bin/find $PWD"/" -maxdepth 1 \
-name "*$ID*.avi"`;
# echo $AVI
AVIS=$AVIS$AVI" ";
;;
# STRINGS WITH WHITESPACES HAVE TO BE
# ENCAPSULATE WITH DOUBLE QUOTES
--output=* )
OUTPUT=`echo $i | sed 's/--output=//'`;
;;
* )
exit $E_PARAM ;
;;
esac
done
;;
esac
###
# MERGE SPLIT AVIS
/usr/bin/mencoder -ovc copy -oac copy $AVIS -o $OUTPUT
###
# MOVE FROM TEMP-DIR TO $USERS PWD
/bin/mv -v $OUTPUT ..
###
# CLEAN UP
/bin/rm -rv $TEMPPATH
exit 0
Januar 10th, 2011 § § permalink
da hat mir ein jemand mit dem gemeinschaftlichen root die daten manipuliert und mich mir selber den holzschuh ins getriebe werfen lassen.
ed@mediathek:~$ cat manipulatevote
#!/bin/bash
while true;
do curl
-F "chosenanswer=4" \
-F "poll_id=355599" \
-A 'Mozilla/4.0'
http://www.snappoll.com/act_vote.php;
sleep 2; done
habe ICH sicherlich nicht so abgespeichert! als das script zwischendurch mal einen fehler warf und ich es neu starten musste, haette ich eigentlich stutzig werden muesen. niemanden kann man hier mehr trauen!
WIR WERDEN ALLE STERBEN!!!!!11111 LOL?!
November 18th, 2010 § § permalink
Habs endlich geschafft auf meinem arch linux den vpn zu konfigurieren und will euch nicht vorenthalten wie es geht.
Zu allererst brauchen wir den vpnc.
sudo pacman -S vpnc
Dann gehts in die config von vpnc. Die liegt in /etc/vpnc/default.conf
# example vpnc configuration file
# see vpnc --long-help for details
#Interface name tun0
#IKE DH Group dh2
#Perfect Forward Secrecy nopfs
# You may replace this script with something better
#Script /etc/vpnc/vpnc-script
# Enable this option for NAT traversal
#UDP Encapsulate
IPSec gateway 172.18.254.252
IPSec ID GROUP-WLAN
IPSec secret v2oeff
Xauth username DEINNUTZER
Xauth password DEINPW
Da in der config dein vpn passwort plaintext liegt, kannst du zumindest mit chmod die rechte aendern, sodass nur root das file lesen kann.
chmod 700 /etc/vpnc/default.conf
Jetzt koennt ihr euch ins uni wlan einloggen und vpnc ausfuehren.
sudo vpnc
Weil ich ein fauler mensch bin und auf networkmanager stehe... gibs dazu auch noch was auf die augen:
Wicd haelt hierfuer die moeglichkeit bereit scripts fuer jede einzelne verbindung auszufuehren. Es gibt pre- und post connection scripts und pre- und post disconnection scripts. Weil wir nach dem connecten zum uni wlan vpnc ausfuehren wollen erstellst du dir /etc/wicd/scripts/postconnect/uniwlan.sh mit folgenden inhalt:
#!/bin/bash
script="$(basename "$0")"
script_name="${script/.sh/}"
echo "Running ${script}" >"/var/log/wicd/${script_name}.log"
exec 2>>"/var/log/wicd/${script_name}.log"
exec 1>&2
connection_type="$1"
echo "Connection type: ${connection_type}"
if [ "${connection_type}" == "wired" ]; then
profile="$3"
echo "Profile: ${profile}"
elif [ "${connection_type}" == "wireless" ]; then
essid="$2"
bssid="$3"
echo "ESSID: ${essid}"
echo "BSSID: ${bssid}"
else
echo "Unknown connection type: ${connection_type}" >&2
exit
fi
if [ "${essid}" == "WLAN-BUW" ]; then
killall vpnc
vpnc
else
exit
fi
Das killall vpnc ist nur ein reset, falls da noch reste aus ner andern verbindung laufen... das else exit ist eventuell auch redundant... aber sicher ist sicher.
Wenn ihr aus dem uni wlan zu einem anderen netzwerk wechselt sollte natuerlich der vpnc wieder gekillt werden. Deshalb gibts /etc/wicd/scripts/postdisconnect/uniwlan.sh
#!/bin/bash
script="$(basename "$0")"
script_name="${script/.sh/}"
echo "Running ${script}" >"/var/log/wicd/${script_name}.log"
exec 2>>"/var/log/wicd/${script_name}.log"
exec 1>&2
connection_type="$1"
echo "Connection type: ${connection_type}"
if [ "${connection_type}" == "wired" ]; then
profile="$3"
echo "Profile: ${profile}"
elif [ "${connection_type}" == "wireless" ]; then
essid="$2"
bssid="$3"
echo "ESSID: ${essid}"
echo "BSSID: ${bssid}"
else
echo "Unknown connection type: ${connection_type}" >&2
exit
fi
killall vpnc
fi
There u have it... vergesst nicht die wicd scripts ausfuehrbar zu machen.
Ergebniss: Verbinden zum uniwlan incl. vpn mit einem click... bzw bei auto-connect total automatisiert und es ist nicht noetig dein pw einzutippen.