Heute im Programm: Mit der Tastaturkombination ⌃⇧⏏ (Ctrl+Shift+Eject) schaltet man das Display eines Mac-Rechners (also vor allem sinnvoll bei einem iMac) aus.. alternativ natürlich über eine magische Ecke.
Zufällig(!) gefunden via apfeltalk.de
Heute im Programm: Mit der Tastaturkombination ⌃⇧⏏ (Ctrl+Shift+Eject) schaltet man das Display eines Mac-Rechners (also vor allem sinnvoll bei einem iMac) aus.. alternativ natürlich über eine magische Ecke.
Zufällig(!) gefunden via apfeltalk.de
Mai 8
Gepostet von knalli in Diplomarbeit.. ftw!, Java, MacOS X, Technik, Tipps | Keine Kommentare
Wir hatten dieses Thema bereits indirekt durch den ApplicationBundler im Beitrag vorletzter Woche besprochen.. aber hier nochmal zum eigentlichen Problem und dessen Lösung.
Der Fehler verursacht die aktuell ausgewählte Java-Version (und das ist bei den meisten Leuten der Standard Java 1.5.0). Wenn jedoch die Jar mit Java 1.6 kompiliert wurde, kann der 1.5-Loader damit nichts anfangen bzw. schützt aus naheliegenden Gründen vor der Ausführung. Zwar ist auf Mac OS X System der Version 10.5 auch Java 1.6 installiert, dieses ist jedoch kein Standard.
Es gibt dafür nun drei Möglichkeiten:
Mai 7
Gepostet von knalli in Aktuelles, Java, MacOS X | 2 Kommentare
Update: It seems that MacWidgets causes this problem. In the applications main frame I added the line
MacUtils.makeWindowLeopardStyle(getRootPane());
If I disable (comment out) this line there will no exceptions. What a..
The structure of components: One Mainframe with BorderLayout (Toolbar, Sidebar and MainContent). The MainContent contains eventually the graph, the corresponding satellite component is in the sidebar.
Original post:
I had already posted about it last week. But now it seems that is was not a reasonable solution.
I have a java swing application which uses standard java swing elements and the jung2 graph framework visualizing graphs. The application is developed under java 1.6 and mac os x 10.5.6.
The actual problem is that since yesterday the AWT-Eventthread crashed, for example like this:
Thu May 7 15:04:28 X.localdomain java[2002] : CGSResolveShmemReference : reference offset (65232) exceeds bounds (32768) on shmem obj 0x257e Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: Non-Java exception raised, not handled! (Original problem: Error (1000) creating CGSWindow) at apple.awt.CRenderer.doRect(Native Method) at apple.awt.OSXSurfaceData.doRect(OSXSurfaceData.java:1247) at apple.awt.CRenderer.fillRect(CRenderer.java:157) at apple.awt.CRenderer.fillRect(CRenderer.java:145) at sun.java2d.pipe.ValidatePipe.fillRect(ValidatePipe.java:58) at sun.java2d.SunGraphics2D.fillRect(SunGraphics2D.java:2501) at edu.uci.ics.jung.visualization.BasicVisualizationServer.renderGraph(BasicVisualizationServer.java:341) at edu.uci.ics.jung.visualization.BasicVisualizationServer.paintComponent(BasicVisualizationServer.java:321) at javax.swing.JComponent.paint(JComponent.java:1027) at javax.swing.JComponent.paintChildren(JComponent.java:864) at javax.swing.JComponent.paint(JComponent.java:1036) at javax.swing.JComponent._paintImmediately(JComponent.java:5096) at javax.swing.JComponent.paintImmediately(JComponent.java:4880) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:749) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:679) at javax.swing.RepaintManager.seqPaintDirtyRegions(RepaintManager.java:659) at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:128) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:597) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:300) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:210) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:195) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:187) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
This happens in the event thread, so the application is “still” useable. Well, of course, the graph painting is a mess.
After googling, I found some solutions:
Perhaps this could be an issue by jung, but..
Currently, I have no solution.. the exeptions raises while painting the graph (which uses many paint()/Graphs objects ofc) moving/zooming it. I was able to catch some of the strange exceptions overriding the default visualizerviewer (by jung) and put in a small try-catch-wrapper of the corresponding method (here renderGraph). But other exceptions raised within javax.swing.Component and so on…
And.. how strange: the line
Thu May 7 15:04:28 X.localdomain java[2002] <Warning>: CGSResolveShmemReference : reference offset (65232) exceeds bounds (32768) on shmem obj 0x257e
I’m very appreciate if someone has an idea or solution.
Apr 21
Gepostet von knalli in Diplomarbeit.. ftw!, Java, MacOS X | 2 Kommentare
Wie bereits berichtet, ist es von Vorteil, der Buildprozess mit einem Ant-Script zu automatisieren. Um eine Mac-Application zu erstellen, muss man nur wissen, wie eine solche Application aufgebaut ist.. der Rest ist ein Klacks.
Eine Mac-Application ist ein Verzeichnis mit der Erweiterung .app. Die Struktur einer Application (wir nennen sie im Folgenden Application) sieht wie folgt aus:
Den Bootloader befindet sich auf einem Mac in dem Ordner /System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub.
Prinzipiell kann man sich diese Struktur komplett selber erstellen; es ist aber zu Empfehlen, den initialen Prozess durch das Programm /Developer/Applications/Utilities/Jar Bundler zu machen. Mit Hilfe dieses Programmes lässt sich für eine bereits fertige JAR die Application erstellen.
Anschließend kopiert man das erstellte Resultat – quasi als Vorlage – in ein Verzeichnis für die Builds. In meinem Fall in dem build_data Verzeichnis. Ein Ant-Task erstellt darauf hin im Verzeichnis deploy eine Application. Die Vorlage ist idealerweise auch im SVN und auch später noch veränderbar – beispielsweise durch das Ändern des Applicationicon, -titel oder anderen Einstellungen.
Wichtig 1: Bei Verwendung von FatJar muss man als Package für die Main den Bootloader von FatJar (com.simontuffs.onejar.Boot) verwenden. Dies erkennt das Programm Jar Bundler aber auch automatisch.
Wichtig 2: Beim Kopieren der Dateien kann es passieren, dass die Rechte an der JavaApplicationStub verloren gehen. Diese muss als ausführbar markiert sein. Ein entsprechender Ant-Befehl stellt das sicher.
<target name="makeMac" depends="makeNormal">
<copy todir="deploy/Application.app">
<fileset dir="build_data/Application.app"/>
</copy>
<!-- chmod the application stub file executable -->
<chmod file="deploy/Application.app/Contents/MacOS/JavaApplicationStub" perm="755"/>
<copy file="deploy/Application.jar" tofile="deploy/Application.app/Contents/Resources/Java/Application.jar" />
</target>
Mrz 20
Gepostet von knalli in Empfehlungen, MacOS X | 10 Kommentare
Um den Index neu aufzubauen (beispielsweise aus Gründen der Performance, wenn er kaputt ist, nach einem Plattenwechsel) kann man sich Tools wie Onxy bedienen, die das auf Knopfdruck erledigen. Leider hat das bei mir nicht ganz geklappt, evtl. lag das daran, dass das Volume sich selber auf der Exclusionliste hatte (das hatte ich gemacht, damit ein Fremdsystem nicht den Index kaputt macht, die Idee ist nach hinten losgegangen
).
Wie dem auch sei, wenn man so in Google danach sucht, wird einem überall der Befehl sudo mdutil -E / vorgeschlagen. Tatsächlich löscht und deaktiviert dieser Befehl den Index aber nur.. warum schreibt das keiner dahin?
Mac:/ knalli$ sudo mdutil -E / /: Indexing and searching disabled.
Etwas schwieriger war es, herauszufinden, wie man den Index wieder aktiviert. Aber, geht natürlich auch, nur anderer Parameter: sudo mdutil -i on /
Mac:/ knalli$ sudo mdutil -i on / /: Indexing enabled.
Die alternativen Möglichkeiten haben mir nichts gebracht, es war wirkungslos:
Dez 6
Gepostet von knalli in Apple, Java, MacOS X, Technik, Tipps, Was ich schon immer mal wissen wollte.. | Keine Kommentare
Definitiv in der Kategorie: “Was ich schon immer mal wissen wollte..”
Wenn man mit Java Swing ein JFileChooser verwendet, so sieht der unter MacOS X alles andere als schön aus – und nativ ist er sowieso nicht. Was ich nicht wusste: Apple hat das AWT-Pendant FileDialog nativ implementiert (oder nachgebaut?). Gewusst wie – darauf gekommen bin ich auch nur, weil ich einfach mal gesucht habe.
Edit: Wie es aussieht, sieht der FileDialog auch unter Windows besser als sein Swing-Pendant aus. Wie sieht das mit den anderen System aus?
Dez 5
Gepostet von knalli in Empfehlungen, MacOS X, Technik, Tipps | Keine Kommentare
Ich hatte das Problem, dass jeder Öffnen und Speichern-Dialog neuerdings mehrere Sekunden brauchte, bis man etwas “machen” konnte. Zudem war die Liste der “Orte” (englisch: Places) überfüllt mit Hunderten Einträgen. Meine definierte Liste war etwa 15-20 Items lang, aber diese Liste wurde ein paar Mal wiederholt – strange.
Löscht man die Datei ~/Library/Preferences/com.apple.sidebarlists.plist, loggt sich aus und wieder neu ein, so ist die Sidebar wieder aufgeräumt. Man muss allerdings die Places wieder neu einstellen und ggf. Tweaks wie das Ausblenden der iDisk reaktivieren.
Okt 24
Gepostet von knalli in MacOS X, Vergleiche, Windows Vista | Keine Kommentare
Okt 22
Gepostet von knalli in Aktuelles, Apple, Empfehlungen, Technologie/IT, Vergleiche | Keine Kommentare
Wie immer, sehr netter Artikel bei Ars:
Tags: Apple, ars, macbookpro
Okt 15
Gepostet von knalli in Allgemeines, Apple, Technik, Technologie/IT, Witziges | Keine Kommentare
Nun, bei der Keynote gestern gab es Notebooks, das wissen wir jetzt alle
Nahezu alles, was man die 2 Tage vorher so an Gerüchten hörte, hat sich als Wahrheit herausgestellt.
Ein interessantes Bild – naja, sicherlich konnte man zum Unterstreichen kein besseres finde – ist das, wo jeder Student ein MacBook hat.
Du befindest dich momentan auf der Archivseite der Kategorie Apple.
Arclite Theme von digitalnature | powered by WordPress