IOException.de

Icon

Ausgewählter Nerdkram von Informatikstudenten der Uni Ulm

Few words about… The seek for a WhatsApp alternative

Since WhatsApp was sold for 19 billion dollar to Facebook, lots of blogs and news seek for alternatives. In this short comment, I will point out why we all need alternatives, why we all need more than one alternative, why this works and what features our new alternative must have.

Threema, Textsecure or Telegram are just a few new so called WhatsApp competitor nowadays. But before we go out and look for alternatives, we must understand what’s the problem with WhatsApp and Facebook. And before we consider that, we must understand why Zuckerberg payed 19 billion dollar for WhatsApp. I intentionally do not say that WhatsApp is worth that much money. It’s only that much worth for Facebook. The big deal shows us what really matters in the information age. Surprise, it’s information itself. Facebook itself is free, so where comes all the money? Facebook can afford buying WhatsApp, despite Facebook has not a single paying user. This tells us that information is very important and also very expensive. Important for advertising, marketing research or insurance companies. Or intelligence agencies. Information about us. Companies make billions of dollars by selling information they know about us!

The bad thing about this is, that we only understand why this can be a problem when it’s too late. When knowledge about us is used against us and we suddendly recognize it. Before that, we all agree using our personal information. And that’s bad.

So we note that information is important and we must take care of it.

For example by not giving a single company that much information. But there is more. It’s power. Facebook not only has our personal information, it has the power of more than one billion users. And there is almost no business competition.

So we note that using one centralized service supports monopolism and helps aggregating information.

So far, we’ve learned about the disadvantages of an information collecting centralized service. Now let’s have a look at why WhatsApp has so many users despite there are a lot of alternatives. When we read about apps having the potential to compete with WhatsApp, we always stumble upon the word usability. One of the main reason why WhatsApp is so successful, is because everyone can use it. You do not even have to register (explicitly). Registering is done almost instantly and implicitly

So we note that providing a real alternative to people, we must make the barrier of using our product very, very low by optimizing its usability. Features like group-chats or the ability to send multimedia files would increase the acceptance too. Platform support is also very important.

Let’s recap that. A chat system should protect our information. This can be done partially by using the right encryption. Partially, because meta data can be very difficult to encrypt. That means, data between two chatters can be strongly encrypted, but it’s hard to encrypt the information about who talks to each other (meta data). If we store the whole meta information collection at a single place (or company), we can hide what we are talking but not when, to who, where, how often and so on. For the latter, we must take a look at network topologies first. All communication in WhatsApp or Facebook end up at one server or server-cluster (see figure 1). A better alternative is using multiple independent servers. A decentralized system (see figure 2).

network topology: centralized network

Figure 1: Centralized network topology.

Here, each server can be owned by another person or company. Communication is still possible between them because the Internet is designed that way. Think about email for example. Here we have the freedom of choice which provider we want to use. On top of that, we could use TOR (a network for the anonymization of connection data) to disguise even more of our meta data.

network topology: decentral network

Figure 2: Decentralized network topology.

Another network topology we consider is the peer-to-peer architecture (see figure 3). Skype used to have this before Microsoft took it over. But Skype also fails somewhere else. At first, meta data is centralized. Second, it is owned by is a network for the anonymization of connection data one company (Microsoft). Third, it fails on it’s closed source nature. We cannot control or see what’s going on inside the system.
So we note that using an open source decentralized system is good. Also note that this is where most of the recently discussed alternatives fail completely.

network topology: peer to peer

Figure 3: Peer-to-peer network topology.

Another problem with closed source is the denial of choice. For example the choice of crypto algorithms. In an open system, we can use any end-to-end encryption we want. And we want that choice because weak encryption is not considerable for us. We also want encryption that guarantees us deniability and perfect forward secrecy. Deniability means that nobody can proof that your conversation actually took place. Perfect forward secrecy means that if someone comes into possession of your password or encryption keys, your conversation cannot be decrypted afterwards. So we note that we need a system that allows us to use our own clients and our own encryption. Let’s summarize this. Our chat system must be decentralized, support any client and any end-to-end encryption,
be easy to use and support all available platforms. To make it short here, it already exists. It’s called XMPP and was developed in 1999.

Today I learned: Zuschneiden von SIM-Karten

Nachdem ich vor ein paar Tagen ein neues Smartphone bekam, welches Micro-SIM Karten verwendet, stand ich vor dem Problem nur eine normale (Mini-)SIM Karte zu besitzen. Erfreulicherweise wurde ich darauf aufmerksam gemacht, dass man diese wohl problemlos auf die Größe einer Micro-SIM zuschneiden kann. Zunächst war ich noch etwas skeptisch, aber nach etwas Internet-Recherche entschied ich mich dazu es zu versuchen. Ich war zum Glück im Besitz einer ausländischen Micro-SIM Karte um mit dieser die Größen und Kontakte vergleichen zu können. Ich schnitt meine alte Mini-SIM zunächst mit der Schere in die grobe Form und machte den Feinschliff mit feinem Sandpapier. Und tatsächlich: meine neue Micro-SIM Karte funktioniert ausgezeichnet. Laut diversen Internet-Quellen kostet dies übrigens in Mobilfunkläden je nach Anbieter um die 10-20 Euro. Dieses Geld kann man sich also getrost sparen. Hinweis: manche Mini SIM-Karten kann man wohl auch auf die Größe einer Nano-SIM zuschneiden. Ich würde aber nicht darauf wetten, dass das funktioniert (insbesondere wenn schon die Kontakte größer sind als die Nano-SIM).

Self hosted Dropbox killer with SparkleShare and GitLab

In this article I will give you a short guide how you can host you own dropbox alternative.
For this, I will use SparkleShare and GitLab. SparkleShare is based on Git, Git needs SSH, GitLab needs Ruby.
This is what you need on the Server.
That means you will need your own Server with static IP and root access.
The installation of git, gitlab or the sparkleshare-server is not part of this tutorial, because there are good guides to setup them.
What I will show you here is that you can put them all together to gain a nice self-hosted dropbox alternative.

SparkleShare allone is basically not more than an automation for Git-Repositories. It tracks all changes and commits/pushes/pulls them automatically. It is already cool to host your own dropbox alternative.
It is based on Git and you can even use it for existing repositories or commit, push or pull manually with Git. However, it uses Git-Commit-Messages internally and therefore might not be fully compatible with plain old Git.. That means if you push something manually, the repository will still be unimpaired but a client’s update-function probably won’t work for a manual commit/push.. A later autocommit/push by sparkleshare however worked properly as I tested it.
A detailed cross use of sparkleshare and POG (plain old git) will not be part of this article, but maybe topic of another one :D

Git itself claims to be not very good at handling binary data or big files, therefore sparkleshare is not very good at that too.

You might ask why should I also use GitLab when sparkleshare serves the purpose. The answer is simple:
Dropbox can handle multiple users sharing the same files.. The so called shared folders.
Sparkeshare and Git alone won’t help you here.

Say you have tree users: Al Bud and Cally. Al, Bud and Cally share the folder Bundies. Al and Bud share the folder TV.
You would then need something to add collaborative structures to your repositories, a here GitLab calls into play.
If you are familiar with GitHub, you won’t have trouble using GitLab.
Here you can define multiple users and repositories where multiple users can work together. Say Al, Bud and Cally are all working on the Repository Bundies and Al and Bud are working on TV. This gives us the shared folders of dropbox, or at least a hacked version of it.

SparkleShare keeps all repositories, that should be tracked, in the folder /home/USER/SparkleShare/.
This is well known from dropbox. However, if Al decides to keep his repository TV not as subfolder of SparkeShare, he can use symbolic links (tested with Linux). Let’s say he has the repository TV in /home/Al/Documents/TV
then he just has to create a symlink in /home/USER/SparkleShare/:

ln -s /home/Al/SparkleShare/TV /home/Al/Documents/TV

SparkeShare does not use any configfiles here, all folders (or links to folders) in /home/USER/SparkleShare/ will be tracked by sparkleshare.

SparkleShare provides a Client for Windows, Linux and Mac.

If you are not willing to setup GitLab, a nice feature in Sparkleshare is that you can also use GitHub, Butbucket and others and sync those repositories.

The Importance of Open Source

Some time ago, Phil – who was recently interviewed by Michael – and I were asked to write a short statement about Open Source Software for the Charité NeuroScience Newsletter. The newsletter of June 2012 focuses on the topic of Open Access, which is strongly related to the idea of Open Source.

Open source is not about giving away software for free, but about freedom and progress. The freedom to use software for any purpose increases productivity immensely, while severe restrictions strongly curtail any such ambitions. Limiting the use of software also limits its potential, whereas lifting the restrictions allows people to experiment and encourages creativity.

With access to the source, it is possible to study, learn from, reuse and improve upon code without spending valuable time reinventing the wheel. As a side effect, open source often leads to higher quality software through the contribution of more people with a varied skill set.

Open source is about sharing knowledge; a concept our civilization would not have reached its current level of technology without. The freedom to publish a project incorporating parts of other open source projects encourages the formation of a cycle of give and take, which constitutes a crucial contribution to progress.

As an example, the World Wide Web as we know it, consists almost entirely of servers running open source software, enabling people to communicate and share information easily, quickly, and securely over the entire globe.

Open source software plays a significant role in many fields, improves the lives of many people and is a driving force behind technological and scientific advancement.

Einfacher SMTP-Server zur Aufgabenverarbeitung

Häufig ärgere ich mich über Webanwendungen, die ihren Nutzern Mails schicken, wenn irgendein Ereignis eingetreten ist oder eine Aktion des Users benötigt wird, eine einfache Antwort auf die Mail aber nicht möglich ist. Ein typisches Szenario ist etwa das Bestätigen der Mailadresse, wenn man sich bei einem neuen Dienst registriert: Man gibt seine Mailadresse in ein Online-Formular ein, bekommt eine Aktivierungsmail zugeschickt und muss darin einen Link anklicken, der wiederum zum Webdienst führt und meine Mailadresse bestätigt. Wäre es nicht einfacher, die Mail so wie sie ist an den Absender zurückzuschicken um sie zu bestätigen?

Dies sei nur als ein Beispiel genannt. Beim nicht mehr gepflegten node.js-Modul smtpevent sind auch noch weitere Szenarien aufgeführt: Viele Mailinglists bieten etwa die Möglichkeit, sich über eine Mail an unsubscribe@mailinglist.de davon abzumelden. Bei Github kann man auf einen Issue direkt antworten, indem man die Benachrichtigungsmail einfach beantwortet. Weitere Szenarien sind leicht vorstellbar: Warum soll ich von unterwegs mit dem Handy eine Weboberfläche bemühen, um remote meine Heizung zu steuern, wenn ich schneller eine Mail mit dem Betreff “On” an heating@meinserver.de schicken kann?

Um eine solche Anwendung zu realisieren wird ein SMTP-Server benötigt. Node.js versteht sich sehr gut auf solche Protokolle und der eventbasierte Ansatz ist bei eingehenden Mails sicher auch nicht verkehrt. Und so gibt es bereits eine kleine Zahl an guter SMTP-Server-Implementierungen. Mir ist vor allem der estländische Programmierer Andris Reiman aufgefallen, der für node.js viele Module geschrieben hat, die sich mit dem Versand und Empfang von Mails beschäftigen. So reichen seine beiden Projekte simplesmtp und mailparser, um einen einfachen SMTP-Server aufzusetzen und die Mails und Anhänge zu parsen.

Zuerst bauen wir den SMTP-Server auf:

var simplesmtp = require('simplesmtp');
var MailParser = require('mailparser').MailParser;

var server = simplesmtp.createServer({
  validateSenders: false,
  validateRecipients: false
});

server.on('startData', function(envelope) {
  envelope.mailparser = new MailParser();
  envelope.mailparser.on('end', takeMail);
});

server.on('data', function(envelope, chunk){
  envelope.mailparser.write(chunk);
});

server.on('dataReady', function(envelope, callback){
  envelope.mailparser.end();
  callback();
});

server.listen(25);

Der Code ist relativ selbsterklärend: Bei Eingang einer Mail wird das startData-Event gefeuert, einzelne Datenchunks werden durch den data-Listener bearbeitet, und wenn die Mail vollständig übertragen wurde, feuert dataReady. Der Rahmen envelope wird dabei allen Funktionen übergeben, sodass envelope.mailparser auch in allen Funktionsaufrufen für eine Mail der gleiche ist. So werden bei zwei gleichzeitig eingehenden Mails diese nicht versehentlich vermischt.

Sobald die Mail vollständig übertragen wurde (dataReady), lösen wir mailparser.end() aus, was das Parsen der Mail beginnt. Fehlt noch die Definition, was mit unserer geparsten Mail denn passieren soll:

function takeMail(mail_object) {
    console.log('From:', mail_object.from); //[{address:'sender@example.com',name:'Sender Name'}]
    console.log('Subject:', mail_object.subject); // Hello world!
    console.log('Text body:', mail_object.text); // How are you today?

    // Irgendein Datenbankaufruf o.ä.
}

Hier kann die Mail nun also ausgewertet und so die gewünschte Aktion ausgelöst werden. Das tolle am Mailparser ist die Tatsache, dass Dateianhänge ebenfalls soweit wie möglich geparst werden. So enthält das mail_object auch einen Eintrag attachments, der etwa so aussehen könnte:

attachments = [{
    contentType: 'image/png',
    fileName: 'image.png',
    contentDisposition: 'attachment',
    contentId: '5.1321281380971@localhost',
    transferEncoding: 'base64',
    length: 126,
    generatedFileName: 'image.png',
    checksum: 'e4cef4c6e26037bcf8166905207ea09b',
    content: <Buffer ...>
}];

Attachments-Beispiel von mailparser

So könnte man leicht einen Service wie den von Twitpic einrichten, dass man durch das Senden an eine userspezifische Mailadresse ein Bild hochladen kann.

Wem das ganze zu unsicher scheint, weil ja sonst jeder, der die Mailadresse kennt, Dummheiten anstellen könnte, der sei auf die Serverkonfiguration ganz oben hingewiesen: Werden validateSenders und validateRecipients auf true gesetzt, können Sender und Empfänger in einer eigenen Funktion überprüft und ggf. zurückgewiesen werden. Die simplesmtp-Bibliothek bietet daneben auch noch andere Authorisierungsmechanismen.

Veranstaltungen: Streiflicht + OpenCityCamp 2012

Zwei aktuelle Uni-verwandte Veranstaltungen, bei denen auch IOException.de Autoren kräftig beteiltigt sind:

Streiflicht 2012

Zum einen findet am 25. April der Streiflicht 2012 statt. Jedes Jahr präsentieren dort Studenten der Medieninformatik-Anwendungsfächer die Highlights ihrer umgesetzten Projekte. Die Präsentationen sind immer unterhaltsam aufbereitet, so dass auch Nicht-Informatiker etwas davon haben :-).

Zu der Veranstaltung sind neben Studenten, Professoren und Mitarbeitern natürlich auch alle anderen Interessierten herzlich eingeladen. Die Fachschaft stellt dieses Jahr wieder die Getränkeversorgung sicher, so dass es sicher ein interessanter, unterhaltsamer Abend werden wird.

Am 25. April um 18 Uhr im Hörsaal O-27 H22. Alle weiteren Infos zu den Projekten oder etwa eine Wegbeschreibung findet sich auf der Streiflicht-Seite des Institus für Medieninformatik.

Es gibt außerdem ein passendes Facebook Event zu der Veranstaltung.


OpenCityCamp

Der zweite Veranstaltungshinweis betrifft das OpenCityCamp 2012, das am 12. und 13. Mai stattfindet. Organisiert von der datalove Hochschulgruppe wird es dort an zwei Tagen Vorträge, Sessions und Workshops rund um das Thema “Open Data” geben.

Die Veranstaltung im Barcamp-Stil ist für jeden offen! Jeder ist herzlich eingeladen sich einzubringen — seien es eigene Sessions, Workshops oder Projekte, die ihr schon lange verwirklichen wollt: Hier findet sich die geeignet Plattform!

Die (kostenfreie) Anmeldung ist über occ-ulm.mixxt.de möglich.

Dort ist es auch möglich Sessions, Sessionvorschläge und Hackathonthemen einzutragen.

Analoge Fotografie Teil II (Fotografieren)

Letzte Woche habe ich angefangen über die Analoge Fotografie zu schreiben. Im letzten Artikel ging es ein wenig um die Kamera (eine Nikon FE-2), die ich verwende. Heute möchte ich mich etwas genauer damit befassen, wie man diese Kamera verwendet. Da man es heutzutage fast ausschließlich mit digitalen Kameras zu tun hat, denke ich, dass es ganz interessant ist, sich mal mit einer etwas älteren Technologie zu befassen.

Die Kamera (Fortsetzung)

Auch bei den analogen Fotokameras gibt es natürlich teilweise riesige Unterschiede in den Features, die diese Kameras bieten. Bei meiner Nikon FE-2 handelt es sich um eine Spiegelreflexkamera, die man mit vielen verschiedenen Objektiven mit F-Bajonett verwenden kann. Die Nikon FE-2 war eine der ersten Kameras mit Zeitautomatik, so dass man nicht für jedes Bild komplett alles manuell einstellen muss. Die Kamera kann die Belichtungszeit selbst wählen. Beim Kauf hatte ich mir überlegt, ob ich so etwas überhaupt brauche (die komplett mechanische und manuell einstellbare FM-2 hätte nämlich keine Batterien gebraucht); Im Nachhinein bin ich aber sehr froh über diese Zeitautomatik.

Was muss ich also einstellen? Damit das Bild nicht unter- oder überbelichtet wird, müssen Blende und Belichtungszeit richtig gewählt werden und auch auf die Empfindlichkeit des Films abgestimmt werden. Diese drei Parameter sind die wichtigsten, um überhaupt ein brauchbares Foto zu bekommen. Zusätzlich kann man noch die Brennweite („Zoom“) und die Schärfe regulieren.

Empfindlichkeit

Neuere Analogkameras lesen den Barcode auf den Filmen und erkennen daran die ASA- bzw. ISO-Zahl des Films. Die FE-2 kann das noch nicht. Auf der linken Seite gibt es deshalb dafür ein Einstellrad, mit dem ich die Empfindlichkeit des Films von ISO 12 bis ISO 3200 einstellen kann. Umso höher die Zahl ist, desto empfindlicher ist der Film. Man kommt dann mit insgesamt weniger Licht aus, kann also kürzer belichten oder die Blende weiter zu machen. Die ISO/ASA Skala ist dabei linear. Ein Film mit ISO 200 braucht also für ein gleich helles Bild nur halb so viel Licht, wie ein ISO 100 Film. Ich verwende am liebsten Filme mit ISO 400. Das ist schon recht empfindlich; es ist aber selbst bei Sonne immer noch gut möglich Blende und Belichtungszeit zu variieren. Außerdem werden empfindlichere Filme praktisch nicht mehr verkauft. Das ist nicht ganz richtig, denn letzte Woche habe ich einen hochempfindlichen Film von Kodak gefunden, den ich unbedingt mal probieren möchte. Ich denke in Situationen mit wenig Licht ist dieser Film bestimmt toll zu verwenden.

Man kann übrigens Filme auch für eine höhere Empfindlichkeit belichten, als sie eigentlich haben (also z.B. für einen 400er Film ISO 800 an der Kamera einstellen). Die Bilder sind dann eigentlich unterbelichtet. Das lässt sich aber beim Entwickeln ausgleichen (vermutlich unter Qualitätsverlust; noch nie selber probiert). Das Fotolabor muss das natürlich vorher wissen.

Belichtungszeit

An der Kamera selbst muss ich, wenn ich nicht will, sonst eigentlich nichts mehr einstellen, denn die FE-2 hat, wie schon erwähnt, eine Zeitautomatik, die die Belichtungszeit stufenlos für mich wählen kann.

Wenn ich die Zeitautomatik verwenden möchte, stelle ich das Einstellrad auf der rechten Seite auf „A“. Natürlich kann man die gewünschte Belichtungszeit auch selbst wählen, indem ich sie einfach am entsprechenden Rad einstelle. Die FE-2 kann Belichtungszeiten von einer 1/4000 Sekunde bis zu 8 Sekunden. Außerdem gibt es noch einen Bulb-Modus, in dem so lange belichtet wird, wie der Auslöser gedrückt ist.

Und sollte die Batterie einmal leer sein und kein Ersatz zur Verfügung stehen, dann kann man den Verschluss auch in den rein mechanischen Betrieb versetzen, in dem immer 1/250 Sekunde lang belichtet wird.

Die Belichtungszeit bestimmt, wie lange der Verschluss für die Belichtung geöffnet wird. Damit also auch, wie viel Licht auf den Film trifft und wie hell das Bild letztendlich wird. Wenn man lange Belichtungszeiten verwendet, dann wird es natürlich auch schwieriger das Bild nicht zu verwackeln.

Blende

Die Blende wird nicht an der Kamera eingestellt, sondern am Objektiv. Daher ist es theoretisch auch denkbar, dass das Objektiv nur eine Blendenstufe hat, und man hier gar nichts einstellen kann. Allerdings kenne ich keine solchen Objektive. Mein Lieblingsobjektiv ist ein AF NIKKOR 50mm mit Blendenstufen von f1.4 bis f16. Was bedeuten diese Zahlen? Ganz grob: Umso größer die Zahl ist, desto weiter schließt sich die Blende während des Belichtens. Desto weniger Licht hat man zur Verfügung. Desto mehr Schärfentiefe erhält man (das Bild wird insgesamt schärfer).

Normalerweise ist, wenn man nicht gerade ein Foto macht, die Blende des Objektives ganz geöffnet, damit man durch den Sucher alles möglichst hell sieht. Dadurch kann man aber im Sucher nicht erkennen, wie scharf das Bild letztendlich werden wird. Dazu hat die FE-2 (wie fast alle Spiegelreflexkameras) einen Abblendknopf, der die Blende auf den eingestellten Wert schließt, so dass man sehen kann, wie sich die Blende auf das Bild auswirken wird.

Brennweite (Zoom)

Die Brennweite wird ebenfalls am Objektiv eingestellt und bestimmt, wie weit in das Bild „hineingezoomt“ wird. Das Ergebnis kann man natürlich sofort im Sucher sehen. Mein Lieblingsobjektiv hat eine Festbrennweite von 50mm, kann also in der Hinsicht nicht verstellt werden.

Schärfe

Als letzter wichtiger Parameter fehlt uns jetzt nur noch die Schärfeneinstellung. Auch die Schärfe wird nicht an der Kamera, sondern am Objektiv eingestellt. Normalerweise steht auf dem Objektiv drauf, für welchen Abstand von Kamera und Motiv die Schärfe eingestellt ist. Aber meistens stellt man die Schärfe nicht auf einen bestimmten Wert, weil dies zu ungenau wäre, sondern man verwendet verschiedene Hilfsmittel, um die Schärfe auf den gewünschten Punkt im Bild einzustellen.

Die FE-2 hat keine Autofokus-Funktion, wie die meisten heutigen Kameras. Damit man trotzdem möglichst genau scharf stellen kann, hat die Kamera eine Mattscheibe (bzw. Einstellscheibe) eingebaut. Die Einstellscheibe vom Typ K, die in meiner Kamera steckt, hat zum einen einen Schnittbildindikator und zum anderen einen Mikroprismenring zum Scharfstellen.

Belichtungsmesser

Damit man weiß, wie man die Parameter Blende und Belichtungszeit überhaupt wählen kann, muss man natürlich erst einmal wissen, wie viel Licht das Motiv überhaupt hergibt, also wie hell es ist. Dazu benötigt man einen Belichtungsmesser. Die Nikon FE-2 hat einen eingebauten Belichtungsmesser, der für die eingestellte Blende und abhängig von der Filmempfindlichkeit anzeigt, auf welche Belichtungszeit die Kamera eingestellt werden sollte (bei der Zeitautomatik wird die Zeit natürlich gleich automatisch eingestellt).

Kreatives Fotografieren

So. Bisher habe ich blos über die möglichen Einstellungen geschrieben. Was kann ich denn jetzt machen, um ein Bild zu bekommen, wie ich es haben möchte? Wichtig ist, dass Filmempfindlichkeit, Blende und Belichtungszeit aufeinander abgestimmt sind. Die Empfindlichkeit eines Films kann ich natürlich für einzelne Bilder nicht verändern. Daher bleiben mir Blende und Zeit, die ich verstellen kann. Umso weiter ich die Blende schließe, desto weniger Licht kommt durch das Objektiv und desto länger muss ich auch belichten. Was bringt mir das? Eine hohe Blendenzahl führt zu mehr Tiefenschärfe. Ich mache allerdings sehr gerne Fotos mit geringer Tiefenschärfe, also weit geöffneter Blende. Ich mag den Effekt, dass damit das Bild meist nur an wenigen Stellen wirklich scharf ist.

Alles Weitere ist der Kreativität des Fotografen überlassen. Wohin man den Fokus legt und mit welchen Tiefenschärfen, Bewegungsunschärfen und Brennweiten man arbeitet hat viel Auswirkung auf das Bild.

Stay tuned!

Die Kreativität endet bei der analogen Fotografie aber nicht mit dem Druck auf den Auslöser. So, wie man digitale Bilder mit Bildbearbeitungssoftware noch weiter bearbeiten kann, kann man auch mit analogen Fotos noch nach der Aufnahme viel mit dem Bild anstellen – und zwar im Fotolabor. Wer seine Bilder entwickeln lässt verschenkt ziemlich viel Potential. Das ist auch einer der Gründe, warum ich analog ausschließlich in schwarz-weiß fotografiere. Ich möchte selber entwickeln. Selber entwickeln geht zwar auch mit Farbfilmen, das ist aber deutlich komplizierter als bei Schwarz-Weiß-Filmen. Im kommenden dritten Teil dieser kleinen Blogartikel-Reihe möchte ich ein bisschen auf das Entwickeln von Filmen eingehen.

Bis dann,
matou

Analoge Fotografie Teil I (Kamera)

Seit 2007 fotografiere ich mit einer digitalen Spiegelreflexkamera. Die digitale Fotografie bietet einem jede Menge Möglichkeiten. Doch im letzten Jahr hatte ich immer wieder das Bedürfnis, diese Komplexität ein wenig hinter mir zu lassen und bewusster Bilder zu machen. Die analoge Fotografie unterstützt dieses bewusste Fotografieren in vielerlei Hinsicht. Eine alte, mechanische, analoge Kamera ist im vergleich zu einer modernen, digitalen Kamera deutlich simpler. Viele Parameter, welche ich bei der digitalen Fotografie wählen kann, fallen bei der analogen Fotografie weg. Das ermöglicht es mir deutlich einfacher die Kamera und ihre Möglichkeiten vollständig zu kennen, bzw. kennen zu lernen. Zudem bin ich je nach Kamera gezwungen viele Einstellungen manuell, und damit bewusst, zu wählen, da sonst unbrauchbare Bilder das Ergebnis sind. Schließlich waren Kameras nicht schon immer voll automatisch. Auf diese Weise mache ich mir mehr Gedanken darüber, was und wie ich da eigentlich fotografiere, anstatt einfach nur mit einem einfachen Tastendruck hunderte von Fotos zu schießen.

Die Kamera

Im Sommer 2011 habe ich mir dann eine Nikon FE-2 mitsamt eines 200mm Objektivs gekauft. Ein 50mm Objektiv hatte ich bereits, da auch meine digitale Kamera eine Nikon ist. Meine anderen Objektive kann ich mit der FE-2 leider nicht verwenden, weil die meisten modernen Objektive keine mechanische Verbindung mehr zur Blende haben.

Die Nikon FE-2 von matou

Die Nikon FE-2 von matou

Die FE-2 ist nicht rein mechanisch. Sie besitzt z.B. einen elektronischen Verschluss. Im Gegensatz zu Nikons ersten FM-Kameras, hat die FE-2 außerdem eine Zeitautomatik, was doch deutlich bequemer ist, als alle Parameter selbst einstellen zu müssen.

Natürlich gibt es noch unzählige andere analoge Kameras. Mit mehr oder weniger Features kann man so ziemlich alles bekommen, was man sich vorstellen kann. Michi, ebenfalls Autor hier auf IOException.de, fotografiert zum Beispiel gelegentlich mit einer YASHICA Mat-124, die anstatt eines Kleinbildfilms einen Rollfilm verwendet.

Die YASHICA Mat-124 G Kamera

YASHICA Mat-124 G

 

Fortsetzung folgt

In weiteren Artikeln werde ich bald schreiben, wie man denn mit so einer Kamera fotografiert und wie man vom belichteten Film zu einem Foto-Abzug kommt.

 

Bis bald,
matou

IOException.de bei Trackback

Verganenen Samstag wurde ich von Marcus Richter in seiner Sendung Trackback zu IOException.de interviewt.

Die Website zur Trackback-Sendung findet ihr da: http://trackback.fritz.de/2012/02/11/trb-265-acta-schwarzer-marz-urheberrecht-pinterest-ioexception/

Das Interview gibt es an der Stelle 49:42.

Histogramplot in Sage/Matplotlib

Wer Matlab mag wird Sage lieben, insbesondere wenn die Ausgangsdaten sowieso in Python vorliegen. Ein einfaches Histogram für Ganzzahlen lässt sich wie folgt realisieren:


from sage.all import *
import numpy
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab


def plot_hist(subplot,name,x_data,x_var,y_var,b_width):

  #create array
  n_array = numpy.array(x_data)

  #labels
  subplot.set_xlabel('variable '+x_var+' [min = '+str(n_array.min())+', max='+str(n_array.max())+' ]')
  subplot.set_ylabel(y_var)


  
  #create bins  
  mmin = n_array.min()
  mmax = n_array.max()
  b = numpy.arange(mmin-(1.0/2),mmax+1+(1.0/2))

  #set ticks
  subplot.set_xticks(b)

  #hist
  n, bins, patches = subplot.hist(x_data,bins=b, rwidth=b_width)
  
  #title
  subplot.set_title(r'Histogram of '+x_var)

Benutzt wird das Ganze dann mittels:

f = matplotlib.pyplot.figure()
a = f.add_subplot(111)

plot_utils.plot_hist(a,'Decimals', [1,1,1,2,2,3,3,3,4,4,5,5,6,6,7,7],'decimal','# of decimals',0.8)


matplotlib.pyplot.savefig('plot.png')

ioexception.de

Benjamin Erb [] studiert seit 2006 Medieninformatik und interessiert sich insbesondere für Java, Web-Technologien, Ubiquitous Computing, Cloud Computing, verteilte Systeme und Informationsdesign.


Raimar Wagner studiert seit 2005 Informatik mit Anwendungsfach Medizin und interessiert sich für C++ stl, boost & Qt Programmierung, Scientific Visualization, Computer Vision und parallele Rechenkonzepte.


David Langer studiert seit 2006 Medieninformatik und interessiert sich für Web-Entwicklung, jQuery, Business Process Management und Java.


Sebastian Schimmel studiert seit 2006 Informatik mit Anwendungsfach Medizin und interessiert sich für hardwarenahe Aspekte, Robotik, webOs, C/C++ und UNIX/Linux.


Timo Müller studiert seit 2006 Medieninformatik. Er interessiert sich allen voran für Mobile and Ubiquitous Computing, systemnahe Enwticklung und verteilte Systeme, sowie Computer Vision.


Achim Strauß studiert seit 2006 Medieninformatik. Seine Interessen liegen in Themen der Mensch-Computer Interaktion sowie Webentwicklung und UNIX/Linux.


Tobias Schlecht studiert seit 2006 Medieninformatik und interessiert sich vor allem für Software Engineering, Model Driven Architecture, Requirements Engineering, Usability Engineering, Web-Technologien, UML2 und Java.


Fabian Groh studiert seit 2006 Medieninformatik. Seine Interessengebiete sind Computer Graphics, Computer Vision, Computational Photography sowie Ubiquitos Computing.


Matthias Matousek studiert seit 2007 Medieninformatik und interessiert sich besonders für Skriptsprachen, Echtzeitsysteme und Kommunikation.


Michael Müller [] studiert seit 2009 Medieninformatik. Er interessiert sich vor allem für Web-Technologien, Ubiquitous Computing, User-Interfaces, UNIX und Creative Coding.


Falco Nogatz [] studiert seit 2010 Informatik mit Anwendungsfach Mathematik. Er interessiert sich für Web-Technologien, Programmierparadigmen und theoretische Grundlagen.

Archiv

Februar 2015
M D M D F S S
« Mrz    
 1
2345678
9101112131415
16171819202122
232425262728