<div dir="ltr">Wow, I'm impressed.<div><br></div><div>Couple of comments:<div>1) Durability is a really good point as is safety. I met some folks at MakerFaire in NYC and one recommended using conductive cloth as cheap and safe switch (also may be easy to make repairs, which would be another consideration). Not sure about the durability/reliability but may be something to explore. One idea they had to make a switch was to place some foam between two pieces of conductive cloth to keep them separate until they are squeezed at which point they make contact and complete the circuit. I will see if I can find their contact information as they seemed interested in helping and may have a bunch of kids who can help test your designs/plans.</div>
<div><br></div><div>2) Interfacing with Etoys (and Turtle Art, Scratch et al) basically involves emulating a keyboard. So as long as you can emulate a USB keyboard/keystrokes you should be okay</div><div><br></div><div>3) Raspberry Pi is one good option and it also opens up other possibilities as you have linux on the Animal.</div>
<div><br></div><div>4) Another option you may want to consider is using an Arduino (I think the Leonardo supports keyboard emulation, but that was when I checked a while back).</div><div><br></div><div>Cheers,</div><div>Stephen</div>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 7, 2014 at 2:53 PM, Jade Deviancy <span dir="ltr"><<a href="mailto:positive.deviancy@gmail.com" target="_blank">positive.deviancy@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Ok- Here is the progress that I have made so far:<br><br>I have been doing a lot of research on what the range of motor skill levels are for kids in the autistic spectrum and I ended up being able to go to the NIH and speak with an outreach counselor (Ms. Sona Nahvi) on what some obstacles are with their motor and non verbal skills. She was very informative about different types of things that are common and she said that they have a reflex called Palmer's reflex where they tend to ball their hands into fists very tightly and squeeze. Also she really emphasized that texture and feel was a very big part for some of the clients that she works with and she really thought that a stuffed animal was a great idea. She was a little worried about the durability aspect also.<br>
<br> I went along with her to some of the clients (4 total) that she thought that it would be good for me to interact with and see what would be appropriate for their needs. 3 were male and one was female, they were all pretty much in the middle of the spectrum for Autism (more on the social). They were all under 18 too. The good part was that they all really liked playing with iPads and they were able to use a mouse. I brought over a few different types of input device examples (Joystick, Driving wheel, Playstation controller, Large buttons, Mouse, Keyboard, and a set of switches) I introduced them to each person one at a time and I timed which types they were able to correctly use for input and also kept them engaged the longest. These were all not attached to anything I just let them play with it for as long as they wanted. Joystick and switches were the worst for attention and usage and the best was the keyboard and the playstation controller. The kids really liked gripping the controller and the keyboard they liked running their hands all up and down it. One boy was not that interested in the keyboard so I decided I would try integrating the controller for the stuffed animal.<br>
<br> I have ordered about 3 really inexpensive generic controllers ( that I am going to download an emulator for and test them with raspberry PI) I need to verify that the emulator is open source and compatible with EToys and this way a computer would not even be needed because the Raspberry PI would fill that gap and all you would need is an SD card that could load the software in the Raspberry PI. Best part is that the Raspberry Pi only costs around $25 new. The controller is around $7 each and the SD cards I would have to find how much GB is needed for the software and instead of running it though a computer you can use a video cord (AV in or HDMI) and connect it with a TV. So fingers crossed!!! I have also taken apart a keyboard and I and trying to figure out a way to get rid of the keys and integrate the little push buttons in a stuffed animal. I don't want there to be any chance of there being a way to shock or burn someone from it so I am thinking of getting a flexible keyboard ($8) and cutting it into strips and sealing them back with silicone and possibly sewing them into the stuffed animal. Let me know what your thoughts are and if you have any suggestions. Also- Do you want me to start documenting the frankensteining on video? That way we could have a YouTube channel dedicated on hacking the stuffed animal?<br>
<br><br></div>Jade Garrett<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 23, 2014 at 11:52 PM, Steve Thomas <span dir="ltr"><<a href="mailto:sthomas1@gosargon.com" target="_blank">sthomas1@gosargon.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Jade,<div><br></div><div>Here are my thoughts:</div><div><ol><li>First lets separate the parts of the project into:</li>
<ol><li>input device - which sends "keystrokes" over a USB cable</li><li>A program to facilitate a non-verbal child's communication with others</li>
</ol></ol><div>A successful project would be one where one or more of the following occurs:</div><div><ol><li>The building of the input device could be replicated by</li><ol><li>Young children 12-16 building a number of these devices for:</li>
<ol><li>shipment to OLPC sites around the world</li><li>use in their local communities</li><li>Fun cause its cool to have your stuffed animal used as a game controller</li></ol><li>Teachers/Volunteers/Parents at OLPC sites around the world</li>
<li>In a class or after school setting to teach making</li></ol><li>The software program could easily be extended the same groups mentioned in items 1 and 2</li><ol><li>By extended I mean they can add "visual vocabulary" and can re-arrange the Pictures/Sounds to facilitate their communication needs.</li>
</ol></ol></div><div><br></div></div><div>I like your idea of frankenstiening parts as one possible solution. That said another good objective would be to have more than one solution and to have kids know how to do things more than one way.</div>
<div><br></div><div>Cheers,</div><div>Stephen</div></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, Mar 23, 2014 at 9:33 PM, Jade Deviancy <span dir="ltr"><<a href="mailto:positive.deviancy@gmail.com" target="_blank">positive.deviancy@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="auto"><div>Thank you so much for the prompt response! I ultimately would like to get it down to $15-20 max, but I am hesitant because I don't like to raise hopes in case it is not possible for me to deliver. Another option would be to try to frankenstein parts from an old computer or another machine that would provide alternatives for buying the parts, which would help in getting the cost down. Definitely I would try out many different input devices, even taking a keyboard and modding it so that it looks like it only has 5-8 large keys (putting large stickers or even painting over the keys) might work. One thing that caught my eye was a flexible keyboard. I am looking into that and trying to brainstorm some ideas. <br>
<br></div><div>One thing that is really important to me is to have clear objectives. If we could brainstorm on what those would be, it would help give me direction to come up with many options within limitations. <br><br>
</div><div>Here is what I have gathered to be the main objectives - <br></div><div>1. Turn a stuffed animal into an input device so that it can interact with an Etoys program.<br></div><div>1a. Narrow down what types of input devices would be the best for the child and price point.<br>
</div><div>1b. With the input device agreed on, choose what type of program that would be the best way to interact using that. <br></div><div> I just emailed 2 local special ed teachers that I have worked with in the past and I asked them what they think would be good options for input and also what would really engage children with non-verbal challenges. I could also make a google survey and email it to as many teachers/special ed teachers to try to get a consensus. <br>
</div><div><br></div><div>2. It will have to be able to be created with the parts list being as low cost as possible.<br></div><div>2a. See if there are any common alternatives to parts that people could use<br></div><div>
2b. Check to see if there are any Generic part alternatives or bulk options<br></div><div><br><br></div><div>Could you give me what you would define as the best case scenario?<br>What you would consider the basic requirements for a successful prototype would be?<br>
</div><div>This way, we have something to shoot for and then measure if it was successful or not. <br><br></div><div>Thanks! I really look forward to working on this with you guys! Let me know if there is anything else that you need from me and also, when do you know when the project will be approved through Google?<br>
<br></div><div>Jade Garrett<br></div><div><div><div><br><br><br></div><div><br>On Mar 21, 2014, at 11:06 PM, Steve Thomas <<a href="mailto:stevesargon@gmail.com" target="_blank">stevesargon@gmail.com</a>> wrote:<br>
<br></div>
<blockquote type="cite"><div><div dir="ltr">Jade,<div><br></div><div>Thanks for your submission to Google Summer of Code for "Hack a Stuffed Animal". I like your idea of providing some type of feedback to the user (ex:led) and have no problem with you developing using arduino as part of the solution.</div>
<div><br></div><div>In regards to cost I would challenge you to bring the price as low as possible and perhaps even having a number of different solutions as there are different needs.</div><div><br></div><div>Cheers,</div>
<div>Stephen Thomas</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Mar 19, 2014 at 11:22 AM, Walter Bender <span dir="ltr"><<a href="mailto:walter.bender@gmail.com" target="_blank">walter.bender@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">---------- Forwarded message ----------<br>
From: <<a href="mailto:no-reply@google-melange.appspotmail.com" target="_blank">no-reply@google-melange.appspotmail.com</a>><br>
Date: Wed, Mar 19, 2014 at 9:45 AM<br>
Subject: [Sugar Labs] New proposal by PositiveDeviancy: Hack a Stuffed Animal<br>
To: <a href="mailto:walter@sugarlabs.org" target="_blank">walter@sugarlabs.org</a><br>
<br>
<br>
Hi,<br>
<br>
PositiveDeviancy has submitted a new proposal to Sugar Labs named Hack<br>
a Stuffed Animal at<br>
<a href="http://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2014/positivedeviancy/5629499534213120" target="_blank">http://www.google-melange.com/gsoc/proposal/review/org/google/gsoc2014/positivedeviancy/5629499534213120</a>:<br>
<br>
About you<br>
<br>
<br>
<br>
What is your name? Jade Garrett<br>
<br>
<br>
<br>
What is your email address? <a href="mailto:PositiveDeviancy@gmail.com" target="_blank">PositiveDeviancy@gmail.com</a><br>
<br>
<br>
<br>
What is your Sugar Labs wiki username? OpenIDUser9<br>
<br>
<br>
<br>
What is your IRC nickname on <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a>? positivedeviancy<br>
<br>
<br>
<br>
What is your first language? English<br>
<br>
<br>
<br>
Where are you located, and what hours (UTC) do you tend to work?<br>
Fairfax Virginia EST. I work at all hours, however, I am usually<br>
working from 11AM-4PM and 9PM-1AM.<br>
<br>
<br>
<br>
Have you participated in an open-source project before? I have<br>
participated in BJC (beauty and joy of computing) and Stars Mentors<br>
Program, mainly in the capacity of tutoring and teaching programming.<br>
<br>
<a href="http://ait.gmu.edu/stars/contact.html" target="_blank">http://ait.gmu.edu/stars/contact.html</a> (Stars Mentor for GMU)<br>
<br>
<a href="http://stem.volgenau.gmu.edu/current.html" target="_blank">http://stem.volgenau.gmu.edu/current.html</a> (I teach the BJC programming<br>
class and the Web Design class) BJC uses SNAP! a Scratch Derivative<br>
and is open source.<br>
<br>
<br>
<br>
<br>
<br>
About your project<br>
<br>
<br>
<br>
What is the name of your project? Hack a Stuffed Animal<br>
<br>
<br>
<br>
Describe your project in 10-20 sentences.<br>
<br>
<br>
<br>
What are you making? A Robotic Stuffed Animal that will execute<br>
commands, act as an input device for an Etoys program, and also<br>
interact with children while being used.<br>
<br>
<br>
<br>
Who are you making it for, and why do they need it? Children, but<br>
more specifically, children who have challenges with non-verbal<br>
communication and would benefit from interacting with a stuffed animal<br>
robot. Some children will use it to keep them entertained and engaged<br>
while using the program, it could even be a character in the program<br>
for example. Some children might use it for its ease of usability or<br>
it could help foster a familiar comforting feeling while using the<br>
software and technology. Mainly, it will be used to help bridge the<br>
gap with children who have challenges with non verbal communication<br>
such as children with autism, by helping aid interaction using other<br>
forms of communication besides verbal such as - Gestures, Movements,<br>
Sign Language, Mimicry, and Signals. By making a familiar object such<br>
as a loved stuffed animal turned into an input device, it changes the<br>
whole dynamics of using technology and interaction, it allows for the<br>
child to project their own method of communication through the stuffed<br>
animal where a keyboard would be confusing and frustrating.<br>
<br>
<br>
<br>
What technologies (programming languages, etc.) will you be using? It<br>
is requested that I use Sugar Lab's Etoys program, however, I will<br>
have to use Arduino 1.0.5 for coding the commands for the stuffed<br>
animal so that it will act as an input device using either a keyboard<br>
with modified keys or a joystick. Then I will use Etoys to create a<br>
simple interactive program (non verbal) that the child could have<br>
certain pre-programmed interactions and outcomes using the stuffed<br>
animal. I would like to try to integrate some type of responsive<br>
feedback, for example, a small LED light blinking, or a sound that is<br>
produced from the stuffed animal to show that the communication and<br>
interaction is two sided. (That might be a good idea for another<br>
project for GSOC)<br>
<br>
<br>
<br>
What is the timeline for development of your project? The Summer of<br>
Code work period is from May 19 - August 22; tell us what you will be<br>
working on each week. (As the summer goes on, you and your mentor will<br>
adjust your schedule, but it's good to have a plan at the beginning so<br>
you have an idea of where you're headed.) Note that you should<br>
probably plan to have something "working and 90% done" by the midterm<br>
evaluation (27 June); the last steps always take longer than you<br>
think, and we will consider cancelling projects which are not mostly<br>
working by then. I will start the day that I find that I am approved,<br>
even if it is before May 19th.<br>
<br>
Now-May 19th: Design and focus on creating a functioning input device.<br>
Clarify requirements and main goals for the stuffed animal hack. Focus<br>
on what method is best for input (Joystick, keyboard, strategically<br>
placed buttons, motion sensors, etc). Set firm and clear goals for<br>
this project. Designing a program that would take the input and have<br>
it interact in a way that is stimulating and engaging. Possibly a<br>
music program that will play certain animal sounds while showing a<br>
picture of the animal. Or perhaps a flashcard/slideshow program with<br>
certain words that can be recorded by a family member and pictures of<br>
things that the child shows interest in. Interview teachers who work<br>
with kids with special needs to further improve design and function.<br>
Conduct research on pricing the materials and creating a parts list.<br>
Starting with a goal of under $50.00 and then trying to beat that<br>
price by 20% in the week of July 14th. Gather all the parts and tools<br>
necessary to begin creating prototypes.<br>
<br>
Week of May 19th - Begin assembling the parts and testing if the input<br>
received is working properly.<br>
<br>
Week of May 26th - Testing how the inputs work with the program.<br>
<br>
Week of June 2nd - Fixing input bugs and design flaws.<br>
<br>
Week of June 9th - Further testing interaction between stuffed animal<br>
and program.<br>
<br>
Week of June 16th - Finalizing the design and look for the stuffed<br>
animal. I want to have 3 prototypes created.<br>
<br>
Week of June 23rd - Creating a usability metric for the stuffed animal<br>
and start testing with target users - children and children who have<br>
challenges with non-verbal communication.<br>
<br>
MID POINT EVALUATIONS - Gather up all the notes and enter the evaluation.<br>
<br>
Week of June 30th- Analyzing the feed back and making adjustments and<br>
correcting any issues.<br>
<br>
Week of July 7th - Work on creating another program to also be used<br>
with the stuffed animal after feedback sessions and requests for<br>
certain modifications.<br>
<br>
Week of July 14th - Finalize the parts list for all the necessary<br>
pieces. Price out the parts list for one stuffed animal and also for<br>
bulk production (20 at a time). Look into different retailers, check<br>
for generic parts vs brand name, look into 3D printing to see if that<br>
is an option.<br>
<br>
Week of July 21st - Make a PDF on how to create the stuffed animal and<br>
how to assemble it. Also create a video that shows construction step<br>
by step, and also how to debug, test, and connect the stuffed animal.<br>
<br>
Week of July 28th - Continue work on the previous week. Send updates<br>
and request feedback.<br>
<br>
2-3 weeks of gathering data, refining the stuffed animal and its<br>
programs. Also one week to factor in delays etc.<br>
<br>
Work on the final evaluations until the Final Date for Project.<br>
<br>
<br>
<br>
<br>
<br>
Convince us, in 5-15 sentences, that you will be able to successfully<br>
complete your project in the timeline you have described. This is<br>
usually where people describe their past experiences, credentials,<br>
prior projects, schoolwork, and that sort of thing, but be creative.<br>
Link to prior work or other resources as relevant.<br>
<br>
My major is Applied Information Technology with a Certificate in<br>
Entrepreneurship. I have previous experience with building robots<br>
using Lego Mindstorm, VEX, and Arduino. I also have experience writing<br>
programs using Scratch and Snap! (Berkeley University's version of<br>
Scratch) and I even teach a programming class on the weekends to high<br>
school kids using Snap! I feel that I am perfect for this project<br>
because I have years of experience with all necessary aspects of<br>
creating a robotic stuffed animal that accepts and returns input. I<br>
have previously conducted usability tests with feedback, written<br>
software programs using Scratch, created working moving robots, rapid<br>
prototyping of applications, and I have a strong background with<br>
electronics engineering. I already have most of the electronic parts<br>
and tools that are necessary for creating a stuffed animal robot that<br>
can send and receive input, light up, and execute simple commands. I<br>
have my own lab space at GMU Campus where I am able to work<br>
undisturbed and focus. I am willing to document the process of<br>
creating/testing the hacked stuffed animal by video blog, regular<br>
blog, and also possibly conducting a class where high school kids use<br>
Etoys and design their own programs for the stuffed animal. Most<br>
importantly, I am very passionate about this project, I have worked<br>
with many children with Autism (I used to teach adapted aquatics) and<br>
I have a strong connection to this cause. I am beyond excited to work<br>
together and create something that helps children learn.<br>
<br>
<br>
<br>
You and the community<br>
<br>
If your project is successfully completed, what will its impact be on<br>
the Sugar Labs community?<br>
<br>
Jade's Response: I think that it will not only help children with<br>
challenges in non-verbal communication, it will help especially young<br>
children, children who are just beginning to use computers, and<br>
children with attention issues stay engaged in learning new<br>
technology. It will also provide a valuable resource to families who<br>
are not able to afford buying pre-made robots that have the<br>
functionality that we have added with the focus of non-verbal<br>
interaction. Also, instead of just being impacted by it, the Sugar<br>
Labs community could use it to help the world by creating programs<br>
using Etoys that would lead to more awareness and possibly even more<br>
treatment and therapy for kids with challenges with non-verbal<br>
communication. Innovation is contagious and other members would have<br>
the resources to create and modify their own versions of the stuffed<br>
animal and programs, which in turn lead to totally new uses,<br>
inventions, and ideas. It is a snowball effect of awesomeness.<br>
<br>
<br>
<br>
<br>
<br>
What will you do if you get stuck on your project and your mentor<br>
isn't around? I already have a clear idea of what needs to be done<br>
and I plan on starting research and designing this as soon as I am<br>
chosen to work on this project. I would try contacting the mentor<br>
using different methods, but I never really depended on any single<br>
person enough to stop me from working or figuring things out on my<br>
own, I have so many resources online, from the college library, other<br>
professors and peers that have experience in some aspect of this<br>
project. If I really did get stuck, I would work on another aspect of<br>
the project while I was waiting for the communication or backtrack<br>
some steps and try to find out where I was stuck. If I have to wait, I<br>
will be busy working out where the issue is while I am.<br>
<br>
<br>
<br>
<br>
<br>
How do you propose you will be keeping the community informed of your<br>
progress and any problems or questions you might have over the course<br>
of the project?<br>
<br>
I would like to keep a video blog of my progress as I work on this<br>
project which would be accessible on YouTube. I would also be<br>
constantly working on documenting what has been done, what is being<br>
worked on and how I am doing it, and then also the tasks that I need<br>
to still finish. I would send weekly status update emails every Sunday<br>
to my mentor and who ever else was involved in this project. I would<br>
send pictures, video, and sketches whenever I reached a new task to<br>
work on in the project so that everything is fully documented on my<br>
approach, results, and any issues that arose and how I fixed them. I<br>
also can chat, blog, use WebEx, talk on the phone, email, hand write a<br>
letter and mail it, possibly even send you an update using Morse code<br>
if I had enough time. I am so excited about the project that you could<br>
possibly ask me to not contact and share so much information with you<br>
guys.<br>
<br>
<br>
<br>
<br>
<br>
Miscellaneous<br>
<br>
<br>
<br>
Describe a great learning experience you had as a child<br>
<br>
I remember my first AHA! moment when I was creating my first website.<br>
For the longest time I could not find out why my website was not<br>
loading the way that I wanted to. I had looked over the HTML at least<br>
a hundred times and I still couldn't find the error. Just when I was<br>
about to throw my computer out my window and give up, I checked how I<br>
saved the file and instead of saving it as index.html, I saved it as<br>
index.htl. I can't even begin to explain the intense happiness that I<br>
felt then. I was literally on the brink of crying like a baby with all<br>
the mixed emotions of frustration, weariness, and pure joy. That<br>
feeling of being smarter than my computer made me fall in love with<br>
programming right then and there.<br>
<br>
<br>
<br>
Is there anything else we should have asked you or anything else that<br>
we should know that might make us like you or your project more?<br>
This is a project that is very different from most of the other<br>
suggestions I viewed on your site. I think that this will be somewhat<br>
uncharted territory for everyone on what would be the best approach,<br>
design, features, and goals. I want everyone to know that I am always<br>
open to trying new ideas and respond well to constructive criticism. I<br>
prefer being upfront and open about expectations and I hope that my<br>
mentor is just as candid about them as I will be. I am definitely<br>
psyched and ready to start this awesome project where I can give back<br>
to the community.<br>
<br>
<br>
<br>
Please include the category tag at the bottom of your page:<br>
<br>
<br>
<br>
[[Category:2014 GSoC applications]]<br>
<br>
Greetings,<br>
Google Open Source Programs<br>
<br>
---<br>
<br>
You are receiving this message because you are participating in Google<br>
Summer of Code 2014.<br>
To stop receiving these messages, go to:<br>
<a href="http://www.google-melange.com/gsoc/profile/notifications/google/gsoc2014" target="_blank">http://www.google-melange.com/gsoc/profile/notifications/google/gsoc2014</a>.<br>
<span><font color="#888888"><br>
<br>
--<br>
Walter Bender<br>
Sugar Labs<br>
<a href="http://www.sugarlabs.org" target="_blank">http://www.sugarlabs.org</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><span style="font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">To some of us, writing computer programs is a fascinating game. A program is a building of thought. It is costless to build, weightless, growing easily under our typing hands. If we get carried away, its size and complexity will grow out of control, confusing even the one who created it. This is the main problem of programming. It is why so much of today's software tends to crash, fail, screw up.</span><br>
<p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">When a program works, it is beautiful. The art of programming is the skill of controlling complexity. The great program is subdued, made simple in its complexity.<br>
</p><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">- Martin Harverbeke (from <a href="http://eloquentjavascript.net/index.html" style="color:rgb(17,85,204)" target="_blank">Eloquent JavaScript</a>)</p>
</div>
</div>
</div></blockquote></div></div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">To some of us, writing computer programs is a fascinating game. A program is a building of thought. It is costless to build, weightless, growing easily under our typing hands. If we get carried away, its size and complexity will grow out of control, confusing even the one who created it. This is the main problem of programming. It is why so much of today's software tends to crash, fail, screw up.</p>
<p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">When a program works, it is beautiful. The art of programming is the skill of controlling complexity. The great program is subdued, made simple in its complexity.<br>
</p><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">- Martin Harverbeke (from <a href="http://eloquentjavascript.net/index.html" style="color:rgb(17,85,204)" target="_blank">Eloquent JavaScript</a>)</p>
</div>
</div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">To some of us, writing computer programs is a fascinating game. A program is a building of thought. It is costless to build, weightless, growing easily under our typing hands. If we get carried away, its size and complexity will grow out of control, confusing even the one who created it. This is the main problem of programming. It is why so much of today's software tends to crash, fail, screw up.</p>
<p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">When a program works, it is beautiful. The art of programming is the skill of controlling complexity. The great program is subdued, made simple in its complexity.<br>
</p><p style="margin:1em 0px;font-family:tahoma,arial,sans-serif;font-size:medium;line-height:24px">- Martin Harverbeke (from <a href="http://eloquentjavascript.net/index.html" style="color:rgb(17,85,204)" target="_blank">Eloquent JavaScript</a>)</p>
</div>
</div>