<?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>NeatTools Project</title>
	<atom:link href="https://sambaker.net/neattools/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>https://sambaker.net/neattools</link>
	<description>My attempt at updating NeatTools (C++ and AS3)</description>
	<lastBuildDate>Tue, 25 Mar 2014 20:05:38 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.9</generator>
	<item>
		<title>Glitches in the Matrix, er&#8230;NeatTools</title>
		<link>https://sambaker.net/neattools/?p=265</link>
					<comments>https://sambaker.net/neattools/?p=265#respond</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Tue, 25 Mar 2014 20:03:55 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=265</guid>

					<description><![CDATA[Step one, I&#8217;ve identified the Windows function that created the toolbox windows. It&#8217;s in JComponent.cpp here: //Toolbox! JComponent* JComponent::createJDialog(char* name, JComponent* p, boolean widthSysMenu, void** arg) { HWND hWnd = CreateWindowEx( WS_EX_TOPMOST, name, "", WS_POPUP &#124; WS_CLIPCHILDREN &#124; WS_CAPTION &#124; WS_DLGFRAME &#124; WS_SIZEBOX &#124; ((widthSysMenu) ? WS_SYSMENU : 0), 0, 0, 0, 0, (HWND)(int)*p, null, [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Step one, I&#8217;ve identified the Windows function that created the toolbox windows.  It&#8217;s in JComponent.cpp here:</p>
<pre lang="cpp">
//Toolbox! 
  JComponent* JComponent::createJDialog(char* name, 
    JComponent* p, boolean widthSysMenu, void** arg) {
	  HWND hWnd = CreateWindowEx(
		  WS_EX_TOPMOST,
		  name,
		  "",
		  WS_POPUP | WS_CLIPCHILDREN | WS_CAPTION | WS_DLGFRAME | WS_SIZEBOX | ((widthSysMenu) ? WS_SYSMENU : 0),
		  0, 
		  0,
		  0,
		  0,
		  (HWND)(int)*p, 
		  null,
		  JMicroSoft::hInstance,
		  (LPVOID)arg);
    return (hWnd) ? getJComponent((int)hWnd) : null;
  }
</pre>
<p>So far I&#8217;ve been able to modify the windows style slightly, just to prove that this is the window I&#8217;m looking for.  Now I need to figure out how it&#8217;s being resized.</p>
<p>I&#8217;ve also encountered another bug.  If I leave a toolbox open, when I close the program down, when I come back, the border on the toolbox is missing.  If I close it and restart the program it seems fine, but still strange.  One thing at a time.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=265</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>First Build</title>
		<link>https://sambaker.net/neattools/?p=252</link>
					<comments>https://sambaker.net/neattools/?p=252#comments</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Sat, 22 Mar 2014 00:00:18 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=252</guid>

					<description><![CDATA[So, I did a preliminary build.Â  I&#8217;m using Microsoft Visual Studio Express 2013 for Windows Desktop. And the source files from Sourceforge. I started with these instructions for building the executable from source in Visual Studio. I didn&#8217;t get the errors he mentioned, but I did get three errors, which can be fixed (at least [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>So, I did a preliminary build.Â  I&#8217;m using <a href="http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx">Microsoft Visual Studio Express 2013 for Windows Desktop</a>.</p>
<p>And the <a href="http://neattools.cvs.sourceforge.net/viewvc/neattools/">source files from Sourceforge</a>.</p>
<p>I started with <a href="http://neattools.wikidot.com/building-neattools-executable-from-source">these instructions for building the executable from source in Visual Studio.</a></p>
<p>I didn&#8217;t get the errors he mentioned, but I did get three errors, which can be fixed (at least for building purposes) with changes to JMixerObj.h in the modules folder.Â  Add the line:</p>
<pre lang="cpp">static void** hMixer;</pre>
<p>Also in JMixerObj.h the following three lines need to be commented out because<br />
the procedures referenced do not exist in the .cpp file.</p>
<pre lang="cpp">
// virtual JArray getDeviceTag();
// virtual JArray getProperties();
// virtual boolean updateProperty(JProperty&amp; prop);
</pre>
<p>So, yay, it compiles. But there is a problem (probably several) illustrated below.  The Toolbox windows don&#8217;t resize well.  They should resize to any shape and then wrap all the modules to the space.  This seems to be switching between two values very quickly making resizing impossible.  You can generally get it to a shape that let&#8217;s you pull out the modules, but it doesn&#8217;t seem to let you resize the window to encompass all the modules, which you should be able to do.  Any thoughts?<br />
<a href="https://sambaker.net/neattools/wp-content/uploads/2014/03/neattools1.gif" rel="lightbox[252]"><img loading="lazy" src="https://sambaker.net/neattools/wp-content/uploads/2014/03/neattools1.gif" alt="neattools1" width="267" height="258" class="alignleft size-full wp-image-260" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=252</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>A Fresh Start</title>
		<link>https://sambaker.net/neattools/?p=250</link>
					<comments>https://sambaker.net/neattools/?p=250#respond</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Fri, 21 Mar 2014 21:23:11 +0000</pubDate>
				<category><![CDATA[Original]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[neattools]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=250</guid>

					<description><![CDATA[So, it&#8217;s been a while, and I&#8217;m making a change to the site.Â  Basically, I&#8217;m expanding the scope of the project to include my recent decision to take the the updating of NeatTools upon myself.Â  For the moment, the goal is just to create a stable version of the current functionality of NeatTools and to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>So, it&#8217;s been a while, and I&#8217;m making a change to the site.Â  Basically, I&#8217;m expanding the scope of the project to include my recent decision to take the the updating of NeatTools upon myself.Â  For the moment, the goal is just to create a stable version of the current functionality of NeatTools and to bring it into the 21st century (just a few years late).Â  This will require, obviously, working in C++, something I have basically no experience with.Â  I can make a mean, &#8220;Hello World&#8221; program, though.Â  I do have general programming experience, and I&#8217;m hoping that I can acquire the required knowledge.Â  I&#8217;m also giving myself a year to do this (this being, learn C++ and fix NeatTools).Â  So ambition isn&#8217;t going to be my problem.</p>
<p>I&#8217;ve set out some milestones for the process.Â  I&#8217;d like to create an external module. I&#8217;d like to create an internal module.Â  I&#8217;d like to update the UI.Â  And probably some more things I can&#8217;t think of at the moment.Â  I&#8217;ve already gained enough knowledge to be able to screw NeatTools up pretty badly while still compiling, so there&#8217;s that.</p>
<p>I&#8217;m going to track my progress and hopefully I&#8217;ll see this through.Â  I think I don&#8217;t enough to be too daunted at this point.Â  That may change, but here&#8217;s hoping I can stick it out.Â  Wish me luck.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=250</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Let there be light.</title>
		<link>https://sambaker.net/neattools/?p=235</link>
					<comments>https://sambaker.net/neattools/?p=235#comments</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Fri, 01 Apr 2011 15:15:54 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=235</guid>

					<description><![CDATA[Engine works. Button passes it&#8217;s value to the LED, and the LED checks it&#8217;s value and lights up.Â  The potential question now, is is my current mechanism for pinging the connection a bottleneck? I mean it is, but how bad of one.Â  Right now, Connections are kept in an array in the Workspace.Â  Connections have [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Engine works. Button passes it&#8217;s value to the LED, and the LED checks it&#8217;s value and lights up.Â  The potential question now, is is my current mechanism for pinging the connection a bottleneck? I mean it is, but how bad of one.Â  Right now, Connections are kept in an array in the Workspace.Â  Connections have two modules as properties moduleA and moduleB.Â  So, when the button is pressed, it first has to find all the connections where moduleA is the button, then pass moduleA&#8217;s value to moduleB&#8217;s engine.Â  The more modules I have the slower this process will be obviously, but how fast will it reach critical mass. I will probably need to devise some benchmarking. Anyway&#8230;</p>
<p>
<object width="400" height="400">
<param name="movie" value="source/neattools31.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="400" height="400" src="source/neattools31.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=235</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Graphical Assets</title>
		<link>https://sambaker.net/neattools/?p=232</link>
					<comments>https://sambaker.net/neattools/?p=232#comments</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Mon, 28 Mar 2011 19:59:34 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=232</guid>

					<description><![CDATA[So I took a little detour on actual progress, and took a stab a some alternative looks for the modules.Â  To this point the modules were drawn using the drawing api in as3.Â  I decided to design a button and an led in the Flash IDE and then bring them into my project as graphical [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>So I took a little detour on actual progress, and took a stab a some alternative looks for the modules.Â  To this point the modules were drawn using the drawing api in as3.Â  I decided to design a button and an led in the Flash IDE and then bring them into my project as graphical assets.Â  I&#8217;d ultimately like to have skins for this, I could do an original NeatTools skin, but I though I would try an remove some of the ambiguity of the original modules, and make them a little prettier.Â  No functionality yet, I have the LED on state ready to go, I just need to code it.</p>
<p>
<object width="400" height="400">
<param name="movie" value="source/neattools30.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="400" height="400" src="source/neattools30.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=232</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Connections: Take one</title>
		<link>https://sambaker.net/neattools/?p=225</link>
					<comments>https://sambaker.net/neattools/?p=225#respond</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Sun, 27 Mar 2011 05:56:26 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=225</guid>

					<description><![CDATA[So like last time, i&#8217;m starting by hard-wiring a connection to start with, then I&#8217;ll go back to how to create them dynamically.Â Â  And since my last post, I&#8217;ve rethought the connections questions and I&#8217;m going to make it more outside in, rather than trying to figure out some hacky way of having children and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>So like last time, i&#8217;m starting by hard-wiring a connection to start with, then I&#8217;ll go back to how to create them dynamically.Â Â  And since my last post, I&#8217;ve rethought the connections questions and I&#8217;m going to make it more outside in, rather than trying to figure out some hacky way of having children and grandchildren telling parents what to do. So&#8230; to that end, I created a neatWorkspace class. Structure as follows:</p>
<p>Workspace is the parent of everything (so far). It has children button  and LED. They have children input and output (or in buttons case, inputs and outputs) Workspace also has a child Connection A, which contains a reference to  button and LED, and which output of button will be connecting to what input of LED. Connection A has a child neatWire (the graphic  connection) which is a line from button output, to LED input.</p>
<p>
<object width="400" height="400">
<param name="movie" value="source/neattools29.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="400" height="400" src="source/neattools29.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>the wires fail if you try to create new ones by dragging out lines, but they&#8217;re just holdovers, I haven&#8217;t revisited them yet.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=225</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Back to NeatTools</title>
		<link>https://sambaker.net/neattools/?p=220</link>
					<comments>https://sambaker.net/neattools/?p=220#comments</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Fri, 18 Mar 2011 14:26:02 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[neattools]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=220</guid>

					<description><![CDATA[So, I&#8217;ve started over with NeatTools.Â  There has been some recent interest in rebooting the real NeatTools, which got me more interested in the AS3 versions again.Â  Last time, I got bogged down with figuring out how to manage the connections, so I&#8217;m rebuilding it from scratch, and hopefully I can figure out the best [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>So, I&#8217;ve started over with NeatTools.Â  There has been some recent interest in rebooting the <a href="http://neattools.org" target="_blank">real NeatTools</a>, which got me more interested in the AS3 versions again.Â  Last time, I got bogged down with figuring out how to manage the connections, so I&#8217;m rebuilding it from scratch, and hopefully I can figure out the best way to handle these pesky connections between modules. I have a lot of questions about how to handle them though.</p>
<ul>
<li>Should connections be independent objects with references to the modules they connect?</li>
<li>Should modules contain the connection object instead?</li>
<li>Should connections just be imaginary and instead should modules contain a reference to any module they are connected to?</li>
<li>Should there be duplicate references (ie, should moduleA know it&#8217;s connected to moduleB and vice versa)?</li>
<li>Should modules only know what they&#8217;re outputting to, but not care what might be plugged into the back of them?</li>
</ul>
<p>Anyway, here&#8217;s the current version. You can drag out a line from the outputs, but the connection function doesn&#8217;t do really anything at the moment, it just draws a strange line (so I can see something happened).</p>
<p>
<object width="400" height="400">
<param name="movie" value="source/neattools28.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="400" height="400" src="source/neattools28.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=220</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>NeatTools on Android (sort of)</title>
		<link>https://sambaker.net/neattools/?p=212</link>
					<comments>https://sambaker.net/neattools/?p=212#comments</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Tue, 01 Mar 2011 22:18:36 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[neattools]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=212</guid>

					<description><![CDATA[Getting back to NeatTools related stuff, I&#8217;ve been playing around with the Android SDK and the Adobe Air 2.5 SDK, with support for Android.Â  As one of my first tests, I created an Android version of the NeatTool AS3.Â  Now, I don&#8217;t have an actual android phone. Or any phone for that matter, but I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Getting back to NeatTools related stuff, I&#8217;ve been playing around with the Android SDK and the Adobe Air 2.5 SDK, with support for Android.Â  As one of my first tests, I created an Android version of the NeatTool AS3.Â  Now, I don&#8217;t have an actual android phone. Or any phone for that matter, but I do have the emulator that comes with the SDK and here&#8217;s a screen shot:</p>
<p><a href="https://sambaker.net/neattools/wp-content/uploads/2011/03/androidneattools.png" rel="lightbox[212]"><img loading="lazy" class="size-medium wp-image-214 alignnone" title="androidneattools" src="https://sambaker.net/neattools/wp-content/uploads/2011/03/androidneattools-300x276.png" alt="" width="300" height="276" srcset="https://sambaker.net/neattools/wp-content/uploads/2011/03/androidneattools-300x276.png 300w, https://sambaker.net/neattools/wp-content/uploads/2011/03/androidneattools.png 964w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>It seems to work as well as the Flash version does, which isn&#8217;t all that well, but anyway.Â  New links can be created, broken, modules can be clicked on or moved around.Â  I&#8217;d be interested to see how well the connections would work with a touch screen, but until I can get my hands on an actual device, this will have to wait.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=212</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Augmented Reality</title>
		<link>https://sambaker.net/neattools/?p=203</link>
					<comments>https://sambaker.net/neattools/?p=203#respond</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Wed, 23 Feb 2011 13:44:23 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=203</guid>

					<description><![CDATA[My first foray into the world of augmented reality. FLARToolkit, is a Flash Augmented Reality library, a port of ARToolkit. It handles the detection, homography, and tracking of custom &#8216;markers&#8217;, onto which can be drawn, 3D objects, in this case using the Papervision3D library. To view my example, download and print out my marker here: [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>My first foray into the world of augmented reality.  <a href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en">FLARToolkit</a>, is a Flash Augmented Reality library, a port of ARToolkit.  It handles the detection, homography, and tracking of custom &#8216;markers&#8217;, onto which can be drawn, 3D objects, in this case using the <a href="http://blog.papervision3d.org/">Papervision3D</a> library.</p>
<p>To view my example, download and print out my marker here: <a href="https://www.sambaker.net/aug/marker.pdf" target="_blank">marker.pdf</a>.</p>
<p>Then click allow below to give flash access to your webcam, and hold up the marker.</p>
<p>
<object width="640" height="480">
<param name="movie" value="/aug/Aug.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="640" height="480" src="/aug/Aug.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=203</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Chaos</title>
		<link>https://sambaker.net/neattools/?p=201</link>
					<comments>https://sambaker.net/neattools/?p=201#respond</comments>
		
		<dc:creator><![CDATA[sambaker]]></dc:creator>
		<pubDate>Sat, 29 Jan 2011 20:34:54 +0000</pubDate>
				<category><![CDATA[AS3]]></category>
		<guid isPermaLink="false">http://sambaker.net/neattools/?p=201</guid>

					<description><![CDATA[Here&#8217;s an old Flash project, I updated and converted to AS3. It uses a simple algorithm to draw the familiar triangle fractal. It&#8217;s set to add a point 24 times a second so wait for it&#8230;]]></description>
										<content:encoded><![CDATA[<p>Here&#8217;s an old Flash project, I updated and converted to AS3.  It uses a simple algorithm to draw the familiar triangle fractal.  It&#8217;s set to add a point 24 times a second so wait for it&#8230;</p>
<p>
<object width="550" height="400">
<param name="movie" value="source/chaos.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowScriptAccess" value="always"></param>
<embed type="application/x-shockwave-flash" width="550" height="400" src="source/chaos.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
 </p>
]]></content:encoded>
					
					<wfw:commentRss>https://sambaker.net/neattools/?feed=rss2&#038;p=201</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
