Maschinenraum goes swopspot

Mai 29th, 2012 § 0 comments § permalink

Eines unserer aktuellen projekte im maschinenraum ist swopspot.

Auf swopspot, kann man alles gegen alles tauschen. Gartenarbeit gegen einen Schal, alte Platten oder CDs gegen neue Bücher, Handgemachtes gegen Ungebrauchtes etc. Man packt einfach den Kram, den man selber nicht mehr braucht auf sein Profil und wartet bis man ein Angebot für den Gegenstand von einem anderen Nutzer bekommt. Oder man unterbreitet anderen Angebote mit dem eigenen Zeug.

Ziel ist es vor allem den nachbarschaftlichen Tauschhandel zu unterstützen, dabei spart man Verpackung und Versand, denn zum Austausch der Ware trifft man sich im Idealfall einfach auf einen Kaffee.

Wir sind jetzt in der Betaphase. Das heißt, dass alles soweit funktioniert. Allerdings ist die Bedienung an manchen stellen noch etwas schwierig und es fehlen noch etliche Funktionen und Erläuterungen. Da wir wissen wollen, was wir noch verbessern können, brauchen wir unbedingt Leute die mit testen wollen.

Momentan haben wir vor allem in Weimar aktive Nutzer. Das soll sich ändern. Schauts euch einfach mal an und wenn euch gefällt, sagt euren Freunden und Verwandten Bescheid. Je mehr Leute mitmachen, desto interessanter wirds.

www.swopspot.net

Wenn ihr Kommentare, Ideen oder Anregungen habt, schreibt mir einfach an info@swopspot.net

let’s do it right

Februar 23rd, 2012 § 0 comments § permalink

Wir haben auf- und umgeraeumt. Dazu gekommen ist ein Tisch mit 2 Arbeitsplaetzen. Super zum Basteln und Loeten. Der Makerbot hat auf dem neuen Tisch auch einen Platz gefunden. Gewichen ist dafuer eins der beiden Sofas... genug gechillt. Auf dem Whiteboard gibts ne Todo Liste mit Ranking der einzelnen Punkte, tragt ruhig was drauf ein.

Wir laden auch nochmal ausdruecklich alle ein, die gern mal ein wenig mit Technik experimentieren wollen. Wir haben Loetzeug und einige Bauteile. Werkzeug ist auch vorhanden. Es gibt jede Menge alter Hardware zum verbasteln und einen 3D-Drucker. Auch fuer Softwareexperimente steht bei uns einiges bereit. Insgesamt 4 Laufende Maschinen mit  verschiedenen Linux Distros und einem Windowssystem wollen genutzt werden.

Wenn das alles gut klingt, ihr aber keine Ahnung habt, wovon ich rede, kommt ruhig vorbei, wir teilen unser Wissen gerne. Wenn ihr Ahnung habt, kommt rum und gebt uns davon was ab.

mr_door_status

Dezember 8th, 2011 § 3 comments § 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();
    }
  }
}

Retro-Party

März 23rd, 2011 § 1 comment § 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

WLAN-BUW vpn on arch linux

November 18th, 2010 § 4 comments § 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.