<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>J-Development &#187; Mac OS X</title>
	<atom:link href="http://jdevelopment.nl/category/mac-os-x/feed/" rel="self" type="application/rss+xml" />
	<link>http://jdevelopment.nl</link>
	<description>designing a new generation of software</description>
	<lastBuildDate>Thu, 17 May 2012 07:29:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Van een Ubuntu Lenovo T61 naar een Macbook Pro laptop</title>
		<link>http://jdevelopment.nl/van-een-ubuntu-lenovo-t61-naar-een-macbook-pro-laptop/</link>
		<comments>http://jdevelopment.nl/van-een-ubuntu-lenovo-t61-naar-een-macbook-pro-laptop/#comments</comments>
		<pubDate>Mon, 17 May 2010 19:43:35 +0000</pubDate>
		<dc:creator>development</dc:creator>
				<category><![CDATA[Dutch]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[free time]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://jdevelopment.nl/?p=568</guid>
		<description><![CDATA[Ben overgegaan van Ubuntu naar OS X en van Lenovo naar Apple, want mijn laptop lenovo T61 is na een trip met het vliegtuig toch echt kapot gegaan. Stop dus nooit je laptop in gewone bagage; dat overleefde mijn laptop in ieder geval niet. Lenovo (IBM) staat of stond wel bekend om zijn kwaliteit. Wat [...]]]></description>
			<content:encoded><![CDATA[<p>Ben overgegaan van Ubuntu naar OS X en van Lenovo naar Apple, want mijn laptop lenovo T61 is na een trip met het vliegtuig toch echt kapot gegaan.</p>
<p>Stop dus nooit je laptop in gewone bagage; dat overleefde mijn laptop in ieder geval niet. Lenovo (IBM) staat of stond wel bekend om zijn kwaliteit.</p>
<p>Wat moest de nieuwe laptop hebben:</p>
<ul>
<li>Relatief licht zijn, onder de 2.5 kg</li>
<li>Batterij moest echt lang mee gaan, meer dan 4 uur</li>
<li>Buiten in de zon kunnen werken, LED verlichting</li>
<li>Scherm van 1650&#215;1050 pixels hebben.</li>
<li>Makkelijk thuis en op m&#8217;n werk kunnen opladen</li>
<li>Snel kunnen opstarten</li>
<li>Makkelijk kunnen sync-en met mobiele telefoon</li>
<li>camera, voor skype meeting</li>
<li>Makkelijk backups maken</li>
</ul>
<p>De nieuwe <a href="http://store.apple.com/nl/browse/home/shop_mac/family/macbook_pro?mco=MTM3NDc0NDI">macbook pro</a> voldeed aan alle eisen.</p>
<p><a href="http://docs.google.com/View?id=df85qbk8_21f9g8rbcf#_Beginnen_op_de_Mac_5207773101">Beginnen op de mac</a> heb ik  gebruikt om over te schakelen.</p>
<p>Meest irritante van het overschakelen is eigenlijk de &#8220;End&#8221; functie  toets (cmd + pijltje) om naar eind van regel te gaan. Die werkt niet goed op mijn externe keyboard. Voor de rest gaat alles vrij goed.  Wat ik een super fijne feature vind, is de link in mail app waarin je direct naar jouw geantwoorde mail gaat op een inkomende mail.</p>
<p>Ik kan de overstap erg aanraden.</p>
]]></content:encoded>
			<wfw:commentRss>http://jdevelopment.nl/van-een-ubuntu-lenovo-t61-naar-een-macbook-pro-laptop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>M4N iPhone app on iPad</title>
		<link>http://jdevelopment.nl/m4n-iphone-app-ipad/</link>
		<comments>http://jdevelopment.nl/m4n-iphone-app-ipad/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 11:12:51 +0000</pubDate>
		<dc:creator>robin.eggenkamp</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://jdevelopment.nl/?p=474</guid>
		<description><![CDATA[Recently, Apple announced the launch of the iPad. I downloaded the new SDK directly, to try our iPhone application. Unfortunately, it crashed immediately, without a clear error. I decided to wait for the next version, as I was not the only one with this kind of problem. Tonight, Apple released beta 2 of the SDK, [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, Apple announced the launch of the <a href="http://apple.com/ipad">iPad</a>. I downloaded the new SDK directly, to try our iPhone application. Unfortunately, it crashed immediately, without a clear error. I decided to wait for the next version, as I was not the only one with this kind of problem. Tonight, Apple released beta 2 of the SDK, so this morning I tried to run the app again. And now it works, thanks Apple!</p>
<p style="text-align: center;"><a href="http://jdevelopment.nl/wp-content/uploads/2010/02/m4n_on_ipad.png"></a><a href="http://jdevelopment.nl/wp-content/uploads/2010/02/m4n_on_ipad.jpg"><img class="aligncenter size-large wp-image-481" title="m4n_on_ipad" src="http://jdevelopment.nl/wp-content/uploads/2010/02/m4n_on_ipad-787x1024.jpg" alt="m4n_on_ipad" width="472" height="614" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jdevelopment.nl/m4n-iphone-app-ipad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How we won an iPhone dev competition without any prior knowledge</title>
		<link>http://jdevelopment.nl/how-we-won-an-iphone-dev-competition-without-any-prior-knowledge/</link>
		<comments>http://jdevelopment.nl/how-we-won-an-iphone-dev-competition-without-any-prior-knowledge/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 16:46:21 +0000</pubDate>
		<dc:creator>arjan tijms</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://jdevelopment.nl/java/how-we-won-an-iphone-dev-competition-without-any-prior-knowledge/</guid>
		<description><![CDATA[About 2 weeks ago one of my team members, Robin Eggenkamp, mentioned there would be some iPhone dev &#8216;conference&#8217; this month (iPhone Dev Camp, Amsterdam), originally at the building exactly opposite of the building where our own office is. Since I&#8217;m always interested in anything related to development I agreed to tag along. I expected [...]]]></description>
			<content:encoded><![CDATA[<p>About 2 weeks ago one of my team members, Robin Eggenkamp, mentioned there would be some iPhone dev &#8216;conference&#8217; this month (iPhone Dev Camp, Amsterdam), originally at the building exactly opposite of the building where our own office is. Since I&#8217;m always interested in anything related to development I agreed to tag along. I expected it to be the kind of event where some talks are organized with a small hands on lab where some expert developer teaches newbies how to get up and running.</p>
<p>Now I&#8217;m certainly not a newbie when it comes to development. I lead a team of Java developers working on a rather large 200.000+ loc Java EE enterprise application and in a past life I worked as a win32/MFC C++ developer. Somewhere in between I also managed to finish a CS master. But&#8230; the iPhone was new to me. Although I&#8217;ve owned Apple computers ever since System 6 was still new &#038; shiny, I&#8217;d never touched Xcode, Objective-C or Cocoa before. The closest I ever came was firing up Project Builder on my G3 iMac&#8217;s OS X 10.2, but only to test some C++ routine.</p>
<p>Because of the hands-on thing, I did plan to at least read an Objective-C tutorial the night before going to the event, but unfortunately couldn&#8217;t find the time to do so. When we arrived at the scene at exactly 10:00 in the morning, the place was already rather filled up. We found a cozy spot at a place in the back and while Robin started to connect his MacBook, I looked around and noticed it was not exactly what I thought it would be. Instead of an organized series of talks, this was a bunch of people sitting behind their computers, hacking away at stuff. The atmosphere seemed top notch though and I had a quick chat with some of the other people. At around 11 there was a short introduction talk and it became clear that the intend was to code something up for the iPhone and demo it at 17:00. The best apps would win a prize, with the first prize being a speaker set and a copy of Adobe CS3 or so.</p>
<p>By total coincidence, only moments after having his MacBook connected to the network, Robin finally received an email that he had been accepted for the  iPhone developer program, something for which he had applied a whole month before. That meant we could start with some real development now! Robin had a little bit of experience with Xcode, but had done barely more than deploy some hello world examples to the simulator and tinkering a bit with the code. The fun thing about this was that normally whenever I need to use a new technique for my regular enterprise development, I first get myself a book of at least 600 pages, read the first 200 pages of that, try out some basic concepts, read another 200 pages, try another aspect of the tech, etc before I even attempt to apply it. Now we had to build something in a language we both didn&#8217;t know, on a platform we didn&#8217;t know, with tools we didn&#8217;t know and all of that in the course of a day <img src='http://jdevelopment.nl/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>We started thinking about what kind of application we would try to create for the iPhone and I suddenly got the idea of letting the iPhone connect to a Mac and using data from its acceleratometer to move the Mac&#8217;s mouse pointer. I started with formulating some simple milestones to reach that goal:</p>
<ul>
<li>Create local Mac app that moves mouse programmatically.</li>
<li>Create local iPhone app that just prints accelerator values to the screen.</li>
<li>Setup a connection from the iPhone to the Mac that just sends â€œhelloâ€. Let the Mac prints this.</li>
<li>Integrate the individual steps to become the app we actually want. I assumed we would need some time to calibrate the raw acceleratometer and to find a suitable mapping from the meter&#8217;s range to the pixels on the Mac&#8217;s screen.</li>
</ul>
<p>Meanwhile Robin was attempting to deploy his hello world example app to his iPhone using his just obtained certificate. It should have been a trivial thing, but after each deployment attempt a message box was displayed saying something like â€œ0xE8000001, your mobile device has encountered an unexpected error (0x&#8230;) during the install phase: verifying applicationâ€. We tried many things, but nothing seemed to work. While we were feverishly googling for a solution, precious time on the clock ticked away. It must have been somewhere around 13:00 when Robin finally found out which settings in the project needed to be adjusted in what way. The example hello world app deployed correctly to the iPhone and it worked! Looking at the clock we realized we only had about 4 hours to go and we hadn&#8217;t written a single line of code ourselves yet&#8230;</p>
<p><strong>Milestone 1 â€“ The local Mac app â€“ moving the mouse</strong></p>
<p>The initial plan was to build the Mac app in Cocoa, but we decided that using Java would be the fastest  way for us, basically since we simply know the language and environment. This milestone was easily completed. Using the <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html">java.awt.Robot</a> class moving the Mac&#8217;s mouse pointer was a breeze. </p>
<p><strong>Milestone 2 â€“ The local iPhone app â€“ printing accelerator values</strong></p>
<p>For this milestone we couldn&#8217;t shy away from Objective-C anymore and actually had to take the plunge. We first looked up an example for getting data from the acceleratometer and luckily Apple had provided one. The next thing was to build a simple app, barely more than a hello world, that prints these values to the screen. This proved to be a little harder. Objective-C sometimes looks like Java and sometimes doesn&#8217;t. What are those square brackets everywhere? It looked like a kind of method call, but I couldn&#8217;t really figure out the meaning of the square brackets themselves. And how where we supposed to define properties so we could take advantage of the injection features of interface builder? Using @Property seemed obvious to us, but the compiler kept generating tons of warnings and errors. And how do we organize our code? We had created an AppDelegate, which we connected in interface builder to a mainView that inherited from the Window class. We added two labels that we injected to this view class, deployed our app to the iPhone, and&#8230; nothing happened. After feeling a little silly, we actually tried to quickly read some documentation. We learned that the square brackets have no extra special meaning, it&#8217;s just the Objective-C syntax for doing a method call. @Property needed to be accompanied with a declaration in the header and another annotation in the implementation file, @synthesize, that&#8217;s there to actually generate the getter and setter. Also, when creating a new project Xcode had already created an AppDelegate for us, something we overlooked.</p>
<p>With this new insight we &#8216;almost&#8217; got our first real code completely working, but a few small things were still not going as planned. We therefor decided to throw it all away and change our strategy; start with an existing iPhone example application and just throw away what we don&#8217;t need and add what we do need. Going that route would save us from dealing with some of the nitty-gritty.</p>
<p>It was 14:00 by then and lunch had started. We enjoyed our nice and free lunch and had a chat again with the other guys. It seemed to be the case that we where hopelessly behind, since we still didn&#8217;t really had anything. After lunch things started to improve though. Having some idea of the Objective-C syntax now and using some of my almost forgotten C knowledge, we were quickly able to adapt an existing app to just print the 3 accelerator values (x, y, z) to 3 separate labels. Check!</p>
<p><strong>Milestone 3 â€“ Connecting iPhone and Mac</strong></p>
<p>Since we had wasted a tremendous amount of time on the deployment and second milestone, we only had little time remaining. My original plan was to have one thread on the Mac listening to incoming communication, fetching commands and dispatching these to a (blocking) queue which will be read by another thread that controls the mouse movement. For the communication we wanted to dig through the  iPhone API a little to see what it had to offer. With only 2 hours remaining, we decided to use the most basic communication method available; a simple BSD socket. At the Mac side we used a simple ServerSocket in Java and at the iPhone side we used the low level C socket()/connect() functions, for which we found a <a href="http://discussions.apple.com/thread.jspa?messageID=7815634">basic snippet of code</a> that needed only a few adjustments. Although absolutely not the best technical solution, we decided to create and close a connection for each message sent.</p>
<p>Sending a basic test string from the iPhone to the Mac worked perfectly, so a little later we were able to send the accelerator values to the Mac. Check!</p>
<p><strong>Milestone 4 â€“ Integration</strong></p>
<p>We had all the separate components up and running and now only needed to integrate them together. The acceleratometer&#8217;s values appeared to be in the range of -3 to 3 for all axis, while Robin&#8217;s Mac had a 1280*800 resolution. When totally in rest, there was a certain noise margin in the values that we got from the acceleratometer, so we expected that a little calibration was required. To test a little though we started with just multiplying the values we got by 60 and added that to the current mouse position. Surprisingly this already gave fairly good results. The multiplication and the rounding down to whole pixels canceled out the noise perfectly. In a few minutes we ended up with a really simple mapping that was just something like <em>max(0,min(forceX * 15,1280))</em> for the movement on the X-axis. Sending about 15 messages per second appeared to be enough for smooth motion.</p>
<p>By now we suddenly had some time remaining, so we used that to implement the ability to also do a mouse click. Our initial approach to that was to sent a separate message for a mouse click, but it appeared to be more robust to just add the mouse button state as a fourth parameter to the existing message. At the very last moment there was a little panic when all messages being sent appeared to be empty. Apparently, our string formatting syntax for a boolean wasn&#8217;t supported by Objective-C (we used something like â€œ%d,%d,%d,%bâ€) or maybe there was a difference between a primitive boolean and an Object boolean. We decided not to pursue the issue and simply use the string â€œfalseâ€ and â€œtrueâ€ (something I normally always stay far from, but with 30 seconds on the clock remaining there wasn&#8217;t much choice). Since we had been fumbling with the code for most of the day, we figured that our chances of winning anything where rather slim. Nevertheless we were happy that we had came up with something that worked, and actually worked rather nice.</p>
<p><strong>The demo</strong></p>
<p>It was now time for all of us to demo our application. Among others there was a tips of the days app, an app that retrieved quotes from the Internet, a very cool looking game where you had to touch the screen to cause a kind of bubble on which a moving object bounced to another side complete with sound effects and all and a very impressive looking application that measured your air time when skiing in addition to your speed, path and direction. Unfortunately this last app appeared to be only concept art.</p>
<p>When it was our time for the demo, I told something about the technical shortcuts we had taken, while Robin demonstrated how to use the iPhone to paint a running man in a painting application on the Mac.</p>
<p><img src="http://farm4.static.flickr.com/3248/2811431540_62044f06cd.jpg" alt="Showing the demo" /><br />
<em>Picture by <a href="http://www.flickr.com/photos/tijs/">tizzle</a>. See <a href="http://www.flickr.com/photos/tijs/2811431540/">flickr</a>.</em></p>
<p>Much to our surprise, our application was well received and we got the first price; a nice speaker set for the iPhone or iPod. We&#8217;ll install it in the office <img src='http://jdevelopment.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="right">Arjan Tijms</p>
<p>Links:</p>
<ul>
<li><a href="http://www.iphonedevcamp.nl/">http://www.iphonedevcamp.nl/</a> The event&#8217;s home-page </li>
<li><a href="http://developer.apple.com/iphone/">http://developer.apple.com/iphone/</a> Our starting point. If you&#8217;re into iPhone development, you&#8217;ve probably discovered this site already <img src='http://jdevelopment.nl/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </li>
<li><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html">http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html</a> &nbsp; Java&#8217;s Robot class let&#8217;s you control the native mouse cursor</li>
<li><a href="http://www.tuaw.com/2007/09/10/iphone-coding-using-the-accelerometer">http://www.tuaw.com/2007/09/10/iphone-coding-using-the-accelerometer</a> &nbsp; Explanation about the accelerometer.</li>
<li><a href="http://discussions.apple.com/thread.jspa?messageID=7815634">http://discussions.apple.com/thread.jspa?messageID=7815634</a> &nbsp; Simple code example of opening a socket on the iPhone</li>
<li><a href="http://www.mobypicture.com/slideshow/idc.html">http://www.mobypicture.com/slideshow/idc.html</a> Some photos taken at the event.</li>
<li><a href="http://www.bright.tv/series//iphone-dev-camp">http://www.bright.tv/series//iphone-dev-camp</a> Some footage of the event by bright TV.</li>
<li><a href="http://www.admanager.nl/mobile/nieuws/8441/M4N-medewerkers_winnen_eerste_prijs_op_iPhone_Dev_Camp/">http://www.admanager.nl/mobile/nieuws/8441/M4N-medewerkers_winnen_eerste_prijs_op_iPhone_Dev_Camp/</a> Press release of event (DUTCH)</li>
<li><a href="http://www.computable.nl/artikel/ict_topics/development/2699373/1277180/een-iphoneapplicatie-ontwikkelen-in-n-dag.html">http://www.computable.nl/artikel/ict_topics/development/2699373/1277180/een-iphoneapplicatie-ontwikkelen-in-n-dag.html</a> Article in the Dutch ICT magazine computable about the event.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jdevelopment.nl/how-we-won-an-iphone-dev-competition-without-any-prior-knowledge/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Eclipse en Mac OS X</title>
		<link>http://jdevelopment.nl/eclipse-en-mac-os-x/</link>
		<comments>http://jdevelopment.nl/eclipse-en-mac-os-x/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 13:57:11 +0000</pubDate>
		<dc:creator>development</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://jdevelopment.nl/?p=14</guid>
		<description><![CDATA[Afgelopen week heb ik getracht Eclipse aan de gang te krijgen op Mac OS X. Uiteindelijk draait het wel, maar er waren de nodige hobbels op de weg. We gebruiken trouwens SVN. De eerste stappen gingen gemakkelijk genoeg: downloaden Eclipse voor Mac downloaden MyEclipse plugin aanpassen memory settings Tomcat eraan hangen aanmelden op de svn [...]]]></description>
			<content:encoded><![CDATA[<p>Afgelopen week heb ik getracht Eclipse aan de gang te krijgen op Mac OS X. Uiteindelijk draait het wel, maar er waren de nodige hobbels op de weg. We gebruiken trouwens SVN. De eerste stappen gingen gemakkelijk genoeg:</p>
<ul>
<li>downloaden Eclipse voor Mac</li>
<li>downloaden MyEclipse plugin</li>
<li>aanpassen memory settings</li>
<li>Tomcat eraan hangen</li>
<li>aanmelden op de svn (met username/wwoord) en checkout</li>
</ul>
<p>Vervolgens probeerde ik een simpele aanpassing te doen in een stukje sourcecode. Deze comitten &#8211; error. Nog eens proberen &#8211; error! Hmmm &#8211; misschien toch iets foutgegaan tijdens installatie. De hele procedure opnieuw gedaan. Weer die error tijdens comitten. Damn..</p>
<p>Vervolgens nog eens opnieuw, maar dan met de Subclipse plugin van Polarion in plaats van de MyEclipse plugin. Ik had het vage vermoeden dat die MyEcplise het op de 1 of andere manier niet goed doet op de Mac. Zou nergens op slaan, aangezien het Java is, maar goed. Weer vage errors tijdens comitten: NullPointerException<br />
Vervolgens met mijn useraccount op een werkend Ecplise installatie op Linux geprobeerd &#8211; ook een error. Gelukkig &#8211; het ligt dus waarschijnlijk aan de serverkant.<br />
Het issue bleek te zijn dat ik wel leesrechten op het filesystem had van de svn server, maar geen schrijfrechten. Blijkbaar gaat het op een vrij laag nivo fout en kan Eclipse de error niet opvangen en doorgeven. Errug jammer van de verspilde tijd, maar wel weer een goede les geleerd.</p>
]]></content:encoded>
			<wfw:commentRss>http://jdevelopment.nl/eclipse-en-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

