RSS
 

My 2011 Reading List

18 Jan

Here’s the list of books I read in 2011, including my ratings of them on a scale from 1 to 10.  I read 25 books in 2011, substantially down from the 40 before that in 2010, the 49 in 2009, and the 50 in 2008.  I blame this on a pretty rough year, a lot of moving and upheaval, and starting up a more technical-based school degree.  It was a year of more coding than reading. :)  Obviously anything rated 10 is a must-read!

From my Google shared Docs: (text, spreadsheet)

  1. (7) Reset: Iran, Turkey, and America’s Future – Stephen Kinzer
  2. (6) Amexica: War Along the Borderline – Ed Vulliamy
  3. (7) Consilience: The Unity of Knowledge – E.O. Wilson
  4. (8) How to Run the World:  Charting a Course to the Next Renaissance – Parag Khanna
  5. (7) Forever War, The – Joe Haldeman
  6. (8) We Seven: By the Astronauts Themselves – Shepard, Glenn, et al
  7. (10) Father of Money: Buying Peace in Baghdad – Jason Whiteley
  8. (10) Open: An Autobiography – Andre Agassi
  9. (7) Martin Luther King, Jr.: A Life – Marshall Frady
  10. (8) What Technology Wants – Kevin Kelly
  11. (9) Nonzero: The Logic of Human Destiny – Robert Wright
  12. (6) Dancing in the Glory of Monsters: The Collapse of the Congo and the Great War of Africa - Jason Stearns
  13. (8) In-N-Out Burger: A Behind-the-Counter Look at the Fast-Food Chain That Breaks All the Rules – Stacy Perman
  14. (10) Kitchen Confidential: Adventures in the Culinary Underbelly – Anthony Bourdain
  15. (5) Roseannearchy: Dispatches from the Nut Farm – Roseanne Barr
  16. (8) The Next Decade: Where We’ve Been… And Where We’re Going – George Friedman
  17. (7) The Economics of Happiness: Building Genuine Wealth – Mark Anielski
  18. (9) The Flight of the Creative Class: The New Global Competition for Talent – Richard Florida
  19. (8) Sex, Drugs, and Cocoa Puffs: A Low Culture Manifesto – Chuck Klosterman
  20. (10) Tiger Trap: America’s Secret Spy War with China – David Wise
  21. (7) Fight Club: A Novel – Chuck Palahniuk
  22. (10) The Secret Sentry: The Untold History of the National Security Agency – Matthew Aid
  23. (6) Rafa: My Story – John Carlin, Rafael Nadal
  24. (6) This Side of Paradise – F. Scott Fitzgerald
  25. (10) Steve Jobs – Walter Isaacson

 

Here’s past blog posts I made on annual book reading lists.  The “what to read in international affairs” post needs updating, bad.

Also, here’s a txt file of my Kindle highlights.  And a Wordle made up of the Kindle highlights:

 

 
2 Comments

Posted in Books

 

AdjectApproval

09 Jan

Over the break, I had some free time to build a quick site called AdjectApproval, a play on the phrase “abject disapproval”.  Instead of the connotation of something very sternly and harshly offensive, AdjectApproval plays on the phrase as finding approval and verification and identity using adjectives and descriptors.

When you go to AdjectApproval, you’re prompted with a list of descriptors and then must guess what you think those words are referring to.  Do they describe a person, a brand, a company, or what?  There is a hint button, which will give you the tribe and gender of the unknown object, if available.

If a set of adjectives seems to yield correct answers often, then we can assume that they’re more useful than a set that yields incorrect answers.  But then you should be able to add more adjectives if you guess wrong, and this should improve accuracy over time.

You can also look in the left column, where you can add your own people or things.  There’s a list of random current events names and personalities that you can enter adjectives for, as well.  If you click on “full list of descriptions” at the top, that page will show you everything that’s been added to the database.

Eventually I want to track which adjectives are used to describe men, women, and brands, and pull some natural language processing on that stuff.

Basically AdjectApproval was intended to experiment with the problem we have when we can’t remember someone’s name, or when we have to describe someone to someone else.  What words do we use to describe someone as efficiently as possible, so we’re not stuck explaining who the person is for twenty minutes?  What words would immediately cause someone to say, “OH!  You mean so-and-so!”?

I was also interested in this because, just as Galapag.us attempts to quantify and qualify peoples’ identities, I think there’s a massive disconnect between how people perceive themselves and how both those close to them, and complete strangers perceive them.  The measurement of the difference between these perceptions is the margin of error, or the variability of someone’s perceived character.  This margin can be used by some people to steal and lie and cheat.  This margin can also be the cause of severe insecurity of people in social settings, as they perceive everyone to be judging them, when in fact other people may not even be thinking about them at all.  This margin fascinates me.

In the course of building the small project, I realized that the most useful descriptors are often the most socially offensive.  This seems interesting because it suggests that we will censor our descriptions of the world if we are in company where it might offend.  Describing someone as “fat” or “anorexic” or “ugly” or “hook-nosed” or “cankles” is really offensive in most company, but it might cause someone, who knows which tribe or social group this person is a member of, to guess the right person immediately!  Would we be better-served if we were just brutally honest about our perspectives?  Or is this a price too large to bear compared to the benefits of social niceties?

I also learned that adjectives are too confining; we often can describe people in multiple ways: nicknames, profession, catchphrases, their favorite possessions, their familial links, names of things they’ve created, etc.  This seems to invite more of a vocabulary of marketing and branding, since you’re basically dealing with building a brand, or using something like the literary device of metonymy. (e.g. “The White House” as metonymy for the executive branch of the federal government, or for the President)

I built AdjectApproval using PHP, MySQL, jQuery, and jQueryUI.  It’s definitely not bug-free and I’m going to have to restructure the CSS and make it far more intuitive, with better guidance and feedback messages.  The styling is pretty poor and inconsistent.

 

Election Year

08 Jan

So we still have about 10 months of the election cycle left to deal with before Obama is re-elected.  I’m not sure whether people are watching the Republican debates as a form of sport or whether it’s out of a desire to maintain the rituals of the democratic process, though I’m thinking it’s the former because there’s been almost no discussion of the Congressional races, which I consider to be far more important.  After all, Congress is polling at, what, 9% approval?  And has been overtaken by corporate personhood and super PACs and invisible lobby donors?  And which controls the purse strings and momentum for all the reforms that the U.S. desperately needs right now?

What the Republican Nominee Would and Should Look Like?

I really thought Rick Perry would do better (I picked him as the dark horse GOP nominee), although I guess he’s not officially out yet.  He shot himself in the foot more than a few times, though I still think in terms of maintaining the image of a more Jacksonian GOP, he’d be way better for Republicans than Romney.  Perhaps someone like Romney crushing Perry says something different about the GOP, not that the GOP stands for any values but that it pushes through a milquetoast mitten that is closer to the middle, but which has neither the respect of even a mildly left or mildly right voter.  Perry, a governor of Texas (which dwarfs Massachusetts), who is an actual veteran, etc.  You’d think he’d attract the Republicans who want a bit more brawn and bravado.  This was not the case though (unless there’s some miracle turn-around), so we’re left with Mittens, who I’d expect to get destroyed by Obama in a general election, especially if jobs numbers continue to improve.  Maybe Dubya put such a dent in the Jacksonian personality (even after the massively Jacksonian Tea Party Movement) that Perry never had a chance.

It’s worth noting, with all the constitutional reinterpretations underlying modern-day politics, that it’s been a real joy watching Stephen Colbert be one of the few to address these issues.  From an excellent bio of him published in the NYTimes:

“In August, during the run-up to the Ames straw poll, some Iowans were baffled to turn on their TVs and see a commercial that featured shots of ruddy-cheeked farm families, an astronaut on the moon and an ear of hot buttered corn. It urged viewers to cast write-in votes for Rick Perry by spelling his name with an “a” — “for America.” A voice-over at the end announced that the commercial had been paid for by an organization called Americans for a Better Tomorrow, Tomorrow, which is the name of Colbert’s super PAC, an entity that, like any other super PAC, is entitled to raise and spend unlimited amounts of soft money in support of candidates as long as it doesn’t “coordinate” with them, whatever that means. Of such super-PAC efforts, Colbert said, “This is 100 percent legal and at least 10 percent ethical.”

“Just as baffling as the Iowa corn ads — at least to the uninitiated — were some commercials Colbert produced taking the side of the owners during the recent N.B.A. lockout. These were also sponsored by Americans for a Better Tomorrow, Tomorrow, but they were “made possible,” according to the voice-over, by Colbert Super PAC SHH Institute. Super PAC SHH (as in “hush”) is Colbert’s 501(c)(4). He has one of those too — an organization that can accept unlimited amounts of money from corporations without disclosing their names and can then give that money to a regular PAC, which would otherwise be required to report corporate donations. “What’s the difference between that and money laundering?” Colbert said to me delightedly.”

I remember in the last election, Rolling Stone put out a piece on John McCain which I thought really destroyed his entire career reputation.  Tim Dickinson (I admit, he’s pretty lefty) wrote the piece, “Make-Believe Maverick”.  It took his superficial reputation, a Navy aviator who was a valiant POW and who gave service to his country, and hollowed it all out:

“McCain’s admittance to Annapolis was preordained by his bloodline. But martial discipline did not seem to have much of an impact on his character. By his own account, McCain was a lazy, incurious student; he squeaked by only by prevailing upon his buddies to help him cram for exams. He continued to get sauced and treat girls badly. Before meeting a girlfriend’s parents for the first time, McCain got so shitfaced that he literally crashed through the screen door when he showed up in his white midshipman’s uniform.”

and

“He was a huge screw-off,” recalls Butler. “He was always on probation. The only reason he graduated [from the Naval Academy] was because of his father and his grandfather — they couldn’t exactly get rid of him.”

“McCain’s self-described “four-year course of insubordination” ended with him graduating fifth from the bottom — 894th out of a class of 899. It was a record of mediocrity he would continue as a pilot.”

and

“Off duty on his Mediterranean tours, McCain frequented the casinos of Monte Carlo, cultivating his taste for what he calls the “addictive” game of craps. McCain’s thrill-seeking carried over into his day job. Flying over the south of Spain one day, he decided to deviate from his flight plan. Rocketing along mere feet above the ground, his plane sliced through a power line. His self-described “daredevil clowning” plunged much of the area into a blackout.”

and

“Soon after McCain hit the ground in Hanoi, the code went out the window. “I’ll give you military information if you will take me to the hospital,” he later admitted pleading with his captors. McCain now insists the offer was a bluff, designed to fool the enemy into giving him medical treatment. In fact, his wounds were attended to only after the North Vietnamese discovered that his father was a Navy admiral. What has never been disclosed is the manner in which they found out: McCain told them. According to Dramesi, one of the few POWs who remained silent under years of torture, McCain tried to justify his behavior while they were still prisoners. “I had to tell them,” he insisted to Dramesi, “or I would have died in bed.”"

It really was quite a read.  The myths that are built upon people are powerful, and while it’s not always fair to look at someone through a microscope without supporting context (we all have our flaws), I think an American public should still hope for more from someone running for the highest office in the land.

Mittens

Mittens Romney didn’t come from a military background, but his basic career check for the Party is that he was a founder of Bain Capital, a private equity firm.  You might think that there is absolutely no way that a private equity executive would get elected after an immense outpouring wave of resentment against anyone and anything finance-related, but you’d be wrong.  Mittens worked in the private sector, “employing” people, and in finance, so therefore he is the utmost man of capitalism, especially compared to an ambiguous academic like Obama.  His liberal northeastern credentials (Harvard JD/MBA, state health care in Massachusetts, being a Mormon and not a Protestant (!!)) seem not to deter him from having all but wrapped up the nomination.

Barricading Liberty

A quick aside.  I went to see Zuccotti last week and it was walled off with barricades and a line of cops.  They are preventing Occupy Wall Street from returning.  Granted, OWS had its issues, but I still think it’s sad that patriotic Americans would be so negative on OWS.  Particularly, when people complain that protesters should not “occupy” someone else’s property, that is exactly the problem.

If you believe in living in a free nation, the idea that you would need a permit from the government in order to protest against it seems insane.  If the government can stop you from legally protesting in a space, how is having a permit to protest from 3PM to 7PM (while making sure you have money to pay for cops, toilets, etc.) or whatever showing any real sense of freedom?  Okay, so maybe the local police and government want to preserve the security of a shopping area for commerce, or they want to organize a proper police shift to maintain security where protesters congregate, and so they can handle internal problems (such as some of the crime that happened within the camps).  Fine, fill out paperwork to come up with a safety and security plan.  But seeking government’s approval?  It really does seem like daddy making you think he’s letting you do something really cool but really he knows you can’t do anything crazy while he watches.

If we’re going to play this charade where you’re allowed to protest legally (which is a contradiction), then the public space needs to be reaffirmed in some way.  Land needs to be set aside for individuals to inhabit for a protest or cause, without restraints.  This brings up a ton of legal/municipal issues, obviously, but I think most of them would have to do with police being able to retain order and safety (i.e. the land doesn’t become its own autonomous area).  But seeing police block off Zuccotti was something that really saddened me, not as an OWS supporter, but as someone who treasures liberty and freedom.  It really depressed me at some deeper level, though I think superficially I expected it and carried on with my sightseeing.

Anyway.

You’re Hired (for President)

So it would seem that the only real chink in Mittens’ myth armor (short of running against the most influential politician in the world right now, President Obama), would be scrutiny towards Bain Capital.  And that seems to be where the journalists and Romney’s opponents are looking now.  Reuters of all organizations put out a piece by Andy Sullivan and Greg Roumeliotis on Mittens a couple days ago, “Special Report: Romney’s steel skeleton in the Bain closet”, which reminded me of the McCain hit piece:

“Veteran crane operator Ed Mossman says he was ordered to pick up a load of steel that was 50 percent above the recommended weight limit – a prospect that could have toppled the crane and sent Mossman plunging to his death. When he refused, he says, he was fired after putting in 29 years at the mill.

“The first 15 years, I had the best job in the United States, as far as I was concerned,” Mossman said. “The last five years down there got to be pure hell.”

“Meanwhile, a wave of cheap imports from Asia drove steel prices down sharply, while costs for natural gas and electricity rose. The Asian financial crisis lowered demand for mined metals, which hit the company’s grinding-ball business.

“The company, along with other steelmakers, successfully petitioned the U.S. International Trade Commission for tariff rate quotas on imported wire rods and also entered the federal loan guarantee program for troubled steel companies — two remedies at odds with a free-market stance. Romney now says it was a mistake for the government to try to protect the steel industry.”

There’s not much there that would stick to Romney, since it really doesn’t get into his personality and actions, but what his firm did by proxy.  The McCain piece was far more enlightening — McCain was one of those guys in the military who had a get out of jail free card because of his lineage, and he was one of the assholes who acted unprofessional, screwed up all the time, and never got in trouble for it.  I think those who’ve been in the military know the type.

So here’s another hit job on Mittens: this “public interest” piece about Bain Capital and Mittens being greedy and exploiting workers as part of a “raider” firm.  The video was released by a nice group called “Winning Our Future”.

YouTube Preview Image

Oh good, the public is now catching on to the evils of private equity.  But, oh wait, who is Winning the Future?  It says it supports no particular candidate.  But look at the suggested videos for that link.  Winning Our Future sure seems to have a lot of pro-Newt Gingrich videos!  Go to the Winning Our Future web site and it at least is more open about its support for Newt.  But it also says, “Winning our Future is an independent expenditure-only committee registered with the Federal Election Commission. Winning our Future may accept unlimited contributions from individuals and corporations” and “Not authorized by any candidate or candidate’s committee.”  See how confusing this gets for regular voters?  No one knows who to trust anymore, because every message now has a hidden agenda. (hey journos, this means you guys need to man up and do your jobs)

I did go to Mittens’ Wikipedia page, and I noticed something peculiar about it, even as I admit I’m pretty progressive so I might be a bit biased.  Look at how white-washed the page reads:

“Romney left Bain Capital in February 1999 to serve as the President and CEO of the 2002 Salt Lake City Olympic Games Organizing Committee. By that time, Bain Capital was on its way to being one of the top private equity firms in the nation, having increased its number of partners from 5 to 18, having 115 employees overall, and having $4 billion under its management. It had made some 150 deals where it acquired and then sold a company. Bain Capital’s approach of applying consulting expertise to the companies it invested in became widely copied within the private equity industry. University of Chicago Booth School of Business economist Steven Kaplan would later say, “[Romney] came up with a model that was very successful and very innovative and that now everybody uses.”

“His experience at Bain & Company and Bain Capital gave Romney a business-oriented world view – centering around a hate of waste and inefficiency, a love for data and charts and analysis and presentation, and a belief in keeping an open mind and seeking opposing points of view – that he would take with him to the public sector.”

He sounds like a saint!

Compare with Obama’s Wikipedia page, which is of the more dryly-written variety you’d expect from Wikipedia.  One thing about Obama.  I’ve certainly been disappointed in some of the things he’s done (not defend the internet in bold terms, increased corporate-sponsored government monitoring of citizens, approved detention without full rights, etc.), but he’s still the foremost politician in the world — there is no equal in terms of influence right now.  I don’t blame him for some of the things the U.S. has failed at since 2008, including the massive economic restructuring that will affect us for probably the next 20 years (as we appear unprepared for tomorrow’s jobs), and for large reforms that Congress has blocked every step of the way.  He’s certainly not perfect but other stuff appeals to me: killings of terrorists, which I joined the Army to help with back in 2002 after 9/11, and his (laggard) drawdowns in Iraq and Afghanistan.  I think he’s greatly improved the U.S. standing and has shored up some of our weaker points, but we still have large systemic issues that Congress should definitely take more responsibility in fixing.

My point with all of that above, I guess, is that the presidential election is mainly about whose myth is more successfully created and defended.  It worked for Reagan and Obama.  Kerry after being Swift-Boated (which was almost profanely unfair for a veteran to hear) never recovered.

Congress

And it’s sad — I guess the presidential election is just more interesting because it comes down to a few contenders, but really the main concern this election cycle should be Congress.

While most superficially-concerned voters will just say, “Vote them all out!”, this disregards an understanding that the same types of people will just get voted back in.  It is a systemic issue, where those who are given the most money will then get voted in, become incumbent, and will push through laws they did not write from lobbying groups who give them the most money.  They are, as Bill Moyers put it at Nieman Watchdog, “little more than money launderers in the trafficking of power and policy”:

“The United States is looking more and more like the capitalist oligarchies of Brazil, Mexico, and Russia where most of the wealth is concentrated at the top while the bottom grows larger and larger with everyone in between just barely getting by.”

“The revolt of the plutocrats has now been ratified by the Supreme Court in its notorious Citizens United decision last year. Rarely have so few imposed such damage on so many. When five pro-corporate conservative justices gave “artificial entities” the same rights of “free speech” as living, breathing human beings, they told our corporate sovereigns “the sky’s the limit” when it comes to their pouring money into political campaigns. The Roberts Court embodies the legacy of pro-corporate bias in justices determined to prevent democracy from acting as a brake on excessive greed and power in the private sector. Wealth acquired under capitalism is in and of itself no enemy of democracy, but wealth armed with political power – power to shake off opportunities for others to rise – is a proven danger. Thomas Jefferson had hoped that “we shall crush in its birth the aristocracy of our moneyed corporations which dare already to challenge our government to a trial of strength and [to] bid defiance to the laws of our country.” James Madison feared that the “spirit of speculation” would lead to “a government operating by corrupt influence, substituting the motive of private interest in place of public duty.”

Do we know who our senators and representatives are, or who their opponents will be?  I guess I should ask, does it really matter anymore?  Even when I lived in DC, and was wired into happy hours where friends would talk about their bosses or the latest scuttlebutt on the House floor, the actual “leaders” were more like horses or riding bulls or NASCAR vehicles to me. Look at the colors on that Mello Yello stock car!  Look at the senator from Utah’s vibrant coat and mane!  Look at MPAA master that bucking New York representative for the whole 9 seconds!  Sponsored by Levitra, the New York Stock Exchange, and Charmin Bath Towel.  Speaking of Charmin, “Enjoy your go” this November, America.

YouTube Preview Image

 

 
No Comments

Posted in Politics

 

My ITP Spring 2012 Course Load

08 Jan

I’m taking 18 credits for my spring 2012 semester at NYU-ITP.  That’s 4 4-credit courses and 1 2-credit course (which lasts 7 weeks only).  I guess this is somewhat subject to change, though I doubt any of the other courses (particularly Clay Shirky’s) are likely to become un-waitlisted. :(  But I will prioritize those next year!

From ITP’s course guide:

Constructing Generative Systems (H79.2534) - Todd Holoubek

[note: Prof. Holoubek is a badass.  He founded The State, that comedy show that a lot of people my age remember from MTV at one point, and now a lot of the people from that show are on Reno 911.  He's a key NYC person for helping improve great art installations, so it'll be an honor.  Combined with my internship at The Colbert Report, I've already been influenced a ton by some of the city's greatest comedy personalities.]

“Generative Art Generative Art creates a process of evolution, where most art imitates life, generative art has a life of it’s own Artists, designers, architects have use generative methods for creating many times without knowing. How is it that we can create something that resonates with the user on a level that cannot be quanti?ed. It is by providing the work with the means to have a life of it own. These are the generative methods. Techniques that are subtle, yet have the greatest effect: simple rules that dictate the shape or function of a work adding to it an inherent complexity that is both beautiful and intelligent. In this class we will cover the generative methods and use them as tools for creating.”

Dynamic Web Development (H79.2296) - John Schimmel

“If you ever had a need to collect information from users on the web or use external data in your project, understanding web development will make your life much easier. The class will explore interaction between server-side and client-side of web development using JavaScript. On the client-side, we will cover traditional JavaScript and the jQuery library to manipulate browser content, create and trigger page events and make AJAX data requests. Developing with NodeJS on the server-side, we will explore receiving input from a user then querying and saving that data to a database, and finally, returning the appropriate content to the client, i.e. HTML or JSON. The websites we use today are rarely on a single database, we will focus on consuming data APIs from websites like Foursquare (for location information), Facebook (for social graph) and Twilio (for SMS and telephony). Going further, we will create custom data APIs for use at ITP and open to the public.”

Mobile Web (H79.2938) - Staff

“The miracle of mobile computing has arrived. Exceedingly powerful computers, seamlessly networked and with a variety of in-built sensors… all right in your pocket. This course will be a fast-paced, project-focused course to learn mobile programming in 7 weeks. We’ll use the cross-platform compatible, html/javascript-based PhoneGap libraries to program Android phones. While the course will exclusively use Android as an example platform, the skills acquired will be broadly transferable to other platforms, including iOS. Topics will include: Using HTML / CSS / Javascript to write apps Accessing device events and notifications Monitoring built-in sensors (accelerometer, GPS, compass) Local file storage Media capture and playback Extending PhoneGap with plugins (SMS, Bluetooth, etc.) Students will complete weekly exercises and a final project of their devising. Bring your computer and your Android phone if you have one. A limited supply of Android handsets will be available for students to work with.”

Redial: Interactive Telephony (H79.2574) - Christopher Kairalla

“New technologies, such as Voice over IP, and open source telephony applications, such as Asterisk, have opened the door for the development of interactive applications that use telephony for it’s traditional purpose — voice communications. This course explores the use of the telephone in interactive art, performance, social networking, and multimedia applications. Asterisk and low cost VoIP service are used to develop applications that can work over both telephone networks and the internet. Topics include: history of telephony, plain old telephone service (POTS), voice over IP (VoIP), interactive voice response systems (IVR), audio user interfaces, voice messaging systems (voicemail), text to speech and speech recognition, phreaking (telephone hacking), VoiceXML, conferencing and more. This course involves programming with PHP, Perl or Java.”

The Nature of Code (H79.2480) - Daniel Shiffman

[note: Prof. Shiffman used Kickstarter to fund his book "The Nature of Code", raising $31,575 after a requested amount of just $5k]

“Can we capture the unpredictable evolutionary and emergent properties of nature in software? Can understanding the mathematical principles behind our physical world world help us to create digital worlds? This class focuses on the programming strategies and techniques behind computer simulations of natural systems. We explore topics ranging from basic mathematics and physics concepts to more advanced simulations of complex systems. Subjects covered include forces, trigonometry, fractals, cellular automata, self-organization, and genetic algorithms. Examples are demonstrated using the Processing (http://www.processing.org) environment with a focus on object oriented programming.”
 
No Comments

Posted in ITP

 

Random School Break Thoughts

28 Dec

Real Relationships

Keeping up with friends for me has become a matter of remembering which method of communication they prefer.  Having moved from place to place and from tribe to tribe, I know quite a lot of very differently raised and educated and geolocated people.  All of them have their own quirks when it comes to social networking.

I, being what you might call a digital native, am pretty comfortable with just about any method of communication, though strangely I hate online one-on-one chat the most (it requires far too much focus).  But some friends only respond to phone calls, some are happy with email, others only seem to check Facebook (presumably because their email accounts are so packed with junk), some I only know through IRC or Twitter or meeting at conferences.  Over time people I sort of remember from high school have joined Facebook — my generation was just a little too young for Generation X and just a little too old for Generation Y, so some prefer to be more X and write off social networking, while some of the more online-savvy made the transition much sooner.  My Georgetown international affairs friends are very social networky but in a tech-deficient kind of way.  They do happy hours a LOT (a VERY DC thing), they are very comfortable writing emails (their jobs almost always include writing a lot), and they’re of course very up on current events, but ask them to do much more than open a web page and they’re clueless and obstinate (it comes with their territory, IR people overvalue their intelligence).  My NYU-ITP friends are the most tech-savvy of all, as a lot of them are partially coders and grew up like me: finding themselves online.

The most annoying thing to me ever is people who say they don’t use social networks because they prefer “real” relationships, whatever that means.  I think what it’s code for is that they don’t have the bandwidth to spend online cultivating their social networks, so they prefer to focus their attention in meeting up with people who live near them.  Which is fine.  But they should just say that.

What’s funny is that my Army and military friends are the most straight-up about that.  My Army buddies will say about social networking, “That’s all just a bunch of horse shit.”  And I’m happy with that.  They make no bones about it.  They are the least-wired people I know, which is sort of scary in some ways because in the 21st century, the soldier will rely more and more on communications breakthroughs to not only transmit squad movements but also to control the robotic drone armies of the future.  In other ways it’s good though, because all those soldier hicks from the backwoods will still know hunting, tracking, being-outside skills that the city slickers have long since lost.  They are also more warm, more open, and more inviting to outsiders than other people I’ve met.

After 5 years in the Army, I definitely came to admire and enjoy being around the hicks who want nothing more in life than retire to the back 40 to a big house way out in the countryside and live out their days hunting deer and working on the house and shooting the shit.  Those guys had some sort of weird magic that made them inept in urban environments but keen and sharp when out in the desert or in the woods dealing with the harshness of nature.  Anyway, you can always count on servicemembers to give it to you straight.  It’s such a rare thing to find outside of the military.

So as for “real” relationships, active avoiders are the hardest for me to maintain relationships with.  They have no footprint online and barely know how to make their phones work, and they refuse to try.  News about related friends is almost always news to them, and it has deeply stifled my ability to keep up with them.  Is this a real relationship?  If anything, I feel like I put in more work for “real” relationships, tracking people down and trying to meet up with them when I can, despite few coming calling for me when they might be in my town or whatever.  Few people put in real effort.

From a broader perspective, is there terminology for the skills that humans are evolving regarding social networks?  What do you call it when you have to juggle how to get in touch with your friends, over which networks, via which mediums?  Organizing a happy hour or party involves sending invitations through different methods: some snail mail, some via Facebook, opening a Facebook event, calling the rest.  It’s like the lighting of bonfires from mountaintop to mountaintop in Lord of the Rings.  It’s like riding through the streets of New England to warn of the Redcoats.  It requires people who are willing to pull together disparate groups and who know all those people well enough to remember how those respondents receive word best.  Is this politicking?  Is it curating?  What is it?

Final note.  I found David Sasaki (@oso)’s post on Time’s Protester as the Man of the Year, protest infatuation, and the fourth wave of democratization (hello Huntington!) to be superb, and somewhat relevant to my above expounding.

What Annoys Me About Going to Basketball Games

I went to the Denver Nuggets vs. Dallas Mavericks game on Boxing Day, courtesy of my dad’s astute Christmas gift.  I also had season tickets for the Washington Wizards last season, which I deeply enjoyed. I’ve definitely deepened my appreciation and love for basketball in the last couple of years.  I owe a lot of that to my main man and longtime Army buddy MonkeyPope.  You should see the great email discussions we’ve had about unlocking formulas for winning basketball using Moneyball-ish statistics.

Anyway.  It always pisses me off how all the promotional shit they do during basketball games only reaches the front rows.  The free t-shirt tosses, the Chipotle burritos, the camera close-ups?  Always the first 20 rows or so.  The upper decks, where us hoi polloi watch the game from, are ignored.  We don’t put down the serious money to sit closer, true, but if I were a team owner, I would think it’d be a small price to pay to endear your team to those upper-deck folks who just want a little attention, a little special feeling for that one basketball game they get to enjoy every few years.

This is all made worse by the fact that sporting events, particularly the popular and cool ones, support a top-heavy system where the richest get the best seats.  And the richest are weakly correlated (I would imagine) with the most passionate of fans.  So the people closest to the court, the people whom everyone cues off of for excitement, are the people least invested in being crazy fans, being caring fans, hell, even being the attending fans.  Like at the US Open, where the front rows are often empty up until late in the second week of the tournament, because the rich people who bought the tickets can’t be troubled to sit in the sun all day.  Good Heavens, where are my umbrella and my palm frond-waving servant?

What you get is boring sporting events until the playoffs.  And this is solely because the rich folks who wear suits to the game don’t give a shit.  Seriously, MonkeyPope and I bought tickets for one game where we sat right behind the scorer’s table, and we loved every single second of it.  All the players’ expressions, all the on-court chatter, everything.  We could see it.  But we sat next to a couple douche bros in suits and an old couple.  All the other seats were empty.  And we had to show our tickets to the attendants all the time because they didn’t believe we should be there.  There were no mad fans hooting and hollering and cheering.

There’s a reason small venues for concerts work, and why college basketball is more rowdy.  The people who care the most are part of the center of attention, near the stage.  In small venues’ cases, there are no seats, so whomever pushes their way up to the front wins.  In college basketball, the students get the premium seats on each end.

Compare with seated concerts where you get most people uncomfortably lodged into small aircraft-like seats with just a few drunk cougars swaying back and forth.

Also, this has happened to me quite a bit now, I keep running into friends who have always benefited from being well-connected, and when we realize we went to the same basketball game, I tell them I sat up near the top, while inexplicably their friend had front-row seats.  And none of them give a shit about basketball!  It’s so infuriating on different levels.  Not that I’m mad at my friends — I’m happy for them — but from a basketball gods/eternal court of justice perspective, it’s unfair.  And I know the basketball gods exist because they helped the Mavericks defeat the Heat, an epic battle between good and evil.

I will also add that I hate how basketball games always try to pimp their grub, gear, and beer.  As if when you were sitting in your seat, you forgot that maybe you wanted a beer.  Right, how many guys forget they want a beer?  Have they done studies on how a scoreboard screen ad for Bud increases sales?  It’s even worse for hoodies and cheap screenprinted t-shirts.

Basketball games (and most sporting events) really do not exploit their cheerleaders enough.  Seriously, sometimes the best part of a basketball game is the two times the cheerleading squads come out and do their ridiculous dances.  I know it’s silly but everyone is transfixed on the ladies.  MonkeyPope and I seriously contemplated buying tickets by the corners so we could sit in front of the cheerleaders.

This probably goes hand-in-hand with the dumbass family-oriented goals of the owners.  They try to tone down the violence, sex, and testosterone of sports by inviting Nickelback to play halftime, by promoting Monday Night Football and the NBA Playoffs with Justin Bieber and other sexless safe acts for kids.  David Stern’s move to ban thug gear, which was massively unpopular at first but which has led to innovative fashion trends of NBA players dressing up in pretty awesome suits and nerd-gear, was an offshoot of trying to make sporting events more family-friendly.

But going to a basketball game is like seeing big cats at a zoo.  I hate cheap fouls and violent players, but I want hard play and emotive players.  They’ve tried to temper all of that.  And the setting is so neutered that it’s not the raw power that basketball normally is, anymore, until maybe the playoffs when there’s just too much energy in the crowd and in the players to control.  Compare public-event basketball to streetball — in streetball, there’s no people helicoptering around fining you for not playing nice.  It’s a more raw game.

New Year’s Resolutions

I’ve resolved to spend the entire year thinking of gifts for people.  I’m definitely not happy with how I show appreciation to people I care about by the end of the year.  Gift-giving as an art is something I’ve observed in my brother, who picks amazing gifts.  It usually doesn’t require spending a lot of money, but it requires good timing (seeing something unique at the right time and springing upon it), and it requires understanding the recipient and realizing what his/her interests are and what your relationship to him/her is.  I’ve always sucked at it and it’s become almost paralyzing for me to come up with gifts.

The argument of course can be made that gifts do not matter because they are material things.  This is true but my other limitation is money.  To be honest, if I had the money, I would throw events for my family and friends often, in remote places, to get them out of the lives they’re stuck in temporarily, to share common time with them in a different environment for relaxation and bonding.  Maybe this says more about me than what my friends and family want.  Because I think the gifts that I’ve come to really appreciate as I get older are, weirdly, bottles of hard liquor (given by my buddy Mat after I helped him move some stuff) and access to events (like my dad’s tickets, or my classmate and friend Ann who had me over for Thanksgiving).

I’ve taken to trying to write full breakdowns of my relationships to certain people in an effort to remember those intricacies and delicacies of the nature of my connection to them.  It’s a sign of my growing admiration for biographers, who often write more fascinating stories — those of the people behind great products, events, and breakthroughs — than the things they made themselves.  But it’s also a sign to me that one of my defining traits has been observation and love of people (hence my love for F. Scott Fitzgerald’s insights on human personalities and behaviors and quirks).

So to be a better gift-giver is not to buy more expensive shit for people, but to appreciate my relationship with them more.

Other resolutions: learn morse (I’m about 20 letters in, so that’s getting there already), learn surfing, visit the Galapagos (I have the free miles), and get better at basketball (going to need a good coach for that).

 

Comm Lab Web: probablyGonna

19 Dec

For my comm lab web class, we finished the course working exclusively with Ruby and Sinatra.  The learning curve was particularly high, and I spent a lot of time wrestling with getting my apps working on Heroku and on my MacBook Air, since there were a lot of subtle changes that had to be made to get the apps working on each.  But I got my Ruby, Sinatra, Postgres, and permissions straightened out on my laptop, and now I can do Shotgun development, which is fantastic because it’s pretty much real-time building of code.  Heroku takes some interpretation of cryptic error messages and symptoms to diagnose how to get things going, but it’s so nice to operate from the console — they have some hotshit engineers there.

So here was my pitch for my final project, probablyGonna.

Like, you might be, “I’m probably gonna go dancing this Saturday in Adams Morgan, so if anyone’s in the area…”  Or, “I’m probably gonna go hiking some weekend, is anyone possibly down?”  The person who opens the ProbablyGonna item is the pioneer of fun.  But the pioneer always needs the validators, the next few who make the event a “go”.  Then everyone else piles on.  But you need the initial sparks, and you need to nurture the kindling until it catches fire.

The thing is, with events, most people don’t plan well in advance.  Facebook has events and our email gets spammed with e-vites, but really, don’t you just end up at 4PM on Friday or Saturday wondering what the hell you really want to do?

Most plans happen at the last minute.  Some even happen on the fly, when you’re in the area.  Who has enough active friends on Foursquare to use it to locate a place nearby to go?  Who checks in regularly on Foursquare?

It’d be nice if someone puts out an open invite for friends (or even strangers) to converge on one spot — at their own leisure.  This also gives context to a location’s events during a specific time.  Look, there are these parties going on at this venue; once you get there of course, the parties dissolve into one mass of people enjoying the location. (it would be nice to have a site where you could do wrap-ups of how cool a party was the night before and what cool stories happened that you just HAVE to tell)

I want to do this because I hate when people blow their Friday and Saturday nights not knowing where the fun is.  I want to do this because I think it’d be cool to have a job where you just ensure that people attend one kickass party that they’ll talk about forever.

So with ProbablyGonna, you just need to enter in a rough when/where/activity entry, and see if others will join.

I’m also thinking there’ll be reputations, developed over time, with how reliable someone is for actually making an event happen after declaring it on ProbablyGonna.  That is, if someone posts 5 invites but bails on all 5, he’ll get a 0% reputation, whereas someone who’s solid will signal to others that it’s safe to make the trek to that venue because the host is definitely going to have made it happen.

The problem with my app was that my physical computing project ended up dominating my life, and I also ran into some last-minute deployment issues.  For instance, I found a great gem, Chronic, that does interpretation of human time (this Friday, next weekend, etc.) into database-readable time.  But on Heroku, they use the latest version of Ruby, 1.9.2, and Chronic was only compatible with Ruby 1.8.7, which was what I used for local development.  So I learned how to deploy to an older version of Ruby on Heroku.  I also had some problems setting up a one-to-many or many-to-many relationship in my database.  I wasted a lot of time on that.  I also couldn’t figure out how to build a proper authentication system for users when they log in — it’s one of the weakest points of my knowledge for web site development, making sure users are who they say they are and making sure their passwords are safe.

The result was that I gave what I thought was a horrible demo of the app in class.  A lot of features didn’t work, and there was far less to show than I had hoped in terms of what the idea could do.  I built it out so that you could easily create an event, for people to probably attend, and then you could easily browse different time scales or events for what you wanted.  But that was about it.  Sure, that’s all the idea is, but I could tell the demo did not resonate as well as it did when I explained the concept behind it.  So I really dropped the ball in executing the simplicity of the idea.

That really troubled me, particularly since I spent the rest of the night all-nighting an attempt to save my failed phys-comp project.  I felt like I was having major problems condensing a simple idea into simple execution, something that would really grab a hold of people instantly.  I’m hoping I just didn’t get enough time to spend on it, and that some mending later will make it more appealing, and my familiarity with it will help me reduce extraneous elements.

Anyway, you can demo the probablyGonna site if you like, over at Heroku.

Here are some screenshots.  I’m taking a break from coding over the Christmas holiday, and am hoping I can implement the site better in my spare time next semester.  I’m also probably gonna work with classmates Phil and Federico on something very similar, matching people to learn their respective skills over coffee, on the NYU campus.

I got some good feedback during the presentation, which indicated that people really liked the idea.  People did not like the name probablyGonna, because they felt it was too uncertain.  Would the originator of an event actually show up if he organized it?  What if you could set a threshold for whether an event will happen, like if it gets over 5 people?  I responded that I felt almost any originator will actually attend his own event, but I guess I could see that if people just started throwing out events onto the site, maybe it’d just get spammy but not deliver.  I think my original idea for this, however, was that people would earn reputations.  Did the person bail on events, particularly his own?  Did people show up when they said they would?  Did someone’s events really pack a punch and get good after-action reviews?  Reputation here, as will be for most sites in the future, will be key towards making the site efficient and usable.  I guess what I wanted to be wary of was making the site too ordered and structured — that product already exists, and it’s called Google Calendar.  But when we’re not in offices and not planning well in advance, how do we actually decide what we’re going to do?  We wait until almost the day of, or the morning of, to weed out the worse options and then settle on the best one.  We also might just want to grab lunch with whomever’s around, and probablyGonna can do that, too.

 
 

Comm Lab Web Poll Homework: Favorite Sexual Position

13 Dec

For my comm lab web homework, I had to build a simple poll using Sinatra and Ruby.  I decided to do something a little more interesting, a variant of my favorite Halloween candy app that I posted up on github.

This poll asks people to choose their favorite between two sexual positions.  The choices: missionary, doggystyle, giving oral, receiving oral, giving anal, receiving anal, 69, scissoring, over the table, on the table, cowgirl, reverse cowgirl, dry humping, making out, public sex, mutual masturbation, mammary sex, standing sex, and spooning sex.  The great thing about this type of poll is that it still gives you plenty of options, but since it compares two of the options, it encourages voting multiple times instead of just once.  From there you can approximate peoples’ favorites by seeing how the choices were weighed against each other.  (I wish presidential elections were this way too)

I had a lot of problems with this poll’s development but that was mainly because I’d never coded in Ruby or set up views for an app before.  I also had problems configuring my MacBook Air for shotgun and Sinatra.  But I got those installed correctly after doing a git clone of sinatra and then getting the appropriate Ruby gems.  I also had to adjust my .profile path.  But then it worked after all the clean installations and it was beautiful making changes to my code without restarting Sinatra!  What a lovely development environment!

I tried to deploy my app to heroku because the ITP server runs like garbage (edit: turns out there were some runaway scripts on the server), but I couldn’t get it to run and my heroku logs weren’t very helpful.  I’m sure it was a newbie mistake related to using the right config.ru and Gemfile files, along with using the right database adapter configuration line for DataMapper.  Eventually I got it all working — I switched over to Postgres after also figuring out how to install Postgres on my MacBook Air.  This was a lot of front-loading on my Mac but it’s going to be sweet to use for development from here on out.  The comm lab web class has been great for this reason alone, getting my Mac in order, but I’ve also completely crash-coursed in Ruby and Sinatra and I love it.

I also learned you can’t do incrementers like “i++” in Ruby.  But += will work fine.  I’m not a fan of strict casting and whatnot (being a lazy PHP loser).

At any rate, it looks like the old traditional positions are the running favorites (Not Safe For Work, NSFW).  Doggystyle and cowgirl came in at the top.  Results seemed fairly consistent across genders.  I got 925+ votes on this thing in just a week or two.  I didn’t spot any abnormal results really, although it looks like almost all men preferred receiving oral to other things, whereas for women it was split.  Women were more receptive to doggystyle and reverse cowgirl than I might have thought.

Again, here’s the poll.  There’s also a great chart of the data, broken down by men, women, and unknown, further split into which of their choices won or lost.  I made this using Ruby pulling from YAML into HighCharts, which is a great library online.

 
 

Genetic Crossings (ICM Final Project Presentation)

08 Dec

[see more documentation: proposal, part 2, part 1]

Focus

For Heather Dewey-Hagborg’s Intro to Computational Media class at NYU’s Interactive Telecommunications Program, I decided my final project would involve creating a simulation incorporating the traits of people, nations, and religions, creating offspring who are summations of their genetics and environments.

Processing is a great language for easily visualizing data.  I early on realized I wanted to make a visualization as a study for Galapag.us, my eventual thesis for developing a reputation and identity system that centralizes all the data you’ve ever created about yourself and what others say about you so that you can develop algorithms and formulas for evaluating and comparing your results with others.

Inspirations

Visually, I was interested in karyograms, Punnett squares, chromosome stainings, and representations of solar systems.

 

Application

The sketch initializes a world and fills it with 5 people to start off with, Albert Einstein and Gisele Bundchen, and 3 random individuals.  Time begins, with each pass of the draw() loop aggregated and calculated into a rough approximation of years in time.

People have innate traits and characteristics saved into variables: strength, intelligence, wisdom, charisma, stamina, wit, humor, education, creativity, responsibility, discipline, honesty, religiosity, entrepreneurialism, appearance, money, gracefulness, stress, health, luck, talent at math, talent at art, talent at sports, whether employed, happiness, nationality, religion.  They are on a scale from 1-10, with 1 implying the most negative state and 10 being the best. (e.g. poor health vs. superb health, ugly vs. gorgeous, a stressed-out person vs. a carefree one, etc.)

They are born into nationalities/regions: USA, UK, Africa, China, South America, with the traits security, innovation, job opportunity, immigration policy, life expectancy, education, sanitation, standard of living, pollution, biodiversity, crime, political freedom, and nutrition.

They have religions/ways of life: Christianity, Catholicism, Judaism, Islam, Taoism, Buddhism, Confucianism, with the traits commercial, morality, hierarchy, and portability.

You can already see the terminology isn’t precise (nations vs. regions), and I’m missing tons of variables.  Had I more time to code in more negative effects, I would add personality traits like deception, violence, libido, etc.

God is in the sketch.  All people are connected with him.  He also has baller stats:

// who art in Heaven
  god = new Person(-1, 0, 0, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
    0, 0, 10, 0, 10, 10, 10, 10, 10, 10, 10, 10, "God", "null", -2, -2, -1, 0, -1, 0, 1, 1100, 600);

Every pass through draw(), it’s determined whether 1) there’s a potential match (via the flirt() function), matching a male and a female (sorry, I didn’t have time to code in adoption et al), 2) there’s chemistry, and 3) if so, then sex().  Chemistry() requires a degree of likeness in appearance, money, religiosity, and some other superficial requirements. Then again, there’s also the matingDance.beer() function, which I’m particularly proud of:

else if (matingDance.beer(flirter1, flirter2)) {}

Social lubrication — some of the basic requirements for chemistry are, um, degraded, leading to easier baby-making.  This is also good for preventing my sketch from not having enough chemistry to produce offspring between the people.

Women between ages 18 and 50-ish are fertile (I had to adjust the numbers so that the sketch would work throughout its duration instead of the whole civilization losing an ability to breed by becoming too old) and need at least 5 “years” or something between babies before they can have another child.

boolean checkFertile(int _flirter1, int _flirter2) {
    int female = 0;
    boolean fertile = false;
    if (person[_flirter1].gender == "female" && person[_flirter1].alive == true) {
      female = 1;
      if ((currentYear - person[_flirter1].lastBaby > gestationRate) &&
       (person[_flirter1].age >= 18) && (person[_flirter1].age = 18)) {
        fertile = true;
      }
    }
    else if (person[_flirter2].gender == "female" && person[_flirter1].alive == true) {
      female = 2;
      if ((currentYear - person[_flirter2].lastBaby > gestationRate) &&
       (person[_flirter2].age >= 18) && (person[_flirter2].age = 18)) {
        fertile = true;
      }
    }
    return fertile;
  }

Children are created through matingDance.punnettSquare() of their parents.  The parents’ traits are averaged together and then some mutation is introduced for variability in the children.  I think I coded it so some traits change more than others, and some don’t change at all.

People can reach somewhere around 65-ish before death becomes a regular reality.  Once people die, they are removed from the population size, which is capped at 40 — allowing another child to be born somewhere if there’s less than 40 people alive.  The maximum number for the duration of the sketch is 90 people, so if 40 people are dead, up to 50 others can be alive.  The sketch starts to slow down once there’s more and more computation via people objects.

The orange-yellow buttons toggle between the main universe-like view and another view, which contains system stats and karyogram-like views of each person’s traits.  The traits are displayed as circles, with their sizes representing the size of the traits.

I made some formulas (or evolutions, as I call them) for actual vs. potential well-being.  This computes someone’s traits as he is born with, and after they are adjusted for quality of the nation and his religion.  This is then divided by the maximum well-being one could have in the same religion and nation.  Thus you get a ratio of actual vs. potential.  The goal is to bring these numbers as close together as possible, to see if a society is running at full efficiency.

In my fairly generous, unscientific, unsystematic world, people are STILL running far below efficiency.  The best of human achievement is squandered daily, not just by peoples’ own personalities and time constraints, but by poor maximization policy and by inflexible religious traditions.

I also coded in a happiness evolution:

int happiness(int i) {
    int happiness = person[i].health + person[i].money + person[i].stress + person[i].creativity + person[i].religiosity +
    round(nation[person[i].nationality].standardOfLiving / 10) + round(nation[person[i].nationality].pollution / 10) +
    round(nation[person[i].nationality].security / 10) + round(nation[person[i].nationality].crime / 10) + person[i].employed * 10;
    return happiness;
}

This computes someone’s happiness based on personal health, stress levels, creativity, religiosity, and his nation’s standard of living, pollution levels, national security, crime levels, etc.  It also relies on whether someone is employed or not.  Obviously this evolution needs a ton of work and far more variables.

My "EUDAIMONIA" Tattoo

The happiness metric and the actual/potential well-being ratio are key metrics that I want to spend more time nailing down.  I think these metrics are chasing Aristotle’s concept of eudaimonia, which I also have tattooed on my arm.  There’s more to life than money.  There’s all these other variables.  It could be said we are happiest (in a bigger sense) when we feel we are running at our maximum potential and can contribute to the world.  We need to be able to measure this and push it down to the individual level, so people can make better choices towards bettering themselves, and up to government level, so policymakers can make better policy to maximize a nation’s human and social capital.

Download/View

The code is too long to post here, but here’s a direct .txt link to the source .pde (w/ combined classes).  You can go see the sketch running at OpenProcessing.org!  Only thing about that is that it will run in a reduced-size window.  You can try to view the Mac .app version or the Windows .exe version, too.

The code is also now at Github.

Difficulties and Lessons Learned

I used a Hashtable at first, to try it out, but I quickly ran into limitations I didn’t know how to get around.  I would use pretty length functions to recast strings as integers and vice versa, and so on.  Eventually I got so pissed that I rewrote a lot of the code and Person classes so that everything was saved as an integer and then I could look up its “name” in a table via a function.  So the nations are coded as 0-5 or whatever, with 1 equaling the UK, etc.  Much easier to manipulate.  It also meant I could use the ID integer with arrays.

My code got long and complex quickly, so I had to split everything up into classes, just for organization’s sake:  Death, DrawFuncs, Evolutions, GetFuncs, MatingDance, Nation, Person, Religion.   I don’t think at this level of sophistication, I could really build more objects into the sketch.  I wanted to practice inheritance and polymorphism stuff but it didn’t come up.  Any ideas for refactoring?

I really hated recasting strings and integers.

I want to spend more time coding on happiness and actuality vs. potentiality.  What I learned was that you have to build a really large system sandbox before you can begin to tackle those metrics.  This includes modeling and simulating an environment to such a degree that it can begin to calculate and visualize your concept of what happiness is, since it pulls from so many dimensions of one’s life. (not just money, but also charity, family life, employment, etc.)

Ways to Expand

Still want to use real-time data from Galapag.us, fed in from its database into Processing.  Too much to do right now though.  I’d have to redesign my database as well as fix the sketch variables!

The algorithms and equations need a lot of tweaking to be more realistic.  For Galapag.us, I’m hoping to crowdsource algorithms for the most accurate ways to calculate somewhat qualitative figures.

I wanted to be able to introduce outside shocks (natural disasters, etc.) into the system, to see how it would affect various nations and personality types, to see who would be more resilient.

I would like to give random people innate superpowers or traits that are unique or very rare.  So that maybe when they turn 30, something is unlocked within them.  I guess I could also give them random diseases and genetic predispositions.

Conclusion

This project helped me get pretty solid on classes and functions and how to organize a sketch.  If I were to rewrite this, it would be far cleaner and more compact.  Mostly I’m appreciative of how much work it takes just to get to a level where you can start doing interesting network effects on large systems.  I barely scratched the surface, in about 1,590 lines of code, but I did manage to achieve perhaps 90% of the infrastructure that I hoped to build.  All of this helps me build a better reputation and identity system for Galapag.us and for my thesis.  I’m hoping the more solid I get on the infrastructure, the bigger breakthroughs I will have on the algorithms and crowdsourcing enablers that will be at the heart of Galapag.us.

 

8-Bit DNA

18 Nov

My ITP classmate Matthew Epler did his intro to computational media midterm on turning poetry into RGB colors, after playing with the concept of digital characters as ASCII values (see the ASCII Table).

“This project is the beginning of what I suspect will be an ongoing investigation of the relationship between language and code. In “Color of Language,” poems are translated into color via Processing, and then passed through a series of iterations involving one simple mathematical equation.”

This made me think about our example sketches where we could break down GIF images into pixels and then display each pixel differently (turn the pixels into ellipses, or search/sort them by brightness).

As I’ve been playing with the look of karyograms and DNA in other projects, I wanted to visually display 8-bit Nintendo characters as their representative digital DNA.  This brief Processing sketch reads in every pixel of the .gif image and outputs it all on one line instead of as an image with width and height, to give it a unique linear signature. Here is the result:

It would be pretty hard to guess the characters just from this representation, but each one definitely has its own digital signature.

The characters:

 = Link (Legend of Zelda)

 = Samus Aran (Metroid)

 = Mario (Super Mario Bros.)

 = Kid Icarus

 = Scrooge McDuck (Duck Tales)

noStroke();
background(255);
size(1400, 500);

PImage thisImg;

int numImgs = 5;
thisImg = loadImage("link.gif"); // filler

for (int i=0; i < numImgs; i++) {
  switch (i) {
  case 0:
    thisImg = loadImage("link.gif");
    break;
  case 1:
    thisImg = loadImage("samus.gif");
    break;
  case 2:
    thisImg = loadImage("mario.gif");
    break;
  case 3:
    thisImg = loadImage("kidicarus.gif");
    break;
  case 4:
    thisImg = loadImage("scrooge.gif");
    break;
  }

  // displays 1 pixel x 20 pixel DNA lines for each Nintendo character

  color[] imgPixels = thisImg.pixels;
  int z = 0;
  for (int x = 0; x < thisImg.width; x++) {
    for (int y = 0; y < thisImg.height; y++) {
      color c = imgPixels[x + y * thisImg.width];
      fill(c);
      rect(z*1, 25*i, 1, 20);
      z++;
    }
  }
}
 
1 Comment

Posted in Gaming, ICM, ITP

 

Physical Computing: Wheredipuddit? RFID Inventory Boxes

17 Nov

For my final project in physical computing, I wanted to follow through with one of my pre-ITP goals to accomplish during the program, which I outlined in an older blog post.

Proposal

I wanted to build an inventory system which used RFID/wifi/whatever to check stuff in to boxes, so that when I needed to find something, I could pull it up on my phone or in a browser and ask it where it was, and the box it was in would glow with LED light.  At the same time, these boxes and things would become individuals and traits, respectively, that I could add to or subtract from to create objects with personalities.

Because I hate having to wait for the delivery, here are some videos showing it in action:

Pinging an object from the Wheredipuddit interface:

Pinging an object via QR code (I would show this via a cellphone but I didn’t have another camera):

YouTube Preview Image

Checking in emotions into a box:

YouTube Preview Image

Some Inspirations for This Project

This was an idea somewhat fleshed out in Cory Doctorow’s book “Makers”.  The book involves two hackers who work together in a junkyard to produce lots of low-tech but highly ingenious inventions and gadgets that end up making modestly large amounts of money.  Serial tinkerer-capitalists or something.  Some of the relevant text, from Cory Doctorow’s free (!) online version of “Makers”:

Tjan opened the door with a flourish and she stepped in and stopped short. When she’d left, the place had been a reflection of their jumbled lives: gizmos, dishes, parts, tools and clothes strewn everywhere in a kind of joyful, eye-watering hyper-mess, like an enormous kitchen junk-drawer.

Now the place was *spotless* — and what’s more, it was *minimalist*. The floor was not only clean, it was visible. Lining the walls were translucent white plastic tubs stacked to the ceiling.

“You like it?”

“It’s amazing,” she said. “Like Ikea meets *Barbarella*. What happened here?”

Tjan did a little two-step. “It was Lester’s idea. Have a look in the boxes.”

She pulled a couple of the tubs out. They were jam-packed with books, tools, cruft and crud — all the crap that had previously cluttered the shelves and the floor and the sofa and the coffee table.

“Watch this,” he said. He unvelcroed a wireless keyboard from the side of the TV and began to type: T-H-E C-O. . . The field autocompleted itself: THE COUNT OF MONTE CRISTO, and brought up a picture of a beaten-up paperback along with links to web-stores, reviews, and the full text. Tjan gestured with his chin and she saw that the front of one of the tubs was pulsing with a soft blue glow. Tjan went and pulled open the tub and fished for a second before producing the book.

“Try it,” he said, handing her the keyboard. She began to type experimentally: U-N and up came UNDERWEAR (14). “No way,” she said.

“Way,” Tjan said, and hit return, bringing up a thumbnail gallery of fourteen pairs of underwear. He tabbed over each, picked out a pair of Simpsons boxers, and hit return. A different tub started glowing.

“Lester finally found a socially beneficial use for RFIDs. We’re going to get rich!”

“I don’t think I understand,” she said.

“Come on,” he said. “Let’s get to the junkyard. Lester explains this really well.”

He did, too, losing all of the shyness she remembered, his eyes glowing, his sausage-thick fingers dancing.

“Have you ever alphabetized your hard drive? I mean, have you ever spent any time concerning yourself with where on your hard drive your files are stored, which sectors contain which files? Computers abstract away the tedious, physical properties of files and leave us with handles that we use to persistently refer to them, regardless of which part of the hard drive currently holds those particular bits. So I thought, with RFIDs, you could do this with the real world, just tag everything and have your furniture keep track of where it is.

“One of the big barriers to roommate harmony is the correct disposition of stuff. When you leave your book on the sofa, I have to move it before I can sit down and watch TV. Then you come after me and ask me where I put your book. Then we have a fight. There’s stuff that you don’t know where it goes, and stuff that you don’t know where it’s been put, and stuff that has nowhere to put it. But with tags and a smart chest of drawers, you can just put your stuff wherever there’s room and ask the physical space to keep track of what’s where from moment to moment.

“There’s still the problem of getting everything tagged and described, but that’s a service business opportunity, and where you’ve got other shared identifiers like ISBNs you could use a cameraphone to snap the bar-codes and look them up against public databases. The whole thing could be coordinated around ‘spring cleaning’ events where you go through your stuff and photograph it, tag it, describe it — good for your insurance and for forensics if you get robbed, too.”

He stopped and beamed, folding his fingers over his belly. “So, that’s it, basically.”

Perry slapped him on the shoulder and Tjan drummed his forefingers like a heavy-metal drummer on the side of the workbench they were gathered around.

They were all waiting for her. “Well, it’s very cool,” she said, at last. “But, the whole white-plastic-tub thing. It makes your apartment look like an Ikea showroom. Kind of inhumanly minimalist. We’re Americans, we like celebrating our stuff.”

“Well, OK, fair enough,” Lester said, nodding. “You don’t have to put everything away, of course. And you can still have all the decor you want. This is about clutter control.”

“Exactly,” Perry said. “Come check out Lester’s lab.”

“OK, this is pretty perfect,” Suzanne said. The clutter was gone, disappeared into the white tubs that were stacked high on every shelf, leaving the work-surfaces clear. But Lester’s works-in-progress, his keepsakes, his sculptures and triptychs were still out, looking like venerated museum pieces in the stark tidiness that prevailed otherwise.

Tjan took her through the spreadsheets. “There are ten teams that do closet-organizing in the network, and a bunch of shippers, packers, movers, and storage experts. A few furniture companies. We adopted the interface from some free software inventory-management apps that were built for illiterate service employees. Lots of big pictures and autocompletion. And we’ve bought a hundred RFID printers from a company that was so grateful for a new customer that they’re shipping us 150 of them, so we can print these things at about a million per hour. The plan is to start our sales through the consultants at the same time as we start showing at trade-shows for furniture companies. We’ve already got a huge order from a couple of local old-folks’ homes.”

I kind of read into the book a post-Apple world, where the production process has become so hyper and quick in order to account for gadgetphiles’ fickle tastes that smaller ideas are put into mass production, that grand visions are no longer marketable in a soon-enough timeframe.  What we’re seeing today is the democratization of hardware, following in the shadow of software’s reign, which has dominated the last 30 years or so.  With lots of small shops now selling microcontrollers, Radio Shack retooling its stores to sell circuitry components once again, and the advent of the internet of things and sensor-based objects that are learning how to sense the world around them, our world is going autonomous.  Think military drones, but on smaller scales and for more common-day applications.

Having boxes talk made me think of the TED Talk by the MIT student who built small toy blocks, Siftables, with screens on them which had accelerometers and sensors to detect tilting, proximity to other blocks, etc. and could be configured immediately to play games instructed by the nearby computer:

My classmate Mark Breneman was telling me to look into near-field communication, or NFC.  It’s included in the Nexus S phone for Android:

YouTube Preview Image

This will probably obsolete RFID, but right now it’s not quite cheap enough for usage in the same way that the ID-12 and other RFID readers are.  Its security is an improvement upon RFID though, so it will likely win for more complicated applications.  I’d love to continue doing projects related to presence, identification, and communication using these techs though.

Another classmate (and make: contributor) Matt Richardson sent me this project, “Doh”, which uses RFID and Arduino to help you remember your wallet and keys before heading out the door.

Planning and Ordering Stuff

Here is a sketch I drew for what I want to build, along with some of the components I already ordered to make it work.

“EL tape” in the top-right should read “digital RGB LED strip”.  I bought both but ended up just using the digital RGB LED strip.

I wanted the Indiana Jones-y guy at the bottom to be significantly jowly, as he is in the film, but I think I just ended up messing up his whole head.  I love that quote though.  ”We have top men working on it right now.”  ”Who?”  ”TOP. MEN.”

YouTube Preview Image YouTube Preview Image

I’d love to have a tour of some of the tech behind Walmart’s and UPS’s logistics systems, which reportedly make use of RFID to help with real-time inventory.  The breadth of data and the information that they must be able to extract from it all is staggering to think about.

My system was only composed of two working boxes though, since it gets rather expensive quickly to get wifi-capable microcontrollers (I got Diamondbacks from cutedigi), RFID kits, some RFID stickers, digital RGB LED strips (to make the tupperware boxes I’ll get to glow), 4AA battery packs from Radio Shack to power the microcontrollers, and other assorted power connectors.  I also got some LED screens in case I wanted to do some interface stuff.  The tupperware I bought at KMart.  I had to order plastic PVC ID cards off Amazon.com, as they are surprisingly hard to find in town (Staples didn’t even have them).  Maybe they are a somewhat controlled item because people use them to make fake IDs?

Now, having never played with any of these things, and having never done a physical computing project of this magnitude, I was fully expecting that I would have pieces that wouldn’t work with each other (I’m worried about the cards/tags/stickers and RFID readers being compatible), and that I may have had to buy MORE stuff.  I chose this project because I thought it’d be doable, given my experience and the capability of the hardware.

What I wanted to do is just prototype a simple inventory system where each box has a scanner that lets me “check in/out” objects on an RFID reader, which then passes the data over wifi to my server, which then displays a nice PHP script showing where stuff is.  If I want to find something, the PHP script asks the box that contains it to light up.  That’s about it.  And maybe, if I had enough time, I could let the boxes talk to each other in some silly way.  If I had time.  And if things didn’t blow up in my face.

Well, things kind of blew up in my face.  I gave myself plenty of time, but I ran into tons of problems.  Here’s the process:

Documentation

Sparkfun RFID Starter Kit

I bought a couple RFID starter kits from Sparkfun, which include 2 ID-card sized 125KHz cards, an ID-12 RFID module, and an RFID reader breakout board.  I tested the RFID readers by just plugging in a mini-USB to USB cable I bought from cutedigi.  Those read fine, displaying the RFID card codes into the ZTerm modem comms app for OS X.  That working, I then tried to get the reader to work when connected to my Arduino Uno, using the code posted by Nick Gammon on the Arduino forum.  Soldered wires to the VCC (5V), GND (ground), and TX.  Made sure to not have the TX wire attached to the RX pin on the Arduino while uploading the above sketch.  Then, success!  Successful reading of RFID numbers to Arduino’s serial monitor!

RGB LED Strips

My next task was to get my LPD8806 digital RGB LED strips to work with my Arduino Uno.

YouTube Preview Image

Several other students had worked with the strips for their physical computing projects, so I got some good tips on what transistors, shields, etc. to use for EL tape and EL wire, and what pages to look at.  Lady Ada’s guide was invaluable.

It looked like the RGB LED strips have the potential to draw way too much power for a portable solution.  I was worried I might have to go with EL tape or wire as potential solutions, which provide less visual feedback to the user (the RGB LED strips have individually addressed LEDs that you could make any color and thus give the user visual cues).  At that point, I also started considering what other components could provide feedback.  I wasn’t too happy about using individual LEDs — I thought that might look sloppy.  And a wave shield for playing sounds has its own host of problems: you have to solder the kit yourself, the shield would be inside the box so the sound would be muffled, etc.

I had ordered 2 meters of the LPD8806.  I unsoldered the first meter from the second as instructed by Limor’s (Lady Ada) guide, by peeling the strips apart as I heated them up with a soldering iron.  Then I soldered wires onto the input connections on the strip.

Then I wired everything up according to this diagram, also on the guide:

I had a massive problem understanding the power requirements, as the product page said that you’d need a 2 amp power supply in order to run the strips at full white output.  Well, I tried 1 meter strips with a 4 AA battery pack (with wire-only connectors; bought at Radio Shack).  Those worked great with the strandtest sketch from the LPD’s library I downloaded off Lady Ada’s site.  Success!:

YouTube Preview Image

I was most nervous about getting the LED stuff to work, but they already came with a library with examples to command the LEDs how I wanted; the hard part was figuring out the power and wiring.  4 AA batteries worked fine, when connected with the Arduino and running whites on each LED (though I wouldn’t want to keep it that way, lest it burn out or  be underpowered).  Where I ran into trouble later was when I wanted to run the RFID reader as well; the power draw coming off the LEDs while also running the wifi and RFID code was too much — not enough juice?  I was excited about creating color moods for the containers to represent their feelings, and I was looking forward to a beautiful fade-in, fade-out cyan for when a box says it contains an object I want.

Networking

I bought two Diamondbacks, which are basically ATmega328 chips on Arduino Duemilanove boards with on-board wifi (supporting open networks, WPA, WPA2, and WEP…a key bonus for accessing the multitude of networks out there) on recommendation from my classmate Gavin and my prof, Scott Fitzgerald.

I was a little worried about getting this part working because wifi is still a little sketchy and undocumented in Arduino-land.  I spent hours upon hours downloading different peoples’ libraries and looking through the Arduino.cc and linksprite and asynclabs forums and docs.  I even looked through the Chinese linksprite files, which was painful.

But the example sketches I was trying wouldn’t compile!  I asked Gavin, a classmate, for help and he mentioned that he was using Arduino version 0022, whereas I was using the latest version, 0023 (RC beta 3).  I downloaded 0022 and the sketches started compiling!  Not too long later, I managed to connect my little Diamondback to my WPA2 router!

So here’s what I learned:

  • Get a git clone of the user-contributed WiShield Arduino library from asynclabs.  Install it to your Arduino sketch folder in “libraries/”.
  • Edit apps-conf.h so that only one “APP_” define is uncommented.  For the client-based example sketches (like SimpleClient), uncomment “#define APP_WEBCLIENT”.
  • If things don’t compile and you get weird errors, try a different Arduino version.  I had to install Arduino 0022 to get my Diamondback to work.
  • Opening .pde sketches in Arduino 0023 will cause them to be renamed to .ino, which 0022 won’t see.  So you’ll have to go back and rename the sketch and re-open Arduino 0022 to see it again.
  • I think I had to go track down wire.h on the interwebs and save it as wiring.h because it was missing for some reason, giving me a compiler error message.
  • Make sure you set a static IP on your router for the wifi device to connect to — it can’t handle DHCP.

 

What a headache to get all that working!  The forums were not very descriptive or helpful for getting this to work.

I had to combine that code (which lets me GET a string of variables to a PHP web page, which can then be passed into a MySQL database, with two other pieces of code: code to read in the RFID ID # via serial port (which I did above), and code to poll the web server to see if the server is instructing it to light up the LEDs or not.  I was really, really, really hoping this is a smooth process.

Front- and Back- Ends

I set up the database and front-end for the web server.  I set up a few tables, one for my list of things, one for my list of containers (I made things and containers separate because I’m thinking some things might also be containers), one for a log tracking what events have happened.

The front-end went smoother than I thought.  I used jQuery and jQueryUI to easily build in a working interface.  It took me the most time to figure out how to correctly encode the MySQL pull into JSON via PHP so that I could access it via JavaScript and jQuery for my autocomplete search functions.  But it helped me to better understand how to navigate the DOM and inter-operate between the different languages.

Now I’ve got a pretty slick interface, though I might need to restructure the MySQL pulls into PHP classes instead of one-offs.  I also might need to restructure the data so that not everything is given away in my source’s JSON.  There’s a ton of work I need to do adding functionality for things like having the web server tell the Arduino to turn on its LEDs, etc.  But the basic layout is done!

I even added quests and recipes.  The quests seen above: OCD is unlocked when you put all the objects of the same type in the same box.  Fort Knox is when you check in your wallet, your checkbook, and a small box into the same container.  Love at First Light was going to be the coup de grace of my demo: both boxes would have “love” checked into them, and then they’d face each other (both have a reader and an RFID attached to their fronts) to talk, and then the small box would be checked into Eve.  All these conditionals would give birth to a new container in my database, called “Caintainer”.  So I wanted to create life for my class demo.  It didn’t work. :/

You can try out the Wheredipuddit interface on my web server.  It’s not connected to anything though.

Problems

These pieces all worked fine on their own.  It came time to put them all together.  This is when I started running into issues.  First of all, I was wrestling with the code to send the GET request.  The sample Arduino code that connected to a weather database worked.  My PHP script to read an HTTP URL into a MySQL database worked.  But when I tried to modify the Arduino sketch so that it could insert a different RFID based on which one was scanned, and then requested through the Arduino, I’d often get Arduino resets.  My professor suggested that I stop trying to mess around with char pointers (char *) and arrays, and just hardcode in the URLs based on if..then checks for which RFID was scanned.

This worked with one example but for 20, it also reset the board.  I suspected I was filling up the memory on the Arduino or something.  I reduced the number of if..else if..then checks to just 3 different RFID tags, and that seemed to work okay.

I then added the digital RGB LED strips.  With the way I wired it up, everything was drawing from the same power, and I’d get the Arduino to work fine, but when I scanned the RFID reader, it would click (not enough power, or a short circuit), or the LEDs wouldn’t come on.  I ended up getting another 4 AA battery pack and connecting it to the Arduino + RFID, with the LEDs getting their own (but grounded with the Arduino).  I’m not sure if this circuit caused later problems — I don’t think it did since I didn’t get any more issues, power-wise.  Save for the flimsy battery pack wires.  If I had more time, I’d definitely solder the wires to header pins so they’d be more robust to being moved.  The wires popped out pretty easily without pins.

I added another GETrequest at the end of the loop, which checked to see if the server had changed the box’s mood.  The server would just output 1 integer on the ping.php page, which the Arduino would read and then display on the LEDs the corresponding color for the new mood.

I blew out an RFID reader after being frustrated and trying a different power setup.  I guess it didn’t like being hooked up along a connection tied to a 12V battery pack.  Oops.  First time I’ve blown out a component.

Maybe this was caused by the bug — or butterfly — in my Arduino.  I guess the butterfly was from a classmate’s butterfly project (she apparently had butterflies mailed to her).

I had some problems understanding the callback function that was coded into the example sketch.  It basically said, if you receive data in the serial buffer, then run this function to process it.  It had incoming variables already so they were my constraints.  I didn’t understand the underlying code enough to either scrap it or modify it.  I spent tons of time trying to figure out how to read my HTTP request’s response (which, in this sketch, shows the whole HTTP headers, which was a pain in the ass because that’s a lot of extra characters I have to deal with in my serial buffer).  I tried many examples and tried writing some failed C.  I ended up, though, with this:

// Function that prints data from the server
void printData(char* data, int len) {
  // Print the data returned by the server
  // Note that the data is not null-terminated, may be broken up into smaller packets, and
  // includes the HTTP header.
  while (len-- > 0) {
    Serial.print(*(data++));
    if (*(data) == '*' ) { //'*' is our beginning character
      startRead = true; //Ready to start reading the part
    }
    if (startRead) {
      Serial.print(*(data++));
      if (*(data) == '0'){ // content
        dither(strip.Color(0,127,127), 20);
      }
    ...
    }
  ...
}

The reading of Serial.print(*(data++)) in the startRead conditional is crucial to read in the next character.  I did try to do a serial.flush() after this callback function but I think it was interfering with the other GETrequest so I removed it.  But I suspect more must be done here to make it a clean read…

I have a feeling having two GETrequests could have contributed to one of my major issues, which seemed to be flooding the serial buffer.  I’d often get the LED 13 light stuck on, as if it was being flooded with data.  I did try to serial.flush() my serial connections but that seemed to destroy communications — nothing was logged in my database as having been touched.  Other times, I would scan stuff in or try to ping them from my browser (pinging from browser would tell the Arduino on its next connection that it needed to light up to show the user that the requested object was inside), and nothing would happen!

This is actually exactly what happened during my class presentation.  Nothing worked.  I felt bad about it because I prepared for the project well, bought stuff early, put in early test work, and then did all-nighters for almost two weeks trying to figure the whole thing out.  I felt like I tried hard, picked a project I could accomplish, and put in the time.  And it still didn’t work during the demo, though I KNOW some parts of it work well…sometimes. Here’s a video clip of me giving my presentation (may have been edited for time):

Conclusion

So there you go.  It was a highly disappointing ending to a final project.  I wondered if working alone caused my problems, or not asking others for enough help.  My lessons learned:

  • When doing serial communications, make sure you try to understand EVERYTHING being passed across.  Make sure to always use the serial monitor, just to be sure you’re getting expected results.
  • When doing communications between client and server, always build tons of logging into your code, even at first when you’re just scaffolding the project.  You will need to do small unit testing on each case individually to make sure it works, before trying to put everything together.  The worst is when you can’t figure out where your problems are being caused, because there’s too much going on and too many points of failure.  Keep the network traffic thin so there’s more margin for error.  TEST EVERYTHING INDIVIDUALLY.
  • I would have bought an extra Arduino and the new WiShield 2.0 shields, or waited for the new Arduinos with built-in wifi.  The problem I had with the Diamondback was that I ended up using poorly documented code that didn’t do what I wanted it to and didn’t seem very configurable, and operated far less usefully than Arduino’s example code in the ethernet library.  The WiShield 2.0 code seemed far more user-friendly.

 

What interests me about this is the long-term application.  What will it be like when objects can tell you if they’re missing parts, or they can report to you on their health, or they can take out some of the daily logistics planning that we send to our brains’ subroutines every day while we try to get other stuff done?  What will the world be like when things start talking to each other outside of the internet?  Can I get my boxes to talk to each other while they’re near each other?  Can I build recipes, like scan a bunch of characteristics (honesty, humor, good looks) into the boxes so that, if the recipe is right for both, they “fall in love”?  In talking with another classmate, Tak, we realized that if there were, say, 50 boxes piled against a wall, you could turn them into interactive pixels, controllable via Processing sketches!  And as I talked to yet another classmate, Christie, I realized, what if there will be a job in the future for creative storytellers where their job is to imbue objects with personalities?  Think of just observing everyday objects talk to each other, all being coded by different people, all with unpredictable and surprising interactive behaviors, with companies competing to hire the most creative people to give their products signature anthropomorphized personalities.

I didn’t get my project to work.  I thought I’d be able to do it.  But I ended up encountering issues at almost every step of the way, with five obstacles popping up once I solved just one.

I definitely need a mental break from school now that the semester’s over.  I want this idea to work, but I’m going to have to accept that I need to move on from it because I’ll have other class projects to do.  But it’s very hard for me to leave a problem unsolved.  So it’s been gnawing at me.  But I’ll be using the break to forget about it, and try not to come back and try to figure out what’s wrong with it.  At least for a while, or until I can use the project for another class or application.  Sigh.

My Arduino code is below the jump:

Read the rest of this entry »

 
2 Comments

Posted in ITP, PComp