Cool Linux Terminal: cool-retro-term

CoolRetroTerminal
Fallout-Like Terminal makes your work more fun ­čÖé

Having a boring task in the terminal to do? Why not putting it into a fancy Fallout-Like Terminal??Get cool-retro-term ­čÖé
Compilation instructions are on the GitHub page.

Have fun ­čÖé

Triple Seven - Just a random ssh bug

Seit gestern ist ein neuer OpenSSH Bug bekannt: Triple Seven.

Aufgrund eines Problems im Speichermanagement ist es so b├Âsartigen Servern m├Âglich, den privaten ssh Key des Clients auszulesen. F├╝r den Fall, dass sich also jemand mit einem nicht vertrauensw├╝rdigen ssh-Server verbunden hat, ist es m├Âglich, dass der eigene ssh-Key kompromittiert wurde.
Wer sich nicht sicher ist, ist daher angeraten sich neue ssh-Keys zu generieren und die alten in die Verbannung zu schicken (wichtig!)

Es steht mittlerweile ein Update für Debian, Ubuntu, RHEL und weiteren Distros zur Verfügung, das das Problem fixen soll.

Wer den eigenen Client zur Zeit nicht updaten kann, sollte die UseRoaming Option ausschalten. Entweder als Parameter in /etc/ssh/ssh_config

Oder als Programargument in der Kommandozeile

Und als Abschluss: Wenn irgendjemand Lust auf dubiosen Verschw├Ârungstheorien hat, kann bei diesem Heise-Kommentar anfangen ­čÖé

Nat mit IPTables

NAT mit iptables in 4 einfachen Zeilen.
(Ist eigentlich NAPT und nicht NAT, wird aber weitl├Ąufig so bezeichnet)

1. IP Forwarding aktivieren

Zur permanenten Aktivierung, entsprechende Zeile in /etc/sysctl.conf

2. IPTables konfigurieren

Ich nehme an, dass eth0 die Schnittstelle nach drau├čen ist und eth1 die interne Schnittstelle, die mit dem Internet verbunden werden soll. Also

eth1 -> eth0 -> Internet

Abschlie├čende Hinweise

  • iproute2 unters├╝tzt seit Linux 2.6 nicht mehr nat [Verweis]. Leider finden sich noch einige Tutorials dazu im Internet.
  • Was ich hier vorstelle ist eigentlich nicht NAT sondern NAPT. NAT im Sinne von "ich verwende den Routing Stack von Linux" findet sich heute eher selten.

 

Kurzeintrag: Imagemagick und Collagen

Kurzeintrag: Mit dem Imagemagick-Programm montage kann man sehr einfach Collagen erstellen.

Um beispielsweise aus den viert Dateien Plot1.png - Plot4.png eine Collage mit den Namen Collage.png zu erstellen gen├╝gt der folgende Befehl:

Um die Dateien auf eine Gr├Â├če von 320x320 zu bringen, und eine 2x2 Collage zu erstellen

Fertig! Gefunden im Montage User Manual

Patch erzeugen (diff, patch)

Dev corner | Patch, diff | Eine kurze Einf├╝hrung

"Einen Patch einspielen". "Eine Datei patchen". Diese Phrasen h├Ârt man h├Ąufig wenn es um Software geht, vor allem bei solcher, an der mehrere Personen beteiligt sind.
Ein Patch in diesem Kontext ist nichts anderes als eine Datei, welche die Änderungen einer anderen Datei beschreibt. Also soetwas wie "Ersetze Zeile 3 mit einer leeren Zeile".
Beispiel:
Ich arbeite an einem sehr gro├čen Code (sagen wir mal so um die 10 MB) und entdecke einen Bug, den ich beheben kann. Die ├änderung ist ein Einzeiler. Ich m├Âchte die ├änderung an den Programm-Entwickler schicken.
Nun kann ich entweder die rie├čige Code-Datei┬á(10 MB) an den Maintainer schicken, oder ich erstelle eine Datei, welche genau sagt, an welcher Stelle welche ├änderungen zu erledigen sind (< 1 kByte).
Nun, Computerentwickler sind faul. Es w├Ąre doch sch├Ân, wenn es ein Programm gibt, das eine solche Datei automatisch generiert und anwenden kann.
Hanau hier kommen diff und patch ins Spiel.

Anleitung

Beispielannahmen:

Originaldatei: original.c
Ge├Ąnderte Datei: original_new.c

Patch erstellen

Die Datei original.c.patch beinhaltet nun alle Änderungen relativ zu original.c.

Patch einspielen

Der Maintainer hat sich den Patch angeschaut und ist mit den Änderungen einverstanden. Nun kann er seine Datei original.c mit der Datei original.c.patch patchen:

Patch und Diff im Einsatz in der Konsole
Patch und Diff im Einsatz in der Konsole

N├╝tzliche Optionen

Notiz f├╝r Eclipse

In Eclipse ist es bei GIT oder SVN-Projekten sehr einfach Patches zu erstellen oder einzuspielen:

Rechtsklick auf die Datei -> Team -> Create / Apply patch

Patchen und Patches anwenden in Eclipse
Patchen und Patches anwenden in Eclipse

Fork daemon template

Snippet um in Linux einen Daemon zu Forken

Der Prozess muss zweimal forken, damit
a) Kein Elternprozess existiert (init wird Elternprozess)
b) Der neue D├Ąmonprozess von Terminal detached wird

nanoHttp

nanoHttp - Ein extrem einfacher Web-Server, geschrieben in C.

Prim├Ąrer Einsatzzweck ist es einen einfachen Webserver auf meinem Android-Tablet zu haben, ohne einen Riesen wie kWS oder ├Ąhnliche zu installieren.

Cross-Compile f├╝r Android (arm-linux-androideabi-gcc)

Erforderliche Pakete:

  • gcc-arm-linux-androideabi

Standartm├Ą├čig wird gcc zum kompilieren verwendet. Das entstehende Binary ist dadurch f├╝r dein System geschaffen.
Um nanoHttp f├╝r Android zu kompilieren muss nun ein anderer Compiler gew├Ąhlt werden. Dazu kann einfach das Makefile editiert werden: Kommentar der folgenden Zeile entfernen und die CC=gcc-Zeile auskommentieren:

Nun ein einfaches make ausf├╝hren

Und fertig ­čÖé

Installationspacket

Mitlerweile steht ein fertig kompiliertes Binary zum Download bereit. Die Installation muss per Hand erledigt werden, Anleitungen liegen jedoch im Packet.

Die Installation richtet sich eher an fortgeschrittene Benutzer, die sich mit ADB auskennen.

Shared memory C++ template

Noch eine kleine Wrapper-Library ist fertig. Dieses mal geht es um shared memory, Semaphoren, Linux und C++.

Die Klasse SharedMemory erzeugt ein neues definiertes SharedMemory Segment mit einer bestimmten Gr├Â├če und erledigt alle notwendigen Schritte zur Erstellung und L├Âschung der Segmente im Hintergrund.

Dar├╝ber hinaus erm├Âglicht sie auch den Wechselseitigen Zugriff auf dieses Shared Memory segment mittels einer eingebauten Semaphore. Shared memory und semaphore verwenden dabei denselben Schl├╝ssel, der vom Benutzer definiert wird.

Einfaches Beispiel:

Die Library kann hier gedownloaded werden. Beispielcode ist in der example.cpp im Archiv enthalten.
Als Lizenz habe ich wiederum die MIT License gew├Ąhlt.

BlackBody spectrum generator

Ich habe ein kleines Tool zum Erstellen von Schwark├Ârper-Spektren erstellt. Das Tool inklusive Binary (zur Zeit nur x64) ist auf GitHub.

Screenshot vom Tool
Screenshot vom Tool

Es kann gleich mehrerer Graphen in einem Plot darstellen.

Beispielspektrum
Beispielspektrum

Geschrieben in Qt4, mit QCustomPlot, eine sehr praktisches Widget im ├ťbrigen, das ich nur empfehlen kann!
Das vorkompilierte Binary ist f├╝r Linux 64 gemacht. Noch sind keine weiteren Binaries verf├╝gbar.

English version

I have written a small tool to create custom blackbody spectra using Planck's law.

The tool (Qt4 using QCustomPlot)is available on GitHub. Binaries for Linux (x64) also included on GitHub.

Planck function snippet

The following C++ snipped implements the Planck function. It has found it's way to this blog because of I want to archive it

Have phun!