S{o}cial
Gizmeo.eu RSS-Feed c1 auf LinkedIn c1 auf Google+ c1ph4 bei YouTube Gizmeo.eu als Android-App
Komm{e}ntare
  • Borno: interessant! danke
  • Abbey: Vielen Dank Probiere es jetzt mal aus war früher mal im darknet aber hatte absolut keine Ahnung mehr wie es...
  • c1ph4: @Unknownuser: Wo? Ist deine Version die neueste aus dem FDroid-Repository? Sehe hier keine. Versuch‘ mal...
  • c1ph4: @R2D2:Ist eine spezielle Firefox-Version für Orbot. Meine Präferenz im Tutorial hier war der übliche Firefox...
  • Unknownuser: Was ist die weltkugel in orbot?
Archi{v}

Sie sind momentan im Archiv der Kategorie Linux.

Wer{b}ung
Cr{e}dits
Created, Made & Maintained by AETHYX.EU

Archiv für die Kategorie „Linux“

howto: eigenes privates ethereum-netzwerk

Hinter Bitcoin ist Ethereum die Kryptowährung mit dem höchsten Marktwert. Wenngleich wir heute noch auf _die_ Killer-App warten, das Meiste sind doch nur Coin-Börsen & Wallets, so ist Ethereum in der Hinsicht vielversprechend, als dass die Währung als „turing complete“ gilt, man kann also im Gegensatz zu Bitcoin dafür und damit „richtig programmieren“.

Mit der folgenden Anleitung bauen wir uns heute ein eigenes privates Ethereum-Netzwerk!

Ethereum Logo Portrait Black X-Small

WARNUNG: die Durchführung des Tutorials geschieht auf eigene Gefahr. Ich übernehme keinerlei Garantie dass irgendwas funktioniert! Auch solltet ihr darauf achten, dass ihr eure eigenen Ethereum von diesen erstellten Ethereum getrennt aufbewahrt. Das Tutorial soll dazu dienen, a) für Ethereum zu programmieren und richtet sich an Entwickler, b) einen einfachen „smart contract“ aufzusetzen, sowie c) das wohl Wichtigste, zu verstehen, wie Ethereum funktioniert.

Los geht’s! 🙂

1. Vorbereitungen

Ihr braucht Zugang zu einem eigenen Server-Bereich und den geth („Go Ethereum Client“). In dieser Anleitung nehmen wir mal an, ihr betreibt einen Ubuntu-Server. Hier findet ihr die Anleitung für die geth-Installation unter Ubuntu: geth installieren. Ferner solltet ihr um minen zu können mindestens 2GB RAM bereitstellen.

Das private Netzwerk wird „gizmeodoteu“ genannt. Es ist aufrufbar unter der Fake-IP-Adresse 101.102.103.104.

Öffnet nun ein Konsolenfenster, loggt euch über SSH in Ubuntu ein und erstellt ein Arbeitsverzeichnis:

ssh root@101.102.103.104
mkdir gizmeodoteu
cd gizmeodoteu
mkdir data
mkdir source

2. Generierung des Genesis-Blocks

Der Genesis-Block ist der allererste Block jeder Blockchain und die Parameter sind in der Datei genesis.json definiert. Die Datei speichern wir ab unter /root/gizmeodoteu/genesis.json. Hier der Inhalt der Datei:

{
"config": {
"chainId": 15,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},

"alloc" : {
"0x0000000000000000000000000000000000000001": {"balance": "111111111"},
"0x0000000000000000000000000000000000000002": {"balance": "222222222"}
},

"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x00001",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000209",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00"
}

Hierbei steht chainId=1 für das Ethereum-Hauptnetzwerk. Daher ist es wichtig eine eigene chainId für euer privates Netzwerk zu nehmen, damit euer privates Netzwerk die Blockchain nicht mit der offiziellen verwechselt.
Zum Testen und für ein allgemein besseres Verständnis, setzen wir die Schwierigkeit auf einen niedrigen Wert. Auch sollte ein einzigartiger Wert für nonce gewählt werden. Über das Feld alloc werden Accounts mit Ether (die Ethereum-Währung) vorgefüllt.

Geht nun in euer Verzeichnis, wo ihr die genesis.json abgelegt habt und initialisiert den bootnode. Das ist der Knoten, mit welchem sich euer Client mit dem privaten Netzwerk verbinden und auch mit anderen Knoten kommunizieren kann:

cd /root/gizmeodoteu/data
geth --datadir=/root/gizmeodoteu/data init /root/gizmeodoteu/genesis.json
bootnode --genkey=boot.key
bootnode --nodekey=boot.key

3. Neuen Account erstellen und Kontostand prüfen

Öffnet ein neues Konsolenfenster und wechselt über SSH auf euren virtuellen Server:

ssh root@101.102.103.104
geth attach /root/gizmeodoteu/data/geth.ipc
> eth.accounts

Natürlich gibt es noch keine Adressen von Konten. Den ersten Account eröffnen wir nun. Ersetzt „meinPW“ mit einem starken Passwort, bewahrt dieses an einem sehr sicheren Ort auf. Ethereum vergibt nicht: ohne dieses Passwort werdet ihr niemals mehr Zugang zu eurem Account haben:

> personal.newAccount("meinPW")
> web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")

Speichert eure Adresse gut ab, diese beginnt mit dem Präfix 0x. Auch gibt es noch keine Ether in diesem Account, dazu kommen wir noch. Natürlich ist das geminte Ether hier nur nützlich in eurem privaten Netzwerk.

4. Im privaten Netzwerk minen

Das Minen hier hat doppelten Zweck: Ether erzeugen um die Transaktion durch gas, eine Ethereum-Untereinheit, zu betreiben. Zudem führt das Minen eure Transaktionen in die Blockchain.

Öffnet ein neues Konsolenfenster und verbindet euch zu eurem privaten Server:

ssh root@101.102.103.104
geth --datadir=/root/gizmeodoteu/data --mine --minerthreads=1 --etherbase=0x...

Der Parameter etherbase hier spezifiziert die Zieladresse, wohin eure durch das Mining generierten Ether gesendet werden sollen. Hier steht eure Wallet-Adresse aus Schritt 3. Wenn ihr nun den Kontostand erneut checkt (siehe Schritt 3), solltet ihr eine große Zahl angezeigt bekommen. Gratulation! Ihr seid nun Ether-Milliardär!

Klar, diese generierten Ether sind nur wertvoll innerhalb eures privaten Netzwerks. Trotzdem geil! Ihr wisst nun, wie ihr für Ethereum entwickeln könnt und _das_ ist wirklich unbezahlbar.

5. Einen einfachen Vertrag kompilieren

Die offizielle Dokumentation zu Ethereum erwähnt nicht, dass das Kompilieren über solC nicht mehr via RPC möglich ist. Alle Tutorials, die darauf aufbauen, enden in einer Art Fass ohne Boden. Es gibt wohl 2 Wege Verträge zu kompilieren, es ist für das eigene Verständnis wichtig, beide mal versucht zu haben.

Als Erstes installiert ihr den Kommandozeilen-Compiler solC:

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

Öffnet nun erneut ein Konsolenfenster, verbindet euch über SSH mit eurem Server und navigiert zum Verzeichnis, wo euer Quellcode abgelegt wird:

cd /root/gizmeodoteu/source

Speichert den folgenden „Begrüssungs“-Vertrag in /root/gizmeodoteu/greeter.sol:

contract mortal {

/* Variable "owner" vom Typ address definieren */
address owner;

/* diese Funktion wird bei Initialisierung ausgeführt und setzt den Besitzer des Vertrags */
function mortal() { owner = msg.sender; }

/* Funktion, um die Investionen des Vertrags wiederherzustellen */
function kill() { if (msg.sender == owner) selfdestruct(owner); }
}

contract greeter is mortal {
/* Variable "greeting" vom Typ string definieren */
string greeting;

/* das hier wird ausgeführt, wenn der Vertrag aufgerufen wird */
function greeter(string _greeting) public {
greeting = "Hallo, Welt!";
}

/* Hauptfunktion */
function greet() constant returns (string) {
return greeting;
}
}

Jetzt kompilieren wir den Vertrag mit solC:

solc --bin --abi -o /root/gizmeodoteu/source /root/gizmeodoteu/source/greeter.sol

Das Setzen von bin und abi sagen dem Compiler, dass „Ethereum Virtual Machine (EVM)“-Bytecode und eine Datei Application Binary Inferface (ABI) erstellt werden sollen. Mit -o legt man wie üblich ein Ausgabeverzeichnis fest, welches mit der zweiten Angabe des Verzeichnisses mit einer *.sol-Datei abgeschlossen wird.

Die Kompilierung hier erzeugt zwei Dateien:

– eine EVM-Datei, erkennbar an der Endung *.bin. Diese entspricht dem Vertrags-Bytecode, der vom webbasierten Compiler generiert wird; dieser ist einfacher zu verwenden und wird weiter unten vorgestellt.

– eine ABI-Datei, erkennbar an der Endung *.abi: stellt euch das application binary interface als eine Art Vorlage für den Vertrag vor. Das erleichtert die Kommunikation von euch und anderen mit dem Vertrag, sobald er sich in der Blockchain befindet.

Öffnet beide Dateien nun mit nano oder einem anderen Texteditor eurer Wahl. Indem ihr versteht, was darin steht, werdet ihr weniger Mühe damit haben eure Verträge zu veröffentlichen und mit ihnen zu interagieren.

Alternativ dazu könnt ihr auch den Online-Compiler benutzen. Durch einfaches Copy&Paste nimmt dieser euch die Arbeit ein bisschen ab. Jedoch sind beide Methoden gleichwertig.

Kopiert dazu einfach den Text aus greeter.sol von oben in den Online-Compiler. Wartet einen Moment und klickt dann auf den Link „Contract details…“. Der Inhalt des Felds Bytecode sollte mit dem aus der Datei greeter.bin übereinstimmen. Das Selbe gilt für das Feld Interface aus der Datei greeter.abi.

6. Einen „Begrüssungs“-Vertrag in eurem privaten Netzwerk veröffentlichen

Kopiert den Inhalt des Feldes Web3 deploy in den Online-Compiler. Fügt den Inhalt in einen Texteditor eures PCs und achtet auf die hervorgehobenen Bereiche:

var _greeting = 'gizmeoDOTeu rockt!';

var browser_ballot_sol_greeterContract = web3.eth.contract([{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"inputs":[{"name":"_greeting","type":"string"}],"payable":false,"type":"constructor"}]);

var browser_ballot_sol_greeter = browser_ballot_sol_greeterContract.new(

_greeting,

{

from: web3.eth.accounts[0],

data: '0x6060604052341561000f57600080fd5b6040516103dd3803806103dd833981016040528080518201919050505b5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6040805190810160405280600d81526020017f48656c6c6f2c20576f726c642100000000000000000000000000000000000000815250600190805190602001906100b99291906100c1565b505b50610166565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061010257805160ff1916838001178555610130565b82800160010185558215610130579182015b8281111561012f578251825591602001919060010190610114565b5b50905061013d9190610141565b5090565b61016391905b8082111561015f576000816000905550600101610147565b5090565b90565b610268806101756000396000f30060606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806341c0e1b514610049578063cfae32171461005e575b600080fd5b341561005457600080fd5b61005c6100ed565b005b341561006957600080fd5b61007161017f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156100b25780820151818401525b602081019050610096565b50505050905090810190601f1680156100df5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561017c576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b610187610228565b60018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561021d5780601f106101f25761010080835404028352916020019161021d565b820191906000526020600020905b81548152906001019060200180831161020057829003601f168201915b505050505090505b90565b6020604051908101604052806000815250905600a165627a7a7230582069d50e4318daa30d3f74bb817c3b0cb732c4ec6a493eb108266c548906c8b6d70029',

gas: '1000000'

}, function (e, contract){

console.log(e, contract);

if (typeof contract.address !== 'undefined') {

console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);

}

})

Das oben abspeichern als myContract.js.

Bevor ihr fortfahrt prüfen, dass a) euer Kontostand nicht 0 ist und b) euer Account entsperrt ist. Ist der Kontostand zu niedrig oder der Account gesperrt, könnt ihr den Vertrag nicht veröffentlichen. Deshalb solltet ihr die obigen Schritte nochmals abarbeiten, um Ether zu minen und entsperrt dann euren Account wie folgt (ersetzt „meinPW“ mit eurem eigenen von oben):

Öffnet ein neues Konsolenfenster:

ssh root@101.102.103.104
geth attach /root/gizmeodoteu/data/geth.ipc
> web3.fromWei(eth.getBalance(eth.accounts[0]), "ether")
> personal.unlockAccount(eth.accounts[0], "meinPW")

Bitte nicht abschalten, denn es wird wichtig: auch hier gibt es kein Update der Dokumentation zu Ethereum, daher gibt es Verwirrungen, wie man Verträge kompiliert. Beachtet, dass die Funktion web3.eth.contract() ein Argument braucht. Das ist das selbe, wie die Datei greeter.abi, die wir mit dem solC erstellt haben. Das Feld data ist gleichbedeutend mit dem EVM-Bytecode der Datei greeter.bin. Der einzige Unterschied ist wieder das Präfix 0x.

Jetzt wird der Vertrag öffentlich gemacht:

loadScript(myContract.js)

Die Ausgabe sollte ungefähr so aussehen:

Contract mined! address: 0x4000737c8bd7bbe3dee190b6342ba1245f5452d1 transactionHash: 0x0a4c798467f9b40f2c4ec766657d0ec07c324659ea76fcc9c8ad28fc0a192319

Glückwunsch! Euer Vertrag „lebt“ und ist zu finden unter der Adresse 0x4000737c8bd7bbe3dee190b6342ba1245f5452d1 eurer privaten Blockchain.

Notiert euch diese, denn sowohl ihr oder auch andere werden diese brauchen, wenn ihr damit interagieren wollt.

Falls es nicht funktioniert hat: stellt sicher, dass ihr aktiv in einem anderen Fenster minet, damit die Transaktion in die Blockchain geführt werden kann.

7. Mit dem Vertrag interagieren

Auch hier gibt es noch keine Updates der offiziellen Ethereum-Doku. Die beschriebenen Funktionen werden schon nicht mehr benutzt. Startet erneut geth und versucht Folgendes:

> var abi = '[{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"inputs":[{"name":"_greeting","type":"string"}],"payable":false,"type":"constructor"}]'
> var abi = JSON.parse(abi)
> var contract = web3.eth.contract(abi)
> var c = contract.at("0x4000737c8bd7bbe3dee190b6342ba1245f5452d1")
> c.greet()

Mit den ersten drei Eingaben legt ihr fest, wie der Vertrag laut ABI aussieht. Die Methode contract.at() braucht als Übergabeparameter die Adresse, wo euer Vertrag residiert. Ihr solltet nun die folgende Ausgabe sehen:

gizmeoDOTeu rockt!

Hinweis: geth bekommt Schnupfen, sobald eine eurer Eingaben illegale Zeichen beinhaltet, siehe:

“ (illegal) is not equal to " (legal)

und

‘ (illegal) is not equal to ' (legal)

9. Fazit

Wir haben nun mehr als nur kurz mal reingeschnuppert in Ethereum: wir haben ein eigenes (privates) Netzwerk aufgesetzt und sogar einen eigenen „smart contract“ kompiliert. Zudem haben wir Sackgassen der offiziellen Dokumentation vermieden. Wir haben ferner gesehen, wie man einen Vertrag veröffentlicht (deploy) und mit diesem interagiert.
Solltet ihr je Mist gebaut haben und müsst nochmals neu anfangen, startet „einfach“ euren Server neu und löscht eure Blockchain:

rm -R /root/gizmeodoteu/data/geth/chaindata

[via]

10. Ausblick

Die smart contracts sind, was Ethereum so stark macht. Durch diese Eigenschaft entfällt die Stelle des Vermittlers, Verträge werden dadurch fälschungssicher und günstig. Nicht nur Notare werden zukünftig dadurch überflüssig. smart contracts haben das Zeug dazu, ganze Institutionen, egal ob privat oder staatlich, zu ersetzen.

Ferner ist Ethereum „turing complete“: diese Eigenschaft besitzt das Bitcoin-Protokoll nicht. Dadurch kann man für Ethereum relativ leicht selbst Anwendungen entwickeln. Wer schonmal JavaScript programmiert hat, wird sich hier prima zurecht finden. Vielleicht hilft dieses Tutorial ja, mal mit einer anderen Anwendung an den Start zu gehen, als nur Wallets oder Coin-Börsen! 🙂

Falls euch das Tutorial gefallen hat, spendet mir doch ein paar Bitcoin! Die Adresse findet sich bei jedem Bitcoin-Button überall auf gizmeo.eu verstreut! Vielen Dank für die Aufmerksamkeit und happy hacking!

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

vault 7: ssh-hacking

Es scheint, fast ist es ein bisschen ruhiger geworden um Vault 7. Doch was erst im März diesen Jahres von Wikileaks gestartet wurde und den größten Geheimdienst-Leak aller Zeiten darstellt, uns länger beschäftigen würde, war vorhersehbar. Ist auch gut so!

Die neuesten Enthüllungen drehen sich um die Tools BothanSpy und Gyrfalcon. Beides sind Werkzeuge um SSH-Sessions zu knacken und zwar sowohl auf Unix-/Linux-Systemen, woher man diese Art Sessions sehr gut kennt, aber auch von Windows-SSH.

Hintergrund: mit SSH ist es im Kern möglich Zugang zu jedem Rechner weltweit zu bekommen. Gerade auf Unix- und Linux-Systemen sind GUIs, also grafische Nutzeroberflächen, nur ein Schnickschnack um die User von der Konsole fernzuhalten. Hinter den schönen bunten Fensterchen laufen die selben Befehle ab, die man auch von den Terminals kennt. Linux lässt sich hervorragend von einem Laptop fernadministrieren. Ein Beispiel: ein Raspberry Pi liegt irgendwo im selben Netzwerk wie mein Laptop. Mit ssh pi@192.168.x.x kann ich auf diesen von meinem Laptop aus zugreifen, einrichten, Programme installieren/deinstallieren, etc. Viele nutzen ssh auch um ihren Webspace zu administrieren, etwa für eigene Webseiten und -projekte.

BothanSpy hier ist das Tool zum Hacken der XShell, also für Windows-Systeme. Wie es aussieht ist es aber eine Erweiterung von Shelltermn 3, die man erstmal dafür braucht. Die gestohlenen Daten können direkt an CIA-Server gesendet werden oder werden bis zur Internetverbindung in einer eigens dafür verschlüsselten Datei gespeichert.

Wie zu erwarten war ist Gyrfalcon das OpenSSH-Pendant. Unklar bleibt, ob außer Ubuntu, Debian, CentOS, Suse und Red Hat weitere Linux-Distributionen betroffen sind, da nur diese explizit im Manual beschrieben werden. Linux-Fragmentierung ist hier also gleichbedeutend mit Schutz. Gyrfalcon kann den kompletten Verkehr abgreifen, wenn gewollt. Außerdem wie bei BothanSpy auch Nutzernamen und Passwörter.

Mit diesen Informationen geht Wikileaks nun schon in die 15. Verlängerung. Nicht immer sind meine Beiträge hier auf dem neuesten Stand. Es lohnt sich eventuell der Blick ins Archiv von href.ninja. Dinge, die hier nicht behandelt wurden, tauchen wahrscheinlich dann dort auf. Mir fehlt für eine Art permanenter Chronik leider viel zu oft die Zeit (auch wenn man das von mir früher nicht gewohnt war). Dafür entschuldige ich mich, geht aber nicht mehr anders.

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

anbox: android in a box

Viele Versuche Android mit Linux zu verheiraten gab es bisher nicht, umgekehrt sieht es noch viel schlimmer aus. Ich warte immer noch auf Apps wie Amarok oder Audacious oder GIMP. Auch einfach, weil diese Programme (wie viele andere von Linux auch) viel mehr Publikum verdient hätten und davon gäbe es auf Android mehr als genug.

Vielleicht ist das aber auch bald völlig egal, denn da ist etwas in Alpha, was zumindest die eine Richtung abdecken würde:

Anbox steht einfach für Android in einer Box und läuft, ohne Emulation übrigens, in einem Linux Container (LXC) auf (jedem?) Desktop-Linux.

Der Clou ist, diese Alpha läuft jetzt schon mit dem neuesten Android 7.1.1 (Nougat), wie man oben sehen kann.

Mehr dazu: http://anbox.io/. [via]

Den Play Store findet man erst einmal nicht, stattdessen werden Apps mit

adb install /path/to/.apk

installiert.

Um Anbox selbst auf Linux zu installieren wird die Nutzung von Snaps vorausgesetzt, das geht dann ganz einfach mit:

sudo snap install --classic anbox-installer && anbox-installer

Das Anbox-Projekt ist öffentlich und jeder kann mitmischen: Anbox auf GitHub. Auf IRC reicht #anbox zum Mitreden.

Have fun! <3

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

believe. nothing.

Gnädige Herren, werte Damen. Es ist Wochenende. Bitte schalten Sie jetzt Ihre Gänge herunter. Gönnen Sie sich etwas Gutes! Die Empfehlung des Tages unseres geschätzten Professors kommt genau zur rechten Stunde:

believe. nothing. via: mein liferea

Ich warf heute seit gefühlten 50 Jahren mal wieder meinen Liferea an und bei FFFFOUND! findet man wohl auch nichts mehr als Titten, Titten, Titten. Da kommt eine wichtige, bunt-poppig verpackte Lebenslektion zwischendurch gerade recht. Nicht, dass ich etwas gegen Titten hätte, ich mag sie nur am liebsten mit meiner Banane in der Mitte und nicht in schwarzweiß und 2D auf einem viel zu kleinen Tische.

winkekatze

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

streamtuner 2 revived: fehlerbehebung

Fehlerbehebung ist jetzt streng genommen das falsche Wort, aber mit debuggen kann jetzt auch nicht jeder etwas anfangen. Lest den folgenden Text einfach so: „den Streamtuner2 von heute einfach so ans Laufen kriegen wie früher“! Geht nämlich. 🙂

1. Problemlösung – shoutcast zurückbringen

Egal ob für’s Streaming oder später für das Rippen von Streams, shoutcast.com ist meine erste Quelle für Musik durch Streamtuner2. Nennt es Nostalgie, Gewohnheit, Faulheit, egal, ohne diesen Tab fehlt einem einfach etwas. Ich kenne das Programm noch aus ganz jungen Linux-Anfängertagen, wenn ich hier sehe er findet rein gar nichts, bin ich auf dem Stand vor 2005. Geht halt gar nicht.

Lange Rede, kurzer Workaround: einfach das Streamtuner2-Konfigurations-Verzeichnis löschen und das Programm neu starten. Ja, ihr fangt nochmal neu mit einrichten an, aber da müsst ihr durch, ist am Ende für die weiteren Konfigurationen auch besser. Unter Linux zu finden unter:

/home/USER/.config/streamtuner2

Das Python-Progamm macht eigentlich alles richtig und nimmt sich die alte Konfiguration und betreibt die Python-Version damit. Aber die .config kann steinalt sein, wie in meinem Fall. Löschen des Ordners behob das „shoutcast zeigt keine Kanäle“-Problem, denn der Ordner streamtuner2 wird einfach neu angelegt

2. Problemlösung: streamripper zeichnet nichts mehr auf

Die Internet-Radiosender sichern sich heute besser ab als früher und fragen den Client ab, der den Stream abgreifen will. Auch wenn die Python-Version euch nun über ein Plugin den Client ändern lässt, z.B. in Winamp, Youtube, etc., man kann diverse Kanäle nicht mehr aufzeichnen.

Workaround hier ist Handarbeit, denn man muss explizit mit -u (steht für Useragent, siehe Doku) einen nichtssagenden(!) User-Agenten angeben, damit der streamripper wieder Streams aufnehmen kann.

Geht dazu auf „Bearbeiten“, dann „Eigenschaften“, unten gibt es einen Bereich „Recording“. Jetzt nehmen wir mal an, ihr zeichnet so die Streams auf:

x-terminal-emulator -e streamripper %srv -d /home/USER/streams

Shoutcast wird euch eine Fehlermeldung im streamripper zurückgeben mit:

HTTP:403 - Access Forbidden (try changing the UserAgent), sobald ihr aufnehmen wollt.

Ihr könnt nun gerne prüfen, ob ihr die mit dem eingebauten Plugin weg bekommt, es wird nicht funktionieren. Aber fügt einfach eurem streamripper-Befehl folgendes hinzu (in Fettschrift):

x-terminal-emulator -e streamripper %srv -d /home/USER/streams -u 'uio'

Die 403-Warnung mit „Kein Zugriff“ war danach verschwunden und man konnte wieder Streams aufnehmen.

Joa, ich bin wieder ziemlich happy damit. Streamtuner2, ich glaube ich habe es vor langer Zeit auch mal irgendwo aufgeschrieben, war so eine der „Killer-Applikationen“, als ich Linux-Anfänger war. Mit diesem Teil bin ich gerne dabei geblieben und dementsprechend war man daran gewohnt. Ich denke 9 Jahre tot zu sein reichte dann auch, finde schön, dass man sich dem Problem inzwischen angenommen hat. Ich müsste jetzt schwer suchen, um noch etwas zu finden, das mich persönlich stört. So viele Funktionen bin ich gar nicht gewohnt, ich betrieb bislang eine Version aus 2012, Version 2.0.8, von einer 2.2.0-Version konnte ich bislang nur träumen.

Mir ist Musik sehr wichtig. Denke das sieht man auch, wie ich immer wieder zu diesem Thema zurückkehre und rein knie, bis ich wieder den alten Stand habe. Und habt ihr gemerkt, was ein heißes Eisen das immer noch ist!? Hase-und-Igel-Style mit Blocken von Aufnahmen, leerem Shoutcast und wasnoch? Und das heute. $hady Bu$in€$$. Oh my…

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

streamtuner2 revived

Man kann mich für bekloppt halten, doch auch nach über einer Dekade mit Linux schaue ich noch immer manchmal nach Lebenszeichen von Streamtuner2. 2008 hatte ich ihn eigentlich bereits für tot erklärt, danach mich immer mal wieder mit alten Paketen versorgt, um zumindest teilweise die Funktionalität, die das Programm bietet, auf meinem System erhalten zu können.

Wie es der Zufall so will und das ist das Schöne an Open-Source-Projekten, existiert aber mittlerweile eine Art Rewrite in Python:

http://milki.include-once.org/streamtuner2/.

Die deb– und rpm-Pakete erfordern entsprechende Abhängigkeiten, die ein System erst einmal erfüllen muss. Auch ist der Verzeichnis-Musik-Streamer nicht mehr so schnell wie früher, braucht ein bisschen mehr Speicher als die Version in C und orientiert sich auch vom Design an der ersten Version von Streamtuner.

Was bei mir aber problemlos zu funktionieren scheint ist die PyZIP-Version, die mit python streamtuner2-2.2.0.pyz von der Konsole aus gestartet werden kann. Und: als kleinen Zusatz gibt es das Programm sogar nun in einer expliziten Konsolenversion, komplett ohne GUI.

Witzig ist das schon, neue Dienste gibt es dort auch (TuneIn, YouTube, etc.) und scheinbar soll man auch streamripper benutzen können, was mir noch nicht gelingt: xterm: No absolute path found for shell ballert er mir raus, er findet, scheinbar, meine Konsole nicht, was Blödsinn ist. Auch will shoutcast nach wie vor nicht, doch damit habe ich mich nach so langer Zeit dann auch abgefunden.

Schönes Ding! Plugin-fähig! Respekt und dankschee an die devs! <3

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

aus cyanogenmod wird lineageos

Die freie Android-Welt ist letzten Monat implodiert. Die freie & hoch-populäre Android-ROM CyanogenMod, faktisch die Basis aller auf dem Markt befindlichen alternativen Android-ROMs, existiert nicht mehr.

Nennen wir es Dummheit, Raffgier, Missmanagement. Jedenfalls sind nicht die Nutzer schuld, auch nicht die fleißige Android-OpenSource-Community, sondern die gleichnamige Firma namens Cyanogen Inc.. Es hat sich angekündigt, sagen wir es so. Der Wechsel weg von einem faktisch verseuchten Namen hin zum neuen LineageOS ging schnell und unspektaktulär über die Bühne.

Damit wir den neuen Sachverhalt verstehen, habe ich mich auf den Hosenboden gesetzt und folgende aufwendige Grafik erstellt (Achtung: real GIMP-Hardc0re-Wizardry right here!):

aus CyanogenMod wird LineageOS

Comprende capisce!? Perfekt!

Damit geht ein fast achtjähriger feuchter Android-Traum über Nacht zu Ende.

Doch haltet ein! Denn der Fork ist bereits auf GitHub erhältlich, dem Quellcode-Paradies für mutierte Okto-Katzen mit Manga-Augen: https://github.com/lineageos.

Denn wenn Programmierer aus der OpenSource-Welt mit etwas nicht zufrieden sind, wird einfach geforkt. Funktioniert immer und wirkt oft Wunder, Beispiele sind etwa Ubuntu (aus Debian), Firefox (aus Mozilla Suite), Joomla (aus Mambo), OpenBSD (aus NetBSD), XORG (aus XFREE86), etc. pp.

Es ist der allerletzte Schritt, sowas wird meist nicht gerne gemacht, die letzte Form des Protests und der Unzufriedenheit, sowie der Überzeugung, es besser machen zu können. Was beim Thema LineageOS von mir nicht im Geringsten bezweifelt wird.

Noch ein allerletzter Gruß an Cyanogen Inc.: Sterbt bitte. Schnell.

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

gnome vs. groupon

Das ist echt der Witz. Also eigentlich nicht lustig. Aber die Gnome-Foundation kämpft, oder musste kämpfen, gegen Groupon.

Das ist doch. Jetzt mal ehrlich. Die ersten Suchergebnisse gehen gar nicht mehr zum Open-Source-Projekt. Und dieses TM. Junge. WAS???

Ich bin mir hier nicht sicher. Aber laut offiziellen GNOME-Quellen ist das Problem erledigt: http://gnome.org/groupon/.

Was es gekostet hat: 102.608,76$.

Damit Groupon das gefälligst lässt und 28(!) Patentanträge fallen lässt. 5622 Individuen mussten dafür helfen.

Boah, ey. Ich nutze es nicht, das muss ja niemand. Aber die moderne Linux-Desktop-Umgebung ist immerhin auch schon 15. Ich habe nicht die leiseste Ahnung, wie es so weit kommen konnte.

Bitte nutzt kein Groupon! Nutzt überhaupt keins von diesen Punktesammel-Idioten-Systemen! Und wenn, dann sucht eines, dass eure Privatsphäre respektiert. Und nein, ich habe keine Ahnung, ob es so etwas in diesem Bereich gibt.

Das ist so wie SEO. Jeder hasst es. Viel zu viele nutzen es trotzdem. Und am Ende gewinnen immer die Falschen.

Das war knapp, ihr Gnome.

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

raspberry-pi-laptop selber bauen

Nett, cool, kreativ:

raspberry-pi-laptop selber bauen

Mit Pi-Top bauen wir uns einen Raspberry-Pi-Laptop einfach selbst!

Wie man oben unschwer erkennen kann ist das Gehäuse aus einem 3D-Drucker. Da sind grobe Linien zu sehen, das Plastik aus 3D-Druckern ist derzeit in fast keinem Falle glatt. Die Baupläne gibt es obendrauf bei diesem Projekt:

Raspberry-Pi-Laptop, via indiegogo.com.

Man kann übrigens noch mitmachen das zu finanzieren und zwar bis Mitte November:

Vom Design her muss man fast keine Abstriche machen, doch die Unterseite ist nach hinten erhöht. Anders würde man den Raspberry-Pi-Mini-Computer auch gar nicht unterbringen. Auch soll er am Ende in mehr Farben erhältlich sein; das Photo oben erinnert ein wenig an den 100$-Laptop aus 2005. Der wenig vorzuweisen hatte am Ende leider.

Man kann es auch gut meinen mit Technik. Das hier ist mal wieder ein erfrischender Beweis. ACK.

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

android lollipop

Bald gibt’s was zum Basteln: Android 5.0 steht vor der Tür! Hype da draußen!? Fehlanzeige. Dafür hat man „zufällig“ Bilder von unnützen neuen iPads gefunden. Ja, das Leben ist hart mit einem IQ über einer Brezel.

Erster erfreulicher Punkt: Man geht weiter seiner Wege mit eigenen Versionsbezeichnungen und hat sich für Lollipop entschieden. Wir können also froh sein, dass damit nicht eine C-Version gemeint war, denn da wäre wohl auch wieder ein großer Hersteller in Frage gekommen…

Nun gut, zurück zum Thema. Hier sieht man den enthüllten Lollipop-Roboter in einem kurzen Video, dort die Geräte Nexus 6 (Smartphone) und Nexus 9 (Tablet).

Videos fand ich zum Einbetten keine, mir war die Zeit auch zu schade. Es berichten ein paar Quellen, die sagen aber alle das Gleiche.

Die offizielle Website sieht dafür nicht nur schick aus, sondern schafft auch einen ganz guten Überblick:

http://android.com/versions/lollipop-5-0/.

Nach dem lecker visuellen Schnickschnack findet man unten einen kleinen Link, der den Bereich für die Features aufklappt.

Alternativ natürlich wie immer Wiki für solche Sachen, die sind auch meist aktueller und schneller: http://en.wikipedia.org/wiki/Android_Lollipop.

Wer entwickelt, der weiß, dass man so manches bereits seit Juni selbst mit dem SDK testen kann. Leider ist immer noch nicht klar, wann der Full Release ist, man spricht noch nebulös von „November“. Und wie wir alle wissen sind die 0er-Versionen meist irgendwie buggy, das wird also hier wohl nicht anders sein.

Trotzdem: 90 Minuten mehr Akkuleistung und die Sicherheitsfunktionen sind überfällig. Vielleicht bewegen solche Tatsachen ja die Jelly Bean-Enthusiasten, zu denen ich ebenfalls gehöre, zum Umsteigen. KitKat war leider mehr als eine Verirrung, es kann also nur alles besser werden!

[Update I, 22.10.14]

Veröffentlichung am: 3. November.

Changelog:

  • Android Runtime (ART) ersetzt Dalvik. Dadurch AOT- statt JIT-Kompilierung möglich
  • 64bit-CPUs werden unterstützt
  • OpenGL ES 3.1
  • Kürzliche Aktivitäten nun mit Tasks anstatt Apps. Maximale Aufgaben pro App können definiert werden
  • Unterstützung für Druckvorschauen
  • Neuer Design-Stil „Material“, Codename „Quantum Paper“, im Kern eine UI-Überarbeitung (Eye-Candy, auf deutsch)
  • „Project Volta“: Codename für verbesserte Akkulaufzeiten
  • Suche innerhalb der Einstellungen möglich
  • Gästemodus
  • Audioein- und ausgang über USB

N1ce.

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

bash-konsole hat neurose…

Wer Linux nutzt, brauch‘ eine Konsole. Davon gibt es einige, meist mit Wurzeln in Unix: sh, dash, bash, busybox; da bash ein freier GNU-Rewrite der sh ist, kommt diese eben auf so ziemlich allen Linux-Systemen zum Zug.

Und da draußen Krieg herrscht, hat die Gute eine Kriegsneurose (shell shock) gekriegt:

„The vulnerability is present in Bash up to and including version 4.3, and was discovered by Stephane Chazelas. It puts Apache web servers, in particular, at risk of compromise: CGI scripts that use or invoke Bash in any way – including any child processes spawned by the scripts – are vulnerable to remote-code injection. OpenSSH and some DHCP clients are also affected on machines that use Bash“

[via]

Nee, das ist natürlich Quatsch. Ein bisschen. Der Bug scheint 22(!) Jahre alt zu sein und hängt damit zusammen, wie die bash mit Umgebungsvariablen agiert. Ach so: Der Bug hier ist eventuell sogar schlimmer als „Heartbleed“. o.O

Ob die eigene Maschine betroffen ist, lässt sich herausfinden, indem man die folgende Zeile in seiner/ihrer Konsole ausführt:

env x='() { :;}; echo mich hats erwischt T_T' bash -c "echo dies ist ein Test"

Wenn eure Konsole nun sagt, „mich hats erwischt T_T“, dann habt ihr diese Neurose.

In dem Fall hilft nur: Rechner umgehend aus dem Fenster werfen!11 Oder Updates einspielen. Sofern es welche gibt.

Da Linux das bevorzugte Betriebssystem von Servern ist, dürfte das komplette Internet betroffen sein. Tut man nichts hiergegen, können, theoretisch, Programmcodes ausgeführt werden, die nicht von einem selbst stammen. Klingt lustig, ist es aber nicht. Da das einfach zu exploiten ist, freut euch die nächsten Wochen über Copy&Paste-Script-Kiddies an jeder Ecke des Web.

Übrigens sind auch Apple-Systeme von diesem Bug betroffen: Warum die die bash nutzen kann ich nicht sagen, ist aber so. Auch hier müsste direkt Apple aktiv werden, also checkt eure Updates.

Arme bash! Gute Besserung an dieser Stelle! Scheiß Kriege immer…

[Update I, 18:32]

Bei mir war auch ohne Update nichts zu holen:

bash: Warnung: x: ignoring function definition attempt
bash: Fehler beim Importieren der Funktionsdefinition für `x‘.
dies ist ein Test

Gut, Rechner von mir sind meine Kriege mit ihnen gewohnt. O.O

[Update II, 26.09.14]

Heute morgen in der Bahn bei Slashdot gelesen, die ersten Opfer waren das Werbenetzwerk Akamai und das Verteidigungsministerium der USA. Ja, warum klein anfangen, ne!?

[Update III, 29.09.14]

Nutzte man Canonical/Ubuntu-Derivate hatte man bisher geschissen: Wie viele Updates waren das bis jetzt, 3? 4? Nun ja. Toll ist dies nicht. Einer meiner Uralt-Rechner nutzt Mint. Der war von dem Test betroffen, das Loch wurde aber kurz danach gefixt. Anschließend kamen mindestens zwei weitere Updates.
Ich denke, da wird schon noch was kommen. Die Community arbeitet hart und das ist ein sehr gutes Zeichen. Danke mal an dieser Stelle!

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

bitcoins minen? absurd.

Seit Ende November mine ich selbst Bitcoins. Hardwareseitig regeln das diverse USB-ASICs und ein Raspberry Pi, betriebssystemtechnisch von Anfang an minepeon, das auf Arch Linux basiert. Leider ist das minen in der Freizeit mittlerweile absolut absurd geworden.

Die letzte Runde meines Bitcoin-Pools hat über 1483 Stunden gedauert. Das sind

volle. 2. Monate.

Dafür habe ich jüngst 0.00252 Bitcoins gekriegt. W.T.F.

Mir war von vornherein klar, dass ich niemals die Hardwarekosten wieder reinbekomme, ich mache das wirklich nur als Hobby. Und mit insgesamt 7GH/s bin ich jetzt auch nicht die absolute Schürf-Superlative in diesem Bereich. Doch das Ergebnis jetzt, und vor allem wie lange es gedauert hat, bis etwas gefunden wurde, grenzt an Verarsche.

In der Zeit hat sich mein Payout dermaßen verschlechtert, dass ich wahrscheinlich besser bedient gewesen wäre, den Pool mehrfach zu wechseln. Doch sowas weiß natürlich keiner vorher. Ist echt mies. Das macht keinen Spaß mehr.

Überhaupt scheint ja auch hier der Hype ziemlich abgeflaut zu sein. Zum einen das Desaster mit Mt. Gox, das wog schwer, aber ehrlich weiß ich auch nicht, wie man seine Bitcoins bei denen lagern wollen würde. Zum anderen eben das mit den ASICs: Wer viel Geld auf Tasche hat, der kauft sich gleich ein TH/s-Rig, ist doch scheißegal. Und so kleine Sammler wie ich schauen dann eben in die Röhre.

Nun gut. Dass Bitcoins eine Supersache für Digitalien sind ist weiterhin unbestritten. Doch man sollte sich wirklich überlegen, ob es noch Sinn macht selbst zu minen. Jetzt, wo ich _das_ hier mitgekriegt habe, lautet meine Empfehlung:

Let. It. Be.

Seid langweilig, seid unkreativ und tauscht Geld gegen Bitcoins. Habt’s mehr davon. Schade war’s. Mal wieder.

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

raspberry pi b+

Heimlich still und sehr leise haben die Macher des Raspberry Pi eine überarbeitete Platine ihres sehr erfolgreichen Modell B veröffentlicht. Das nennt sich nun Raspberry Pi B+ und so sieht das Schmuckstück(chen) aus:

raspberry pi b+

An der CPU und am RAM ändert sich rein gar nichts, auch ist das hier explizit kein „Raspberry 2“. Was sich geändert hat ist das Folgende:

  • – mehr GPIO: jetzt mit 40, statt mit nur 26 Pins
  • – 4-fach-USB: das sind zwei mehr wie beim Vorgänger. Das ist nicht schlecht, viel besser ist aber, dass sie laut eigenen Angaben a) Hotplugging und b) Überspannungsprobleme behoben haben
  • – Micro SD-Steckplatz: besser war’s!
  • – verbraucht zwischen 0,5 und 1 Watt weniger Strom
  • – Audio wurde verbessert

Wem das alles nicht reicht: Die Platine ist keinen Cent teurer geworden und wird ebenfalls 35$ kosten!

Einziger Wermutstropfen: Aufgrund des veränderten Formfaktors, schön zu sehen bei den USB-Anschlüssen, werden eure alten Gehäuse natürlich nicht mehr passen. Bisschen Geld wollen die halt auch verdienen, wer gönnt es ihnen nicht!

Das alles, sowie ein Video und derzeit 246 Kommentare zu diesem Ereignis findet ihr direkt bei den Machern: http://raspberrypi.org/introducing-raspberry-pi-model-b-plus/.

Happy hacking!

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

close windows, open doors

„Microsoft gab 1,8 Milliarden US-Dollar aus, um die Öffentlichkeit von Windows 8 zu „überzeugen“. Warum? Um zu verschleiern was es wirklich ist: Ein Produkt voller Fehler, das Ihre Freiheiten einschränkt, Ihre Privatsphäre infiltriert und die Kontrolle über Ihre Daten übernimmt.“

Hier sind eine Reihe von „Features“, über die euch Microsoft nichts erzählt:

Close Windows, Open Doors
Diverse Sprachen und Details, einfach auf die Grafik klicken

Do it. Do it n o w!

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^

intergalaktischer musikpilot

Ich habe da mal wieder was bei ein paar meiner Lieblings-Distributoren entdeckt, was mich einfach umgehauen hat:

intergalactic music pilot, Iintergalactic music pilot, II

Das ist Konzeptkunst von Charakter-Designer Oleg Memukhin. Er nennt das vielsagend

Intergalaktischer Musikpilot

und was das Beste ist: Es wurde _komplett_ mit der 3D-Open-Source-Modelling-Software Blender geformt!

Generell kann das jeder mit seiner Linux-Maschine machen, Blender gehört in 95% der Fälle zum Standard bei sämtlichen Repositories, die es gibt. Und wenn man das oben sieht, weiß man spätestens warum.

Hier präsentiert er sein Werk in Gänze und man sollte es auch direkt dort liken:

http://artstation.com/artwork/pilot-b.

Inspirationen hat er sich geholt bei Range Murata, Vitalii Bulgarov, Robocop und „anderen“.

Am Ende ganz verzichten auf proprietäre Software konnte aber auch Oleg nicht: Das Sculpting wurde mit ZBrush durchgeführt, das Rendering übernahm Vray; zwar ebenfalls proprietär, gibt es aber auch für Linux und wird durch Blender unterstützt.

Nice. One.

Flattr this!
Bitcoin-Spenden hier akzeptiert ^^