Archiv für die Kategorie ‘Coding’

Adressbuch in Leopard.

… ist ein Rückschritt. So sieht ein Datumsfeld während des Editierens in Leopard aus:

Adressbuch in Leopard

Als erstes mal sieht es verschoben und einfach nicht gut aus. Oben ist zuviel Platz, der für nichts da ist. Zweitens kann man nichts mehr aus der Zwischenablage hineinkopieren.
Ein ziemlicher Usability-Rückschritt: An stelle des intelligenten Eingabefeld, das man mit allem füttern konnte (inklusive „morgen“, „heute“ etc.) ist jetzt ein dummes restriktives Feld getreten, was mich nur nervt. Bääh Apple!

(Ein Bild des alten Datumsfeldes konnte ich leider nicht auftreiben)

Content-Aware Image Resizing

Content-Aware Image Resizing

Ich bin gerade über ein sehr interessantes Paper gestolpert (in einem Mac-Theming-Forum :D – keine Ahnung wie das da reinkam). Es dreht sich darum, dass bei Webseiten Text bereits von der Breite abhängig neugesetzt und angepasst wird – also die Zeilen beispielsweise kürzer werden, dafür der gesamte Text länger. Das könnt ihr auch auf dieser Seite sehen, wenn ihr das Fenster eures Browsers einfach mal kleiner zieht. Euch wird auch auffallen, dass Bilder dabei stören, denn diese können nicht so passend verkleinert werden. Es gibt bereits Techniken die das können, aber dort verlieren die Bilder entweder ihren Sinn, weil das Wichtigste rausfällt oder sind verzerrt.

Und genau hier setzten Shai Avidan und Ariel Shamir an: Die beiden haben einen Algorithmus entwickelt, der Bilder so skaliert, dass der Inhalt bewahrt bleibt! In dem zum Paper gehörenden Video wird das wirklich gut gezeigt. Einer der beiden Entwickler wurde auch gleich bei Adobe unter Vertrag genommen – es ist also zu hoffen, dass diese Funktion bald in einem Photoshop in eurer Nähe zur Verfügung steht!

Processing + Textmate

Zwei tolle Dinge haben heute auf meinem Mac zusammengefunden. Zum einen Textmate, der beste Editor zum Proggen, Coden und HTML’en (wer kennt dafür ein Wort?) und zum anderen Processing, eine Java-Umgebung in der man schnell Animationen hinzaubern kann.

Fabian und ich machen mit Processing gerade unser zweites Projekt in “Grundlagen der Gestaltung 2″ bei dem es um ein auf dem Computer ausführbares Physikexperiment geht und sind total zufrieden damit. Es liefert beispielsweise schon direkt einen Doublebuffer mit und das beste sind die Transformationsmatrizen, mit denen man Objekte verschieben, drehen und skalieren kann. Insbesondere das Drehen ist sehr praktisch bei unserem Projekt, ein Pendel. So brauchen wir keine großen Berechnungen um den Körper am Ende des Pendels darzustellen, sondern das machen die Matrizen für uns. Hier mal ein Beispiel:

Pendel

Und der Code (nur Pendelgewicht):

/* Vorberechnungen: posX und posY sind gegeben,
der Ankerpunnkt hat die Koordinaten (400,225) */
translate(posX,posY);
float winkel;
if (posX-400 >= 0)
  winkel = (float)Math.atan((posY-225)/(posX-400))-PI/2.0;
else
  winkel = (float)Math.atan((posY-225)/(posX-400))+PI/2.0;
rotate(winkel);
noStroke();
fill(0);

// Gewicht zeichnen
beginShape();
  vertex(-10, 0);
  vertex(10, 0);
  vertex(20, 30);
  vertex(-20, 30);
endShape();
resetMatrix();

Wie man sehen kann, brauche ich mich nicht um die genauen Koordinaten, wie sie dann auf dem Bildschirm sind, zu kümmern. Sehr praktische Sache, besonders wenn man nicht so auf guten Fuße mit Mathe steht ;)

Ja weswegen ich hier eigentlich den Artikel geschrieben habe: Ich habe heute ein Processing-Bundle (Das sind die Plugins für Textmate) gefunden, herunterzuladen zum Beispiel über GetBundle. Nach der Installation des GetBundles gibt es im Bundle-Menü den entsprechenden neuen Eintrag, unter dem man dann “Install Bundle” findet. Dort dann nur noch “Pocessing” auswählen.

Ui, jetzt ist der Post doch länger und informativer (hoffentlich!) geworden als ich dachte. Als nächstes werde ich wohl mal jQuery vorstellen und da ein paar Beispiele zeigen.