Aji ist online!

Sabines neuestes Projekt ist online:

http://aji-teekunst.com/aji-tee/

Bei Aji gibt es ausgesuchte Japanische Tees, die eines gemeinsam haben: Sie sind alle von Teeanbauern produziert, die sich mit Leidenschaft dem ökologischen Teeanbau verschrieben haben. In Japan (noch?) eine absolute Seltenheit.

Demnächst werden wir einige dieser Teeanbauer kennen lernen, mehr dann (von der Fotoseite) hier, oder eben im http://aji-teekunst.com/journal/ .

AstroBuild: Die Anwendungsmöglichkeiten sind unbegrenzt!

https://github.com/lhartikk/AstroBuild

„Jupiter und Saturn in Konjunktion? Ganz schlecht für’s Drucken.“ Also lieber eine Fehlermeldung ausgeben, und Drucken erst wieder 2 Wochen später erlauben.

„Mars steht bei Venus“?  Ui, da sind Anwender bestimmt abgelenkt, da sollte man bei jedem Versuch, ‚was ein zu geben, eine Fehlermeldung ausgeben 😛

Herrlich!

Galerie

Einige Beispiele von der Spotmatic-Kamera

Ich habe den ersten Film aus meiner Pentax Spotmatic gezogen und entwickelt. Ich mag die Kamera…

Und das Tetenal Ultrafin liquid harmoniert offensichtlich auch ganz gut mit meinen Fomapan-Filmen 🙂

Pentacon Electric 1.8 50mm an EOS 5D Mk 2

Ein neues Spielzeug ist da:
Ich hab‘ mir auf EBay ein Pentacon 1.8/50 ersteigert, plus den passenden M42 auf Canon EF – Adaptergeschossen.

Schön: Auch wenn man natürlich nur manuell fokussieren kann: Der rote „Fokus sitzt“-Punkt leuchtet im Sucher auf, wenn man auf ein Objekt scharf gestellt hat. Der Adapter funktioniert echt prima.

Optisch: Ja, die konnten in Jena echt Objektive bauen. Okay, zum Pixel-Peeping taugen die Objektive nicht, waren irgendwie nicht auf die 24 Megapixel einer EOS 5D II gebaut. Aber ein so cremiges Bokeh habe ich lange nicht mehr gesehen…

Mein erster selbstentwickelter Film

Gerstern hab‘ ich es getan: Meinen ersten 35mm – Schwarzweißfilm selbst entwickelt.

fotoentwicklung-1

Die Filmdose ist offen

Viel Unbekanntes:

1.) Ich hab‘ natürlich den Film so weit zurück gespult, dass er nicht mehr aus der Kapsel heraus geguckt hat. Also: Wie kriegt man das Ding jetzt aus der Kapsel in die Entwicklerspule? Und das noch im Wechselsack – muss ja bei totaler Dunkelheit erfolgen?

Das habe ich dann mit einem handelsüblichen Flaschenöffner erledigt bekommen, einfach die Kapsel im Wechselsack (So was hier) mit dem Öffner aufgehebelt, ein bischen den Anfang außen gesucht, und dann das abgeschrägte Ende mit einer Schere abgeschnitten.
Ich würde beim Wechselsack dringend wieder den Großen nehmen (Kaiser hat auch ’nen Kleinen), denn es müssen der Film, der Flaschenöffner, eine Schere, die Filmspule mit Spindel, der Entwicklungstank samt Verschluss und eine Schere da rein – und arbeiten können muss man auch noch drin…

Also, alles fein hin bekommen: Die Filmkapsel mit Flaschenöffner aufgehebelt, die abgeschrägte Einfädellasche mit der Schere abgeschnitten, damit’s sauber in die Spule läuft, nochmal kontrolliert, dass am Anfang des Films Stege bei den Führungslöchern stehen, und keine Ecken vorstehen (was in der Spule haken soll), und aufgespult. Ging sehr glatt, nur ein mal hatte ich einen kleinen Haker.

Die Entwicklungsdose verschlossen, und ab an’s Licht. Dann ging es mit den Fragen weiter:

2.) Hab‘ mir bei Fotoimpex das Adonal besorgt, da ich gelesen hatte, AGFA Rodinal solle ein guter Universalentwickler sein. Fotografiert hatte ich mit einem Agfa APX 400 – unwissend, ob das der „Alte“ oder „Neue“ ist. Der „Alte“ soll in Rodinal 1+25er (1 Teil Entwicker, 25 Teile Wasser) 7 Minuten entwickelt werden, der „Neue“  10. Oder 11:30. Je nachdem, wo man liest…

Und dann gibt es noch die Diskussion, ob man alle 30 Sekunden die Entwicklerdose schwenken soll, der alle 15 – oder permanent?

Ich habe mich dafür entschieden, dass ich sicher einen neuen Film habe. Und für 10 Minuten Entwicklung, die ersten 30 Sekunden permanent bewegen, anschließend 4,5 Minuten lang alle 15 Sekunden 1x schwenken, anschließend noch 5 Minuten alle 30 Sekunden 3x schwenken.

Als guten Tip habe ich gelesen, dass man etwas mehr Fixierer ansetzen soll, als man braucht (meine Dose braucht für einen Film 300ml; also habe ich ca 330 angesetzt), und die abgeschnittene Einfädellasche aufheben soll – denn: Wenn man etwas Fixierer im Anrührgefäß lässt, und dort den abgeschnittenen Schnipsel -auch ohne Entwicklung- außerhalb der Entwicklungsdose drin ‚fixiert‘, sieht man, wann dieser Schnipsel von der trüben, belichteten Form in die klare, fixierte Form über geht, die sogenannte „Klärzeit“. Man soll den Film dann noch einmal so lange fixieren, und dann spülen.

Alles das habe vorbereitet, und dann den Entwickler in die Dose gekippt. Anschließend 30 Sekunden bewegt, und anschließend etwas unter die Dose geklopft, dass sich keine Luftblasen auf dem Film fest setzen. Danach bin ich wie oben vorgegangen.

Mit meinem Fixierer hat es ca 3:30 gedauert, bis der Einführschnipsel klar wurde – also habe ich den Film insgesamt 7 Minuten fixiert. Danach 8-9 mal gespült (Wasser ‚rein, 5x Schwenken, Wasser raus) und anschließend noch einmal mit destilliertem Wasser und Netzmittel gespült. Alle Schritte vorher hatte ich mit normalem, 20°C warmen Leitungswasser durchgeführt.

Das Ergebnis sieht ganz gut aus:

Negativ von Ernst August
Ernst August als Negativ

 

Zum Trocknen musste einfach die Dusche mit Wäscheklammern her halten.

Film in der Dusche
Der Film hängt in der Dusche

 

Das finalte Endergebnis kann ich noch nicht ganz beurteilen, dafür brauche ich den Filmscanner – und der ist noch im Post-Lieferauto. Hier ein per Canon EOS 400D fotografiertes und per Photoshop invertiertes Bild:

Invertierter Negativfilm
Positiv per Photoshop

BigDecimal, toString, Locale und Präzision

Also, hierfür gehöre ich eigentlich in die siebte Programmiererhölle.Aaaaber: BigDecimal, Copy & Paste aus einem JTable und Locales – bei Erhalt voller Präzision (Deswegen kein NumberFormat… ) sind echt nicht schön, und zwingen mich zu dieser fiesen Maßnahme.Hat jemand eine bessere Idee?

/**
* author Brockhaus
*
since 2.2.1
*/
public class LocalizedBigDecimal extends BigDecimal {

static final char sepCharLocale = ((DecimalFormat)DecimalFormat.getInstance()).getDecimalFormatSymbols().getDecimalSeparator();
static final char groupCharLocale = ((DecimalFormat)DecimalFormat.getInstance()).getDecimalFormatSymbols().getGroupingSeparator();

static final char sepCharUS = ((DecimalFormat)DecimalFormat.getInstance(Locale.US)).getDecimalFormatSymbols().getDecimalSeparator();
static final char groupCharUS = ((DecimalFormat)DecimalFormat.getInstance(Locale.US)).getDecimalFormatSymbols().getGroupingSeparator();

/**
* param val the number as string in the current locale
*
throws ParseException
*/
public LocalizedBigDecimal(String val) throws ParseException {
super(val.replace(sepCharLocale,’\n‘).replace(groupCharLocale,’\t‘).replace(‚\t‘, groupCharUS).replace(‚\n‘, sepCharUS));

}

public String toString(){
return super.toString().replace(sepCharUS,’\n‘).replace(groupCharUS,’\t‘).replace(‚\t‘,groupCharLocale).replace(‚\n‘, sepCharLocale);
}

}

Eclipse und „Restricted Access“ auf rt.jar

Von: http://www.digizol.com/2008/09/eclipse-access-restriction-on-library.html

Wenn Eclipse jault, dass eine Klasse nicht im Zugriff liegt (access restriction on rt.jar), kann man die Fehlermeldung wie folgt auf eine Warnung reduzieren:

„Preferences“ > „Java“ > „Compiler“ > „Errors/Warnings“ > „Deprecated and restricted API“ > „Forbidden references (access rule)“ auf „Warning“ setzen.

Kein schöner Stil, aber hilft manchmal, Fremdcode zu kompilieren (oder -in meinem Fall- Zugriff auf sun.awt.image.ToolkitImage zu bekommen, um erheblich mehr Performance in Bildbearbeitung zu bringen…).

Hat mich etwas Forschungsarbeit gekostet, deswegen hier dokumentiert.

SQLServer Substring und Oracle Substr

Ich dachte ja eigentlich, dass, wenn man ein SQL-Skript aus einer Oracle-Anwendung auf den SQLServer migriert, man nur das „substr“ durch „substring“ ersetzen muss.

Klappt fast immer. Nur, wenn man den <startindex> von substr(‚text‘,<startindex>,<länge>) kleiner als 1 wählt (z.B.) substr(„abcdefg“,0,2) bekommt man bei Oracle „ab“ – beim Sqlserver aber nur „a“.

Grund: Der Sqlserver liefert *immer* einen String der Länge <startindex>+<länge>-1 (oder null, wenn das kleiner als 0 werden sollte). Oracle liefert immer einen String der Länge <länge>.

Quellen:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions162.htm
http://msdn.microsoft.com/de-de/library/ms187748.aspx