<?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>Johannes Luderschmidt&#039;s Blog</title>
	<atom:link href="http://johannesluderschmidt.de/lang/en-us/feed/" rel="self" type="application/rss+xml" />
	<link>http://johannesluderschmidt.de</link>
	<description>This is a blog about topics like multi-touch, Flash programming and natural user interfaces.</description>
	<lastBuildDate>Tue, 10 Jan 2012 15:54:58 +0000</lastBuildDate>
	<language>en-us</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<meta xmlns="http://www.w3.org/1999/xhtml" name="robots" content="noindex,follow" />
		<item>
		<title>Kinectfusion</title>
		<link>http://johannesluderschmidt.de/lang/en-us/kinectfusion/1242</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/kinectfusion/1242#comments</comments>
		<pubDate>Fri, 07 Oct 2011 08:25:21 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[microsoft kinect]]></category>
		<category><![CDATA[Multi-Touch]]></category>
		<category><![CDATA[Kinect]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[tracking]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1242</guid>
		<description><![CDATA[This is a nice new project. Sharam Izadi et al. employ the Kinect to reconstruct arbitrary surroundings in 3D by using a Microsoft Kinect depth camera. After 6:40 minutes, the video gets especially interesting if you are into multi-touch interaction. With Kinectfusion, any surface can be used for interactive multi-touch input. See full paper in [...]]]></description>
			<content:encoded><![CDATA[<p><iframe width="450" height="259" src="http://www.youtube.com/embed/quGhaggn3cQ" frameborder="0" allowfullscreen></iframe><br />
This is a nice new project. Sharam Izadi et al. employ the Kinect to reconstruct arbitrary surroundings in 3D by using a Microsoft Kinect depth camera.<br />
<span id="more-1242"></span><br />
After 6:40 minutes, the video gets especially interesting if you are into multi-touch interaction. With Kinectfusion, any surface can be used for interactive multi-touch input.</p>
<p><a href="http://scholar.googleusercontent.com/scholar?q=cache:kSDzyrv1mOEJ:scholar.google.com/+kinectfusion&#038;hl=de&#038;as_sdt=0,5" title="Kinectfusion Full Paper">See full paper in HTML version.</a> (Actually <a href="http://research.microsoft.com/en-us/um/people/pkohli/papers/uist_2011.pdf">there</a> should be a PDF version of this paper, but the link is 404)</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/kinectfusion/1242/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Intel iMac 17&#8243; Core2Duo with External Display Only</title>
		<link>http://johannesluderschmidt.de/lang/en-us/use-intel-imac-17-core2duo-with-external-display-only/1186</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/use-intel-imac-17-core2duo-with-external-display-only/1186#comments</comments>
		<pubDate>Mon, 29 Aug 2011 08:57:22 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[imac]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1186</guid>
		<description><![CDATA[Recently, I had the problem that the TFT display module of an 2008 17&#8243; Intel iMac refused to work properly: The whole image was inverted and the right half stayed completely grey. I thought that it would be a nice solution to use the iMac as a headless computer by attaching an external display and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2011/08/iMac17Core2DuoDisplayCableRemoved.jpg" alt="" title="iMac17Core2DuoDisplayCableRemoved" width="450" height="200" class="aligncenter size-full wp-image-1187" /></p>
<p>Recently, I had the problem that the TFT display module of an 2008 17&#8243; Intel iMac refused to work properly: The whole image was inverted and the right half stayed completely grey.<span id="more-1186"></span> I thought that it would be a nice solution to use the iMac as a headless computer by attaching an external display and switching off the integrated display module. However, I found no software solution to switch off the integrated display and no further information on the Internet if this was possible.</p>
<p>Thus, I decided to open up the iMac and remove the plug of the internal display module from the mainboard and to attach an external display to try out if this works. Fortunately, there is a very nice <a href="http://www.ifixit.com/Guide/Installing-iMac-Intel-17-Inch-Display/889/1">iMac disassembly manual by ifixit.com</a> that I followed up to step 9. To remove the display cable from the mainboard is pretty straightforward: You have to remove 8 screws and unplug 3 cables. Subsequently, you reassemble everything and leave the display module cable unplugged (this is what you see in the picture above).</p>
<p>And: IT WORKS!!! You can use the iMac with detached display module cable and an external display smoothly without any problems. The iMac than just works like, for instance, a Mac Mini.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/use-intel-imac-17-core2duo-with-external-display-only/1186/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Donald Norman&#8217;s »Natural User Interfaces Are Not Natural«</title>
		<link>http://johannesluderschmidt.de/lang/en-us/donald-normans-%c2%bbnatural-user-interfaces-are-not-natural%c2%ab/1165</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/donald-normans-%c2%bbnatural-user-interfaces-are-not-natural%c2%ab/1165#comments</comments>
		<pubDate>Tue, 09 Aug 2011 09:17:48 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[Multi-Touch]]></category>
		<category><![CDATA[Natural User Interfaces]]></category>
		<category><![CDATA[Tangible Interfaces]]></category>
		<category><![CDATA[NUI]]></category>
		<category><![CDATA[paper]]></category>
		<category><![CDATA[tangible]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1165</guid>
		<description><![CDATA[I really like Donald Norman&#8217;s essay »Natural User Interfaces Are Not Natural« that he wrote for the ACM interactions magazine. In this essay Norman shares his view on the role of natural user interfaces (for him represented, e.g., by »speech, gesture, or the tapping of the body&#8217;s electrical signals for &#8220;thought control,&#8221;«) in terms of [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2011/08/iwantyougesture.png" alt="" title="iwantyougesture" width="450" height="160" class="aligncenter size-full wp-image-1171" /></p>
<p>I really like Donald Norman&#8217;s essay »Natural User Interfaces Are Not Natural« that he wrote for the <a href="http://dl.acm.org/citation.cfm?id=J373" title="ACM interactions magazine">ACM interactions magazine</a>. In this essay Norman shares his view on the role of natural user interfaces (for him represented, e.g., by »speech, gesture, or the tapping of the body&#8217;s electrical signals for &#8220;thought control,&#8221;«) in terms of interaction with future computer systems.<br />
<span id="more-1165"></span><br />
I have got the impression that marketing guys love to pronounce the end of mouse and keyboard interfaces that will in their opinion (or at least in their words) become obsolete as their place will be absorbed by natural user interfaces that are based on gestural interaction provided by systems like the Kinect or by multi-touch screens. I do not share this opinion. As it comes to me, (nearly) every interaction approach has its right to exist and usually is best for certain types of tasks. I doubt, for instance, that there soon will be a better way to enter text than with a standard keyboard based on haptic keys.</p>
<p>So, Norman provides one of the few pieces of literature that keeps cool about the natural user interface hype and gives profound arguments where he sees their potentials and pitfalls. I strongly recommend to <a href="http://www.jnd.org/dn.mss/natural_user_interfaces_are_not_natural.html" title="Natural User Interfaces Are Not Natural">read the whole essay</a>. In the following, I cite some strong points his essay makes.</p>
<blockquote><p>It is also unlikely that complex systems could be controlled solely by body gestures because the subtleties of action are too complex to be handled by actions&#8211;it is as if our spoken language consisted solely of verbs. We need ways of specifying scope, range, temporal order, and conditional dependencies. As a result, most complex systems for gesture also provide switches, hand-held devices, gloves, spoken command languages, or even good old-fashioned keyboards to add more specificity and precision to the commands.<br />
…<br />
Gesture and touch-based systems are already so well accepted that I continually see people making gestures to systems that do not understand them: tapping the screens of non-touch-sensitive displays, pinching and expanding the fingers or sliding the finger across the screen on systems that do not support these actions, and for that matter, waving hands in front of sinks that use old-fashioned handles, not infrared sensors, to dispense water.<br />
…<br />
 All new technologies have their proper place. All new technologies will take a while for us to figure out the best manner of interaction as well as the standardization that removes one source of potential confusion. None of these systems is inherently more natural than the others. The mouse and keyboard are not natural. Speech utterances will have to be learned and gestures carefully developed and standardized through time. The standards don&#8217;t have to be the best of all possibilities. The keyboard has standardized upon variations of qwerty and azerty throughout the world even though neither is optimal&#8211;standards are more important than optimization.</p>
<p>Are natural user interfaces natural? No. But they will be useful.</p></blockquote>
<p><a href="http://www.jnd.org/dn.mss/natural_user_interfaces_are_not_natural.html" title="Natural User Interfaces Are Not Natural">Donald Norman – »Natural User Interfaces Are Not Natural«</a></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/donald-normans-%c2%bbnatural-user-interfaces-are-not-natural%c2%ab/1165/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recognize DisplayObject Transform Matrix Change Event in Flash AS3</title>
		<link>http://johannesluderschmidt.de/lang/en-us/recognize-displayobject-transform-matrix-change-event-in-flash-as3/1134</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/recognize-displayobject-transform-matrix-change-event-in-flash-as3/1134#comments</comments>
		<pubDate>Fri, 20 May 2011 12:12:10 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[Adobe Air]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[flex]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1134</guid>
		<description><![CDATA[If another object changes the transformation matrix of a DisplayObject, the DisplayObject has no means to recognize that it has been transformed, as it is transformed automatically. E.g., there is no kind of TRANSFORMATION_MATRIX_CHANGED event that is dispatched on the DisplayObject. If your DisplayObject still should react on a change of its transformation matrix, a [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2011/05/Flash-BuilderSchnappschuss004.png" alt="" title="Flash Builder Code" width="450" height="100" class="aligncenter size-full wp-image-1151" /></p>
<p>If another object changes the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Transform.html#matrix">transformation matrix</a> of a <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html">DisplayObject</a>, the DisplayObject has no means to recognize that it has been transformed, as it is transformed automatically. E.g., there is no kind of TRANSFORMATION_MATRIX_CHANGED event that is dispatched on the DisplayObject. If your DisplayObject still should react on a change of its transformation matrix, a workaround is necessary, which is described in the following approach. I show a short solution at first and will explain the actual problem and solution approach in more detail afterwards.<br />
<span id="more-1134"></span><br />
DISCLAIMER: I found no solution where the change of the transformation matrix can be recognized without changing the object that actually does the matrix transformation. If you know or find one, be so kind to post it in the comments.</p>
<p><strong>Short Solution:</strong></p>
<p>Your DisplayObject called <em>UpdateDetectionSprite</em>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> UpdateDetectionSprite <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#123;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">transform</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Transform</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span> = <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #009900; font-style: italic;">//…</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>Object that does the matrix transformation called <em>ActionObject</em>:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> ActionObject<span style="color: #000000;">&#123;</span>
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> performTransformation<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> transformedSprite<span style="color: #000066; font-weight: bold;">:</span>UpdateDetectionSprite = <span style="color: #0033ff; font-weight: bold;">new</span> UpdateDetectionSprite<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Transform</span> = transformedSprite<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">;</span> 
	<span style="color: #6699cc; font-weight: bold;">var</span> <span style="color: #004993;">matrix</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Matrix</span> = <span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">matrix</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
	<span style="color: #009900; font-style: italic;">//do something with matrix, e.g., move object by translation</span>
	<span style="color: #004993;">matrix</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">translate</span><span style="color: #000000;">&#40;</span><span style="color: #000000; font-weight:bold;">10</span><span style="color: #000066; font-weight: bold;">,</span><span style="color: #000000; font-weight:bold;">20</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
	<span style="color: #009900; font-style: italic;">//assign matrix to Transform object</span>
	<span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">matrix</span> = <span style="color: #004993;">matrix</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #009900; font-style: italic;">//assign changed transform object to your DisplayObject. your overriden </span>
	<span style="color: #009900; font-style: italic;">//setter will be called, causing the update flag to be set.</span>
	transformedSprite<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span> = <span style="color: #004993;">transform</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p><strong>Actual Problem:</strong><br />
I have a <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Sprite.html">Sprite</a> (called UpdateDetectionSprite) in which I want to be informed, when the object has been transformed (moved, rotated or scaled). To establish that, one part of the approach is to override the appropriate setters for <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#x">x</a>, <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#x">y</a>, <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#width">width</a>, <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#height">height</a>, <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#scaleX">scaleX</a>, <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#scaleY">scaleY</a> and <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#rotation">rotation</a> in UpdateDetectionSprite. However, if the UpdateDetectionSprite is modified when its transformation matrix is changed, the mentioned setters will NOT be called, so UpdateDetectionSprite will not be informed on a matrix change, it will automatically transformed. My first idea was to override the setter for the matrix in order to react on the assignment of matrix to UpdateDetectionSprite, but the matrix itself actually is not a property of DisplayObject but a property of DisplayObject&#8217;s <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/DisplayObject.html#transform">transform property</a>. So I overrode the transform setter in UpdateDetectionSprite. In order to inform UpdateDetectionSprite that its matrix has been changed, you additionally have to set the transform property in ActionObject that does the transformation (see listing 2). That approach works as well with UpdateDetectionSprite as with each other DisplayObject.</p>
<p>Complete UpdateDetectionSprite:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> UpdateDetectionSprite <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#123;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> _updated<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Boolean</span><span style="color: #000066; font-weight: bold;">;</span>
&nbsp;
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">transform</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Transform</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span> = <span style="color: #004993;">value</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">x</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #004993;">x</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">x</span> = <span style="color: #004993;">x</span><span style="color: #000066; font-weight: bold;">;</span>	
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">y</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #004993;">y</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">y</span> = <span style="color: #004993;">y</span><span style="color: #000066; font-weight: bold;">;</span>	
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">rotation</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">rotation</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #004993;">rotation</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">rotation</span> = <span style="color: #004993;">rotation</span><span style="color: #000066; font-weight: bold;">;</span>	
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">width</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">width</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">width</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #004993;">width</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">width</span> = <span style="color: #004993;">width</span><span style="color: #000066; font-weight: bold;">;</span>	
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">height</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">height</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">height</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #004993;">height</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">height</span> = <span style="color: #004993;">height</span><span style="color: #000066; font-weight: bold;">;</span>	
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">scaleX</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">scaleX</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">scaleX</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #004993;">scaleX</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">scaleX</span> = <span style="color: #004993;">scaleX</span><span style="color: #000066; font-weight: bold;">;</span>	
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> override <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> <span style="color: #004993;">scaleY</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">scaleY</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Number</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">scaleY</span> <span style="color: #000066; font-weight: bold;">!</span>= <span style="color: #004993;">scaleY</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>updated = <span style="color: #0033ff; font-weight: bold;">true</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">super</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">scaleY</span> = <span style="color: #004993;">scaleY</span><span style="color: #000066; font-weight: bold;">;</span>	
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> <span style="color: #0033ff; font-weight: bold;">set</span> updated<span style="color: #000000;">&#40;</span>updated<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Boolean</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #0033ff; font-weight: bold;">if</span><span style="color: #000000;">&#40;</span>updated<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#123;</span>
		<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span>EXIT_FRAME<span style="color: #000066; font-weight: bold;">,</span> updatedSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #000000;">&#125;</span>
	<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>_updated = updated<span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #0033ff; font-weight: bold;">protected</span> <span style="color: #339966; font-weight: bold;">function</span> updatedSprite<span style="color: #000000;">&#40;</span>event<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Event</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span><span style="color: #000000;">&#123;</span>
	<span style="color: #009900; font-style: italic;">//do something</span>
	<span style="color: #009900; font-style: italic;">//...</span>
	<span style="color: #009900; font-style: italic;">//...</span>
	updated = <span style="color: #0033ff; font-weight: bold;">false</span><span style="color: #000066; font-weight: bold;">;</span>
	<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">removeEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">Event</span><span style="color: #000066; font-weight: bold;">.</span>EXIT_FRAME<span style="color: #000066; font-weight: bold;">,</span> updatedSprite<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>For testing purposes, I additionally tried to write a custom <em>Transform</em> object called UpdateDetectionTransform that inherits from <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Transform.html">Transform</a>, assign it to UpdateDetectionSprite&#8217;s transformation property and override the <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/geom/Transform.html#matrix">matrix setter</a> in UpdateDetectionTransform. I do not know why, but it is not possible to assign a custom Transform object to the transform property. This code</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span> = <span style="color: #0033ff; font-weight: bold;">new</span> UpdateDetectionTransform<span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">transform</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span></pre></td></tr></table></div>

<p>will print &#8216;[object Transform]&#8216; to the console. This means that the assignment of UpdateDetectionTransform to this.transform does not work. I do not know why. If you know why, post it in the comments please.</p>
<p>Alternatively to my outlined approach above, you could dispatch a custom event in ActionObject on UpdateDetectionTransform.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/recognize-displayobject-transform-matrix-change-event-in-flash-as3/1134/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ThrongOSCDeck &#8211; an OSC &amp; TUIO Recorder and Player [Update]</title>
		<link>http://johannesluderschmidt.de/lang/en-us/throngoscdeck-an-osc-tuio-recorder-and-player/1127</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/throngoscdeck-an-osc-tuio-recorder-and-player/1127#comments</comments>
		<pubDate>Wed, 04 May 2011 14:58:46 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[Throng]]></category>
		<category><![CDATA[tuio]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[osc]]></category>
		<category><![CDATA[throng]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1127</guid>
		<description><![CDATA[I have been looking for an application on the Internet that allows to record TUIO streams. However, I did not find a sufficient solution for this problem. Thus, I decided to write my own application called ThrongOSCDeck that can accomplish this task. It builds upon my Throng application that can be used to multiplex TUIO [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2011/05/OSCRecorderPlayerSchnappschuss001.png" alt="" title="OSCRecorderPlayer" width="450" height="380" class="aligncenter size-full wp-image-1128" /></p>
<p>I have been looking for an application on the Internet that allows to record TUIO streams. However, I did not find a sufficient solution for this problem. Thus, I decided to write my own application called ThrongOSCDeck that can accomplish this task. It builds upon my <a href="http://johannesluderschmidt.de/lang/en-us/throng-–-a-multiplexer-for-tuio-messages-and-packets/1102">Throng application</a> that can be used to multiplex TUIO bundles from different TUIO providers.<br />
<span id="more-1127"></span><br />
Although initially intended for TUIO only, ThrongOSCDeck can be used for any kind of OSC stream. After recording an OSC stream, it can be played back or saved to file. I have designed the file format in a way that it is human-readable and editable.</p>
<p>Check out <a href="http://code.google.com/p/throng/">Throng&#8217;s Google code page</a> for more information.</p>
<p><strong>Update:</strong> I eventually found another OSC recorder via <a href="http://tuio.org/?software">tuio.org</a> called <a href="http://github.com/chaosct/OSCRecordTools">OSCRecordTools</a>. It is written in Python.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/throngoscdeck-an-osc-tuio-recorder-and-player/1127/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Throng – a Cross-Platform Multiplexer for Tuio Messages and Packets</title>
		<link>http://johannesluderschmidt.de/lang/en-us/throng-%e2%80%93-a-multiplexer-for-tuio-messages-and-packets/1102</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/throng-%e2%80%93-a-multiplexer-for-tuio-messages-and-packets/1102#comments</comments>
		<pubDate>Sun, 20 Feb 2011 12:47:42 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Multi-Touch]]></category>
		<category><![CDATA[OSC]]></category>
		<category><![CDATA[Tangible Interfaces]]></category>
		<category><![CDATA[Throng]]></category>
		<category><![CDATA[tuio]]></category>
		<category><![CDATA[bridge]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[throng]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1102</guid>
		<description><![CDATA[Throng (Tuio multiplexeR that crOps and Globalizes) provides a Tuio multiplexer with added benefits written in Java. Throng comes in two flavors: I. Throng provides… 1.) … a Tuio proxy (or bridge) that is necessary for applications that may only access network sources on the local machine (like Adobe Flash). If other devices (like iPhones) [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/throng/admin">Throng (Tuio multiplexeR that crOps and Globalizes)</a> provides a Tuio multiplexer with added benefits written in Java.</p>
<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2011/02/ThrongSchnappschuss001.png" alt="" title="Throng Screenshot" width="450" height="350" class="aligncenter size-full wp-image-1103" /><br />
<span id="more-1102"></span><br />
Throng comes in two flavors:</p>
<p>I. <strong>Throng</strong> provides…</p>
<p>1.) … a Tuio proxy (or bridge) that is necessary for applications that may only access network sources on the local machine (like Adobe Flash). If other devices (like iPhones) want to access such an application via Tuio over the network, a proxy will be necessary.</p>
<p>2.) … multiplexing of Tuio alive messages: If Tuio messages from multiple sources access one client application (or as it is called in OSC: a server application), all sources use alive messages that only contain their alive ids. If the client application does not support different source providers (which is the case for many tuio libraries), each Tuio source will remove the alive objects and cursors of each other Tuio source causing, e.g., touches to flicker.</p>
<p>3.) … individualization of the session ids of each source: if different Tuio message sources use the same session id range, the results can be &#8230; awkward. Hence, Throng individualizes them.</p>
<p>4.) … one consistent Tuio Fseq message order for all arriving packets.</p>
<p>5.) … adding of a Tuio source message to each Tuio package or, if such a message already exists, modification of this message after the &#8220;@&#8221; to contain source_ip:source_port to allow for discerning of sources in the client application.</p>
<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2011/02/manualView.ThrongManualGUISchnappschuss001.png" alt="" title="Throng Custom Screenshot" width="450" height="180" class="aligncenter size-full wp-image-1105" /></p>
<p>II. <strong>Throng Custom</strong> provides an application in which the x and y values of Tuio set messages of different sources can be cropped, shrunk and moved in order to allow for, e.g., a two camera &#8211; two tracker system on two computers for one interactive surface.</p>
<p><a href="http://code.google.com/p/throng/admin">Throng is hosted (with full code available) on Google Code.</a></p>
<p>Throng is based on <del datetime="2011-05-04T14:59:52+00:00"><a href="http://www.transmote.com/flosc/">Flosc</a> by <a href="http://www.benchun.net/">Ben Chun</a></del> the <a href="http://www.illposed.com/software/javaosc.html">illposed OSC classes</a> and the <a href="http://www.tuio.org/?software">TUIO Java implementation</a> by Martin Kaltenbrunner.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/throng-%e2%80%93-a-multiplexer-for-tuio-messages-and-packets/1102/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Subversion Plugin Subclipse Proxy Server Settings in Eclipse or Flash Builder</title>
		<link>http://johannesluderschmidt.de/lang/en-us/subversion-plugin-subclipse-proxy-server-settings-eclipse-flash-uilder/1094</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/subversion-plugin-subclipse-proxy-server-settings-eclipse-flash-uilder/1094#comments</comments>
		<pubDate>Fri, 11 Feb 2011 13:11:43 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1094</guid>
		<description><![CDATA[Eclipse with SVN (e.g. Subclipse plugin) looks in three places for a proxy server configuration: The first place (NOT for SVN internet connections): -> Windows -> Preferences -> General -> Network Connections The proxy servers that are shown here are&#8230; &#8230; added by default by eclipse (Proxy entries: HTTP, HTTPS, SOCKS; Proxy bypass: localhost, 127.0.0.1). [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2011/02/Flash-BuilderSchnappschuss001.png" alt="" title="eclipse Proxy Settings" width="450" height="393" class="aligncenter size-full wp-image-1098" /></p>
<p>Eclipse with SVN (e.g. Subclipse plugin) looks in three places for a proxy server configuration:<br />
<span id="more-1094"></span><br />
The first place (NOT for SVN internet connections):<br />
-> Windows -> Preferences -> General -> Network Connections<br />
The proxy servers that are shown here are&#8230;<br />
&#8230; added by default by eclipse (Proxy entries: HTTP, HTTPS, SOCKS; Proxy bypass: localhost, 127.0.0.1).</p>
<p>The second place is the Internet Explorer. If you go to Extras->Internet Options->Connections->LAN Options->Proxy Server in Internet Explorer, you can add a proxy server manually. Eclipse/Flash Builder also adds these manual proxy settings to its own connections.</p>
<p>The rest of the connections in Eclipse/Flash Builder are added manually by the user.</p>
<p>The third place (for SVN internet connections):<br />
SVN stores its proxy in a configuration file. <a href="http://www.mkville.com/blog/index.cfm/2007/11/8/Using-Subclipse-Behind-a-Proxy-Server">If you look for it in Windows XP here is a good manual</a>. If you look for it under Windows 7 (or Vista?) go to C:\Users\MyUserId\AppData\Roaming\Subversion\servers. http-proxy-host and http-proxy-port control the proxy used by SVN (e.g. subclipse in eclipse).</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/subversion-plugin-subclipse-proxy-server-settings-eclipse-flash-uilder/1094/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Preview: New Multi-Touch Gestures on iPad iOS 4.3</title>
		<link>http://johannesluderschmidt.de/lang/en-us/preview-new-multi-touch-gestures-on-ipad-ios-4-3/1091</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/preview-new-multi-touch-gestures-on-ipad-ios-4-3/1091#comments</comments>
		<pubDate>Thu, 13 Jan 2011 09:46:55 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[Gestures]]></category>
		<category><![CDATA[iOs]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Multi-Touch]]></category>
		<category><![CDATA[gestures]]></category>
		<category><![CDATA[Natural User Interfaces]]></category>
		<category><![CDATA[NUI]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1091</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object width="470" height="377"><param name="movie" value="http://www.youtube.com/v/wvxSSGUtTYA?fs=1&#38;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wvxSSGUtTYA?fs=1&#38;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="470" height="377"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/preview-new-multi-touch-gestures-on-ipad-ios-4-3/1091/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Surface 2 Preview</title>
		<link>http://johannesluderschmidt.de/lang/en-us/microsoft-surface-2-preview/1087</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/microsoft-surface-2-preview/1087#comments</comments>
		<pubDate>Fri, 07 Jan 2011 12:08:36 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[microsoft surface]]></category>
		<category><![CDATA[Multi-Touch]]></category>
		<category><![CDATA[Tangible Interfaces]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[tangible]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1087</guid>
		<description><![CDATA[I am Stunned Read more at Engadget and Microsoft.]]></description>
			<content:encoded><![CDATA[<p>I am Stunned</p>
<p><object width="450" height="278"><param name="movie" value="http://www.youtube.com/v/el7kBN2k2Ls?fs=1&#38;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/el7kBN2k2Ls?fs=1&#38;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="278"></embed></object><br />
<span id="more-1087"></span><br />
<object width="450" height="278"><param name="movie" value="http://www.youtube.com/v/gaNav2hXzik?fs=1&#38;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gaNav2hXzik?fs=1&#38;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="450" height="278"></embed></object></p>
<p>Read more at <a href="http://www.engadget.com/2011/01/07/samsung-sur40-for-microsoft-surface-hands-on-with-video/">Engadget</a> and <a href="http://www.microsoft.com/surface/">Microsoft</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/microsoft-surface-2-preview/1087/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Suppress Fonic Huawei Surfstick Automount and Automatic Opening of Mobile Partner Application under Mac OS X</title>
		<link>http://johannesluderschmidt.de/lang/en-us/suppress-fonic-huawei-surfstick-automount-and-automatic-opening-of-mobile-partner-application-under-mac-os-x/1086</link>
		<comments>http://johannesluderschmidt.de/lang/en-us/suppress-fonic-huawei-surfstick-automount-and-automatic-opening-of-mobile-partner-application-under-mac-os-x/1086#comments</comments>
		<pubDate>Mon, 20 Dec 2010 09:10:28 +0000</pubDate>
		<dc:creator>johannes</dc:creator>
				<category><![CDATA[Solutions]]></category>
		<category><![CDATA[fonic]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[mobile partner]]></category>

		<guid isPermaLink="false">http://johannesluderschmidt.de/?p=1086</guid>
		<description><![CDATA[This approach worked for my Huawei Fonic Surfstick (with model number E1550): 1. Choose &#8220;Network&#8221; in System Preferences 2. Choose &#8220;HUAWEIMobile-Modem&#8221; 3. Choose &#8220;More Options…&#8221; 4. In tab &#8220;Modem&#8221; choose &#8220;Null Modem&#8221; from Manufacturer dropdown menu 5. In tab &#8220;PPP&#8221; check &#8220;Connect via Terminal&#8221; 6. Press &#8220;OK&#8221; 7. Press &#8220;Apply Settings&#8221; 8. Press &#8220;Connect&#8221; 9. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://johannesluderschmidt.de/wp-content/uploads/2010/12/VorschauSchnappschuss019.png" alt="" title="HuaweiFonicE1550" width="450" height="330" class="aligncenter size-full wp-image-1137" /></p>
<p>This approach worked for my Huawei Fonic Surfstick (with model number E1550):<br />
<span id="more-1086"></span><br />
1. Choose &#8220;Network&#8221; in System Preferences<br />
2. Choose &#8220;HUAWEIMobile-Modem&#8221;<br />
3. Choose &#8220;More Options…&#8221;<br />
4. In tab &#8220;Modem&#8221; choose &#8220;Null Modem&#8221; from Manufacturer dropdown menu<br />
5. In tab &#8220;PPP&#8221; check &#8220;Connect via Terminal&#8221;<br />
6. Press &#8220;OK&#8221;<br />
7. Press &#8220;Apply Settings&#8221;<br />
8. Press &#8220;Connect&#8221;<br />
9. Enter &#8220;atz&#8221; and press return in appearing terminal window (you will not see the characters appearing)<br />
10. Enter &#8220;atz^u2diag=0&#8243; and press return<br />
11. Press &#8220;Cancel&#8221;<br />
12. Reset HUAWEI modem settings (uncheck &#8220;Connect via Terminal&#8221; and choose &#8220;Apple Modem&#8221; from manufacturer dropdown menu)</p>
<p>Happy no Mobile Partner time!</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesluderschmidt.de/lang/en-us/suppress-fonic-huawei-surfstick-automount-and-automatic-opening-of-mobile-partner-application-under-mac-os-x/1086/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

