<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?>

<feed xmlns="http://purl.org/atom/ns#" version="0.3" xml:lang="en-US">
<link href="https://www.blogger.com/atom/17888006" rel="service.post" title="Chistoph Online" type="application/atom+xml"/>
<link href="https://www.blogger.com/atom/17888006" rel="service.feed" title="Chistoph Online" type="application/atom+xml"/>
<title mode="escaped" type="text/html">Chistoph Online</title>
<tagline mode="escaped" type="text/html">Things I wrote down to not forget</tagline>
<link href="http://cgerdes.com" rel="alternate" title="Chistoph Online" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006</id>
<modified>2007-03-30T14:36:22Z</modified>
<generator url="http://www.blogger.com/" version="6.72">Blogger</generator>
<info mode="xml" type="text/html">
<div xmlns="http://www.w3.org/1999/xhtml">This is an Atom formatted XML site feed. It is intended to be viewed in a Newsreader or syndicated to another site. Please visit the <a href="http://help.blogger.com/bin/answer.py?answer=697">Blogger Help</a> for more info.</div>
</info>
<convertLineBreaks xmlns="http://www.blogger.com/atom/ns#">true</convertLineBreaks>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/17888006/117526535018138054" rel="service.edit" title="Thanks!" type="application/atom+xml"/>
<author>
<name>Christoph</name>
</author>
<issued>2007-03-30T16:29:00+02:00</issued>
<modified>2007-03-30T14:36:22Z</modified>
<created>2007-03-30T14:35:50Z</created>
<link href="http://cgerdes.com/2007/03/thanks.html" rel="alternate" title="Thanks!" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006.post-117526535018138054</id>
<title mode="escaped" type="text/html">Thanks!</title>
<content type="application/xhtml+xml" xml:base="http://cgerdes.com" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">Thanks to everyone who's been sending in bug reports and ideas or otherwise supporting JarInspector! Your feedback is greatly appreciated. I just uploaded release candidate 5 which I planned to be the last before the final version. Go get it at <a href="http://www.codeland.org">codeland.org</a>
</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/17888006/116238747909720153" rel="service.edit" title="Converting NSString to OSType" type="application/atom+xml"/>
<author>
<name>Christoph</name>
</author>
<issued>2006-11-01T13:37:00+01:00</issued>
<modified>2006-11-01T13:24:40Z</modified>
<created>2006-11-01T13:24:39Z</created>
<link href="http://cgerdes.com/2006/11/converting-nsstring-to-ostype.html" rel="alternate" title="Converting NSString to OSType" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006.post-116238747909720153</id>
<title mode="escaped" type="text/html">Converting NSString to OSType</title>
<content mode="escaped" type="text/html" xml:base="http://cgerdes.com" xml:space="preserve">OSTypes, formerly known as ResTypes, are four byte sequences to identify data formats and creator applications under MacOS X. To convert from NSString to OSType the straight forward solution might be:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OSType convertNSStringToOSType(NSString* str) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;OSType app = 0;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;memcpy(&amp;app, [str cstring],sizeof(app));&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;return app;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;which works but of course ignores the encoding completely. So:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OSType convertNSStringToOSType(NSString* str) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;OSType app = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  NSData* data = [str dataUsingEncoding: NSUTF8StringEncoding];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;  [data getBytes:&amp;app length:sizeof(app)];&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;  return app;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This works great until moving the whole thing to Intel! For a java hacker puzzling at first but then, recalling computer architecture class, the endians! So a look in the &lt;a href="http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary_byte_swap/chapter_4_section_5.html#//apple_ref/doc/uid/TP40002217-CH243-291523"&gt;Universal Binary Programming Guide&lt;/a&gt; yields&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OSType convertNSStringToOSType(NSString* str) {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;OSType app = UTGetOSTypeFromString((CFStringRef)str);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;return app;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The CFString cast is okay &lt;a href="http://www.cocoadev.com/index.pl?CFStringRef"&gt;http://www.cocoadev.com/index.pl?CFStringRef&lt;/a&gt;</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/17888006/115053635963875778" rel="service.edit" title="Building Universal Binaries for Cocoa-Java based Apps" type="application/atom+xml"/>
<author>
<name>Christoph</name>
</author>
<issued>2006-06-17T10:55:00+02:00</issued>
<modified>2006-06-17T09:25:59Z</modified>
<created>2006-06-17T09:25:59Z</created>
<link href="http://cgerdes.com/2006/06/building-universal-binaries-for-cocoa.html" rel="alternate" title="Building Universal Binaries for Cocoa-Java based Apps" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006.post-115053635963875778</id>
<title mode="escaped" type="text/html">Building Universal Binaries for Cocoa-Java based Apps</title>
<content mode="escaped" type="text/html" xml:base="http://cgerdes.com" xml:space="preserve">With the introduction of Intel based Macs, Apple also introduced a new binary format that is capable to run natively on both architectures x86 and PowerPC. The Apple developer tools feature support for all project types to compile universal binary versions. For all projects types? All but Cocoa-Java based ones. &lt;br /&gt;Apple &lt;a href="http://developer.apple.com/documentation/Cocoa/Conceptual/LanguageIntegration/index.html"&gt;silently dropped&lt;/a&gt; support for Cocoa-Java which might explain the lack of information on how to build universal binaries for Cocoa-Java based apps. In general it is quite simple but there are a few non obvious obstacles. In order to create universal binaries the respective target in XCode must be upgraded to native. XCode, however, prohibits targets with java source code to be upgraded. The solution is to split the target in pure Obj-C part and a pure Java part. See this &lt;a href="http://lists.apple.com/archives/xcode-users/2006/Apr/msg00174.html"&gt;post&lt;/a&gt; on the XCode mailing list. Since the release J2SE 5.0 Release 4 the above approached fails with "Unable to find class:" exceptions or similar unless you make sure both targets specify the same target VM (1.3*, 1.4* ..). See also &lt;a href="http://developer.apple.com/qa/qa2006/qa1474.html"&gt;Technical Q&amp;A QA1474&lt;/a&gt;.</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/17888006/114746745998472777" rel="service.edit" title="JarInspector 1.0b5" type="application/atom+xml"/>
<author>
<name>Christoph</name>
</author>
<issued>2006-05-12T22:26:00+02:00</issued>
<modified>2006-05-12T20:57:40Z</modified>
<created>2006-05-12T20:57:39Z</created>
<link href="http://cgerdes.com/2006/05/jarinspector-10b5.html" rel="alternate" title="JarInspector 1.0b5" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006.post-114746745998472777</id>
<title mode="escaped" type="text/html">JarInspector 1.0b5</title>
<content type="application/xhtml+xml" xml:base="http://cgerdes.com" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">The JarInspector version 1.0 beta 5 has just been released. The beta 5 is a landmark release with a newly designed document based architecture. The new architecture is an important step towards the first release candidate (1.0RC1) as well as future versions. But it is already visible in the current beta which includes a feature for multiple jar file edit. Additionally the manifest editor has advanced to a general purpose editor for jar file contents. This means you can edit web.xml, jboss.xml and suchlike on the fly without the need to extract and rebuild the whole jar. <br/>
<br/>In summary the features are:<br/>
<br/> - jar file viewer<br/> - integrated editor<br/> - syntax highlighting<br/> - java class decompiler<br/> - file extraction<br/> - full integration into Mac OS X<br/>
<br/>You can download the JarInspector <a href="http://www.codeland.org">here</a>
</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/17888006/114643663665491211" rel="service.edit" title="A jar file viewer for Mac OS X" type="application/atom+xml"/>
<author>
<name>Christoph</name>
</author>
<issued>2006-05-01T00:27:00+02:00</issued>
<modified>2006-05-05T15:26:17Z</modified>
<created>2006-04-30T22:37:16Z</created>
<link href="http://cgerdes.com/2006/05/jar-file-viewer-for-mac-os-x.html" rel="alternate" title="A jar file viewer for Mac OS X" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006.post-114643663665491211</id>
<title mode="escaped" type="text/html">A jar file viewer for Mac OS X</title>
<content type="application/xhtml+xml" xml:base="http://cgerdes.com" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">The Jar Inspector is a cocoa based application for Mac OS X. It is a utility to view and edit jar files on the mac. Currently it features:<br/>
<ul>
<li>    a file manager for jar entries</li>
<li>    manifest viewer and editor</li>
<li>    file extraction</li>
<li>    java decompiler</li>
</ul>Go check it out at <a href="http://www.codeland.org">codeland.org</a>
</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/17888006/114543053076506544" rel="service.edit" title="qmail and Mac OS X" type="application/atom+xml"/>
<author>
<name>Christoph</name>
</author>
<issued>2006-04-19T08:52:00+02:00</issued>
<modified>2006-04-19T07:08:50Z</modified>
<created>2006-04-19T07:08:50Z</created>
<link href="http://cgerdes.com/2006/04/qmail-and-mac-os-x.html" rel="alternate" title="qmail and Mac OS X" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006.post-114543053076506544</id>
<title mode="escaped" type="text/html">qmail and Mac OS X</title>
<content type="application/xhtml+xml" xml:base="http://cgerdes.com" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">I still get a lot of hits on my site from people searching for qmail+macosx. Back in 2001 I wrote a tutorial on howto setup qmail on macosx but lost it during a server crash in 2003, sorry. Anyway, qmail needed a patch to compile on osx. The patch is still there. You can get it <a href="qmail-1.03.patch">here</a>. Maybe this is of help for you. Please note that the patch is not from me but credit goes someone that also worked on the topic back then (don't remember the name). It is probably out of date anyway. I personally switched from qmail to postfix cause qmail required to lot of effort maintaining and adjusting to each new version of osx.</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
<entry xmlns="http://purl.org/atom/ns#">
<link href="https://www.blogger.com/atom/17888006/114390384220381149" rel="service.edit" title="JBoss, myfaces and tomahawk extensions" type="application/atom+xml"/>
<author>
<name>Christoph</name>
</author>
<issued>2006-04-01T16:44:00+02:00</issued>
<modified>2006-04-01T15:04:03Z</modified>
<created>2006-04-01T15:04:02Z</created>
<link href="http://cgerdes.com/2006/04/jboss-myfaces-and-tomahawk-extensions.html" rel="alternate" title="JBoss, myfaces and tomahawk extensions" type="text/html"/>
<id>tag:blogger.com,1999:blog-17888006.post-114390384220381149</id>
<title mode="escaped" type="text/html">JBoss, myfaces and tomahawk extensions</title>
<content type="application/xhtml+xml" xml:base="http://cgerdes.com" xml:space="preserve">
<div xmlns="http://www.w3.org/1999/xhtml">Jboss uses Apache myfaces as JSF implementation. The api and impl packages are included in jbossweb-tomcatXX/jsf-libs. Unfortunately when trying to deploy a webapp that uses the tomahawk extensions you run into classloading problems (java.lang.ClassCastException) because the impl package as well as the tomahwak.jar contain both shared classes. To solve these problems make sure that all jars are loaded by the same classloader (i.e. copy tomahawk.jar to jbossweb-tomcatXX/jsf-libs or remove jsf-libs and add myfaces-api.jar, myfaces-impl.jar and tomahawk.jar to your WEB-INF/libs). With the former solution, however, you're not able to access any resources from your webapp. Therefore it is best if you remove the jsf-libs and include all required libs in the webapp.</div>
</content>
<draft xmlns="http://purl.org/atom-blog/ns#">false</draft>
</entry>
</feed>
