<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Sugar induced socializing</title>
	<atom:link href="http://dudymas.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dudymas.wordpress.com</link>
	<description>A sketchblog by Dudymas</description>
	<lastBuildDate>Tue, 04 Aug 2009 01:07:11 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language></language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='dudymas.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/900f6d64f1ea498d663b54c91ae4d316?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Sugar induced socializing</title>
		<link>http://dudymas.wordpress.com</link>
	</image>
			<item>
		<title>Coding coding</title>
		<link>http://dudymas.wordpress.com/2009/08/04/coding-coding/</link>
		<comments>http://dudymas.wordpress.com/2009/08/04/coding-coding/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 01:07:08 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=229</guid>
		<description><![CDATA[Okay, I know I&#8217;ve said it before that I was getting tons done. Well, I&#8217;m about to have graphical proof!
I just got event passing working on my code project. It&#8217;s awesome. Now I&#8217;ll just be making resource concepts using templates and boost concept check, and things will be groovalicious!
*moments later*
Ah. So this is what bites [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=229&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Okay, I know I&#8217;ve said it before that I was getting tons done. Well, I&#8217;m about to have graphical proof!</p>
<p>I just got event passing working on my code project. It&#8217;s awesome. Now I&#8217;ll just be making resource concepts using templates and boost concept check, and things will be groovalicious!</p>
<p>*moments later*<br />
Ah. So this is what bites for now. I&#8217;ve got a lot of resource concepts in the code (besides additional libraries I&#8217;ll allow the user to plop down inside the program dir). XMPP hosts, directly connected users, disk IO, graphical contexts, and also memory storage (primarily for events and mostly discrete data). The thing is, they all dole out various resource share types in order for me to get everything to connect smoothly. Really, I do that because it makes threading much easier by designing read-only and easily parallel code to just work at the highest speed, while allowing other types that need write permission (and thus mutex/blocking) to also still work. Some resources are also plain ol&#8217; monitors, with their own worker threads (you pretty much have to do that for net IO), and so they need to create shares that are really just fancy looking thread-safe buffers.</p>
<p>What am I getting at? Well, the worst thing I could do is design OO to just wrap around everything. That would turn it into class/object pea-soup. Design patterns are always stumbling blocks when every problem you are solving is really separate and unifying any two resources under a pattern will typically lead to a golden hammer scenario (suddenly, you gotta make everything a nail or else it won&#8217;t work). Rather than tie myself down with all that junk, I decided to just design concepts using boost&#8217;s concept check. All&#8217;s well, but still&#8230; frustratingly enough, I have to create about 4 classes per handler to make everything work out, because my pointer storage will allow virtual function tables and all, but you still have to make first a base class (to build the VTable on) and then you have to make a template that inherits, which will also let you store share pointers in it. But don&#8217;t forget that the handler needs to design a template for the holder, which will concept check the incoming share. Now to make things even sillier, this all won&#8217;t work unless you then create a share class that caters to that concept. Still&#8230; if you put in all the infrastructure&#8230; suddenly&#8230; it just works. And the design is rather static&#8230; you literally only need to make an empty call to a function or member in the concept to add to it. And you only need to add virtual functions if it&#8217;s completely necessary&#8230; and usually they just call new concept functions. So, once in place, it&#8217;s not going to be hard to expand. Still, it gets a little tedious to update three classes to add a feature (the concept, template, and base).</p>
<p>Whatever, though. I&#8217;d hate to try just doing reinterpret casts and all the other madness that you have to go to just to get the same functionality without type-safety. And the concepts generate nice error checking&#8230; and the VTable sure is dandy. It lets me partially specify special cases of the template class to revert to the base class functionality or just completely add new and bizarre changes if I so desire (at the cost of adding&#8230; you guessed it&#8230; another object/class).</p>
<p>Still, I&#8217;m hopeful that the thing won&#8217;t be too huge a pain in the end. And the idea is to reduce feature changes&#8230; and mostly just make it easy to add as many resource share types as I want without the fear that something will break, leak, or take a hundred additional changes just to support it.</p>
<p>The bottom line: OO will always be evil. And I really just gear my UI to be as ignorant of it as possible (UI + OO + adding features = painful death). The downside of it is that my executable code is getting REALLY big&#8230; even with -O3 and lots of added stripping to the release binaries. And geez&#8230; I still gotta add the individual resource shares once I make them transport data trivially (hopefully tbb will make tuning the CPU usage of each worker thread painless).</p>
<p>We&#8217;ll see. For now&#8230; I&#8217;m optimistic. I SHOULD have a real alpha before classes start. Why? Because I&#8217;m confident that if events are working (the part I thought would take forever), data generation to follow the events is merely brainless function calls and byte pushing. I hope. I hope I hope.</p>
<p>OH! and using OpenGL plus nvidia&#8217;s lil&#8217; IMGUI toolkit has made the UI side of data representation and threading almost TOO easy to pull off. I love that so much more than any other type of GUI. I can&#8217;t tell you how much I hate retained GUI&#8217;s, because of all the work to keep track of EVERYTHING on the screen.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=229&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2009/08/04/coding-coding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>Neat API thoughts</title>
		<link>http://dudymas.wordpress.com/2009/02/01/neat-api-thoughts/</link>
		<comments>http://dudymas.wordpress.com/2009/02/01/neat-api-thoughts/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 22:12:56 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=227</guid>
		<description><![CDATA[Hey, I just checked out what Casey had to say o&#8217;er at mollyrocket.com about API&#8217;s. I&#8217;m definitely coding things up to that. I guess I&#8217;m a little late, seeing as how many of the best entries are over three years old now&#8230; *pheh*, but better late than never. And the PIMGUI stuff on the forums [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=227&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hey, I just checked out what Casey had to say o&#8217;er at <a href="http://mollyrocket.com/450">mollyrocket.com</a> about API&#8217;s. I&#8217;m definitely coding things up to that. I guess I&#8217;m a little late, seeing as how many of the best entries are over three years old now&#8230; *pheh*, but better late than never. And the PIMGUI stuff on the forums there just hit me in the nick of time, when I was about to give up that idea.</p>
<p>So, like I might have mentioned before, besides this being a networked doodling program, I want this sucker to have serious loving for the developer in mind and at heart. If you want to make a brush, filter, or import/export script for the tool, then dev plan will start with the command line interface in the program. So, it&#8217;ll look like adobe photoshop to some degree, but the idea is that you want to start out typing commands into a command line (I&#8217;m thinking it&#8217;ll be a text box near the bottom of the screen, which can be resized like in blender to let you edit the script like a file as well) with, like&#8230; let&#8217;s say you wanted to design a convolution filter. Right now, I&#8217;m going for python right at the start. Assuming that still be the case when the beta comes out (the alpha by no means will have any of this working. It&#8217;ll be a demo of networking and some plugins), then you might make a selection like this:</p>
<p>Bill = Select(&#8220;#FF4500&#8243;);</p>
<p>which would put a selection mask for any pixels with an rgb value of (0xFF, 0&#215;45, 0&#215;00) and put it in a reference variable named &#8216;Bill&#8217; for the currently selected canvas context. I think I&#8217;d prolly for now just make all selections mere grayscale 8bit masks (that could be easily changed), and then you&#8217;d type in stuff to either grab pixels with that mask, manipulate the values, and put them in a new layer, or otherwise. I think it&#8217;s pointless to say anything else about the python API for the code since it&#8217;s so far off (I haven&#8217;t even started imagining how the top-level interface will integrate it, but it&#8217;s going to be fun, and probably not work fully for another year since I only have myself alone on this project), but hopefully it&#8217;ll be half as full-featured as the tools in matlab, but a jillion times the speed.</p>
<p>From there, you could precompile the python (which would be spat out in a log file so you could copy and paste the parts you like), and share it with people for feedback. From there, there&#8217;d be easy ways to make a few compiled libraries in C or C++ (maybe even objective-c, if I feel especially inspired one day).</p>
<p>The theme would be from there that I&#8217;d increase granuality, reduce coupling, and ultimately you&#8217;d control every step, atomically, of the process that data goes through&#8230; from mouse or tablet to the stroke buffer to the rasterizing/vectorizing code, to the data-sinks, to storing it to disk. All of it has to be open. And the nutty thing would be that since the whole api is built around peeling away and inserting, you could easily leave holes in the process or back-doors to test further python code for debugging or feature addition as you go.</p>
<p>The idea is that I really really want this to be academically friendly, and the C++ code should start with high retention and even higher coupling, so that at the start of things, you might only need to make a simple callback function that looks at pixels in an open format and lets you manipulate simple character or floating-point values.</p>
<p>It&#8217;s my hope that this&#8217;ll encourage people to do all sorts of cool stuff, and sandbox the whole thing. You could, with just the rudimentary heirarchy I have right now, maybe build an entire game which takes in tablet input. It wold definitely work horrifically, since I haven&#8217;t really made any mid-layer API which would let you more easily pipe things to and from, say&#8230; a video processor. So you&#8217;d end up doing 90% of the work for some very trivial things&#8230; so don&#8217;t you dare complain if you want to try to do something like that.</p>
<p>The only tools I&#8217;m going to provide are those that make it easy to make four primary things:</p>
<p>A simple Immediate-mode GUI for a tool of yours.<br />
A very in-depth, completely crazy brush tool of whatever making.<br />
Somewhat freeform filters and signal processing scripts.<br />
Storing data and drawing it however you like, to any device you&#8217;d like.</p>
<p>Argh. I hate how ambiguous this all sounds, but as much as it sounds like I haven&#8217;t done any work, I&#8217;m pretty far with the core API.</p>
<p>But wow&#8230; crossplatform is currently my new wall. And So I think the first thing I&#8217;m going to finish is either:<br />
a) Retrofitting a temporary, open Immediate-mode GUI library<br />
or<br />
b) Coding some very basic widgets that draw to a context within windows of each platform (windows, mac/BSD, and linux)</p>
<p>I never knew how easy it is to see what you want to do, have it all charted and all the CSE crap finished (growth analysis of all the various retention strategies and interfaces and so on), but still be completely dead because of all the GUI and OS head-butting that happens during implementation.</p>
<p>I&#8217;ve got to say, if I lose my head, I might just git r dun with OSX first. Then, I&#8217;ll migrate slowly to windows. But oh man&#8230; man oh man&#8230; if only I could just&#8230; do what blender did. That immediate-mode widget stuff is hawt cha cha (when it works, and you know how to keep it simple).</p>
<p>I think I&#8217;ll go look at the blender sources and slobber for a while longer.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/227/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/227/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/227/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=227&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2009/02/01/neat-api-thoughts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>Debugging and such</title>
		<link>http://dudymas.wordpress.com/2009/01/15/debugging-and-such/</link>
		<comments>http://dudymas.wordpress.com/2009/01/15/debugging-and-such/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 06:17:07 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=225</guid>
		<description><![CDATA[Well, the project is going so so. I need to basically make an heirarchy of debugging tools in order to add so much stuff. I mean&#8230; sure. I have a working backbone. It&#8217;ll grab any event you can fire it. Store it. And also throw it out to any data sinks you can manage. Now [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=225&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well, the project is going so so. I need to basically make an heirarchy of debugging tools in order to add so much stuff. I mean&#8230; sure. I have a working backbone. It&#8217;ll grab any event you can fire it. Store it. And also throw it out to any data sinks you can manage. Now I need to make a canvas datasink, a network transfer sink, a network source, tablet input source, and a mouse input source. After that, I need to give them a few brushes to control. This project is nuts. Why am I enjoying it so much?</p>
<p>So, I&#8217;m going to make a dummy brush (basically a monitor pattern, where it sits on the datastruct that hold the strokes from various things and feeds those strokes out to consumers), a dummy brush type (something that interprets that data for any consumers that need more specific data about the strokes), and a dummy data sink (something to actually request data from the brush).</p>
<p>Those three parts need to be in place before I can do anything with unit testing. From there, I just&#8230; well&#8230; code whatever I want. Raster brushes. Vector canvases. Double ended queues of strokes. TCP, UDP, or raw packet data sinks. HTTP data sources. Whatever. The user interface will be a whole nudder story, however. It needs to use this system once it&#8217;s got enough arms and legs to walk (Lets say a raster canvas, raster brush, and a tablet data source&#8230; bare minimum. I don&#8217;t need to create undo on the canvas if I just make it a data sink&#8230; the brush can undo itself manually, even though it might be less efficient than having the canvas manage undo levels and such).</p>
<p>What I think I&#8217;ll do for the top system is make the whole thing a different heirarchy&#8230; based instead on the user. There will be brush factories&#8230; but a singleton for the user&#8217;s own brush. There will be canvas factories. There will be much more floaty structure,  which also means that debugging won&#8217;t require so many pieces before I can begin doing final tests, get an alpha ready for windows and mac and linux, and other goodies will be around.</p>
<p>Why am I revealing so much about the system? Well, for now, I&#8217;m sure of one thing&#8230; I want the whole system to be pluggable. The end product will let  you drop dll&#8217;s (windows) or dylibs (mac and linux) to add new sources, sinks, and brush types. Maybe even brushes, if someone really wants to work with hard core stuff like that&#8230; but for now I will stave that.</p>
<p>Eventually, I&#8217;ll come up with some clever ways to make python routines to a few of the methods that Adobe GIL provides me, and then the paint program will have a python prompt, so that if you want to build a brush, you can start by typing out basics&#8230; saving what you did, testing it on other computers. Later, you can put compiled python into the plugins for the program, and it&#8217;ll run those like real brushes. Then, when it seems ironed out, you can code the whole thing in C or C++ (I won&#8217;t be too picky, I hope&#8230; although it&#8217;ll take me a bit to come up with a way to allow both C and C++ workout together).</p>
<p>The neatest part about the whole thing is how easy it is to duplicate the backbone onto any sort of thing, and as long as you have a unified system for specifying plugins and such, you can have a webserver that has a flash script constantly acting as a data sink, and then you can a OS level preview app that can read updates from disk and display them on your desktop without even having to download the whole program. That&#8217;d be neat, and very handy for a few things.</p>
<p>All in all, I&#8217;m reusing so much code it&#8217;s making me sick&#8230; but at least the bugs have been easy to fix so far. Keep it simple&#8230; keep it simple. I keep telling myself.</p>
<p>More updates when I can, but right now, everything is ugly ugly CLI outputs, which none of you want to see, I&#8217;m sure. Once I have more ironed out, I&#8217;ll definitely show some real shots of the interface. It is going to be snazzy, and will have an Adobe Photoshop look alike interface. That&#8217;ll be sweet. And I&#8217;ll hopefully be able add an incredibly flexible printer data sink, so that you could even mimic various popular printer specs&#8230; like taking an image, creating 32 bit channels out of all the colors using your own custom set of parameters for interpolating or interpreting colors. I think a few of you might know what I&#8217;m hinting at&#8230; mwahahaha. But it&#8217;s far too early in the works to speculate what could be.</p>
<p>I&#8217;ll be signing off now. I hope to really really give the world an awesome utility&#8230; and it&#8217;ll do it&#8217;s darnest to a) Not replace any existing work (It won&#8217;t replace photoshop, flash, synfig, gimp, inkscape, etc.), and b) it&#8217;ll try to improve the availability of everything as much as possible (It will let you work in tandem with software such as photoshop, flash, et. al . online. Across any OS. In real time).</p>
<p>The coolest part is ahead. Because I already have two tablets, so if my fam is willing, I&#8217;ll let you know when I have a windows PC drawing on a gimp xcf, and it showing up on a mac psd, and you can watch it via the little linux pc I have acting as a webserver (it&#8217;ll only have enough oomph to post a jpeg preview once every 10 seconds or something like that).</p>
<p>From there, I&#8217;ll code a canvas that, thanks to the way data sinks work, will have both a tile cache undo history and a stroke undo history (making it use both intelligently will be the tricky part&#8230; but I think I can make a linear algorithm that&#8217;ll deduce the best choice&#8230; so given n tiles + n strokes involved, it can make a greedy choice. But I&#8217;m unsure until I finish the math and such).</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=225&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2009/01/15/debugging-and-such/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>Back in action&#8230; loosely enough</title>
		<link>http://dudymas.wordpress.com/2008/10/04/back-in-action-loosely-enough/</link>
		<comments>http://dudymas.wordpress.com/2008/10/04/back-in-action-loosely-enough/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 02:28:13 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Life in General]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=223</guid>
		<description><![CDATA[Hey all!
I thought I might as well prove I&#8217;m still alive here. I bet wordpress is getting an itchy trigger finger for deleting me from inactivity, right?
Well, here&#8217;s somewhat of a plan I have for getting things done.
I&#8217;m rewriting my brush code for my paint program&#8230; it&#8217;s pretty hilarious to think this way, but I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=223&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hey all!</p>
<p>I thought I might as well prove I&#8217;m still alive here. I bet wordpress is getting an itchy trigger finger for deleting me from inactivity, right?</p>
<p>Well, here&#8217;s somewhat of a plan I have for getting things done.</p>
<p>I&#8217;m rewriting my brush code for my paint program&#8230; it&#8217;s pretty hilarious to think this way, but I thought I&#8217;ll turn my stroke buffer into a parallel datastructure using TBB (threading building blocks). It&#8217;s ridiculously easy to do with that library, and you can&#8217;t argue with the license. Free is free is free.</p>
<p>I&#8217;ll do what I can to give up details on that without giving out too much particular intellectual info. That is, I want to help others start using this library. I might even make an expansion on a structure and post it here.</p>
<p>Also, I&#8217;m still in the process of adding adobe&#8217;s GIL to the project. Who knows, maybe they&#8217;ll like my project enough to give me a few features I might ask of them (More details on that later)</p>
<p>All in all, someone at the arts department at USF seems interested in the project enough that I&#8217;ve got a tremendous amount of steam pumped back into the whole thing. I might publish an svn view here if anyone wants to get an idea of how much work I have ahead of me&#8230; and lordy, if anyone wants to help me with windows coding, that&#8217;d be great. I have OSX leopard and XP, but no vista. And I&#8217;m not about to try to install that monster on any of our home computers.</p>
<p>Also, I&#8217;m investigating the possibilities of making my first networking module based on SCTP&#8230; and later doing a UDP version. TCP is going to be a little&#8230; too wonky in some circumstances, so I need to reengineer the brush stroke adapter classes so that I can more easily send a &#8217;stream&#8217; of stroke data. The format right now is very much chunk oriented, and using TCP will put a lot of zaniness on the client (the server always has it easy with just memcpy and wot-not).</p>
<p>Hoody hoo! back to work! I&#8217;m learning more about SQL and I might also be learning flash very soon. Again. *sigh*</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/223/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/223/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/223/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=223&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2008/10/04/back-in-action-loosely-enough/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>Awesome command line utility</title>
		<link>http://dudymas.wordpress.com/2008/06/05/awesome-command-line-utility/</link>
		<comments>http://dudymas.wordpress.com/2008/06/05/awesome-command-line-utility/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 21:30:47 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=222</guid>
		<description><![CDATA[Okay&#8230; while I am not a huge CLI buff (I&#8217;m getting there&#8230; ), I know that this has &#8220;new future fancy command line utility&#8221; all over it.
These guys over at Cheat have ingeniously put wiki support into the common CLI. While it&#8217;s new (and thus experimental) I&#8217;ve really found this a joy. You can grab [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=222&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Okay&#8230; while I am not a huge CLI buff (I&#8217;m getting there&#8230; ), I know that this has &#8220;new future fancy command line utility&#8221; all over it.</p>
<p>These guys over at <a href="http://cheat.errtheblog.com/">Cheat</a> have ingeniously put wiki support into the common CLI. While it&#8217;s new (and thus experimental) I&#8217;ve really found this a joy. You can grab stuff that&#8217;s not caught on a &#8211;help call, but is nestled too deep in a manpage/infopage to be worthwhile searching. And by grab, I mean grep.</p>
<p>The nice thing about it is how easily you can edit and update the pages. What I hope for in the future is that this&#8217;ll have more &#8216;wiki&#8217; like features. That means linking cheatsheets and allowing terms in a cheat sheet to have pages written up on them.</p>
<p>Also, there&#8217;s no real&#8230; &#8217;security&#8217;</p>
<p>Like, I saw a typo in the cheatsheet for bash, so I edited it (for guffaws, I thought), and lo and behold, it sent the update to the main website. egad! So, I am assuming they&#8217;ll hopefully put security up soon if it becomes big. Either way, this is puh-puh-powerrrrrful.</p>
<p>And it seems everyone using it is rather terse and in general these tidbits save a lot of time.</p>
<p>Eventually they should also put up separate page version depending on your architecture (case in point, because I have darwin right now, I&#8217;m not exactly&#8230; ahem&#8230; going to use all the same commands)</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dudymas.wordpress.com/222/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dudymas.wordpress.com/222/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/222/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/222/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/222/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=222&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2008/06/05/awesome-command-line-utility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>How it worked out</title>
		<link>http://dudymas.wordpress.com/2008/05/05/how-it-worked-out/</link>
		<comments>http://dudymas.wordpress.com/2008/05/05/how-it-worked-out/#comments</comments>
		<pubDate>Mon, 05 May 2008 03:48:43 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=221</guid>
		<description><![CDATA[Well, I went through, and found out that I was, while it wasn&#8217;t too hard to implement, going to be reinventing the wheel too much with lightbox2 . I found that it has been painful, however, to add lightbox to the site. A rather large 200 Kb footprint&#8230; not so easy on me since I&#8217;m [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=221&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well, I went through, and found out that I was, while it wasn&#8217;t too hard to implement, going to be reinventing the wheel too much with <a href="http://www.huddletogether.com/projects/lightbox2/">lightbox2</a> . I found that it has been painful, however, to add lightbox to the site. A rather large 200 Kb footprint&#8230; not so easy on me since I&#8217;m already loading a lot with spry (Spry data is hefty. It makes up for it with the complete and total cleanliness, but still&#8230; ickypoo!). I&#8217;m going to rebalance the load on the server by throwing up some thumbnailers and eventually I&#8217;ll get to a level at which I can make the page also gracefully degrade from JS for all you textual/cellphone browsin&#8217; peeps. Later, if I feel masochistic, I&#8217;ll put in some code for AIR and the like so that you can load it on an iphone. It totally won&#8217;t be worth it for now, however. And ack&#8230; what a pain. The added size in JS files. Does prototype HAVE to be so big?</p>
<p>I tried using <a href="http://www.dolem.com/lytebox/">lytebox</a>, but no beans. It simply chokes on the SPRY, is what I&#8217;m thinking is happening. Otherwise, I could cut out a lot of the excess. :-/</p>
<p>I&#8217;ll go into aptana and try to debug lytebox later (it&#8217;s still on the server), and see what I come up with. It probably won&#8217;t be pretty&#8230; but it would be worth it just to reduce the script overhead.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dudymas.wordpress.com/221/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dudymas.wordpress.com/221/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/221/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/221/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/221/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=221&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2008/05/05/how-it-worked-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>Yet another terrible idea in AJAX</title>
		<link>http://dudymas.wordpress.com/2008/05/03/yet-another-terrible-idea-in-ajax/</link>
		<comments>http://dudymas.wordpress.com/2008/05/03/yet-another-terrible-idea-in-ajax/#comments</comments>
		<pubDate>Sat, 03 May 2008 22:08:04 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=220</guid>
		<description><![CDATA[So, I&#8217;ve been reading a lot more now and have started goofing off with mootools and mochikit. And yet, I fall back to spry. And so now I&#8217;ve got this ludicrous scheme of js include juggling to try out.
Spry is awful good at filling in data.
MooTools has compact effects.
Mochikit pwns the DOM.
But. I need all [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=220&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So, I&#8217;ve been reading a lot more now and have started goofing off with mootools and mochikit. And yet, I fall back to spry. And so now I&#8217;ve got this ludicrous scheme of js include juggling to try out.</p>
<p>Spry is awful good at filling in data.</p>
<p>MooTools has compact effects.</p>
<p>Mochikit pwns the DOM.</p>
<p>But. I need all three features&#8230; I need to handle xml data rapidly and compactly (there&#8217;s a lot of data! tightly nestled in dense xml to save on transfer time), I need effects that aren&#8217;t going to kill CPU&#8217;s or require lots of includes, and I need to chuck DOM modifications out as I change the focus of the web application. :-/</p>
<p>It was nearly doable to put mootools into Spry and throw around some DOM hacks, but as I&#8217;ve been going through it, I have to agree&#8230; this is becoming a ton of unmaintainable code. Something that reeks of &#8216;google google google&#8217; and when I did, Mochikit seems like a great solution. But, ah. That&#8217;s the crux. Should I get script crazy? Ick. Right now, I&#8217;m more or less loving mootools, but the mochikit is the straw to break the camel&#8217;s back. Either way, I&#8217;ll get back to this blog on the progress of my projects if I decide to go through with it. As you can guess already, the RSH hack simply didn&#8217;t work out. It&#8217;s for&#8230; I&#8217;m not sure&#8230; something like google mail or something the like. Otherwise, I&#8217;m just better off doing my own cheap URL anchor hacks by my own wit. I can&#8217;t bash anyone for using RSH, but it&#8217;s a pain if you don&#8217;t need the whole thing, as far as I can tell.</p>
<p>If I were to splurge and put everything I wanted on the page, it&#8217;d probably be about 500k of code, and about 24 k of content. :-/</p>
<p>So, back to chunking solutions into the air in the hopes that I find a quick fix for various things.<br />
In the end, I&#8217;ll hopefully have a good looking comic browser of sorts for my site. You know&#8230; with chapters, page turns, searchability, and xml fetchery fu (if I see another comic that has buttons that just change a single image by reloading the whole page&#8230; again&#8230; I&#8217;ll cry). Keywords might have to wait.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dudymas.wordpress.com/220/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dudymas.wordpress.com/220/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=220&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2008/05/03/yet-another-terrible-idea-in-ajax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>DOM and me (and our marriage counselor, Aptana Studio)</title>
		<link>http://dudymas.wordpress.com/2008/05/03/dom-and-me-and-our-marriage-counselor-aptana-studio/</link>
		<comments>http://dudymas.wordpress.com/2008/05/03/dom-and-me-and-our-marriage-counselor-aptana-studio/#comments</comments>
		<pubDate>Sat, 03 May 2008 04:16:28 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=219</guid>
		<description><![CDATA[A budding relationship. By budding, I mean I need to send flowers and pray there isn&#8217;t a shotgun wedding. Herein lies my tales (so far) of taking a server I have no control over, and turning it into a &#8216;half&#8217; AJAX web-service. I&#8217;ve been recently messing with the DOM, and besides having half of what [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=219&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A budding relationship. By budding, I mean I need to send flowers and pray there isn&#8217;t a shotgun wedding. Herein lies my tales (so far) of taking a server I have no control over, and turning it into a &#8216;half&#8217; AJAX web-service. I&#8217;ve been recently messing with the DOM, and besides having half of what the w3c says going straight over my head, I&#8217;ve been making progress. Sorry&#8230; let me rephrase that:</p>
<p>Hacking the DOM is like begging for ie and ff2 errors and bugs. To be honest, it&#8217;s deadly and you should be very careful with it. For now, let me just say that *cough*hugemegaGHEYadvert*cough* I&#8217;ve been loving Aptana studio. It has an immediate listing next to each crazy DOM feature, listing compatibilities and warning you about which things will fail vs which will succeed on various browsers. And it&#8217;s been a lot easier and fluid than dreamweaver, which I guess has somehow&#8230; gotten too clunky? Well, either way, it&#8217;s now been made much more viable to hack at the DOM with Aptana telling you why some of that stuff is scary. If you can combine this with a decent knowledge of how to build coherent conditionals (those awful &#8221; ? : &#8221; blocks are what I&#8217;m talking about), and you&#8217;ve got a very good way to crush these problems as you hack away. Plug in the debugger, watch the pretty activity meters and funky console output color your page, maybe enter a few commands to make sure things are straight. Now go back, hack some more, put in conditionals, do the debug runs, rinse, lather, peanut butter, repeat. (I also recommend coffee to avoid segmentation faults)</p>
<p>So, I need to really review Aptana more harshly on this, however, because this process is centrally two-fold&#8230; hack first, but then you need to debug and test what you do. But the debugger is hard on the browser. I mean, it&#8217;s not all just a bunch of farting rainbows and happiness&#8230; but take a moment to enjoy that dream for a moment. Lil&#8217; more. Kay? Great.</p>
<p>Okay, so here&#8217;s some beef with this system. I&#8217;ve been messing with Aptana on macOSX for a good bit now too (about two days. Yes&#8230; two days. &#8230; Stop laughing. I&#8217;m serious!). While I&#8217;m a total novice at AJAX and DOM hackery fu, I&#8217;ve noticed some consistent bugs (meaning: easy to get around, but annoying) when it comes to using firebug in tandem with Aptana&#8217;s debugger. Firefox just loves to choke. So, when you&#8217;re busy hacking this stuff up, I definitely suggest that you also try using a pseudo setup of Spry&#8217;s debugger (pretty easy to include&#8230; it has a frustrating interface, but it works rather swell for things) and the firebug debugger. The reason is that I&#8217;ve found re-loading and restarting the debugger has become&#8230; paaainful for firefox to endure. The best bet for your money is to use aptana to code up some junk, do a quick debug run, then do finetuning and tweaking and anything that might be just a bunch of mostly stable, small changes with the spry debugger or another onpage debugger. This seems to really keep things finely greased and unflinching. Of course, you sacrifice the debugging features from Aptana&#8230; but then, their debugger really fails at small tweaks, and even firebug, I&#8217;ve found, tends to bloat a little and slowly screech things up a bit. Borking is normal debugging order, but I&#8217;ve found that an on-page javascript debugger seems to really cut down to brass tax much faster when you don&#8217;t need too much sophistication.</p>
<p>Otherwise, this Aptana studio fellow has been really brilliant and a great spinoff of the Eclipse IDE format, which I&#8217;ve thoroughly enjoyed *cough*moreBIAS*cough* but that still doesn&#8217;t make it foolproof for what I&#8217;ve been doing. I can&#8217;t quite square away what could be making firefox so unstable. I don&#8217;t hear a lot of other people getting the same issues (yet&#8230; maybe I&#8217;m looking in all the wrong places), so I suggest that you play around and see if you don&#8217;t get the same issues. If only it worked on safari, I could definitely nail it down. I have a few more extensions to check out and see if they&#8217;re causing problems, but otherwise, a whole &#8216;restart&#8217; of firefox every other debug run has been my only major complaint.</p>
<p>&#8230;.</p>
<p>and of course, I haven&#8217;t really tried anything else with Aptana other than Spry. Every time I start a new test project&#8230; I already heartily thumb away on google, sifting the pages about all the other free AJAX libraries&#8230; and I think I&#8217;ll start seeing if the debugging goes smoother with them.</p>
<p>This is a really lousy review, and hardly touches upon Aptana&#8230; but then, I don&#8217;t have time to go through and just talk about everything. I think it&#8217;s better that way&#8230; let other people talk about it more.</p>
<p>Thoughts? Angers? Icecream? Maybe you thought this was about marriage and started to wonder what country I&#8217;m from and which Babel fish server I used to cough this page up? Comment and hopefully I&#8217;ll be around to mod/add anything spam karma wants to be touchy about.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dudymas.wordpress.com/219/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dudymas.wordpress.com/219/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=219&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2008/05/03/dom-and-me-and-our-marriage-counselor-aptana-studio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>Elite Spry Ajax hack #1 and 2</title>
		<link>http://dudymas.wordpress.com/2008/03/22/elite-spry-ajax-hack-1-and-2/</link>
		<comments>http://dudymas.wordpress.com/2008/03/22/elite-spry-ajax-hack-1-and-2/#comments</comments>
		<pubDate>Sat, 22 Mar 2008 22:22:08 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Creativity]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=218</guid>
		<description><![CDATA[Well, while this is not for the faint of heart, I found a cool trick that I bet a lot of people might like to see&#8230; And no no&#8230; it&#8217;s not so much &#8220;elite&#8221; as it is &#8220;asinine&#8221;, but since when did ANY hack not connote that? I&#8217;m pretty sure the #1 way to win [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=218&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well, while this is not for the faint of heart, I found a cool trick that I bet a lot of people might like to see&#8230; And no no&#8230; it&#8217;s not so much &#8220;elite&#8221; as it is &#8220;asinine&#8221;, but since when did ANY hack not connote that? I&#8217;m pretty sure the #1 way to win a job interview for a coding job is to walk in with a shirt that says:<br />
&#8220;For all your bug attraction needs, use &#8220;Mr. Clever Hack&#8221; the all purpose coding spray&#8221;</p>
<p>*ahem* Disclaimer aside, let&#8217;s go on</p>
<p>So, I have effect clusters that are similar to the cluster examples in the SPRY Cluster Sample page ( <a href="http://labs.adobe.com/technologies/spry/samples/effects/cluster_sample.html">link</a> ). But, I want it to work with images, and each image is differently sized, and to make it even crazier, the image is contained in a paged view, which means it will only be available at runtime&#8230; there&#8217;s no predifined, static declaration system that would work short of making a whole new xml document and maintaining it with my images (ICK! who wants to do that?). Here&#8217;s how I did it, with a bit of CSS and Spry debugging help (the spry debugger will help you get a grasp on the harder things to manage).</p>
<p>Here&#8217;s the key concepts:<br />
You can always have access to the height of the image if you keep it somewhere hidden (which the cluster allows). So I just nest another Div inside the div for the image&#8230; I called one &#8220;#Comic_Display&#8221; and the other &#8220;#Comic_Image&#8221;. Just make sure that these are UNIQUE (hence the ID&#8217;s), or you will have trouble figuring out which image to get a height from (ie, if you had fifteen divs called &#8220;Comic_Image&#8221;, you&#8217;d have to go through a lot more work to access the pertinent image dimensions).</p>
<p>HACK #1: Using spry to access an element from the client side</p>
<p>This handy line will allow me to, at any time, see the height of the Comic_Image div.</p>
<blockquote><pre style="font-family:monospace, courier, console;">Spry.$$("#Comic_Image")[0].clientWidth
Spry.$$("#Comic_Image")[0].clientHeight</pre>
</blockquote>
<p>Of course, the $$ function grabs the DOM element via the css id it has (so make sure it&#8217;s unique!).</p>
<p>Notice that [0] which is going to be pertinent only if you have more than one &#8220;#Comic_Image&#8221;. This is also cool because if you did have multiple images, you now have a way to iterate through them via the array index so that you can average the dimensions (that way you could maybe find a way to normalize the images).</p>
<p>After you choose an index, client width and height are the functions that grab the display size of the image. You&#8217;ll want to test this on your platforms. If this hack doesn&#8217;t work, you might have to find a different way to get the width&#8230;</p>
<p>HACK #2: Making the clusters change their properties (this has a lot of setup, so bear with me)</p>
<p>If you have the spry debugger on a page somewhere, try making a &#8220;new Spry.Effect.<br />
Every size effect ends up having these member variables: </p>
<blockquote><pre style="font-family:monospace, courier, console;">startWidth
startHeight
stopWidth
stopHeight</pre>
</blockquote>
<p>To change our effect inside the cluster, we just need to refer to it, and command it like so:<br />
EffectReference.startwidth = somewidth;</p>
<p>Let me show you my exact way I pulled it off&#8230; then you can chortle quietly at my horrific coding mannerisms and peeves (oh the joy).</p>
<p>I define my cluster constructor like so: (look at the spry sample page for hints as to what this does&#8230; you really almost need to know nothing about what this is doing&#8230; just pay attention to a trick here:</p>
<blockquote><pre style="font-family:monospace, courier, console;">var comicSqueeze;
//this will hold a reference to our effect so we can change it

var my_cluster = function(element, wid, hei)
{
	Spry.Effect.Cluster.call(this, {toggle: true});
	this.name = 'my_cluster';
	///
	//Assume there are already several clustered
	//effects in here, for simplicity, I'll only show one
	///
	var resize_ver = new Spry.Effect.Size(element, {width:wid, height: 10, units:'px'},
			{width:wid, height: 1000, units:'px'},
			{duration: 500, toggle: true, finish:
			function () {
				contentTransition=false;
			} } );
				//this finish function allows me to reset the
	this.addNextEffect(resize_ver);	//transition state. You'll want to put this in
				//your last effect in a cluster that might be
				//clicked several times on accident...
	comicSqueeze = resize_ver; //using this little diddy, we can have a handle on our comic squeezing
}
</pre>
</blockquote>
<p>Now then, that&#8217;s fine and dandy, eh? This function creates a cluster (I assume you know how to attach it to your own cluster class, right? Just comment on this article if you want help), but it isn&#8217;t dynamic. Yet, it does use the global &#8220;comicSqueeze&#8221; to give us a reference to the resize function.</p>
<p>Now, everytime we need to transition, I use this classy function: (assume I&#8217;ve already declared and initialized my cluster with the call &#8220;clusterList = new my_cluster(&#8220;Comic_Display&#8221;,a,b);&#8221; where a and b can be arbitrary heights or widths.)</p>
<blockquote><pre style="font-family:monospace, courier, console;">function transition(){
	if (contentTransition){//this keeps the user from knocking our cluster out of whack
		return;
	}
	else {
		contentTransition = true;//ensure that we are the only ones starting a transition
		comicSqueeze.stopHeight = Spry.$$("#Comic_Img")[0].clientHeight;
		clusterList.start();
		return;
	}
}</pre>
</blockquote>
<p>See the cheap trick? So, I just use my handle &#8220;comicSqueeze&#8221; to change the height by looking up the client height. Simple trick, but the possibilities are pretty high and mighty.</p>
<p>I&#8217;ll stop talking about my handles so you people can stop holding your ears in offense. Have fun, and comment if you have questions (I must admit, it&#8217;s a very unorthodox trick to get the clusters to update)</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dudymas.wordpress.com/218/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dudymas.wordpress.com/218/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=218&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2008/03/22/elite-spry-ajax-hack-1-and-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
		<item>
		<title>CGAL documentation</title>
		<link>http://dudymas.wordpress.com/2008/03/15/cgal-documentation/</link>
		<comments>http://dudymas.wordpress.com/2008/03/15/cgal-documentation/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 19:01:19 +0000</pubDate>
		<dc:creator>dudymas</dc:creator>
				<category><![CDATA[Computing]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://dudymas.wordpress.com/?p=217</guid>
		<description><![CDATA[Wellp&#8230; I dunno how or why, but I find myself wanting to rant. I&#8217;ll do my best not to, but I&#8217;d like to voice something about CGAL (and hopefully later when I have time, I&#8217;ll voice my concerns on their mailinglist&#8230;). I&#8217;m mostly doing this for people who might google this and wonder about it, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=217&subd=dudymas&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Wellp&#8230; I dunno how or why, but I find myself wanting to rant. I&#8217;ll do my best not to, but I&#8217;d like to voice something about CGAL (and hopefully later when I have time, I&#8217;ll voice my concerns on their mailinglist&#8230;). I&#8217;m mostly doing this for people who might google this and wonder about it, or just to get some feedback. I&#8217;m trying to use the KDS in CGAL, and it&#8217;s making me want to cry.</p>
<p>Right now, when I look at the Delaunay Triangulation (the 2d one, that is) kinetic structure, I flat out cannot figure out how they are using edges from either the documentation or the immediate code. This makes the visitors and recent edge goodies a little difficult to harness. Now, right off the bat, I&#8217;ll confess I&#8217;m not using the library in a normal fashion, but wow. This is weird. I think they are using the edges as STD::Pair objects, storing a Face and an integer for the edge label of that face, thus forming an &#8216;edge&#8217;. I guess?</p>
<p>Well, what I want to do is manipulate the structure and nudge it like any good ol&#8217; KDS, but then as updates occur to the edges, I&#8217;m trying to form an RNG (relative neighborhood graph) from the edges and update it as well. But, it doesn&#8217;t call for an all out KDS because I&#8217;m really only loosely using the RNG and it&#8217;s overkill to make it into a KDS. See the problem forming here? I&#8217;d really love to just get these &#8220;views&#8221; or &#8220;observations&#8221; at the structure of the triangulation from the visitor&#8230; but it&#8217;s becoming a serious pain. But&#8230; they have it&#8230; so it SHOULD be usable&#8230; right? I mean, I want a DCEL structure, to be honest, but the structure they are using is a little hard to comprehend. Sure, I can generate meshes and such from the KDS, but those will be constantly changing, so the KDS will cause a lot of problems for the simulation&#8217;s overhead.</p>
<p>Correct me if I&#8217;m wrong, but this seems like the armpit of the KDS right now (accessing the structure on specific events), and so I don&#8217;t want to criticize the team behind CGAL or the KDS stuff it has (it&#8217;s really cool junk!). You know, it&#8217;s probably something obvious that, due to my lack of experience, is going right over my head. But wow&#8230; I hope they&#8217;ll explain it one day&#8230; I&#8217;m writing this here and not in the mailinglist since I sort of want to submit a bug-report&#8230; but then, I&#8217;m pretty sure it&#8217;s not worth them changing anything. The &#8216;weird&#8217; programmer must typically hack and burn his own trail. So I guess I&#8217;ll just post this here, and any interested parties can discuss. If I find anyone coming in here trying to use kinetic data structures in CGAL and they find issues with the edges and triangulations and visitors as well, then perhaps I&#8217;ll bug the CGAL people&#8230; till then, I&#8217;ll just post any updates I have on the issue here.</p>
<p>Well, I have to go now. My sister&#8217;s stinky chihuahua is groveling at my feet. I need to see what his problem is&#8230; or perhaps feed him to the neighbor&#8217;s cat. Yes&#8230; that&#8217;s what I feel like doing now&#8230; lemme just get some ketchup (cat&#8217;s like condiments&#8230; right?) and some tunafish&#8230; I&#8217;m sure I&#8217;ll work something out.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dudymas.wordpress.com/217/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dudymas.wordpress.com/217/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dudymas.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dudymas.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dudymas.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dudymas.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dudymas.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dudymas.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dudymas.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dudymas.wordpress.com/217/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dudymas.wordpress.com/217/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dudymas.wordpress.com/217/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dudymas.wordpress.com&blog=11976&post=217&subd=dudymas&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dudymas.wordpress.com/2008/03/15/cgal-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2fc234b11955d10e0a53d6427c0e8352?s=96&#38;d=identicon" medium="image">
			<media:title type="html">dudymas</media:title>
		</media:content>
	</item>
	</channel>
</rss>