Blog: [Blog Home] [Archives] [Search] [Contact]

Archive for the ‘Computing’ Category

Buying A New Computer

Monday, November 14th, 2016

Dell XPS Laptop Computer
My Dell XPS Laptop Computer

I write this post on my Dell XPS 17 laptop which I purchased in the summer of 2011. It has served as my main computer for everyday tasks and has served me reasonably well except for its failing hardware. My only real complaint after getting it was its lack of enough USB ports and that it came loaded with a bunch of crapware (aka bloatware) which I had to manually uninstall.

And just what is the current status of this five year old laptop? The internal keyboard is dead so I use a USB-attached keyboard. The touchpad is dead so I use a USB mouse. The DVD/CD reader/writer is dead so I use a USB-attached external device. The built-in Intel Centrino Wireless component is dead so my laptop is tied to a wired connection. And the battery has no life so it must continuously be connected to its charger. In short, my laptop is no longer portable. Fortunately none of these hardware failures have prevented me from continuing to use this laptop.

Two weeks ago a new problem appeared. My ability to load very large images into the laptop’s NVIDIA GeForce GT 555M graphics card stopped working. My Java graphics programs that previously worked fine failed. Even small Processing sketches were spitting out error messages when running in 3D mode. To troubleshoot the problem, I ran the OpenGL Extensions Viewer program I had previously installed as a part of updating the version of OpenGL installed on my laptop. Unfortunately it crashed before telling me anything. And it was the same story with a another testing program I tried to run. It’s worth pointing out that I bought this Dell laptop when the graphics card on my old laptop went kablooey. On the plus side, I experienced no loss of data at that time because I was able to boot up into a DOS session. And I was able shed an old laptop running Windows 95 for a new one running Windows 7.

Now it may well be that my graphics problem is nothing more than a corrupted driver and hence easily fixable. But I now have another more pressing reason to migrate to a new, more capable computer. I’m expecting to take on a consulting project that will require more disk space than I currently have available and for which I will need to install and run a web server stack – Apache, PHP, MySQL or MariaDB, WordPress, Perl, and Python as well. This project provides the perfect opportunity to finally upgrade to a new PC.

Laptop Replacement Strategy

So I have to find a new computer. The one solid criteria I have is that I want my new computer to run Windows 7 Professional. I’m sticking with Windows 7 because I have older Windows XP applications that I know will work with Windows 7. Also I have no interest in taking the time to learn how to use and manage a new version of Windows.

There is another decision that I must make as well: do I buy a laptop or a desktop? The only reason to buy a laptop is for portability. But I already have portability. Not only did I inherit my older son’s old Windows 7 laptop, but I also have my own Ubuntu Linux laptop that I’ve been using since 2014. So the older laptops I already own provide me with portability. Something else to consider is that to achieve a certain level of computing power is more expensive with a laptop than it is with a desktop. Also, desktops are much easier to work with when it comes to adding new hardware or replacing existing hardware.

Given my situation, it makes sense to replace my Dell laptop with a desktop. The next set of decisions that must be made are with respect to identifying what components (CPU, memory, graphics card, SDD/HDD storage, motherboard, power supply) I want in a new desktop. Three requirements that leap out are a) a minimum of 16 gigabytes of DDR4 memory, b) an Intel CPU operating faster than 3 GHz (gigahertz), c) a minimum of two hard drives (HDD) with total storage of at least 5 terabytes (TBs). Most challenging will be identifying a specific CPU and graphics card.

Once I’ve identified a hardware configuration, the next step will be to identify a vendor. Whose computer will I buy? Currently on my list of possible sources are (in alphabetical order): Asus, Boxx, Dell, Digital Storm, Falcon Northwest, Maingear, Origin, Samsung, and Velocity Micro. Note that I deliberately exclude HP (Hewlett-Packard) – a company I had been happy with until buying one of their computers – a mistake I will never make again. I also exclude Lenovo as they are a Chinese company that jump started their business by buying the IBM Thinkpad computer line. Disclosure – I’m a former IBM employee and bought IBM personal computers before and during my term of employment with IBM. Don’t get the wrong idea – I have nothing against buying imports. I’ve bought cars made in Japan and Germany and smartphones from South Korea, etc. Lenovo may make fine computers but I abstain from doing business with companies that are a part of a system as corrupt and unethical as the Chinese system is.

And My Desktop Choice Is…

I’ve already started my research on desktop systems both in terms of components and vendors. I will say that I have ruled out Boxx as being excessively high priced. I’ve also ruled out Falcon Northwest and Maingear as they only ship Windows 10 systems – not to mention that Maingear is also quite pricey. With respect to hardware, I’ve ruled out using a SDD for my system drive as the benefits for a desktop system just aren’t there. My particular needs are better served going with a HDD. One thing I do know and that has to do with monitors. Do not buy a monitor from the company you buy your computer from. In each of the cases I’ve checked I’ve found that I could buy the same monitor on Amazon for a substantially lower price. While I haven’t checked, I assume that this also applies to NewEgg, an online computer retailer I’ve previously done business with.

What can I say but that Christmas is coming early this year and that my Christmas present will be in the form of a desktop computer. I expect that my next post here will be about what system I finally decided to go with. Stay tuned.

Bookmark it:  Stumble It  Bookmark this on Delicious  Digg This  Technorati  Reddit Tweet It


My Social Media Holiday

Friday, November 4th, 2016

Digital Art Prints website screenshot
Coming Soon
Digital Art Prints website screenshot

My use of social media has always been erratic because it has never been a high priority for me. That does not mean that I don’t have accounts on many platforms – I do. A number of the accounts I set up are simply for learning about that platform’s features and usability – an area of professional interest for me.

To improve my knowledge of social media, I’ve read articles, books, and taken online classes. I’ve even taught classes for artists and photographs on how to use social media. But knowing and doing are two separate things. Let me provide an example. I attended an online seminar on how to be successful at Twitter. The key take away from this class, other than the completely generic advice to post great tweets was that the teacher spent three hours a day every day engaging on Twitter. For me, that is far too high a price to pay just to be popular on Twitter. Personally, I don’t spend three hours a year using Twitter.

My periods of absence from social media are driven by two key factors. First is the availability of time. Second is the variety of platforms I have accounts on. The more accounts you have, the less time you can devote to any one of them and skipping out on one makes it easier to skip out on the others.

Social Media Platforms

The main social media platforms I have accounts on and on which I am actually at all active are:

I have left off this list the many niche social networks I am on as well as sharing platforms like Tumblr and FLickr. And of course there are the more-than-a-handful of social media platforms that have gone out of business.

It has now been several months since I have engaged on any of my social media accounts. What happened? The most striking of my absences is from Linkedin – which was in large part driven by Linkedin’s own actions – two in particular. First they made a number of platform changes that were particularly harmful to members who managed groups. In trying to make the platform more mobile-friendly, Linkedin eliminated a number of usability features. Fortunately there was a strong user backlash and Linkedin eventually restored many of those features. The second was driven by the fact that I stopped receiving group updates from Linkedin. I reported the problem to Linkedin and their response was to basically say "yeah, we made some changes to the platform and a small number of our users were adversely impacted. But because it’s a small number, it’s not a priority for us to fix it." What is small for them was critical for me. That sort of customer service led me from using Linkedin on a daily basis to being only an occasional visitor and that in light of the fact that Linkedin had a couple years ago wanted me to promote the fact that I was in the top one percent of profiles on Linkedin!

So what have I done with the time I gained by ignoring my social media accounts?

Reading is FUNdamental

Two principle areas occupied my reading time. One area was for pleasure and knowledge. The other area was for professional development. Yes, its true, following are books I read for pleasure and knowledge:

  • Business
    • Making It In America – A 12 Point Plan for Growing Your Business and Keeping Jobs At Home by John Bassett and Ellis Henican
    • Good Profit: How Creating Value for Others Built One of the World’s Most Successful Companies by Charles G. Koch
  • Space Development
    • The Business of Space: The Next Frontier of International Competition by L Brennan et al
    • Realizing Tomorrow: The Path to Private Spaceflight by Chris Dubbs
    • Crowded Orbits: Conflict and Cooperation in Space by James Clay Moltz
    • Law and Regulation of Commercial Mining of Minerals in Outer Space by Ricky Lee
    • The Twenty-First Century Commercial Space Imperative – SpringerBriefs in Space Development by Anthony Young

The books I read for professional development dealt with computing: specifically web design and programming.

Web Design

Earlier this year I decided to dig into learning the Bootstrap framework for responsive web design. I had already converted by own sites to mobile-friendly designs using the general principles of responsive web design – but I wanted to learn Bootstrap. My first tangible product was to convert the
Chicago Society for Space Studies website to a mobile friendly design using Bootstrap. Having learned Bootstrap to an acceptable level of proficiency, I was able to design and code and implement the new site in a single weekend.

I am still learning Bootstrap and am close to releasing a new web site – Digital Art Prints which will feature some of the artwork and photography that I offer for sale on a few of the POD (Print On Demand) services I have accounts with.

Python Programming

For some time I’ve been wanting to learn the Python programming language in order to create scripts for GIMP and possibly Blender. What finally pushed me over the edge was the decision to create a new web site (Digital Art Prints) and to use a Python program to construct the web pages from a database I maintain for all my art and photography. My first actual productive use of Python was to create an auto-mailer program for email distribution for Chicago Society for Space Studies. I also have a couple of other projects in mind for interactive website queries.

Presentations

I give a number of talks over the course of a year. These talks tend to fall into four distinct categories. As a NASA JPL Solar System Ambassador, I give talks about planetary science and planetary exploration – the most recent of which was about the New Horizons mission to Pluto. As President of the Chicago Society for Space Studies, I give talks that focus on space business, space development, and space policy. For more about this, see my Chicago Society for Space Studies Speakers Bureau page. As an artist, I give talks on a number of digital art subjects and on various aspects of web use for art marketing. You can see a full list on my lectures and presentations page.

My last presentation was last Saturday (for details see Space Art Program At Elmhurst Art Museum). My next presentation will be this coming Monday for the Nineteenth Century Club and Charitable Association on the topic Globalization of the Solar System – a presentation that asks the question can the economic and technological principles that make globalization possible here on Earth work for a human civilization that is spread across the solar system?

I also completed work on a new presentation titled The Impact of Space Policy on Space Settlement and am working on a presentation about the history of lunar art and another on Earth imaging and remote sensing.

Digital Art Prints website

As I mentioned, I’ve been working on a new web site – digital-art-prints.com where I will have a portfolio of art and photography that I have made available on certain POD (Print On Demand) sites, like Redbubble and Crated for example. The design of the site, which is built using the Bootstrap framework, is complete. I’m not using a CMS (WordPress for example) for the site but am instead working on a Python program that will take the information I have for each artwork and use that information to automatically build the site’s web pages and image gallery. This will allow me to swap out web page designs very easily. I have also written a program using the Processing programming language to automatically generate all the images that the web site will need. Stay tuned as I hope to have the site up before the end of November – assuming no more computer problems.

And What About Social Media?

I certainly expect to return soon to the world of social media but probably not until after I have rolled out my Digital Art Prints website, which is my number two priority at the moment. My number one priority is putting together the next issue of Spacewatch – the quarterly e-newsletter of the Chicago Society for Space Studies.

In the event that I don’t have any more blog posts before Thanksgiving, here is wishing everyone a happy and hearty Thanksgiving.

Bookmark it:  Stumble It  Bookmark this on Delicious  Digg This  Technorati  Reddit Tweet It


Creative Coding Software Tools: Processing, openFrameworks, Cinder

Thursday, April 14th, 2016

Creative Coding Software Tools:
Creative Coding Software Tools: Processing, openFrameworks, Cinder

In my previous blog post, Fresh Brewed Coffee Digital Art, I made mention of the fact that I create my digital art using software of my own design and that for those digital artists interested in pursuing this aspect of digital art creation, there were some alternative tools available. In that post I mentioned Processing, openFrameworks, and Cinder. I would like to take this opportunity to say a little more about each of these three options.

Processing

Starting with Processing, this is a framework and programming language that is built on top of Java, an object-oriented programming language. Like Java, Processing is free and available on a variety of platforms. Personally I use Processing on both Windows 7 and Ubuntu Linux. Because the Processing programming language was created for artists and musicians with little or no programming background, beginners can quickly be up, running, and creating with this wonderfully flexible software tool. The flexibility of Processing as an environment for creative coding is expanded by the abundance of third party libraries that have been made available. It is also the most flexible tool in terms of the variety of platforms it works with. I have taken advantage of the ability to write Processing sketches for the web using the Javascript version of Processing (Processing.js) as well as for creating Android apps and for interacting with the Arduino (see The Arduino Starter Kit – Official Kit from Arduino with 170-page Arduino Projects Book). For those new to programming and creative coding, Processing is my number one recommendation.

Processing Resources

The main Processing web sites are:

Following are three books on Processing that I recommend and own. There are a number of other books on Processing that are also quite good. Please be aware that Processing is now on version 3 and version 2 is still widely used but do avoid any book that was written for version 1 of Processing.

openFrameworks

Like Processing, openFrameworks is also free and available on multiple platforms. In fact I even had the opportunity to write some openFrameworks programs on a Raspberry Pi (see CanaKit Raspberry Pi 3 Ultimate Starter Kit – 32 GB Edition) that was running the Raspbian operating system. The primary difference between Processing and openFrameworks is that whereas Processing is a framework that sits on top of the Java programming language, openFrameworks sits on top of the C++ programming language. Personally I find openFrameworks to be somewhat more challenging than Processing, particularly with respect to the use of off-frame buffers in conjunction with OpenGL. And by challenging, I am speaking in terms of the number of lines of code I must write in order to achieve some objective.

openFrameworks Resources

The main web sites for openFrameworks are:

There are not nearly as many books about openFrameworks as there are about Processing but the two that are most worthwhile are:

If you are searching on Amazon for books about Processing and/or openFrameworks, you may come across the book Programming Interactivity: A Designer’s Guide to Processing, Arduino, and openFrameworks by Joshua Noble. My advise is do not buy this book. It is quite out of date and the source code for the examples never was made available.

Cinder

Cinder is a third creative coding platform and, like openFrameworks, relies on the C++ programming language. I have no personal experience with Cinder but I will say that when I was investigating openFrameworks vs Cinder as a creative coding toolset for the C++ environment, openFrameworks won out.

Cinder Resources

The main Cinder web sites are:

There are even fewer books about Cinder than there are about openFrameworks. Two books you will find on Amazon are:

I hope you’ve found this information useful. I also hope that, even if you are not a digital artist or musician or programmer, you check one or more of these creative coding toolsets because you never know – you just might have a knack for creative coding.

Bookmark it:  Stumble It  Bookmark this on Delicious  Digg This  Technorati  Reddit Tweet It


A Mobile Friendly Artsnova Blog

Monday, May 4th, 2015

Google Developers Mobile Friendly Test Page
Google Developer Says I’m Mobile Friendly

Last night I held my breath and swapped out my old blog theme files and CSS with the new responsive web design replacements I had just finished coding up. Why? Well, if you follow the news of the web then you are no doubt aware of the big change Google made last month (4/21 to be exact) to its search engine ranking algorithm. The heart of that change was to penalize web sites that are not mobile-friendly – or to put a positive spin on it – to reward web sites that are mobile friendly.

It was last September that I re-coded my main web site using the responsive web design paradigm to make my web site mobile friendly. You can read about that in my post Artsnova Digital Art Gallery – Mobile Friendly At Last. And in December when I launched my Jim Plaxco Photography web site, I did it as a mobile friendly web site from the start. It’s much easier to design a mobile friendly web site from scratch than it is to convert an existing web site!

Tackling my blog was another matter entirely, particularly since I had to first edit all of my previous blog entries to ready them for use with a responsive web design layout. That took time. Plus I had to insure that the responsive design theme I came up with for my blog provided the same look and feel as my separately managed web site. This extra challenge is a consequence of having created my web site first and only later adding a blog – for which I simply used a default theme at the time. With all the other items on my agenda, I really did not want to spend time making this design change but I viewed it as a necessity given Google’s actions. Note that mobile visits to my web site for the last month accounted for 16.9 percent of my traffic.

I’m happy to say that the implementation work is now done. I only have two more tasks. First I must revisit all my posts that contain embedded videos and determine how I will handle them as they use a fixed-width definition (just 425 pixels wide so not a big deal – I just need to create a CSS class for them). Second, I need to revisit every blog post using a combination of browsers and mobile devices to make sure that nothing broke in terms of the page layout. You could say that I’m doing my testing in a "live" environment. This is not considered good practice but given my time constraints, it is a better course of action for me to pursue.

If in the course of wandering around my blog you find something amiss, please contact me so that I can put things right. Thank you.

Happy Surfing!

Bookmark it:  Stumble It  Bookmark this on Delicious  Digg This  Technorati  Reddit Tweet It


Artsnova Digital Art Gallery – Mobile Friendly At Last

Thursday, September 25th, 2014

Artsnova Digital Art Gallery responsive design for Smartphone
Artsnova Digital Art Gallery responsive design for Smartphone

One of the projects that I’ve been working on – off and on as time permitted – over the last few months has been to recode my Artsnova Digital Art Gallery web site in order to improve the site’s usability for mobile users. Specifically I was working to create a responsive web design version of my web site.

My old design (which this WordPress blog still uses) used a fixed-size layout so that no matter what your device’s form factor (screen size), the relative size and placement of images and the flow of text was identical across the board. This made design and maintenance a simple matter. Pages would look the same to everyone. This approach works great for the desktop.

As more surfers spend more time using their mobile devices to surf the web, it becomes more important that web sites migrate to a design methodology that is friendly to mobile users. This is because of the way in which mobile device browsers display traditional web pages. If you pull up this blog post on your smart phone’s browser, the entire page will be displayed on your screen – but everything is going to be so small that you won’t be able to read anything or click any of the links without first manually resizing the content. In addition, my site was using the hugely popular CSS dropdown menu method for site navigation. It works great on the desktop but not on mobile devices.

The percentage of traffic my site gets from mobile users is in the teens – up from the mid-single digits of just a couple years ago. As I expect that trend to continue, I felt it was time for me to sit down and create a web site that would be friendly to mobile users.

I opted to go with a responsive web design solution as that would require only a single code base – as opposed to maintaining one code base for desktop users and one or more additional code bases for mobile users. What is responsive web design? Responsive web design uses HTML (HyperText Markup Language) and CSS (Cascading Style Sheets) to create a web page whose layout is dependent on (responsive to) the size of the screen it is being viewed in. That’s it. The main benefit is that responsive web design allows me to create a single web page that gets delivered to all users – as opposed to creating one version of a web page for desktop users, another version of the page for smartphone users, and another version of the page for tablet users. My web site currently has 329 HTML pages (not counting the pages associated with my blog). Responsive web design means 329 pages and one set of CSS definitions. The non-responsive alternative would mean 987 pages and three sets of CSS definitions. That’s a lot of work and means a lot more maintenance in the future. And it’s worth pointing out that I don’t use a CMS (Content Management System) for my site. I’ve coded everything by hand as static HTML pages.

In addition to developing the necessary CSS code to implement a responsive web design, I had to recode and test each of my site’s existing web pages. While for most pages these changes were fairly standard, I have a number of pages that presented particular challenges due to their content.

Another aspect of my design is that it does not use Javascript. Everything is done using HTML and CSS3. I’ve avoided Javascript for two reasons. First and foremost, not using Javascript makes for a faster page load – particularly for mobile devices. Second, not using Javascript means that there is one less component of my site’s code base that I have to maintain. Of course not using Javascript means that my web site lacks the dynamics and interactivity features that Javascript makes possible. However, hopefully you are coming here for the content and not visual bells and whistles.

Last night I put the finishing touches on my new design and took the plunge of rolling it out – even though I haven’t tested as thoroughly as I should. However, my schedule over the coming months has little spare time so better to act now and deal with issues as they arise.

To see a full side by side visual comparison of my standard vs responsive design home page as seen on my Android smartphone, clip on the image below.

Artsnova Digital Art Gallery site comparison image

What About My Blog?

If you’re reading this on a mobile device, you can see that I have not converted my blog to a responsive web design. Converting my blog to a responsive design would take almost as much time as it took me to convert my web site. Fortunately (or unfortunately) I created my web site and blog separately. Later on I created custom WordPress templates in order to visually integrate my blog into my web site. This approach has worked quite well but it means that the two are designed and maintained separately. For the foreseeable future, I will not have the time to spend on converting my blog to a responsive design.

References

In learning about responsive web design and in coding up my design, the two books that I made the most use of were:

Closing Thought

As a parting shot, I’ll leave you with this quote by Microsoft’s Bob Herbold: "It’s not the technology, folks, it’s the people. When we trace [the errors] back, it’s always human error." Of course what he doesn’t say is that for the most part the people making those errors are Microsoft’s programmers.

Bookmark it:  Stumble It  Bookmark this on Delicious  Digg This  Technorati  Reddit Tweet It


Image Processing and Telling RGB/HSB Color Lies

Thursday, May 8th, 2014

Squashed Blue Man Statue
Squashed version of Blue Man Statue digital painting for testing

As a practitioner of digital art and image processing, and with a background in both math and computer programming, I regularly create my own graphics programs using the Processing programming language. Pictured at the top of this post is a squashed version of a digital painting I did using Adobe Photoshop and some custom brushes I had created. Pretty straight forward stuff.

Recently I’ve been exploring the world of generative art creation by writing my own generative art programs. For some of these programs, rather than starting with a blank canvas I provide an initial image from which to work. The image may be a photograph or a work of digital art. For example in one instance I took a selfie (a self-portrait photograph), created a painted version of that photograph and fed that into one of my generative art programs. (Note: you can see the resulting artwork Generative Selfie at Artflakes.com.)

Unfortunately with large size images complex generative programs can take quite a while to run. Consequently I use whatever tricks I know to speed up program execution. One common ‘trick’ is to avoid using Processing’s canned color routines and to use bit-shifting instead. Bit-shifting allows for very speedy access to an image’s color information which is encoded in an RGB (red,blue,green) format. This means that color is defined by the three values of red, green, and blue. Bit-shifting works because the four individual values for red, green, blue, and alpha (transparency), are all stored in a single 32-bit integer field.

The other night I thought of a cool modification that I could make to one particular generative art program I’ve been working on. However that change would require that I work in HSB (aka HSV) mode. With HSB/HSV, a color is defined by the three values of hue, saturation, and brightness (sometimes referred to as value). Working programmatically in RGB has several drawbacks when compared to the competing HSB color model. HSB provides much more flexibility when it comes to creatively manipulating color.

There is just one problem with the HSB approach. The color information in images is stored in RGB format. The bit-shifting method that works so nicely is not an option for working with HSB. There are standard routines that allow you to extract HSB information from the RGB color format but you pay a penalty in terms of the amount of processing time it takes to do that. And if you are working with an image that has tens of millions of pixels and you are performing a lot of color sampling, let’s just say that your computer is going to be tied up for a while. My back of the envelope calculation leads me to believe that working with HSB would result in an additional 50 million-plus program statement executions in my code and an unknown number of additional statement executions in the underlying Processing and Java code.

By nature I’m an impatient person so for me all this additional program overhead was unacceptable. And then it dawned on me – I could LIE! You see computers are stupid and will believe whatever you tell them. As supporting evidence I offer up the views of science fiction author Arthur C. Clarke:

…the fact is that all present computers are mechanical morons. They can not really think. They can only do things to which they are programmed.

The LIE that came to me was to write a Processing program that would take all the RGB color information from an image file and replace it with HSB information. I could then use that modified version of the image file as input to my HSB generative art program and it would run just as fast as the original RGB version because I would be able to use those very efficient bit-shifting operations. While I was at it I also wrote a utility that converted the file from HSB back to RGB. This allowed me to visually compare the original image with an image after it had undergone the RGB to HSB and back to RGB conversions.

Of course the downside of stuffing HSB data into the RGB field is that every other program on my or anyone else’s computer is going to read that image file and expect that the color information is in RGB format. Take a look at Image 2 below. It’s a copy of the file shown above except I’ve put HSB information into the RGB field. Kind of cool.

Appearance to RGB-reading software
Image 2. How the image looks to RGB-reading software when the file actually contains HSB information.

Taking this whole lying idea a step further, what if I lie to my color converting utility? What if I do the same RGB-to-HSB conversion multiple times while throwing in a few HSB-to-RGB conversions as well? What you can wind up with is one confused picture. Image 3 is an example of the kind of image you can get. In fact you could argue that Image 3 is more artistic than the original painting.

multiple random RGB-to-HSB and HSB-to-RGB conversions
Image 3. Running multiple, random RGB-to-HSB and HSB-to-RGB conversions.

Pablo Picasso once observed that art is a lie that makes us realize truth. That may be but in this case a lie was simply the most expedient way to achieve an artistic objective. Having spent all this time coming up with a nice RGB-to-HSB color conversion utility, it’s now time to get to work on the HSB version of that generative art program.

References

For those of you who would like to know more about RGB, HSB, and Processing, you can check out the following references.

Bookmark it:  Stumble It  Bookmark this on Delicious  Digg This  Technorati  Reddit Tweet It