Main

Apple & Mac Archives

27.11.07

Leopard Tech Talk Summary

My unedited notes from the Leopard Tech Talk at the Hilton Hotel Düsseldorf today.
As I’m not a Cocoa Developer with in-depth knowledge, I just wrote down some interesting points for me to get an impression of all the technologies available in Leopard and Mac OS X in general. For instance, I didn’t note any in-depth code examples, or all the new features of the Xcode tools.

1st Block

(Speaker: Paul Burford)

Resolution Independence

  • remove any resolution-dependend code
  • use Quartz Debug to increase resolution

Spotlight

  • need plug-in for own filetypes
  • automatic menu indexing in leopard
  • Spotlight runs with user-rights

64-Bit

  • 32- and 64-Bit applications coexist
  • Java 1.6 will support 64-Bit (on Intel) as well as Cocoa

Core Animation

  • originally developed for devices like the iPhone
  • not an animation engine
  • adds realism and valuable feedback to the UI
  • setup and forget about it (really easy to add to an existing application)

Time Machine

  • Backing up to a network-harddrive will be back in the future (they found a bug short before releasing Leopard)
  • you’re able to roll back to a previous state (before an OS-Upgrade for instance)
  • tell TM what files (of your application) shouldn’t be backed up
  • .tmp files are never backed up
  • backups are indexed by Spotlight
  • backs up forever until you run out of diskspace
  • so far no compression of backups

Dashboard

  • Widgets now execute in one process

Apple Script

  • Bridges for Python and Ruby

Objective-C 2.0

  • Garbage Collection
    • Build Settings -> Enable Garbage Collection
    • much more readable code
    • less code to maintain …
    • use -finalize instead of -dealloc
    • not available in Tiger

  • Properties

    • shortcut to get getter- and setter methods
    • @property NSString *name; -> creates these methods for you (yeah, really ruby-like ;-) )

Core Animation

(Speaker: Paul Burford)

Architecture

  • based on OpenGL
  • Access to all other graphic libraries (Core IMage, Quicktime, Quartz)

Cocoa Slides

  • Demo app
  • No blocking of UI (runs in a seperate thread)

  • implicit animation

  • you don’t have the app to tell it “do this animation now”
  • really easy to add to an existing app
  • set animation method (optional)
  • set duration

Overview

  • enhance the user experience
  • create meaningful motions that provide live feedback
  • examples: cover flow, moving items to dock, front row…
  • don’t confuse the user
  • don’t add constant motion
  • don’t add meaningless motion
  • only Objective-C (no Java support)
  • lots of layer properties to style your layer
  • layers are really lightweight (because originally designed for devices like iPhones)
  • your mac can handle thousands of layers flawlessly

Implicit Animations

  • superclass CAAnimation

    • CAPropertyAnimation
      • CABasicAnimation
      • CAKeyframeAnimation

    • CATransition
    • CAAnimationGroup

  • Built-in animation for grid views, scroll views, toll bars…

Spotlight & Quicklook

(Speaker: Paul Burford)

Spotlight

  • preview content in searches
  • new syntax
  • Spotlight plug-ins
    • declare set of handled file formats
    • start with spotlight plug-in template in xcode
    • edit info.plist

Early lunch break at 11:45h (the beamer went out of order)

Lunch was really great: A lot of nice Hilton-worthy food! Hm….

Spotlight (continued)

  • Spotlight for Help
  • Works for Cocoa and Carbon Apps

Quick Look

  • Preview vs. Thumbnails
  • Preview really usefull in cover flow view
  • thumbnail: low-res image, static image
  • preview: feihtful representation of your document, richer format (PDF, rtf etc.)
  • how to create previews
    • Preview saved as any native Quick Look type
    • pregenerate (at save time) or
    • create on demand (using a quicklook plug-in)

  • QL-Plugins are quite the same Spotlight-plugins (if you know one, you should be able to code the other)

Leopard Tech Talk

Xcode 3.0 and Interface Builder 3.0

(Speaker: Alberto Araoz)

Xcode 3.0

  • Repositroy-support (subversion etc.)
  • faster
  • code folding
  • code focus
  • improved syntax coloring

…lunch is taking its toll…

Interface Builder 3.0

*zZzzzzzzzzzzzzzzzz*

64-Bit Development in Leopard

(Speaker: Alberto Araoz)

*zZzzzzzzzzzzzzzzz*

Image Processing & Manipulation in Leopard

(Speaker: again Paul Burford)

Image I/O

  • 1 API for all different file formats and operations
  • preservs metadata (EXIF, Tiff etc.)
  • RAW support
  • floating point support
  • Floating POINT HDR Images
  • Thumbnails: 3 choices
    • generic OS thumb picture
    • small preview (rought sketched real content)
    • bigger preview (exact data thumb)
    • everything is stored in 32-bit floating point numbers

ImageKit

  • Components
    • Viewer
    • Edit Panel
    • Browser (pictures, movies, quick looks)
    • Picture Taker (use built-in camera, screenshot)
    • Slideshow
    • Others

  • New Panels for Core Image filters, so you don’t have to built your own for accessing the filters

Core Image

  • New in Leopard:
    • Adjusting RAW Images
    • Core IMage Filters do the work (every step configurable)

Unofficial stuff (said after finishing event)

  • Apple didn’t ship an iPhone SDK, simply because it was not ready
  • The first iPhone software was really ready just in time, with many processes running as root user
  • iPhone SDK next february

18.11.07

Web Inspector in Safari 3

Today I upgraded my Mac OS X Tiger version to 10.4.11. Included in this update is the new version of Apple's web-browser Safari.
One of the most useful new features, when it comes to web development, is definitely the new web inspector!
It is not activated by default, but entering this line to the terminal will enable it:

defaults write com.apple.Safari WebKitDeveloperExtras -bool true

Now you can right click and choose "Inspect Element" to open the web inspector.

But it gets even better: enter the following line to the terminal and you get a complete new menu point "Debug".

defaults write com.apple.Safari IncludeDebugMenu 1

Great!
(After entering these commands in the terminal, you'll have to restart safari to see the changes)

(via Pimp your mac)

07.11.07

Mac OS X Leopard Tech Talk

Ich habe grade die Bestätigung für meine Teilnahme am "Mac OS X Leopard Tech Talk" bekommen. Der findet am 27.11. im Düsseldorfer Hilton Hotel statt. Hehe...

Naja, ich habe zwar weder Leopard installiert (bis jetzt), noch bin ich wirklich ein Mac-Developer (ich habe nur mal mit Image-Units/Core Image rumgespielt), aber uninteressant wird das bestimmt nicht. Da die Teilnahme nichts kostet, dachte ich, nehme ich dieses Event doch mal mit.

Man kann sich immer noch registrieren, und zwar hier: http://developer.apple.com/events/techtalks/europe.html

26.10.07

Ruby und Rails in Leopard

Eine übersichtliche Liste, was Leopard so alles mit sich bringt:

http://trac.macosforge.org/projects/ruby/wiki/WhatsNewInLeopard

(via RubyInside)

23.10.07

Apache 2 auf MacOSX (Tiger) installieren

Nachdem ich den Apache2 Webserver auf meinen Rechner installiert habe, möchte ich hier kurz meine Arbeitsschritte festhalten.

Zuerst sollte man MacPorts installieren und darüber dann den Apache2. Das geht dann ganz einfach im Terminal:

sudo port install apache2

Dabei ist bei mir allerdings ein Problem aufgetreten: die Bibliothek db44 konnte nicht installiert werden. Wer ähnliche Probleme hat, sollte sich folgendes mal angucken: http://alistairisrael.wordpress.com/2007/09/18/building-db44-using-macports/
Bei mir hat das geholfen.

Jedenfalls sollte der apache2 nun unter /opt/local/apache2 installiert sein. Unter dem bin-Verzeichnis sollte man nun den Webserver aufrufen können:

/opt/local/apache2/bin/apachectl -v

Sollte nun die aktuelle Version angezeigt werden, ist bisher alles richtig gelaufen.

Um den Webserver nun auch über die Systemeinstellungen starten und beenden zu können, müssen noch folgende Sachen erledigt werden:

  1. Personal Web Sharing in den Systemeinstellungen beenden
  2. ins Verzeichnis /usr/sbin wechseln und folgendes eingeben:

    mv apachectl apachectl-1.3
    
  3. folgenden Symlink erstellen

    ln -s /opt/local/apache2/bin/apachectl /usr/sbin/apachectl
    
  4. httpd.conf.sample in httpd.conf umbenennen

    mv /opt/local/apache2/conf/httpd.conf.sample /opt/local/apache2/conf/httpd.conf
    
  5. diese Datei dann auch bearbeiten und folgende Zeilen einfügen

    PidFile "/private/var/run/httpd.pid"
    

    sowie DocumentRoot und Directory anpassen:

    DocumentRoot "/Library/WebServer/Documents"
    <Directory "/Library/WebServer/Documents">
    

Wenn jetzt in den Systemeinstellungen Personal Web Sharing wieder aktiviert wird, sollte nun der Apache 2 anstelle des Apache 1.3 gestartet werden und man sollte auch wie gewohnt auf seine Webprojekte über http://localhost/~UserName/ zugreifen können.

Um die in MacOSX Tiger mitgelieferte Version des Webservers wieder zu aktivieren, tut man einfach folgendes:

cd /usr/sbin
mv apachectl apachectl-2
mv apachectl-1.3 apachectl

(Meine PHP-Umgebung musste ich danach auch neu installieren, um kompatibel mit der 2er Version von Apache zu sein. Ich hatte PHP von entropy.ch installiert und das mitgelieferte Modul ist entweder kompatibel mit 1.3 oder mit 2.0.)

19.09.07

Das "Wie erstelle ich ein neues EdgeRails Projekt"-Tutorial

Die innoq-Webseite soll auf Ruby On Rails portiert werden. Zu diesem Zweck nutze ich EdgeRails. EdgeRails ist die aktuellste Entwickler-Revision von Rails, die Features enthält, die wahrscheinlich in einer der nächsten Rails-Versionen implementiert werden. Mehr dazu gibt's auch hier: http://wiki.rubyonrails.org/rails/pages/EdgeRails

Unter dieser Adresse findet man zwar auch eine Anleitung dafür, wie man eine bestehende Rails-Anwendung unter EdgeRails laufen lassen kann, aber eben nicht, wie man eine komplett neue EdgeRails-Anwendung erstellt. Und genau das möchte ich hier erläutern. Zumdindest für Unix-Systeme (Mac OSX, Linux etc.). Windows-User müssen die Befehle entsprechend anpassen. Subversion muss installiert sein für dieses Tutorial. Subversion gibt's hier: http://subversion.tigris.org/

Deine aktuelle, systemweite Rails-Installation ist nicht betroffen und wird nicht überschrieben o.Ä. Du kannst weiterhin "normale" Rails-Anwedungen erstellen, wie bisher.

Auf ins Terminal und los geht's:

1. Wechsel in das Verzeichnis in welchem du das Projekt anlegen möchtest. Z.B. so:

cd RubyOnRailsProjects/

2. Die neuste EdgeRails-Version mittels Subversion auschecken und im Ordner rails speichern:

svn co http://dev.rubyonrails.com/svn/rails/trunk rails

Jetzt musst du einen Moment warten, bis der ganze Kram runtergeladen ist.

3. Lege ein neues EdgeRails Projekt an:

ruby rails/railties/bin/rails dein_edge_projekt

Der Projektordner (hier: dein_edge_projekt) wird angelegt inkl. der entsprechenden Struktur und den entsprechenden Dateien.

4. Verschiebe den rails-Ordner nach ./dein_edge_projekt/vendor/

mv rails ./dein_edge_projekt/vendor/

Für rails-Befehle wie z.B. script/generate scaffold article wird dann immer die Dateien unter vendor/rails genommen. Es kommt quasi einem rake:freeze:edge gleich, nur das die Dateien nicht erneut runtergeladen werden.

Das war's!

Viel Spass mit deiner EdgeRails Anwendung.

Für Verbesserungsvorschläge, Lob, Kritik etc. könnt ihr gerne die Kommentarfunktion nutzen. ;-)

05.09.07

RM-Install

rm-install.png

RM-Install, powered by BitRock, is a free, multi-platform, enterprise-class Ruby on Rails stack enabling you to instantly begin developing and deploying great Rails applications without the worry of installing or maintaining the various integrated software components.

Sicherlich einen Blick wert, wenn man eine komplett neue Entwicklungsumgebung aufsetzt. Folgende Dinge sind dabei:

Ruby 1.8.6
Rails 1.2.3
MySQL 5.0
SQLite 3.3
Subversion 1.4
Apache HTTP Server 2.2 (Production mode)
OpenSSL
ImageMagick 6.3
Mongrel/Mongrel Cluster
Capistrano
Gruff
Rake
RMagick

Sieht schonmal recht komplett aus, wie ich das mit meinen Anfängeraugen beurteilen kann. Das Ganze ist demnach auch nicht wirklich leichtgewichtig mit seinen 430 MB.

Im Moment ist es nur für Linux- und MacOSX-Systemen mit Intel-Prozessoren verfügbar, andere Systeme sollen aber in Kürze auch unterstützt werden.
So muss ich mich noch etwas gedulden, um den Kram ausprobieren zu können, da mein Powerbook eben ein Powerbook ist und nen G4 PowerPC verbaut hat.

Hier der Link: http://www.fiveruns.com/products/rm/install

17.08.07

Ruby und Rails Dokumentation

Über den rubyonrails.org-Blog habe ich diesen recht schicken API-Browser gefunden: http://www.noobkit.com/
Sieht auf jedenfall schonmal besser aus, als die jeweilige API selbst.

Ferner finde ich das Widget RubySearch von Brian Guthrie ganz hilfreich.

Es gibt auch noch ein weiteres Ruby-Widget, dieses benötigt allerdings ne Internet-Verbindung: Ruby RDoc Widget

Und hier noch ein nützliches Cheat-Sheet: Ruby On Rails Cheatsheet

About

DanielHi. I'm Daniel Pietzsch and this is my innoQ-Blog. I'm a 26y old student at FH Bochum and working student at innoQ.
In this blog I mainly write about the progress concerning my diploma thesis which will be an in-house application for innoQ based on Ruby on Rails, but some other (geek) stuff might appear here, too.

daniel [dot] pietzsch [alt-L] innoq [dot] com

I recommend

Categories

Recent Comments

License

Creative Commons License This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 3.31