<?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>Some Random Dude &#187; Design Technology</title>
	<atom:link href="http://www.somerandomdude.com/category/articles/design-technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.somerandomdude.com</link>
	<description>Some Random Dude is a blog by P.J. Onori that covers design &#38; technology in the broadest sense possible.</description>
	<lastBuildDate>Tue, 07 Feb 2012 14:37:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Modernizing Hospital Experiences with KUIs</title>
		<link>http://www.somerandomdude.com/2011/09/01/modernizing-hospital-experiences-kuis/</link>
		<comments>http://www.somerandomdude.com/2011/09/01/modernizing-hospital-experiences-kuis/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 20:46:56 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[information]]></category>
		<category><![CDATA[input]]></category>

		<guid isPermaLink="false">http://somerandomdude.com/?p=10214</guid>
		<description><![CDATA[This post was originally posted on the Adaptive Path blog. Touch screen installations are by no means new. We have been using them in airports and ATMs for years now. With the advances in computing and gestural touch interfaces, we are starting to see them even be considered at the local Ann Taylor. This trend [...]]]></description>
			<content:encoded><![CDATA[<p>This post was <a href="http://adaptivepath.com/ideas/modernizing-hospital-experiences-with-kuis">originally posted on the Adaptive Path blog</a>.</p>
<p>Touch screen installations are by no means new. We have been using them in airports and ATMs for years now. With the advances in computing and gestural touch interfaces, we are starting to see them even be considered at the <a href="http://www.boston.com/Boston/businessupdates/2011/06/ann-taylor-opens-concept-store-chestnut-hill/5b5JmHnlfXPeKl3Xb0QLLN/index.html">local Ann Taylor</a>. This trend has often times made processes more streamlined and allowed people to interact with information and services in ways that were impossible a few years back. There is a downside to this however, germs. New studies have shown that our touchscreen devices, most notably <a href="http://technolog.msnbc.msn.com/_news/2010/10/15/5295275-touchscreen-cooties-your-ipad-has-germs">our iPads</a> are germ magnets. So while we should not be running back to our caves in fear, we need to understand the implications of touch-based interfaces &mdash; especially in the context of public environments. One place in particular where touch-based interactions pose a serious hazard are hospitals. The CDC estimates that 1.7 million hospital-associated infections, or <a href="http://en.wikipedia.org/wiki/Nosocomial_infection">Nosocomial infections</a> occur each year with 99,000 resulting in death. When germs are a deadly issue, the last thing you want is to have <em>thousands of people</em> touching the same thing.</p>
<p><span id="more-10214"></span></p>
<p>On the other hand, the systems currently in place are horribly outdated and will be increasingly out of step with people expecting to have smarter, simpler and more streamlined points of interaction. There are plenty of areas in hospitals and other healthcare-related clinics where interactive, digital systems could drastically improve the patient and their support network&#8217;s experience. These sorts of solutions could also help expedite the digitization of medical records. Interactions such as patient check-in, directory information, patient location, and describing symptoms at an urgent care need a more modern approach. If touch screens pose a health risk, what are some other ways to solve this problem?</p>
<p>I believe spatial gesture <a href="http://en.wikipedia.org/wiki/Kinetic_user_interface">KUIs</a> (kinetic user interfaces) from technology being used in products like Microsoft Kinect, with mobile devices as an optional supplement could have a lot of promise. The advances in this space have been astounding and have shown the significant potential that they have. The XBox 360&#8242;s Kinect hub shows just how much can be accomplished with simple gestures and an appropriate interface.</p>
<p><iframe width="580" height="326" frameborder="0" src="http://player.vimeo.com/video/16779301?title=0&amp;byline=0&amp;portrait=0"></iframe></p>
<p>I could see interfaces such as the example above being useful for patients to not only input their information to the clinic, but also to look through their own medical records, research information on their health issue and be able to better understand procedures and medication before they opt in to something they may be uncomfortable with. These systems could also support families in waiting rooms who desperately want to know the status of their loved one or understand the details of what they are afflicted with. This information could be available, it just currently poses a significant health risk to provide it with more traditional physical I/O devices.</p>
<p>There are potential challenges of course. Inputting large amounts of text for things such as patient records could be laborious and frustrating. However, creative solutions such as allowing peripheral interactions from mobile devices or voice input could aid these processes. The overwhelming norm of using pen and paper to continually input your information or needing to call a front desk for simply patient information is just no longer going to cut it. Our health care systems need a serious overhaul from start to finish. Perhaps a good place to get started is here.</p>
<p><strong>Minor update:</strong> <a href="http://twitter.com/protodave">Dave Johnson</a> brought up the appropriate concern of how <a href="http://twitter.com/#!/protodave/status/93404900100284416">something like this could especially challenge people with disabilities</a>. There probably are few places more likely to have people with motor/motion ailments than a hospital. A solution such as the one I write about would either need to find ways to work within their limitations or there would need to be well-designed alternatives to support them. It just goes to show how tricky this subject is.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2011/09/01/modernizing-hospital-experiences-kuis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Font-Embedding Icons: This Is a Big Deal</title>
		<link>http://www.somerandomdude.com/2010/05/04/font-embedding-icons/</link>
		<comments>http://www.somerandomdude.com/2010/05/04/font-embedding-icons/#comments</comments>
		<pubDate>Wed, 05 May 2010 06:20:39 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[Home]]></category>
		<category><![CDATA[icon]]></category>

		<guid isPermaLink="false">http://somerandomdude.com/?p=8380</guid>
		<description><![CDATA[A little over a week ago, Wayne Helman posted an article proposing the use of @font-face for displaying icons. The article was well-received, but I was honestly expecting more excitement around this idea. From my view, this now seems like the way to set icons in a site. I feel strongly about the potential of [...]]]></description>
			<content:encoded><![CDATA[<section>A little over a week ago, Wayne Helman posted an article <a href='http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-ever-thought-about-using-font-face-for-icons/'>proposing the use of @font-face for displaying icons</a>. The article was well-received, but I was honestly expecting more excitement around this idea. From my view, this now seems like <em>the</em> way to set icons in a site. I feel strongly about the potential of this method, so I thought I would take the time to generate a font set for <a href="/work/iconic/">Iconic</a> and to talk about why we should all be using this method for displaying icons.</section>
<p><span id="more-8380"></span></p>
<section>
<h1>Look Ma, No Images</h1>
<p>Before I go into details, if this method is new to you, here is a simple demo of font-embedded icons. The basic idea is to generate a font containing your icons (much like wingding font sets), embedding that font using the <a href='http://dev.w3.org/csswg/css3-fonts/#font-face-rule'>@font-face CSS rule</a> and taking advantage of the <a href='http://www.w3.org/TR/CSS2/generate.html#before-after-content'>:before selector</a> and <a href='http://www.w3.org/TR/CSS2/generate.html#content'>content rule</a> to inject a character bound to a specific icon</a>.</p>
<ul id='iconic_font_list' class='clearfix'>
<li><a name='home' class='iconic home'></a> Home</li>
<li><a name='plus' class='iconic plus'></a> Plus</li>
<li><a name='minus' class='iconic minus'></a> Minus</li>
<li><a name='new-window' class='iconic new-window'></a> Window</li>
<li><a name='dial' class='iconic dial'></a> Dial</li>
<li><a name='lightbulb' class='iconic lightbulb'></a> Lightbulb</li>
<li><a name='link' class='iconic link'></a> Link</li>
<li><a name='image' class='iconic image'></a> Image</li>
<li><a name='article' class='iconic article'></a> Article</li>
<li><a name='spin' class='iconic spin'></a> Spin</li>
<li><a name='map-pin' class='iconic map-pin'></a> Map Pin</li>
<li><a name='pin' class='iconic pin'></a> Pin</li>
<li><a name='denied' class='iconic denied'></a> Denied</li>
<li><a name='calendar' class='iconic calendar'></a> Calendar</li>
<li><a name='bolt' class='iconic bolt'></a> Bolt</li>
<li><a name='clock' class='iconic clock'></a> Clock</li>
<li><a name='book' class='iconic book'></a> Book</li>
<li><a name='tag' class='iconic tag'></a> Tag</li>
<li><a name='heart' class='iconic heart'></a> Heart</li>
<li><a name='info' class='iconic info'></a> Info</li>
<li><a name='chat' class='iconic chat'></a> Chat</li>
<li><a name='key' class='iconic key'></a> Key</li>
<li><a name='unlocked' class='iconic unlocked'></a> Unlocked</li>
<li><a name='locked' class='iconic locked'></a> Locked</li>
<li><a name='mail' class='iconic mail'></a> Mail</li>
<li><a name='phone' class='iconic phone'></a> Phone</li>
<li><a name='box' class='iconic box'></a> Box</li>
<li><a name='pencil' class='iconic pencil'></a> Pencil</li>
<li><a name='comment' class='iconic comment'></a> Comment</li>
<li><a name='trash' class='iconic trash'></a> Trash</li>
<li><a name='user' class='iconic user'></a> User</li>
<li><a name='volume' class='iconic volume'></a> Volume</li>
<li><a name='mute' class='iconic mute'></a> Mute</li>
<li><a name='cog' class='iconic cog'></a> Cog</li>
<li><a name='check' class='iconic check'></a> Check</li>
<li><a name='beaker' class='iconic beaker'></a> Beaker</li>
</ul>
<p>This demo is a simple list with <em>a</em> tags given specific classes for specific icons. <a href='http://net.tutsplus.com/tutorials/html-css-techniques/quick-tip-ever-thought-about-using-font-face-for-icons/'>Wayne Helman&#8217;s method</a> was structured in a slightly different manner, but the general concept is the same. This method is surprisingly backwards compatible and low maintenance.</section>
<section>
<h1>Pros and Cons of Font-Embedded Icons</h1>
<p>Like pretty much everything in life, tradeoffs <em>do</em> exist with this method. I know for a fact that I will be implementing this method on my site, but I am certain I will not be using it for all my projects. Below is a basic breakdown of advantages and disadvantages.</p>
<h2>Advantages</h2>
<dl>
<dt>Potentially far less HTTP requests</dt>
<dd>Downloading 100 small files can be far slower than downloading one large file. Depending on the individual situation, this <em>could</em> result in a faster page load.</dd>
<dt>One icon, infinite sizes</dt>
<dd>Vector icons mean vector scaling. No more icon_8x8.png, icon_16x16.png, icon_24x24.png, etc.</dd>
<dt>Cleaner system for icon management</dt>
<dd>Managing icons in multiple colors and sizes can be a serious pain. With font-based icons, all the color/size variations you need are in just one file.</dd>
<dt>Switching your icons in one line of CSS</dt>
<dd>With all the talk about <a href='http://typekit.com/'>TypeKit</a> and how easy it is to embed fonts, the same could soon be the case for icons. No more batch-replace of image references.</dd>
<dt>CSS3 transitions open interesting doors</dt>
<dd>Transitions, effects and transforms are all open game. More on that further down in the article.</dd>
</dl>
<h2>Disadvantages</h2>
<dl>
<dt>Fonts <em>can</em> be large in size</dt>
<dd>A complex font can <em>easily</em> be 90Kb. That can be a hard pill to swallow if you simply want to use one specific icon.</dd>
<dt>No standards in place for key-binding</dt>
<dd>If you are under the opinion that TypeKit <em>should</em> offer icon sets as embeddable fonts, there needs to be some standards in place for what icons are in an icon set and what keys they are bound to. Otherwise switching icon sets could display unexpected icons.</dd>
<dt>Potential for tag-bloat</dt>
<dd>After playing around with embedding icons, it became clear that improper implementations could easily lead to ugly markup.</dd>
<dt>Multi-colored icons are a no-go</dt>
<dd>If you want to embed icons like <a href='http://www.famfamfam.com/lab/icons/'>famfamfam</a> with various colors/shades, you&#8217;re screwed. CSS3 can give you some simple gradients, but beyond that this method is just not going to work.</dd>
</dl>
</section>
<section>
<h1>Implementation</h1>
<p>The following is a quick rundown on how I implemented the demo at the beginning of the article. I am not presuming that my method is the best or even a proper method at all. I would really enjoy seeing how others think the HTML/CSS should look for this use case.</p>
<p>The CSS is cut and dry. Most of us have seen this plenty of times. <a href='http://snook.ca/archives/html_and_css/becoming-a-font-embedding-master'>Snook goes into far more detail</a> if you are interested.</p>
<pre><code>@font-face {
  font-family: 'IconicStroke';
    src: url("iconic_stroke.eot");
    src: local('IconicStroke'),
       url("iconic_stroke.svg#iconic") format('svg'),
       url("iconic_stroke.otf") format('opentype');
}
</code></pre>
<p>I apply a class (perhaps too specifically) named &#8216;iconic&#8217; for wherever I want to use the font-embedded icon. I set the display to <em>inline-block</em> to allow for CSS3 transformations.</p>
<pre><code>.iconic {
  display:inline-block;
  font-family: "IconicStroke";
}
</code></pre>
<p>I then add rules for each icon where I use the <em>content</em> rule to inject the ASCII character bound to that specific icon.</p>
<pre><code>.iconic.home:before {
  content: '!';
}
</code></pre>
<p>Lastly, in the HTML, I use an <em>a</em> tag, since it could also potentially be used as an anchor destination in certain situations. The use of the blank <em>a</em> tag is not necessary, but it seemed like solid method to create a tag exclusively for the icon when it needed specific styling.</p>
<pre><code>&lt;a name='home' class='iconic home'&gt;&lt;/a&gt; Home</code></pre>
</section>
<section>
<h1>Using CSS3 With Font-Embedded Icons</h1>
<p>Integrating CSS3 into font-embedded icons is the difference between this method and using images for icons becomes apparent. Below is a simple, yet not-so-aesthetic example of what can be done to a font-embedded icon with CSS3. This used to be the sort of thing that was completely relegated to Flash. With vector icons, we have full scaling flexibility &#8212 something that is far more powerful than we typically think. <em><strong>Note, you must be viewing this in Safari or Chrome to see some of the effects and the transitions</strong></em>.</p>
<p><span id="iconic_css3_demo"><br />
<a name='chat' class='iconic star css3'></a> Roll over this text to see transition<br />
</span></p>
<p>Below is the code used to implement this. No Javascript was needed for this.</p>
<pre><code>.iconic {
	display:inline-block;
	font-family: "IconicStroke";
	text-shadow: 0px 0px 2px rgba(0,0,0,.33);
	-webkit-transform: rotate(0deg) scale(1);
	-moz-transform: rotate(0deg);
	-webkit-mask-image: -webkit-gradient(linear,
		left top,
		left bottom,
		from(rgba(0,0,0,.5)),
		to(rgba(0,0,0,1)));
	-webkit-transition: all .3s ease-in-out;
	cursor: default;
	padding:10px 0 10px 10px;
 }

.iconic:hover {
	-webkit-transform: rotate(-10deg) scale(1.3);
	-moz-transform: rotate(-10deg) scale(1.3);
	text-shadow: 0px 0px 4px rgba(0,0,0,.5);
	color:#c00 !important;
}
</code></pre>
</section>
<section>
<h1>This Concept is Worthwhile</h1>
<p>There are many CSS techniques that come around which ultimately end up being gimmicky &#8212; this is not one of them. If implemented appropriately, this method could allow for more creative flexibility, all while using less bandwidth. I have taken the time to compile many of the icons in <a href="/work/iconic/">Iconic</a> into a typeface in addition to creating a starter CSS file. This should give anyone who is interested in implementing this method enough to be on their way. I look forward to making the switch on my site and hope to see others do the same.</section>
<p><!--custom CSS--></p>
<link rel="stylesheet" href="/wp-content/css/posts/font_embedding_icons.css" type="text/css" media="all">
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2010/05/04/font-embedding-icons/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>The Off Franklin Tumblr Theme</title>
		<link>http://www.somerandomdude.com/2010/02/22/franklin-tumblr-theme/</link>
		<comments>http://www.somerandomdude.com/2010/02/22/franklin-tumblr-theme/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 15:51:45 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>

		<guid isPermaLink="false">http://somerandomdude.com/?p=7150</guid>
		<description><![CDATA[The decision to offer up all the work related to this site has been as grueling as it has been rewarding. Iconic was a huge hit and has seemed to have helped a quite a few people. The next on the list of tasks was the Tumblr theme. I had previously released a theme based [...]]]></description>
			<content:encoded><![CDATA[<p><span class='callout'>The decision to offer up all the work related to this site has been as grueling as it has been rewarding. <a href="/work/iconic/">Iconic</a> was a huge hit and has seemed to have helped a quite a few people. The next on the list of tasks was <a href='http://somerandomdude.tumblr.com'>the Tumblr theme</a>. I had <a href='/articles/design/franklin-street-tumblr-theme/'>previously released</a> a theme based on the old design, but it never quite satisfied my expectations (similar to the prior design as a whole). Therefore, once the blog was redesigned, it only made sense to redesign its Tumblr counterpart &ndash; which brings me to the new <a href='/work/off-franklin-tumblr-theme'>Off Franklin theme</a>.</span><span id="more-7150"></span></p>
<p><a href='/work/off-franklin-tumblr-theme'>Off Franklin theme</a> is intended specifically to display media in an efficient and accessible manner. The difference between Off Franklin and its predecesor it both uses space more effectively and focused <em>much</em> more on other content formats such as quotes, text posts and chats.</p>
<p><a href='/work/off-franklin-tumblr-theme'><img src='/wp-content/uploads/fullsize_overview.png' alt='Interface Overview' width='700' height='400' /></a></p>
<p>Off Franklin is intended to mirror this site as closely as possible, while deviating where it makes sense to fit Tumblr&#8217;s format. The grid used on the theme is exactly the same as this site as are many features such a searching. The color scheme out of the box fits the general color guide for this site, but is customizable in a simple, yet functional manner. The theme uses <a href="http://masonry.desandro.com/">Masonry</a> to render its grid &ndash; Masonry made all the difference for this theme.</p>
<p>Now that the Tumblr theme is done, the next big project will be a formal re-release of the Franklin Street WordPress theme. I will be releasing both the generic version of the theme as well as the personalized theme used on this site. Most of the work is completed, but there is still a decent amount left to do. My hope is to get the theme ready by this Spring &ndash; until then, enjoy Off Franklin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2010/02/22/franklin-tumblr-theme/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Progress on the Layout Organizers Library</title>
		<link>http://www.somerandomdude.com/2009/04/21/circles/</link>
		<comments>http://www.somerandomdude.com/2009/04/21/circles/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 22:41:49 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[layout-organizers]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[organizer]]></category>
		<category><![CDATA[Read]]></category>

		<guid isPermaLink="false">http://somerandomdude.com/?p=3587</guid>
		<description><![CDATA[A long while back, I released a layout organizer library for Flash. The whole project was essentially an experiment-turned-released-code-collection and, as expected, there have been some growing pains going forward. I have been taking the time to rethink portions of the library and try to clean up and extend its functionality. One big push forward [...]]]></description>
			<content:encoded><![CDATA[<p><span class="callout">A long while back, I released a <a href="/articles/design-technology/more-layout-organizers/">layout organizer library for Flash</a>. The whole project was essentially an experiment-turned-released-code-collection and, as expected, there have been some growing pains going forward. I have been taking the time to rethink portions of the library and try to clean up and extend its functionality. One big push forward was the introduction of <a href="/articles/design-technology/preview-3d-layout-organizers/">3d layouts</a> &#8212; however, it did not quite fit in with the prior structure. Well, I am very close to completing a fairly thorough rewrite of the library, which will be released in a less haphazard way. I have come to depend on this library for almost every project I have taken on &#8212; it just takes care of so much for you automatically.</span><span id="more-3587"></span></p>
<p><span class='callout'><strong>Update:</strong> This code base has now been released under the name <a href='http://code.google.com/p/coordy/' target='_blank'>coordy</a>. <a href='/projects/coordy/'>Read more</a>.</span></p>
<p>Below is a quick video of one of the expanded layout organizers. Using the layout organizer library, and with a little trickery, this whole piece could likely be created in 25 or 40 lines of code. What I have come to love about this library is that it removes the redundancy of generating basic layouts in addition to aiding tremendously in creating less standard layouts as well.</p>
<div align="center" id="circlesVideo">You need the Flash Player to view this video.</div>
<p>I am hoping to get this library out by the end of the month. Since I use this library extensively, there will be frequent fixes and improvements in the months to come. I am hoping that some other developers may find it to be just as useful so I can get some help pushing it further. Check in by the end of the month &#8212; it should be up by then.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2009/04/21/circles/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A Preview of 3d Layout Organizers</title>
		<link>http://www.somerandomdude.com/2009/02/19/preview-3d-layout-organizers/</link>
		<comments>http://www.somerandomdude.com/2009/02/19/preview-3d-layout-organizers/#comments</comments>
		<pubDate>Thu, 19 Feb 2009 19:15:35 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[grid]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Motion]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[organizer]]></category>
		<category><![CDATA[Read]]></category>

		<guid isPermaLink="false">http://somerandomdude.com/?p=2519</guid>
		<description><![CDATA[A while back, I published some work on AS3 layout organizers. The basic premise was to use virtual &#8220;containers&#8221; of a collection of DisplayObjects to create special layouts, such as a grid or ellipse. The project turned out to be quite enjoyable and I have used this library for almost every project I have worked [...]]]></description>
			<content:encoded><![CDATA[<p><span class="callout">A while back, I published some work on <a href="/blog/flash/actionscript-3-layout-organizers-source-code/">AS3 layout organizers</a>. The basic premise was to use virtual &#8220;containers&#8221; of a collection of DisplayObjects to create special layouts, such as a grid or ellipse. The project turned out to be quite enjoyable and I have used this library for almost every project I have worked on since I wrote it. With Flash 10&#8242;s introduction of 3d, it seemed appropriate to branch out these organizers into their 3d counterparts. In addition, I have spent a considerable amount of time re-writing a large portion of the core code to make it easier to use and more efficient. I was hoping to release the code in this post as well, but it just is not quite there yet. So, consider this a preview of the revamped library.</span> <span id="more-2519"></span></p>
<p><span class='callout'><strong>Update:</strong> This code base has now been released under the name <a href='http://code.google.com/p/coordy/' target='_blank'>coordy</a>. <a href='/projects/coordy/'>Read more</a>.</span></p>
<p>For more details on the basic premise of how this library works, make sure to read my <a href="/blog/flash/actionscript-3-layout-organizers-source-code/">previous post on this library</a>. Really, nothing in the nuts-and-bolts has changed. Essentially, collections of DisplayObjects are managed by light objects that update the position of each DisplayObject. Now, with Flash 10&#8242;s 3d properties, I am merely adding the Z property to these new organizers. <a href="http://papervision3d.org/">Papervision</a> is a wonderful library to have at your disposal, but sometimes you just don&#8217;t need something that complex to create a simple thee dimensional grid or ellipse.</p>
<p>Below is a small preview of the three main layout organizers built at the moment. I am confident this list will be at least double by the time it is released, but I just wanted to give you an idea of what is to come. For a better experience, <strong><a href="#TB_inline?height=500&amp;width=860&amp;inlineId=hiddenModalContent&amp;modal=false" class="thickbox">view the larger version</a></strong>.</p>
<div id="layoutOrganizers3dContainer">
<div id="layoutOrganizers3d"><strong>You need <a href="http://www.adobe.com/products/flashplayer/">Flash Player 10</a> to view this demo.</strong></div>
</div>
<p>For presentation purposes, I set a small x,y,z rotation to the parent of the DisplayObjects so you could see the grid more clearly. However, the rotation (x,y and z axes) of the ellipse is computed entirely within the organizer &#8212; meaning the parent of all the objects does not need to be rotated for the effect. I am trying to figure out the math to do this within the grid and scatter organizers, but at this moment, it is a little beyond me. You may also notice that the organizers seem a little &#8220;sloppy&#8221; when randomizing the layout. That is because I have added a jitter property for each axis to allow a more random/organic feel. Both the 2d and 3d libraries now have jitter controls.</p>
<p>This whole library, along with the updated 2d organizers are going to be made available on Google Code when they are a little closer to completion. The 2d library has a much larger list of organizers at this point and, as expected, performs much better than its 3d cousin. I would love to get some help in taking this library further if anyone is interested. There are a few foundational issues that would be great to resolve. Let me know if you are interested.</p>
<div id="hiddenModalContent" style="display:none; ">
<div id="layoutOrganizers3dFull"><strong>You need <a href="http://www.adobe.com/products/flashplayer/">Flash Player 10</a> to view this demo.</strong></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2009/02/19/preview-3d-layout-organizers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Processing Motion Experiment &#8211; Wandering Blossoms</title>
		<link>http://www.somerandomdude.com/2008/04/06/wandering-blossoms/</link>
		<comments>http://www.somerandomdude.com/2008/04/06/wandering-blossoms/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 07:26:24 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[Motion]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[project]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/processing/wandering-blossoms/</guid>
		<description><![CDATA[I truly am loving how I can take a piece of code and begin to have it exist in various mediums. This experiment was actually posted to my Vimeo account quite a while ago, but I wanted to output this project as a vector piece as well. I actually think my previous project would be [...]]]></description>
			<content:encoded><![CDATA[<p>I truly am loving how I can take a piece of code and begin to have it exist in various mediums. This experiment was actually <a href="http://www.vimeo.com/788511">posted to my Vimeo account</a> quite a while ago, but I wanted to output this project as a vector piece as well. I actually think my <a href="/2008/03/30/meander/">previous project</a> would be ended up as a good candidate for vector output as well &#8211; I may go back and add that at a later time. This project was just another test on playing with motion preceding my knowledge of the noise() method. Looking back, a similar look in motion could have been achieved with far fewer lines of code. Nonetheless, I think the final result ended up being quite nice.</p>
<p>I hope to continue to have the time to post these projects. I feel as though I am (slowly) getting a grasp on how this whole Processing thing works. My goal is to cross-pollinate any future Processing projects with Flash/Flex projects. I have a few ideas on how that may just happen.</p>
<p><iframe src="http://player.vimeo.com/video/788511?title=0&amp;byline=0&amp;portrait=0" width="550" height="308" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/788511">Wandering Blossoms</a> from <a href="http://vimeo.com/somerandomdude">P.J. Onori</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2008/04/06/wandering-blossoms/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Processing Motion Experiment &#8211; Meander</title>
		<link>http://www.somerandomdude.com/2008/03/30/meander/</link>
		<comments>http://www.somerandomdude.com/2008/03/30/meander/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 07:32:54 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[hodgin]]></category>
		<category><![CDATA[Motion]]></category>
		<category><![CDATA[motion-design]]></category>
		<category><![CDATA[noise]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[source-code]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[video-player]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/processing/meander/</guid>
		<description><![CDATA[I have really fallen in love with Processing, but I had been had hit a bit of a plateau in terms of progress in the past month or so. I never really have spent too much time with algorithmic motion/drawing. When I jumped into Flash, I went straight towards the Tween class and never spent [...]]]></description>
			<content:encoded><![CDATA[<p>I have really fallen in love with <a href="http://www.processing.org">Processing</a>, but I had been had hit a bit of a plateau in terms of progress in the past month or so. I never really have spent too much time with algorithmic motion/drawing. When I jumped into Flash, I went straight towards the Tween class and never spent much time trying to work in the EnterFrame-loop based motion design. Because of this, learning how to work with Processing&#8217;s <em><a href="http://processing.org/reference/draw_.html">draw()</a></em> loop has been a bit foreign and one can only find so many ways to implement sine/cosine motion treatments.</p>
<p>
Luckily, I ran across the simply stunning work of <a href="http://www.flight404.com">Robert Hodgin</a> who just happened to offer up his source code. After looking through <a href="http://flight404.com/p5/noiseDrive2a/">one of his projects</a> and banging away at it, I ended up learning a quite a bit on how motion can end up looking more organic and sporadic. This particular project used the <em><a href="http://processing.org/reference/noise_.html">noise()</a></em> method as its basis for motion jittering. I had not even known such a method existed. After hacking up Robert&#8217;s source, I came up with some really interesting form experiments using Robert&#8217;s general motion concepts.
</p>
<p><span id="more-599"></span></p>
<h1>Meander Video</h1>
<p><iframe src="http://player.vimeo.com/video/844060?title=0&amp;byline=0&amp;portrait=0" width="549" height="309" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/844060">Meander</a> from <a href="http://vimeo.com/somerandomdude">P.J. Onori</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2008/03/30/meander/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Actionscript 3 Bitmap Segmentor (Source Code Included)</title>
		<link>http://www.somerandomdude.com/2008/01/22/bitmap-segmentor/</link>
		<comments>http://www.somerandomdude.com/2008/01/22/bitmap-segmentor/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 14:00:05 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[displayobject]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/flash/bitmap-segmentor/</guid>
		<description><![CDATA[For quite some time now, I have been playing with breaking DisplayObjects into a grid to sample pixel data in order to create visualizations. I have spent time with this in both Actionscript and in Processing (see project). For Actionscript in particular though, I wanted to make the process cleaner and easier to implement. What [...]]]></description>
			<content:encoded><![CDATA[<p>For quite some time now, I have been playing with breaking <em>DisplayObjects</em> into a grid to sample pixel data in order to create visualizations. I have spent time with this in both Actionscript and in Processing (<a href="/2007/12/11/drive-down-california-street/">see project</a>). For Actionscript in particular though, I wanted to make the process cleaner and easier to implement. What has resulted is a slightly tangential project which ultimately makes sampling pixel data easier while offering a whole separate set of features. In its simplest form, the <em>BitmapSegmentor</em> allows you to take a <em>DisplayObject&#8217;s</em> bitmapData and break it into a grid of individual segments. These segments can then be used for various purposes, including pixel data sampling.<br />
<span id="more-558"></span></p>
<p>
The demo below shows the basic functionality of the <em>BitmapSegmentor</em> class. See the notes below for playback limitations.
</p>
<div align="center" id="flashBitmapSegmentor">
    You need the Flash Player to view this video.
</div>
<p><script type="text/javascript">
    /*<!--*/
       var flashvars = {};
	var params = {menu: "false", scale: "noScale", salign: "TL"};
	var attributes = {};
    swfobject.embedSWF("/swf/articles/bitmap-segmentor/BitmapSegmentorPresentation.swf", "flashBitmapSegmentor", "600", "440", "9.0", "/wp-content/themes/franklinstreet/swf/expressInstall.swf", flashvars, params, attributes);
    /*-->*/
</script></p>
<p>The <em>BitmapSegmentor</em> can segment any type of <em>DisplayObject</em>, however, I find segmenting video to be an especially effective method of showing both the features of this project and its performance. <strong>Unfortunately, due to changes in Flash Player 9.0.115.0, this demo will only work for the latest version of Flash Player (9.0.115.0) and does not seem to work on 9.0.115.0 for Mac OS X 10.5 (Leopard).</strong> If anyone on the Flash Player dev team is reading this, I am getting the well-known security violation when performing Bitmap.draw() for Leopard. Once everything gets straightened out with performing <em>Bitmap.draw()</em> on video, this collection of code will be all the more useful.</p>
<h3>Download the Source</h3>
<p>The source code for this project will be released along with the rest of my library as it gets closer to completion. Please check back later.</p>
<h3>What it Does and How it Works</h3>
<p>
The core class, <em>BitmapSegmentor</em>, takes a specified DisplayObject and determines the individual segment size based on the number of rows and columns set in the constructor. A &#8220;grid&#8221; is then created by initializing the necessary amount of <em>BitmapData</em> and <em>BitmapSegment</em> objects. The <em>BitmapSegment</em> object is a custom class to contain properties of each segment&#8217;s bitmapData and cooresponding x,y position. When the <em>segment()</em> method is called, <em>Bitmap.draw()</em> is performed on the specified target. The arrays which contain the pooled <em>BitmapData</em> and <em>BitmapSegment</em> objects are iterated through to copy the pixels of the target&#8217;s bitmapData for each segment. The resulting copied pixel bitmap data is then linked to associated BitmapSegment object along with the bitmapData&#8217;s x and y coordinates relative to the target&#8217;s bitmapData.
</p>
<p>
The extension class, <em>SampleableBitmapSegmentor</em> uses the <em><a href="/blog/flash/actionscript-3-color-sampler-class-download/">ColorSampler</a></em> class I wrote a while back to not only break up a <em>DisplayObject</em> into a grid of Bitmaps, but also allow you to sample the Bitmap&#8217;s pixel data to get properties such as the red channel, green channel, blue channel, hue, saturation and brightness. The <em>SampleableBitmapSegmentor</em> object contains the <em>sample()</em> method which performs the same operations as the <em>segment()</em> method except it also samples the color data of each segment. All segments are stored in an array of <em>SampleableBitmapSegment</em> objects. The <em>SampleableBitmapSegment</em> object contains <em>ColorSampler</em> instance to perform an extra sampling executions.
</p>
<p>
The latter class offers up the ability to easily sample and visualize a <em>DisplayObject</em> of any kind. The &#8216;Interpret Sampled Color Values&#8217; in the demo uses the <em>sample()</em> method. As expected, the performance lowers when using this method.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2008/01/22/bitmap-segmentor/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Actionscript 3 Layout Organizers Examples and Source Code</title>
		<link>http://www.somerandomdude.com/2008/01/07/actionscript-3-layout-organizers-source-code/</link>
		<comments>http://www.somerandomdude.com/2008/01/07/actionscript-3-layout-organizers-source-code/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 14:00:55 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[displayobject]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[layout properties]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/flash/actionscript-3-layout-organizers-source-code/</guid>
		<description><![CDATA[A while back, I posted a basic example of layout organizers and layout organizers applied to video. I kept talking about how cool I considered this idea to be, yet I had yet to truly explain the idea and (more importantly) the source code for people to download. I wanted to make sure the code [...]]]></description>
			<content:encoded><![CDATA[<p>A while back, I posted a <a href="/2007/09/07/actionscript-3-layout-organizers/">basic example of layout organizers</a> and <a href="/blog/flash/actionscript-3-layout-organizers-video/">layout organizers applied to video</a>. I kept talking about how cool I considered this idea to be, yet I had yet to truly explain the idea and (more importantly) the source code for people to download. I wanted to make sure the code was at a good spot before releasing it; I believe that is now the case. You will find examples, the basic gist on how it works and some possible reasons why layout organizers may just make your life easier.</p>
<p><span class='callout'><strong>Update:</strong> This code base has now been released under the name <a href='http://code.google.com/p/coordy/' target='_blank'>coordy</a>. <a href='/projects/coordy/'>Read more</a>.</span></p>
<p><span id="more-547"></span></p>
<h3>Demo</h3>
<p>Below is a demo of the basic functionality of layout organizers. <a href="/f/articles/layout-organizers/" target="_blank">View the demo full screen</a></p>
<div align="center" id="flashLayoutOrganizers">
    You need the Flash Player to view this video.
</div>
<p><script type="text/javascript">
    /*<!--*/
       var flashvars = {};
	var params = {menu: "false", scale: "noScale", salign: "TL"};
	var attributes = {};
    swfobject.embedSWF("/swf/articles/layout-organizers/LayoutOrganizersPresentation.swf", "flashLayoutOrganizers", "600", "440", "9.0", "/wp-content/themes/franklinstreet/swf/expressInstall.swf", flashvars, params, attributes);
    /*-->*/
</script></p>
<p>At this point, I have created four simple layout organizers that fit my needs, although I already plan to make at least 3 more in the near future. Luckily, building new layout organizers is relatively simple due to the foundational code. There are two different methods of altering layout properties: just changing the layout organizer&#8217;s display properties (x, y, width, height) with the <em>autoAdjustLayout</em> properties set to true or changing the layout organizer&#8217;s properties with the <em>autoAdjustLayout</em> property set to false and then using the <em>apply()</em> method to iterate through each items to change its properties. See Code Examples below for more detail.</p>
<h3>Advantages to Layout Organizers Over Flex Components</h3>
<ul>
<li><strong>You don&#8217;t need Flex</strong><br />
While these layout organizers will work in the Flex environment (as you can see above), you do not need Flex to reap the benefits of this code. For me, these layout organizers signify a valid replacement (at least for myself) of the Flex-based containers, which were one of the main reasons why I became interested in Flex to begin with.
</li>
<li><strong>Items controlled by layout organizers are not bound to any component</strong><br />
One of the issues that bothered me about Flex containers is that once you put a DisplayObject in a container, it is literally <em>in there</em>. Therefore, creating transitions from one layout type to another was nearly impossible. This is not the case with these layout organizers.
</li>
<li><strong>Items can belong to infinite layout organizers</strong><br />
DisplayObjects can belong to as many layout organizers as one desires since they are merely abstract controllers. Since all coordinate information exists in the layout organizer&#8217;s cell objects, the coordinate information persists after its items are moved. DisplayObjects are not bound to any organizer either. You can move an item however you desire and forget about the layout organizer altogether if you wish.
</li>
<li><strong>Layout organizers are light</strong><br />
These organizers have far less features than Flex containers by design. Because of this, the footprint is much smaller. So when you do not need all the features Flex containers offer, layout organizers could act as an alternative.
</li>
</ul>
<h3>How it Works</h3>
<p>The basic explanation of how Layout Organizers work is that once a DisplayObject is added to an organizer&#8217;s layout, a cell object is created which points to the Display Object. The cell is the link between the organizer and DisplayObject. The cell contains all the coordinate information for that DisplayObject, so that even if a DisplayObject is moved, the coordinate information for it persists due to its corresponding cell. This is why DisplayObject can belong to an infinite amount of organizers, because the organizer merely handles its created cell objects which, in turn, have a link to the DisplayObject.</p>
<p>Organizers are merely abstract organizers, they do not need to be added/removed from the stage. Nonetheless, they have tweenable properties such as <em>x</em>, <em>y</em>, <em>width</em>, <em>height</em>, etc. When a display property such as <em>width</em> is altered, the layout organizer adjusts all the cells and the cell&#8217;s links to fit in the layout&#8217;s new dimension. This allows you to &#8220;tween&#8221; a layout organizer even though it does not truly exist on the stage. </p>
<p>Layout organizers will also adapt when cells/DislpayObjects are removed from the layout (the same will soon be the case for adding cells/DisplayObjects). This allows simple motion-based layout management capabilities.</p>
<h3>Code Examples</h3>
<p>Adding items to a layout organizer.</p>
<pre><code>_organizer = new EllipseOrganizer(this, 400, 400);
for(var i:int=0; i&lt;total; i++)
{
    var itm:Sprite = new Sprite();
    addChild(itm);
    _organizer.addToLayout(itm, false, false);
}
</code></pre>
<p>Tweening a layout organizer&#8217;s properties.</p>
<pre><code>public function groupMotion(x:Number, y:Number, width:Number, height:Number):void
{
    _organizer.autoAdjustLayout=true;
    new Tween(_organizer, "x", Cubic.easeInOut, _organizer.x, x, 20);
    new Tween(_organizer, "y", Cubic.easeInOut, _organizer.y, y, 20);
    new Tween(_organizer, "width", Cubic.easeInOut, _organizer.width, width, 20);
    new Tween(_organizer, "height", Cubic.easeInOut, _organizer.height, height, 20);
}
</code></pre>
<p>Tweening a layout organizer&#8217;s elements individually width a custom tween function.</p>
<pre><code>public function individualMotion(x:Number, y:Number, width:Number, height:Number):void
{
    _organizer.autoAdjustLayout=false;
    _organizer.tweenFunction=moveCell;
    _organizer.x=x;
    _organizer.y=y;
    _organizer.width=width;
    _organizer.height=height;
    _organizer.apply();
}

public function moveCell(cell:Cell):void
{
    new Tween(cell.link, "x", Cubic.easeInOut, cell.link.x, cell.x, 20);
    new Tween(cell.link, "y", Cubic.easeInOut, cell.link.y,  cell.y, 20);
}
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2008/01/07/actionscript-3-layout-organizers-source-code/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>A Drive Down California Street &#8211; A Real-Time Visualization Project</title>
		<link>http://www.somerandomdude.com/2007/12/11/drive-down-california-street/</link>
		<comments>http://www.somerandomdude.com/2007/12/11/drive-down-california-street/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 14:09:45 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[drive]]></category>
		<category><![CDATA[everyday-life]]></category>
		<category><![CDATA[real-time]]></category>
		<category><![CDATA[san-francisco]]></category>
		<category><![CDATA[webcams]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/design/drive-down-california-street/</guid>
		<description><![CDATA[A couple weeks ago, my wife and I took a drive through San Francisco. With us, we brought two laptops that recorded the drive through their webcams. Using Processing, the webcam video data was analyzed and reinterpreted into abstract visualizations. This project was a test-run of a larger project myself and a few friends are [...]]]></description>
			<content:encoded><![CDATA[<section>A couple weeks ago, my wife and I took a drive through San Francisco. With us, we brought two laptops that recorded the drive through their webcams. Using <a href="http://www.processing.org">Processing</a>, the webcam video data was analyzed and reinterpreted into abstract visualizations. This project was a test-run of a larger project myself and a few friends are working on, but I thought it would be fun to show you what has been done thus far.</p>
<p>The concept behind this project was to take ordinary scenes from everyday life and turn them into something that would look completely alien, yet familiar enough to have the faintest semblance of normality in order for the viewer to digest what they saw. The data stream was too great for the application to read/analyze/interpret/output in absolute real time, so the videos appear to be sped up due to dropped frames. The size of the objects were based on the brightness in the relative area of the video, the colors of each shape mirrors the general color in that portion of the video.  The captures were taken at night which is the reason for the strong contrast and bright colors.<span id="more-534"></span></section>
<section>
<h1>Video From Passenger Side</h1>
<p><iframe src="http://player.vimeo.com/video/394472?title=0&amp;byline=0&amp;portrait=0" width="551" height="414" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/394472">A Drive Down California Street (Passenger&#8217;s Side View)</a> from <a href="http://vimeo.com/somerandomdude">P.J. Onori</a> on <a href="/">Vimeo</a>.</p>
<p>The video above was the main video &#8211; I personally held the laptop up to the window while my partner in crime drove around downtown. The somewhat persistent blue-gray circles are the reflective glare of the laptop&#8217;s monitor against the side window. This definitely distracts from the overall aesthetics of the visualization, but considering how often I got confronted at stop lights, I think it was a good idea that I kept the window up.</section>
<section>
<h1>Video From Driver Side</h1>
<p><iframe src="http://player.vimeo.com/video/392698?title=0&amp;byline=0&amp;portrait=0" width="551" height="414" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/392698">A Drive Down California Street (Driver&#8217;s Side View)</a> from <a href="http://vimeo.com/somerandomdude">P.J. Onori</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>The driver side video was given less attention &#8211; I essentially set another laptop down next to me and pointed the webcam towards the window. Since it was not right up to the window, the amount of light/form it pulled in was much less. I decided to give it a slightly different visual style than the passenger side visualizer.</section>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2007/12/11/drive-down-california-street/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Processing Experiment &#8211; Spin</title>
		<link>http://www.somerandomdude.com/2007/11/19/processing-spin/</link>
		<comments>http://www.somerandomdude.com/2007/11/19/processing-spin/#comments</comments>
		<pubDate>Mon, 19 Nov 2007 14:00:08 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[sketch]]></category>
		<category><![CDATA[source-code]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/processing/processing-spin/</guid>
		<description><![CDATA[I think this Processing itch of mine is going to stick. I am still learning the basics, but what I love about Processing is that amazing things can still be achieved with little experience or overheard. I whipped this up a few nights back &#8211; all motion is based on sine/cosine computations. Processing Experiment &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>I think this Processing itch of mine is going to stick. I am still learning the basics, but what I love about Processing is that amazing things can still be achieved with little experience or overheard. I whipped this up a few nights back &#8211; all motion is based on sine/cosine computations.</p>
<p><iframe src="http://player.vimeo.com/video/387400?title=0&amp;byline=0&amp;portrait=0" width="551" height="414" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/387400">Processing Experiment &#8211; Spin</a> from <a href="http://vimeo.com/somerandomdude">P.J. Onori</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2007/11/19/processing-spin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Processing Experiment &#8211; Helix</title>
		<link>http://www.somerandomdude.com/2007/11/12/processing-helix/</link>
		<comments>http://www.somerandomdude.com/2007/11/12/processing-helix/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 17:45:26 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[image-sequence]]></category>
		<category><![CDATA[Processing]]></category>
		<category><![CDATA[webcam]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/processing/processing-helix/</guid>
		<description><![CDATA[Buddies and colleagues of mine told me years ago to get into Processing &#8211; to which I never did. Well, I finally hunkered down and began to fiddle with it. I should have done it years ago. Because it&#8217;s Java-based, there a plethora of libraries to make things which would otherwise be impossible to do [...]]]></description>
			<content:encoded><![CDATA[<p>Buddies and colleagues of mine told me years ago to get into <a href="http://processing.org/">Processing</a> &#8211; to which I never did. Well, I finally hunkered down and began to fiddle with it. I should have done it years ago. Because it&#8217;s Java-based, there a plethora of libraries to make things which would otherwise be impossible to do in Flash extremely easy. For myself, the simple ability to output to an image sequence or Quicktime file sealed it for me. Below is the first sketch I did in Processing &#8211; comprised of a little more than 30 lines of code.</p>
<p><iframe src="http://player.vimeo.com/video/382343?title=0&amp;byline=0&amp;portrait=0" width="551" height="414" frameborder="0" webkitAllowFullScreen allowFullScreen></iframe>
<p><a href="http://vimeo.com/382343">Processing Experiment &#8211; Helix</a> from <a href="http://vimeo.com/somerandomdude">P.J. Onori</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2007/11/12/processing-helix/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Actionscript 3 Layout Organizers</title>
		<link>http://www.somerandomdude.com/2007/09/07/actionscript-3-layout-organizers/</link>
		<comments>http://www.somerandomdude.com/2007/09/07/actionscript-3-layout-organizers/#comments</comments>
		<pubDate>Fri, 07 Sep 2007 19:32:11 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[organizers]]></category>
		<category><![CDATA[Read]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/flash/actionscript-3-layout-organizers/</guid>
		<description><![CDATA[I have been playing with different layout configurations lately and, after seeing the advantages/disadvantages of Flex layouts, I decided to work on this experiment. Flex layouts are great because they allow easy visual organization of elements in containers. The problem with that is once an element is in a container, it cannot easily and flexibly [...]]]></description>
			<content:encoded><![CDATA[<p>I have been playing with different layout configurations lately and, after seeing the advantages/disadvantages of Flex layouts, I decided to work on this experiment. Flex layouts are great because they allow easy visual organization of elements in containers. The problem with that is once an element is in a container, it cannot easily and flexibly change its layout position. For instance, a grid cannot <em>really</em> turn into a HBox and definitely cannot turn into more alternative layouts  (such as a circular or random layout). I decided to make some Actionscript classes that would virtually mangage layouts &#8211; no containers, just managers. Meaning you subscribe an element to a layout (or multiple layouts) and they can be put into their correct layout position (or taken away) since they act independently.</p>
<p><span class='callout'><strong>Update:</strong> This code base has now been released under the name <a href='http://code.google.com/p/coordy/' target='_blank'>coordy</a>. <a href='/projects/coordy/'>Read more</a>.</span></p>
<div align="center" id="flashLayoutOrganizers">
    You need the Flash Player to view this video.
</div>
<p><script type="text/javascript">
    /*<!--*/
       var flashvars = {};
	var params = {menu: "false", scale: "noScale", salign: "TL"};
	var attributes = {};
    swfobject.embedSWF("/swf/articles/layout-organizers/LayoutOrganizersPresentation.swf", "flashLayoutOrganizers", "600", "440", "9.0", "/wp-content/themes/franklinstreet/swf/expressInstall.swf", flashvars, params, attributes);
    /*-->*/
</script></p>
<p>The example above is a simple example of 50 sprites &#8211; all subscribed to different layouts. Clicking each layout button applies those elements to that particular layout. That layout can be changed, which in turn changes the elements subscribed to it. Those elements can also be broken down into sub layout organizers &#8211; allowing for some pretty cool stuff. This method is pretty lightweight as well since there are no actual containers for any of these objects. The objects can be tweened (as per the example above) by defining a tween function or just directly set to their respective positions. In addition, each layout is pretty small &#8211; meaning large amounts of layouts can be created with little hit on memory. This still has a while to go, but so far it has allowed me to do some fairly interesting things pretty quickly and reliably.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2007/09/07/actionscript-3-layout-organizers/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Anti-Flash Standardistas &#8211; You&#8217;re Cutting Off Your Nose to Spite Your Face</title>
		<link>http://www.somerandomdude.com/2006/12/04/anti-flash-standardistas/</link>
		<comments>http://www.somerandomdude.com/2006/12/04/anti-flash-standardistas/#comments</comments>
		<pubDate>Mon, 04 Dec 2006 11:04:26 +0000</pubDate>
		<dc:creator>P.J. Onori</dc:creator>
				<category><![CDATA[Design Technology]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.somerandomdude.net/blog/flash/anti-flash-standardistas/</guid>
		<description><![CDATA[The more I read attacks on Flash, the more I end up shaking my head in confusion. Honestly, I am a little surprised this is still being debated. People, we need to get over this. Before I elaborate further, I want to make clear my support for web standards, usability and accessibility. Additionally, I understand [...]]]></description>
			<content:encoded><![CDATA[<p><span class="callout">The more I read attacks on Flash, the more I end up shaking my head in confusion. Honestly, I am a little surprised this is still being debated. People, we need to get over this. Before I elaborate further, I want to make clear my support for web standards, usability and accessibility. Additionally, I understand the concern with Flash &#8211; it is not as easy to make accessible compared to HTML/CSS, it has, and continues, to be used for some really stupid things, etc., etc., etc. We have all been down that road, we have heard the arguments. That being said, standardistas: you are fighting a losing battle, and on top of it, a battle not worth fighting. Flash is about as standards-friendly as any media plug-in there is. For each bad use of Flash, there are hundreds being used well. Lastly, and more importantly, it is changing what we can do on a browser and how our generation accesses media. Please, for everyone&#8217;s sake, stop griping about Flash and start educating people on how it can be used more effectively with standards and accessibility in mind.</span><br />
<span id="more-238"></span><br />
I have been developing with Flash for the last four years. Nonetheless, my philosophy is that if something can be done outside of Flash, it should. In fact, I have <a href="/blog/flash/thinking-outside-flash-embed-box/">written</a> on ways to minimize the amount of Flash used in certain areas. However, due to the fact that HTML was never designed to handle rich media (video, audio, vector-base imagery, motion, etc.), the overwhelming majority of rich media delivery cannot be done on the HTML layer. This becomes abundantly obvious due to the plethora of length tutorials on how to round corners or put a drop-shadow on a rectangle. In fact, I would argue that Flash is the ONLY way to deliver rich media &#8211; all other technologies (Windows Media Player, Quicktime, Real, etc.) are not only <a href="http://www.adobe.com/products/player_census/flashplayer/tech_breakdown.html">less pervasive on the internet</a>, they are infinitely less flexible. The whole UGC (user-generated content) revolution would not have happened without Flash technologies pushing the content to viewers. Flash made this happen. Not standards (have you taken a look at YouTube&#8217;s HTML?), not AJAX, but Flash. I am not trying to diminish the necessity for web standards or AJAX, but many of the standards-manics seem to have their heads in the sand as to what Flash-enabled sites are achieving. In my opinion, the people that are still clenching onto the archaic notion that Flash is not necessary are diluting the discussion on web standards. Rather than deny its merits and accomplishments, why not work to push it further into the circle of accessibility and standards? No one wants technology and progress to be stifled in the name of standardization.</p>
<p>With Flash you have a plugin in which <a href="http://www.adobe.com/products/player_census/flashplayer/version_penetration.html">nearly 100%</a> of users have at least some version of the player on their system. The makers have been working to make the technology much more accessible (can you say the same for Windows Media Player or Quicktime?). In addition, Flash allows things to be done that HTML/CSS/Javascript will NEVER be able to do barring some paradigm shift in the technologies. We hear quite a bit about how Flash is not as accessible as HTML/CSS/Javascript  &#8211; ironically, the same people that are trying to replace Flash with extremely complex AJAX applications are nearly 200Kb of Javascript for the libraries alone (scriptaculous and prototype are roughly 190Kb combined). I developed the Current TV video player which stands at roughly 54Kb. A more basic and generic version of the same application could easily be under 20Kb. I am the first person to suggest keeping as much in HTML as possible. I am also one of the largest proponents of well-used AJAX. That being said, it is simply obtuse to attempt certain things outside of Flash &#8211; here are a few examples:</p>
<ul>
<li>Advanced visualizations</li>
<li>Advanced motion treatment</li>
<li>Physics engines</li>
<li>Projects where visual typographic control is paramount</li>
<li>Video or audio playback</li>
<li>Video or audio recording through a webcam</li>
<li>Rich-media browser based games</li>
<li>All of the above occurring simultaneously</li>
</ul>
<p>Ironcially, when you add up all the traffic from fringe browsers which are incompatible with the highly used Javascript libraries, it comes very close to the amount of users without the Flash player&#8230;</p>
<p>I would highly suggest giving Flash a serious second look. There are many new features that offer more accessible-centric options for development and design. Flash 8 and above offers new features for talking with Javascript &#8211; giving the potential for all interactive elements to be in standard HTML with Flash simply being the display. The express-install feature allows viewers to upgrade their version of Flash from the SWF on your own site &#8211; making upgrading much easier and much less cumbersome of a task. You are most likely going to find a lot of features you did not know existed which open the door to accessibility on the web.</p>
<p>I have no doubt the anti-flash standards folks mean well. That being said, should we not be devoting our energy towards making this technology more seamless throughout the browsing experience rather than pretend that it will just go away? And honestly, if it did somehow go away, would the web be a better place because of it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.somerandomdude.com/2006/12/04/anti-flash-standardistas/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using apc (Feed is rejected)
Page Caching using apc
Database Caching 1/63 queries in 0.042 seconds using apc
Object Caching 783/955 objects using apc

Served from: www.somerandomdude.com @ 2012-02-09 20:57:23 -->
