<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-4915599740290456416</atom:id><lastBuildDate>Mon, 17 Nov 2008 16:41:23 +0000</lastBuildDate><title>And Or</title><description></description><link>http://www.johnsenner.com/blog/</link><managingEditor>john.senner@gmail.com (John)</managingEditor><generator>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-1518146915610613974</guid><pubDate>Mon, 17 Nov 2008 03:36:00 +0000</pubDate><atom:updated>2008-11-17T08:41:23.905-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Optimism</category><title>2009 is Fast Approaching</title><description>...as it always has been.&lt;br /&gt;&lt;br /&gt;I haven't read any really great predictions for 2009. What will the web see next? I have some ideas, and it's one of those times when what I think is going to happen is also what I want to happen. That, I suppose, is the definition of optimism.&lt;br /&gt;&lt;br /&gt;I predict that in 2009, the next economies to move to the web will be professional services like medicine, law, pharmacy, engineering, and business consultancy. While of course people in these markets already find each other on the internet, I think that our changing circumstances will begin to make it cost effective and reliable to conduct these services - legal counsel, healthcare, and other informational services that require very skilled, even licensed practitioners - online and with a maximum of automation and generalization.&lt;br /&gt;&lt;br /&gt;One of the reasons I think this is likely to happen so soon is that it is already beginning to happen, peripherally, in the form of online health records, college classes, investing sites (especially those already offering financial planning advice), and so on. I think the main drivers for this trend will be a generation of Americans slowly coming into adulthood that is able to trust the internet, a changing healthcare system in the US, and exponential growth in developing markets in countries that have fewer skilled professionals but a growing middle class able to purchase professional services over a more ubiquitous internet.&lt;br /&gt;&lt;br /&gt;This isn't a very bold statement - sorry - but we hope that economic downturns inspire new levels of efficiency, and I'm thinking it could be the catalyst we need to move the remainder of our information services online. &lt;br /&gt;&lt;br /&gt;I also think that the first real entirely &lt;a href="https://www.mturk.com/mturk/welcome"&gt;online careers&lt;/a&gt; will be created - while many service jobs become automated, &lt;a href="http://www.google.com/search?q=telepresence"&gt;telepresence&lt;/a&gt; positions (eg. controlling a fruit-picking robot from a computer in another place or doing data entry) will become more commonplace as the manufacturing and installation of those systems plus remote labor costs falls below the local labor cost for those outsourceable but non-automatable jobs. I think it's likely that 2009 and 2010 will see a taste of this, like maybe increased use of Amazon's Mechanical Turk. The constantly falling price of computers and internet access would really be a telling factor here, I think.&lt;br /&gt;&lt;br /&gt;Here's hoping 2009 is a good year for technology and prosperity everywhere in the world.</description><link>http://www.johnsenner.com/blog/2008/11/2009-is-fast-approaching.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-8907820929579693093</guid><pubDate>Sat, 08 Nov 2008 04:12:00 +0000</pubDate><atom:updated>2008-11-07T20:12:00.907-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>School</category><category domain='http://www.blogger.com/atom/ns#'>IP</category><category domain='http://www.blogger.com/atom/ns#'>Projects</category><title>Things the Collective Should Do: Open Academic Web Journal</title><description>I'm suggesting here a free-content, openly accessible online repository where researchers, professors, and students publish scientific journal articles for peer review and wide distribution.&lt;br /&gt;&lt;br /&gt;This website allows scientific research papers to be published by qualified academicians. The articles can be freely read and peer-reviewed online. Articles are translated into other languages so that they can be read worldwide. A system of of moderation provides a meritocratic means of awarding prestige and press based on quality. An accompanying print journal is provided pro bono or at nominal cost to institutions. To increase the prestige of the journal/repository, it is marketed as a trustable, progressive, intelligent institution, and content is carefully reviewed.&lt;br /&gt;&lt;br /&gt;The current scientific publication industry relies on established branding of respectable journals and the 'publish or perish' dynamic to keep it afloat. Authors often have to pay for their articles to be published in print-bound journals, which are then sold at a high price to academic institutions. At best the publishing industry contributes little of value to the system, and at worst prevents most people from accessing information that could be useful in the hands of the general public. In essence, the current system lacks utility in spreading scientific knowledge and neither apportions prestige fairly, nor distributes knowledge widely.&lt;br /&gt;&lt;br /&gt;Minds around the world would benefit greatly, as the results of studies would be available internationally in many different languages. Universities and authors would also benefit because they are now able to publish and access papers at lower cost. Science as a whole would benefit due to the increased volume and visibility of papers published. Because of the greater number of eyes on the articles and the increased ease of peer review, communicative openness and the scientific method would benefit.&lt;br /&gt;&lt;br /&gt;In order to be successful, the open web journal would require buy-in from academic institutions and scientific readers. A combination of aggressive marketing and branding to entice article submissions will facilitate presenting the site as a respectable, reliable source of information. We will need to develop the website's software, decide how the site is run and edited organizationally (peer review and editing will play a huge part)&lt;br /&gt;&lt;br /&gt;The overall progress of science will be assisted, because knowledge will be exchanged more freely. People who would otherwise not have the opportunity to read current scientific literature will have the chance to be inspired as well as educated by it. Competing with current journal models may persuade existing publishers to become more free in an economic and cultural sense. Researchers will have a website which will both distribute their knowledge to the world and grant them recognition for their work - without charging admission. Counting readers or articles would be simple metrics. Measuring changes in research job satisfaction, number of articles published worldwide, or cost of subscriptions to existing print journals would tell other sides of the story.</description><link>http://www.johnsenner.com/blog/2008/11/things-collective-should-do-open.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-2242917745152435408</guid><pubDate>Sat, 01 Nov 2008 05:14:00 +0000</pubDate><atom:updated>2008-10-31T22:14:00.430-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Projects</category><title>Things the Collective Should Do: Developing World B2B Portal</title><description>Let's imagine a website which gives small businesses in developing areas around the world access to free web-based business software, financial planning resources, commercial contacts, and other information they need to be successful.&lt;br /&gt;&lt;br /&gt;This website will provide leaders of new and developing businesses access to a suite of software that provides simple and reliable double entry bookkeeping, payroll processing, sales forecasting, and other necessary business management functions. Additionally, the website will include a free portal to crucial services such as employment postings, regional legal guidelines, sales opportunities, and business development tools. Access to local and global contacts via this portal will give businesses more viability, give them access to wider markets, and put them in touch with the contacts they need to be successful. Businesses may be able to apply for microfinanced loans, government incentives, and other means of attaining capital.&lt;br /&gt;&lt;br /&gt;This website will address informational and logistical barriers to entry of small businesses in remote or underdeveloped areas without an existing support network, widespread infrastructure, and preexisting culture of entrepreneurship. The&lt;br /&gt;&lt;br /&gt;Entrepreneurs in the developing world would have better access to verified information, support networks, and new markets. This empowerment of individual businesses would also lead to new local jobs, increased availability of goods and services, and the generation of wealth throughout communities. &lt;br /&gt;&lt;br /&gt;The first step to properly implementing this website would be to conduct a needs assessment of areas that would benefit from online business development software to figure out who we could reach and what we could offer them. Creating usable, reliable online business management software with the features needed by small businesses in the developing world, translated for many possible markets would follow, and finally, recruiting business experts to share knowledge of standard practices, financial howtos, and entrepreneurial techniques would get the site up and functioning.&lt;br /&gt;&lt;br /&gt;Optimally, those businesses that used the website would have better access to crucial information and would be more likely to succeed and grow. These businesses would set an example in their communities and share their knowledge via the website, enabling sustainable business practices to spread through their localities. One would compare the outcomes of a sample of businesses who used the software with similarly equipped businesses in the region who did not. For product-driven companies, an increase in the number of potential customers who would like to import their product would lead to fairer, more competitive pricing for goods.</description><link>http://www.johnsenner.com/blog/2008/10/things-collective-should-do-developing.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-3410780652285489083</guid><pubDate>Sat, 25 Oct 2008 09:12:00 +0000</pubDate><atom:updated>2008-10-24T23:14:31.224-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Programming</category><category domain='http://www.blogger.com/atom/ns#'>Games</category><title>Game Design as Programming</title><description>What is it about game design that lures software developers? Both are geeks, to be sure, but there seems to be a special draw that somehow grabs hold of both.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wunderland.com/WTS/Andy/Andy.html"&gt;Andrew&lt;/a&gt; and &lt;a href="http://www.wunderland.com/WTS/Kristin/Kristin.html"&gt;Kristin&lt;/a&gt; Looney are good case studies to start with. Before starting their own company inventing games, they worked as as computer scientists at NASA. The love of computer science is evident in their games, which are rife with simple mechanics that end in beautiful systems of input and output.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Richard_Garfield"&gt;Richard Garfield&lt;/a&gt;, designer of Magic: The Gathering and other wildly popular thinking games, also began as a Bell Labs scientist. Magic's inventive abstract system of interaction between cards was completely new at the time, but appeals to many - Garfield's game is absurdly popular around the world.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wiki.mtgsalvation.com/article/Paul_Sottosanti"&gt;Paul Sottosanti&lt;/a&gt; is a php developer-turned Magic-designer turned game-developer. His latest work, &lt;a href="http://kotaku.com/5040559/dungeons--dragons-tiny-adventures-on-facebook"&gt;Tiny Adventures&lt;/a&gt;, builds cleverly on the new paradigm of social networking games.&lt;br /&gt;&lt;br /&gt;There are a lot more examples of software devs-turned-board game developers, but take these clever people as examples to start with. Common geek-appeal aside, what is it that draws programmers? The game as a microcosm of reality with its own rules, structures, and beginning and end seem common to all four of our cases. Software is similar in its use of interconnected modular parts. The shared &lt;a href="http://www.ludism.org/"&gt;Ludism&lt;/a&gt; and limitless exploration potential of programming languages and games is equally likely.&lt;br /&gt;&lt;br /&gt;Thoughts?</description><link>http://www.johnsenner.com/blog/2008/10/game-design-as-programming.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-4443014267683405230</guid><pubDate>Thu, 23 Oct 2008 02:52:00 +0000</pubDate><atom:updated>2008-10-22T19:54:47.411-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>School</category><category domain='http://www.blogger.com/atom/ns#'>Programming</category><category domain='http://www.blogger.com/atom/ns#'>Projects</category><title>Things the Collective Should Do: Free Online College</title><description>We're talking completely free, accredited, online associate-level college courses.&lt;br /&gt;&lt;br /&gt;A free online college offering courses adhering to high levels of quality. The courses are (in US terms) in the 100-300 level range, enough to satisfy general education requirements and demonstrate a student's commitment to an institution of higher education. Courses are accredited by relevant standards bodies, and admission is not restricted in any way. Students' knowledge of the course topic is vetted by open-book online tests, peer reviewed papers, peer-judged class competitions, readings followed by captcha-like comprehension tests, class discussion followed by peer ratings, and/or other scalable systems of measuring comprehension of materials. Courses are copyleft and the subject matter is crowdsourced and peer reviewed.&lt;br /&gt;&lt;br /&gt;Cyclical educational disparity exists worldwide. Entirely-online classes are becoming increasingly common but still have costs that preclude the enrollment of the average world citizen . Education is not a zero-sum game, and information is easily recyclable for many minds. Everyone should have a chance at achieving a high level of education, and this idea removes some of the social and economic barriers to this.&lt;br /&gt;&lt;br /&gt;Marginalized populations who currently do not have access to high school or college would be able to obtain a higher education, and would be able to apply to other colleges with proof of their academic experience. Existing colleges would have a much wider pool of applicants from more diverse backgrounds. Additionally, seniors and working adults will have the opportunity to engage in life-long learning. Society worldwide will be enriched by a general increase in education.&lt;br /&gt;&lt;br /&gt;The first step is the creation of software that would allow people to freely contribute to open sourced course material. The success of Wikipedia is indicative of the willingness of Internet users to contribute information and editing to worthwhile causes. All course content would be reviewed by Professors to ensure that accreditation standards are being met. The software in question would also be usable by students. The college would require marketing designed to appeal to a diverse student body. Peer editing and adherence to high levels of quality will facilitate wide spread accreditation of classes.&lt;br /&gt;&lt;br /&gt;If more people obtain free college-level learning, the idea will be a success. The disparity within education can be measured in terms of average levels of learning across overlapping boundaries of gender, income, nationality, and race. The number of person-credit-hours would impart the degree of success of the free online college. A shift in international attitudes toward learning would also indicate improvement. A measurement of the educational divide will be demonstrated in an increased proportion of college students from marginalized backgrounds.</description><link>http://www.johnsenner.com/blog/2008/10/things-collective-should-do-free-online.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-2033969183579551224</guid><pubDate>Sun, 19 Oct 2008 09:56:00 +0000</pubDate><atom:updated>2008-10-19T03:03:51.899-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Blogs</category><title>10 to the 100th!</title><description>&lt;a href="http://www.project10tothe100.com/"&gt;Project 10^100&lt;/a&gt; is a call for ideas to change the world by helping as many people as possible. The due date is October 20th - get your revolutionary ideas in as soon as you can! - and the vetting process includes expert consensus as well as internet voting.&lt;br /&gt;&lt;br /&gt;I've sort of been waiting most of my life for someone with a lot of money to ask "How can we change the world for the better?" and I'm taking this as my chance to get it all out of my system.&lt;br /&gt;&lt;br /&gt;We're going to be speaking Truth to Power, man. With Love, man. We're going to be posting some of my pinko, humanist, fossy, digerati-ass ideas here in the next few days, after they go through &lt;a href="http://periluna.livejournal.com/"&gt;the formal proofing and rigorous editing process&lt;/a&gt; and all that.</description><link>http://www.johnsenner.com/blog/2008/10/10-to-100th.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-4701996674703014034</guid><pubDate>Mon, 13 Oct 2008 08:55:00 +0000</pubDate><atom:updated>2008-10-13T02:10:15.221-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Wifi</category><title>Community Wi-fi</title><description>I'm expanding my &lt;a href="http://www.meraki.com/"&gt;Meraki&lt;/a&gt; network as quickly as possible, now that my little Apple-imposting device has nearly paid for itself. My rationale on originally starting the network several-fold:&lt;br /&gt;&lt;br /&gt;In my &lt;a href="http://www.americorps.org/"&gt;AmeriCorps&lt;/a&gt; days, I would have lied, cheated, or killed to obtain internet access without having to pay $50 a month for it. As it happens, I never killed anyone, but I'm fairly sure the other two were covered depending on your interpretation of local wireless network laws.&lt;br /&gt;&lt;br /&gt;The vicious amount of bandwidth (note: not nearly as much as is still advertised) I'm paying for from my ISP is barely consumed even at our peak hours with several devices connected and active.&lt;br /&gt;&lt;br /&gt;Sharing with friends is one thing, sharing with strangers is both more rewarding and more dangerous. I didn't trust my network administration skills enough to allow strangers any access at all to my internal network, but I still wanted to let neighbors and bus-stop-waiters have access to the &lt;a href="http://www.logicgamesonline.com/netwalk/"&gt;many&lt;/a&gt; &lt;a href="http://www.zombo.com/"&gt;useful&lt;/a&gt; &lt;a href="http://manbabies.com/"&gt;functions&lt;/a&gt; of the internet.&lt;br /&gt;&lt;br /&gt;Meraki is an inspiring, well designed service, as &lt;a href="http://www.netequality.org/"&gt;NetEquality&lt;/a&gt; and others can attest. I can't call it revolutionary until some real gains are gotten in areas where access to the internet is a paucity, but I'm for it.</description><link>http://www.johnsenner.com/blog/2008/10/community-wi-fi.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-5760815346188894916</guid><pubDate>Mon, 13 Oct 2008 08:13:00 +0000</pubDate><atom:updated>2008-10-13T01:49:19.468-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>IP</category><title>More IP Polemic</title><description>Aside from the aforementioned &lt;a href="http://www.johnsenner.com/blog/2008/03/intellectual-property.html"&gt;pragmatic rejection of IP&lt;/a&gt; that I and many others hold, there exists a (currently very unpopular) idealistic aversion to it. The argument states that there is no way to 'own' ideas. Given that we've legislated a lot of other intangibles into existence (citizenship, time, etc) I'm not doubting our theoretical ability to legislate the ownership of information. I'm not even asserting that &lt;a href="http://en.wikipedia.org/wiki/Information_wants_to_be_free"&gt;information wants to be free&lt;/a&gt;, though the statement has its merits. I'm just very, very skeptical of the idea that information can belong to a person.&lt;br /&gt;&lt;br /&gt;For one, unlike other types of property information isn't even close to a &lt;a href="http://en.wikipedia.org/wiki/Scarcity"&gt;scarce&lt;/a&gt; good. Once it exists, it can be replicated over and over for free, being built upon in any number of ways. To have exclusive ownership of something infinitely replicable seems beyond human ability.&lt;br /&gt;&lt;br /&gt;Once a person invents something - a joke, a &lt;a href="http://en.wikipedia.org/wiki/Meme"&gt;meme&lt;/a&gt;, a new and useful process - I can agree that they're the sole holder and proprietor of every iota of that idea. But once it's outside the mind of that person, I'd be forced to argue that it belongs equally to everyone who witnesses it. They've already multiplied it in their mind, potentially forever, and can't disown it for any amount of money or effort. Are they just borrowing it? If they don't own the copy in their mind, does the creator (or whoever the creator sold the idea to) own that region of their thoughts, or just the observer's rights to share it?&lt;br /&gt;&lt;br /&gt;The idea strikes me as preposterous on a really basic level. Please remember that I'm thinking of this as someone who traffics in information for a living, at let me know where I'm differing from a thought-out schema of our ability to own data.</description><link>http://www.johnsenner.com/blog/2008/10/more-ip-polemic.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-1373795771453859043</guid><pubDate>Sun, 18 May 2008 07:50:00 +0000</pubDate><atom:updated>2008-05-18T02:05:09.833-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Symbols</category><category domain='http://www.blogger.com/atom/ns#'>Programming</category><title>Code as an Emergent Medium</title><description>After however many years you'd like to consider computational instruction to have been around, it looks like it is now ready to be taken seriously as a medium of expression meaningful to humans as well as machines. In our plainly mathwise languages, we have always had the means to convey nearly as much as we'd like (convenience aside) but I really think that we're taking advantage of our ability to express ourselves in code beyond what's necessary to use machines as tools.&lt;br /&gt;&lt;br /&gt;Poetry&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://perl.plover.com/obfuscated/"&gt;high obfuscation&lt;/a&gt;&lt;br /&gt;It is left to the reader to find more examples, but here is one example of a recognized and heady performance in the field of perl poetry. The selection of perl is not a coincidence, but stems from perl developers' frequent concern for taste and desire for elegance.&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.perlmonks.org/index.pl?node=Perl%20Poetry"&gt;more perl&lt;/a&gt;&lt;br /&gt;An open forum for aspiring perl code-poets. Very open.&lt;br /&gt;&lt;li&gt;&lt;a href="http://community.schemewiki.org/?lisp-poetry"&gt;lisp poetry&lt;/a&gt;&lt;br /&gt;Lisp is a dynamically typed language, meaning its data types are defined sort of transiently. When this page doesn't bother to decide whether it is for poetry about code or code that reads poetically, that's hilarious.&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.cultdeadcow.com/cDc_files/cDc-0379.php"&gt;redbox.c&lt;/a&gt;&lt;br /&gt;Slightly more esoteric but of great illustrative value is this C program from 2001, heavy with nostalgia even then.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Politics&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://graphics.stanford.edu/~danielrh/vote/scores.html"&gt;obfuscated voting machine code&lt;/a&gt;&lt;br /&gt;Premise: In a bid to point out the security risks in closed-source voting machines, entrants to this contest devise the most convincingly correct yet reliably 'rigged' code.&lt;br /&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/DeCSS"&gt;DeCSS&lt;/a&gt;&lt;br /&gt;Rogue programmers create code that allows people to fetch information from dvds, and wind up in civil and criminal court for copyright infringement. The code is open sourced, enthusiastically disseminated on the Internet, printed on t-shirts.&lt;br /&gt;&lt;li&gt;&lt;a href="http://www-2.cs.cmu.edu/~dst/DeCSS/Gallery/decss-haiku.txt"&gt;meta&lt;/a&gt;&lt;br /&gt;Said code is transcribed into English in a peculiar way. Just for effect?&lt;br /&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/AACS_encryption_key_controversy"&gt;09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0&lt;/a&gt;&lt;br /&gt;Termed 'the illegal number', this blu-ray encryption key was the subject of a similar dispute on a large scale in 2007.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;The list of so-far symbolically powerful code continues, but it's as organic as you imagine, and media crosses well - &lt;a href="http://www.100mb.nl/"&gt;linux/init/main.c&lt;/a&gt; and so on.</description><link>http://www.johnsenner.com/blog/2008/05/code-as-emergent-medium.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-6841364168825210933</guid><pubDate>Sat, 19 Apr 2008 04:44:00 +0000</pubDate><atom:updated>2008-05-18T22:17:15.335-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Programming</category><category domain='http://www.blogger.com/atom/ns#'>Books</category><title>Book Review - Wicked Cool PHP</title><description>&lt;a href="http://nostarch.com/frameset.php?startat=wcphp"&gt;Wicked Cool PHP&lt;br /&gt;William Steinmetz with Brian Ward&lt;/a&gt;&lt;br /&gt;&lt;img src='http://www.johnsenner.com/etc/stars4.gif'&gt;&lt;br /&gt;One of the best ways to learn a new programming language is to find existing code and modify it - not only do you begin with a working product rather than from scratch, you see standards, shortcuts, and myriad different ways of doing things. The risk run is a lack of reliability - there are few guarantees offered with most code, and there's always the possibility one will learn bad habits. PHP in particular includes plenty of pitfalls for new programmers, and there are plenty of ways for a neophyte to drop the ball with serious consequences if guidelines aren't set from the beginning.&lt;br /&gt;&lt;br /&gt;Enter the hybrid introductory lessons/cookbook. Wicked Cool PHP, from No Starch Press, is a fantastic book if you're picking up PHP from a beginning perspective. The programming tasks outlined are fairly common ones, but are solved elegantly and proper information is given along with the examples. The book contains all that a new user needs to know about securing PHP (quite a lot) without departing from its recipe-like model of task, design, and code. The authors begin with sending email and using the session and continue through input sanitation, SOAP, and templating. Implementation-neutral database use is touched on, and the projects begin to get fairly ambitious towards the end.&lt;br /&gt;&lt;br /&gt;Again, strongly recommended for new and enthusiastic PHP coders, who might save considerable amounts of time learning by an innovative walkthrough paradigm.</description><link>http://www.johnsenner.com/blog/2008/04/book-review-wicked-cool-php.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-7690089804677426336</guid><pubDate>Mon, 03 Mar 2008 22:41:00 +0000</pubDate><atom:updated>2008-03-03T15:41:03.725-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>IP</category><title>Intellectual Property</title><description>IANAL (I am not a lawyer.)&lt;br /&gt;&lt;br /&gt;I'm a proud cog in the information economy, and I make my living on manufacturing information. We all buy and sell information every day. The volume of information going around is rapidly increasing as time progresses, and I think it's clear that we don't have a good system for regulating the information economy.&lt;br /&gt;&lt;br /&gt;On a legislative level, we currently have several failed systems for the regulation of intellectual property:&lt;br /&gt;&lt;br /&gt;- There is no universal or global acknowledgment of intellectual property, and most systems of regulation simply break when the information leaves its creator's jurisdiction. This leads to copyright being nearly meaningless in certain countries where IP is not recognized, not enforced, or neither.&lt;br /&gt;- 'Fair use' in the United States is at best a cruel joke, and protects almost no one. The segment most unable to make fair use of a product are professional content creators, whose producers are reluctant to take any risk of costly litigation.&lt;br /&gt;- Users are an enormous, slow-moving target for IP owners seeking legal recourse, and cannot muster even a token defense against whatever claims are brought against them. If not for groups like the EFF, few IP suits against end users would ever go beyond settlement.&lt;br /&gt;- The largest content owners and producers (along with as umbrella industry groups and PACs) take it upon themselves to sponsor politicians friendly to their interests, resulting in well-funded campaigns for any legislators willing to cooperate with them.&lt;br /&gt;- The United States Patent and Trade Office is an outdated, Kafkaesque organization with no semblance of understanding and a completely broken system of patenting. This is more arguable when one is discussing non-software patents; due to a gap in understanding between those who write or patent software and those who approve and adjudicate patents, the system currently in place for patenting software is rife with abuse (even according to many owners of software patents).&lt;br /&gt;&lt;br /&gt;On a physical level, mechanisms so far intended to prevent violation of intellectual property rights have done little more than decrease the quality of products, while increasing the cost to manufacture them.&lt;br /&gt;&lt;br /&gt;- To date, no system of DRM-laden content has ever shown promise in avoiding being subverted, gamed, or bypassed. In the arms race between secure distribution schemes and the holders of encrypted data, the odds will always be stacked clearly in the favor of unlocking information.&lt;br /&gt;- Even a theoretically secure system is still entirely susceptible to transcoding or transcription. Regardless of how difficult it is to mass-distribute a strongly encrypted, watermarked, time-expiring piece of information, if the data is viewable by a human it is likely copyable, often perfectly, to another medium.&lt;br /&gt;- Streaming, proprietary, or encryption-bloated data, often infused with the mandatory viewing of warnings about redistribution, is inherently less usable and much less desirable (to varying degrees) than content distributed otherwise.&lt;br /&gt;&lt;br /&gt;Why is it so hard to regulate our god-given rights to information? Why should we be 'punished' for sharing information with the world?</description><link>http://www.johnsenner.com/blog/2008/03/intellectual-property.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-5044881510553990703</guid><pubDate>Mon, 25 Feb 2008 09:49:00 +0000</pubDate><atom:updated>2008-10-13T01:52:45.190-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Blogs</category><category domain='http://www.blogger.com/atom/ns#'>Books</category><title>Update</title><description>&lt;a href="http://www.codinghorror.com/blog/archives/001062.html"&gt;Jeff Atwood&lt;/a&gt; of Coding Horror agrees with my review of &lt;a href="http://www.johnsenner.com/blog/2008/01/book-review-beautiful-code.html"&gt;Beautiful Code&lt;/a&gt;. You saw it here first, though.</description><link>http://www.johnsenner.com/blog/2008/02/update.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-1170425485897440808</guid><pubDate>Sun, 10 Feb 2008 22:33:00 +0000</pubDate><atom:updated>2008-10-22T19:57:14.036-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Programming</category><category domain='http://www.blogger.com/atom/ns#'>Books</category><title>Book Review: Best Kept Secrets of Peer Code Review</title><description>&lt;a href="http://books.google.com/books?id=4vdMBAAACAAJ&amp;dq=Best+Kept+Secrets+of+Peer+Code+Review&amp;ei=hYevR9qqOoOCsgPLtLj9BQ&amp;ie=ISO-8859-1"&gt;Best Kept Secrets of Peer Code Review&lt;br /&gt;Jason Cohen, et al&lt;/a&gt;&lt;br /&gt;&lt;img src='http://www.johnsenner.com/etc/stars4.gif'&gt;&lt;br /&gt;&lt;blockquote&gt;We cannot forever hide the truth about ourselves, from ourselves.&lt;br /&gt;- John McCain&lt;/blockquote&gt;This book was a freebie from &lt;a href='http://smartbear.com/codecollab-code-review-book.php'&gt;Smart Bear Software&lt;/a&gt;, which means that if it were presented in terms of utility per dollar, it would be nothing short of &lt;i&gt;infinitely worthy&lt;/i&gt;. If you're interested in Software Engineering, the disciplined and systematic development and maintenance of software, I can't recommend highly enough that you go on and get your free copy. It's an insightful and provacative book, and you won't regret your investment of time.&lt;br /&gt;The Best Kept Secrets of Peer Code Review remain secrets because it is manifestly evident to every coder that their code is flawless. This is pretty obvious; nobody ever sits down to add bugs to their code. A bug, logical or syntactical, is largely a matter of perception.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Black_box_testing"&gt;Black box&lt;/a&gt; testing for code flaws is a lot like smelling an old milk carton; a tester is here not hunting for actual flaws so much as the implication of flaws, their products, offspring, and output. Code review, as defined here, is the actual human fathoming of pre-production code. This is important, no one will deny, but is it absolutely necessary for proper development? That's the argument made in this book, and it's made with lucidity and care. The reason this book is worth reading is its careful, honest, and meticulous use of statistics to prove that enforced peer code review is a numerically better case for  most software teams.&lt;br /&gt;&lt;br /&gt;It is true, you know. The books sinews, the very guts of it, the part that will remain in the reader's mind long after all thoughts of what constitutes a code flaw, what part of design is taste and what is doctrine, and what metrics of testing are more important that others, are its brilliant and decisive forays into the metrics of bugfinding. Simply put, the better and harder you look at code - any code - the more bugs you'll find. The sooner you look, the easier they'll be to fix, and the more lines reviewed, the more bugs will be found to exist. This is absolutely, universally, inarguably true of any code that exists, and if as those axioms weren't philosophically fundamental, this book absolutely proves them and more.&lt;br /&gt;&lt;br /&gt;The authors of the book reveal these truths so systematically that it's impossible to flinch when, on putting the book down, you will realize that the more bugs that have found per line of code in a piece of software, the less buggy the software can be said to be. An excellent read for anyone who likes to ruminate on the dynamics of group software development. It's convinced me to try out their cross-platform tool, &lt;a href='http://www.smartbearsoftware.com/codecollab.php'&gt;Code Collaborator&lt;/a&gt;; here's looking forward to it.</description><link>http://www.johnsenner.com/blog/2008/02/book-review.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-5544777723274277391</guid><pubDate>Mon, 28 Jan 2008 04:25:00 +0000</pubDate><atom:updated>2008-02-03T16:38:36.614-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Programming</category><category domain='http://www.blogger.com/atom/ns#'>Books</category><title>Book Review: Beautiful Code</title><description>&lt;a href="http://books.google.com/books?id=gJrmszNHQV4C"&gt;Beautiful Code&lt;br /&gt;Compiled by Andy Oram, Greg Wilson&lt;/a&gt;&lt;br /&gt;&lt;img src='http://www.johnsenner.com/etc/stars3.gif'&gt;&lt;br /&gt;&lt;blockquote&gt;A diamond is a chunk of coal that is made good under pressure. - Henry Kissinger&lt;/blockquote&gt;&lt;br /&gt;Beautiful Code is another non-animal O'Reilly volume, with high aspirations. As the sleeve submits: "How do the experts solve difficult problems in software development?" If this book had been able to answer that question, reading it would be a head-spinning experience indeed.&lt;br /&gt;&lt;br /&gt;The book's chapters are each the domain of a different prominent software developer or writer, and several are elegant outlines of what is unarguably some of the best code out there - &lt;a href='http://httpd.apache.org/'&gt;Apache Webserver&lt;/a&gt;, &lt;a href='http://en.wikipedia.org/wiki/Quicksort'&gt;Quicksort&lt;/a&gt;, and the &lt;a href='http://www.python.org/'&gt;Python&lt;/a&gt; interpreter. Ostensibly, the authors are talented beyond measure; with a lack of a cohesive theme, a unified structure, or an overall purpose the book quickly becomes a showcase of beautiful code-essays submitted by thirty-couple completely dissonant geniuses. The fact that the book still contains not much other than what it claims is no invitation for criticism. If you want to see real kung fu code, this is your book.&lt;br /&gt;&lt;br /&gt;The potential disparities hide in between the lines, where compilers do not tarry. Few of the essays touch on why the code is elegant, or how it got to be the way it was. Most of them wander around what problem is solved by the code, some delve deep into the minutiae of the problem, and a few contain no code at all. This last set could have been chosen to present a semblance of organization, could have pulled loose ends together and formed some conceptual continuity among a wide variety of articles, but in their current states and places even these well-intended 'theories of code beauty' ruminations are ineffectual.&lt;br /&gt;&lt;br /&gt;If a computer scientist was so riveted by unpolished essays surrounding the world's best algorithmic hacks that they failed to notice that no new information was gained, no statements beyond the cold, functional truth were made, no concessions given to that imaginative side of the brain that, when it is given the occasional chance to influence the gnarled digits of a perl hacker, results in that big win - the one sought after in wake and sleep for a week - and doubles the maintainability and efficiency of some project, then that reader will be satisfied to the fullest extent. &lt;br /&gt;&lt;br /&gt;For the rest of us, this book was no great failure but no revelation, and is deserving of its place on the shelf. And the geeks among geeks, the hackers who would have found a book closer to &lt;a&gt;Hackers and Painters&lt;/a&gt;, held it and shook it until C code fell out, will no doubt appreciate this book.</description><link>http://www.johnsenner.com/blog/2008/01/book-review-beautiful-code.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-8619618560040898696</guid><pubDate>Sun, 20 Jan 2008 21:49:00 +0000</pubDate><atom:updated>2008-02-03T16:38:36.615-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Books</category><category domain='http://www.blogger.com/atom/ns#'>SQL</category><title>Book Review: The Art of SQL</title><description>&lt;a href="http://books.google.com/books?id=HfcMDvxb43AC"&gt;The Art of SQL&lt;br /&gt;By Stéphane Faroult, Peter Robson&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.johnsenner.com/etc/stars5.gif"&gt;&lt;blockquote&gt;As we know, there are known knowns. There are things we know we know. We also know there are known unknowns. That is to say we know there are some things we do not know. But there are also unknown unknowns, the ones we don't know we don't know. - Donald Rumsfeld (Sun Tzu's second millennium CE incarnation.)&lt;/blockquote&gt;The Art of SQL is no &lt;a href="http://www.google.com/books?id=WuxxvP7RZasC"&gt;Web Database Applications with PHP and MySQL&lt;/a&gt;. It's far beyond that; it is well past even &lt;a href="http://www.google.com/books?id=98qJsiUvW1IC"&gt;Practical PostgreSQL&lt;/a&gt; and the &lt;a href="http://www.google.com/books?id=Hox-BRNPeboC"&gt;SQL Cookbook&lt;/a&gt;. Not only is it written for the experienced user, it is for the &lt;i&gt;ambitious&lt;/i&gt; user, the one who wakes up with a smile trying to retain the &lt;i&gt;n&lt;/i&gt;-dimensional join from their dream.&lt;br /&gt;&lt;br /&gt;The excellent style of writing used is above O'Reilly par. Not only is the text concise and well edited, the book is organized very well. In a graceful and creative turn, the presentational style of the book is allusive to &lt;a href="http://classics.mit.edu/Tzu/artwar.html"&gt;Sun Tzu's Art of War&lt;/a&gt;; query diagrams, sample datasets, and business cases are rendered as plans of attack and battle formations in the Napoleonic era. The result is phenomenal, and structurally, this book is groundbreaking - no computer science book I've read prior has had so much attention paid to making its content engaging and enjoyable to consume - this is certainly not necessary, but it is a great indication of the overall quality of the book.&lt;br /&gt;&lt;br /&gt;The book is SQL implementation agnostic and assumes the reader is interested in data integrity, extensibility, and scalability in the database. It assumes that you care, or want to care, whether you're following &lt;a href="http://en.wikipedia.org/wiki/Third_normal_form"&gt;third normal form&lt;/a&gt;. In fact, the implied understanding here is that an earnest investment in normalization will pay dividends in optimization. Only if you're willing to perspire for it - it is an art, not a school of magic.&lt;br /&gt;&lt;br /&gt;The SQL enthusiast will learn a lot from this book - perhaps a baffling amount. I absolutely cannot recommend it highly enough. It has been some time coming, the sort of thing that is an obvious boon when one considers that our 'art' has only been around for a few decades. We'll get it right eventually, inspired by those like Faroult and Robson.</description><link>http://www.johnsenner.com/blog/2008/01/book-review-art-of-sql.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-2427990302818502342</guid><pubDate>Mon, 07 Jan 2008 05:20:00 +0000</pubDate><atom:updated>2008-01-12T14:57:37.349-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Symbols</category><category domain='http://www.blogger.com/atom/ns#'>Programming</category><title>Mathematical Symbols</title><description>Mathematics, the study of totally constructed concepts like numbers, time, logic and all that, is the closest thing we've got to a universal language. Highly intuitive symbols are included, if not universal, and let me point out a few and critique them:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;img src='http://upload.wikimedia.org/wikipedia/en/f/fe/U%2B23CD.gif'&gt;&lt;b&gt;&lt;/b&gt; 'Square foot', exactly like it says on the box. Not that a foot is a good unit of measurement - a human foot is of course not a standard base for a system the way &lt;a href='http://en.wikipedia.org/wiki/Metric_system#Replicable'&gt;the size of our watery Earth&lt;/a&gt; is - but this symbol is excellent in its simplicity and expressiveness anyway.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;ang;&lt;b&gt;&lt;/b&gt; An 'angle'! Very nice. Just a drawing of the referenced thing. Conveniently, this one is extensible - you can mark it up to show that you mean the measure or that your angle bisects another one, or what three points describe it.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;fnof;&lt;b&gt;&lt;/b&gt; 'Function of', pretty daft as it's just an initialization. At least it's scripted, so you can tell it's not &lt;i&gt;just&lt;/i&gt; an F, I guess. This is precisely the kind of thing we should stay away from. A better symbol? &amp;#9761; would at least show the process of something undergoing a path, &lt;a href='http://upload.wikimedia.org/wikipedia/en/b/b3/U%2B2346.gif'&gt;&amp;#x2346;&lt;/a&gt; shows a thing passing a threshold. &lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;infin;&lt;b&gt;&lt;/b&gt; 'Infinity'. Well, I guess this one works. I've never been a huge fan of the '&lt;a href='http://en.wikipedia.org/wiki/Infinity#Infinity_symbol'&gt;lazy eight&lt;/a&gt;', as it in no way indicates to me an unlimited amount of anything. But as an enormously abstract concept, it's not easy to symbolize without encoding, so this arbitrary, somewhat rationalizable symbol (it keeps going!) works well enough.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;Delta;&lt;b&gt;&lt;/b&gt; 'Delta', commonly indicating a change in something over time. Pragmatically, an arrow describing the path of the sun, phases of the moon, tides, plants, something like that would be better. However, I &lt;i&gt;do&lt;/i&gt; think it's great that, in English, a &lt;a 'http://en.wikipedia.org/wiki/River_delta'&gt;delta&lt;/a&gt; is a change in a river over time. A &lt;i&gt;triangle&lt;/i&gt; shaped change. Is this intuitive? No. But for being referential in form, it's way better than 'Function of'.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;not;&lt;b&gt;&lt;/b&gt; 'Not'. One of the absolute simplest, and best. One has taken the straight tally representing 'a thing', and broken it in just such a way that negates it in form, function, and concept. One of the most intuitive, least encoded symbols we have.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;and;&lt;b&gt;&lt;/b&gt; 'And' shows the logical joining of two concepts into a higher, compound version. + is still useful as it shows two tallies in combination, but rather than depicting them together, a&amp;and;b is clearly the union between. while it's not as intuitive as +, we at least have a demonstrative picture of a joining, more indicative of the idea that 'both of these are required'.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;or;&lt;b&gt;&lt;/b&gt; 'Or' is another logical operator, used as a&amp;or;b. The deficit of this and &amp;and; is that, while they're wonderful in their logical inversion of one another, they are not referential of anything, and require some prior knowledge of their meaning. Good, but not perfect.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;empty;&lt;b&gt;&lt;/b&gt; 'Null', a very difficult concept to represent in mathematics: a group of nothing. I'm very pleased with this one, which is so intuitive that it's more often reddened and superimposed on another symbol to show that it is not allowed. What a fantastic and practical use! Another, even more definite success where symbols are concerned.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&amp;there4;&lt;b&gt;&lt;/b&gt; Here's another terrific one. While not immediately intuitive, 'therefore' is an abstract concept. But if abstract concepts were shaped like dots, this symbol would show two of them with a third built on top, perfect units of reasoning being built on one another. Genius.&lt;/ul&gt;&lt;br /&gt;- &amp;and;&amp;or;</description><link>http://www.johnsenner.com/blog/2008/01/mathematical-symbols_06.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-6671791942264694538</guid><pubDate>Thu, 06 Dec 2007 22:24:00 +0000</pubDate><atom:updated>2008-01-08T19:36:34.939-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Symbols</category><title>Pictographic Encoding</title><description>&lt;img align='right' src='http://www.johnsenner.com/etc/addressbook.png'&gt;&lt;a href="http://en.wikipedia.org/wiki/Icon"&gt;Icons&lt;/a&gt;, so called because they're miniature depictions of what happens after you click them, are literal and potentially lossless signs. Direct pictographs! These are better for representing saints or images or objects, maybe even processes or maps, but not possible for abstract concepts. At right, a good icon for your address book application. But if you wanted to use it as a shortcut for 'import contents', it's not really literal anymore, just suggestive.&lt;br /&gt;&lt;br /&gt;I think we're better off considering icons a different set of symbols; symbols are by definition abstract stand-ins rather than direct representations. The line between the two isn't perfect; I'd like to share some groovy symbolic libraries that might straddle it.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;img align=left src="http://www.johnsenner.com/etc/birdy.png"&gt;&lt;a href="http://meta.wikimedia.org/wiki/WikiHiero/Syntax#Gardiner.27s_sign_list"&gt;Heiroglyphics&lt;/a&gt; - Yeah, there are pictogrammatic elements to it, but they're actually phonetic sketches made to document a verbal language. In other words, owls and crocodiles are really just letters.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;img align=left src="http://www.johnsenner.com/etc/zhong.gif"&gt;&lt;a href="http://en.wikipedia.org/wiki/Neolithic_signs_in_China"&gt;Asian characters&lt;/a&gt; - Asian languages have really interesting crossed and common inheritances, and the earlier parts, still largely preserved, are translations from pictographic languages. You can still tell this in certain symbols today, like in this Chinese character for middle.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;img align=left src="http://www.johnsenner.com/etc/codesflag.gif"&gt;&lt;a href="http://scoutingresources.org.uk/codes_naval.html"&gt;Naval Signals&lt;/a&gt; - totally encoded, but very widespread. I guess this is what words have to look like when they need to be seen from far away by strangers.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;img align=left src="http://www.johnsenner.com/etc/rocks.gif"&gt;&lt;a href="http://inquiry.net/outdoor/skills/b-p/signs.htm"&gt;Trail signs&lt;/a&gt; - about as iconological as can be got with sticks and rocks. The nature of these as a sculptural language made only from materials found on the trail is interesting itself, but there's something very cool about the actual symbols used, I think.&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;img align=left src="http://www.johnsenner.com/etc/dog.gif"&gt;&lt;a href="http://www.worldpath.net/~minstrel/hobosign.htm"&gt;Hobo signs&lt;/a&gt; - as the trail signs above but more concerned with the specific occupation of tramping, and with a more urban vocabulary. Specifically, there are a lot of symbols describing the likely reaction of nearby people to different methods of begging, and suggested tactics for succeeding at the same.&lt;br /&gt;&lt;/ul&gt;</description><link>http://www.johnsenner.com/blog/2008/01/intuitive-symbols.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-3186030710558408186</guid><pubDate>Mon, 26 Nov 2007 09:54:00 +0000</pubDate><atom:updated>2008-01-08T19:42:53.803-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Symbols</category><title>Getting The Point Across</title><description>Language is pretty fantastic as a way of symbolically encoding information into &lt;a href="http://en.wikipedia.org/wiki/Lexeme"&gt;lexemes&lt;/a&gt; and then written or verbal data. It's always telling when you learn another way in which culture and language are built around each other, as the translation (lossy compression) process forces the data a ceertain way. To put it another way, thoughtspace is way more infinite than wordspace, and it's hard to express ideas without distorting them a little bit in the telling.&lt;br /&gt;&lt;br /&gt;That said, even relatively simple and long-established ideas still get lost in the telling. We're certainly getting better at this; in the last few years usability has become a priority for &lt;a href='http://www.useit.com/'&gt;corporate&lt;/a&gt;, &lt;a href='http://www.hcii.cmu.edu/'&gt;academic&lt;/a&gt;, and &lt;a href='http://www.usability.gov/pdfs/updatedguidelines.html'&gt;governmental&lt;/a&gt; designers. Still, we haven't found a simple lexicon for symbols.&lt;br /&gt;&lt;br /&gt;So many of our signs have cultural or lexical meaning attached to them - really they're encoded and not everyone has the keys to get to the data inside, unless they have prior exposure to the symbols used. Yes, I have some examples!&lt;br /&gt;&lt;br /&gt;(At this time, please extinguish your cultural mind as far as possible, and use only  conscious reasoning for the remainder of this post.)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;img align='left' src="http://www.johnsenner.com/etc/faucet1.jpg" /&gt;Dig this faucet. You just got to a new country, and who knows whether cold is on the right or the left here? Good thing you read English, but if you didn't, you'd be out of luck. That's encoded data. (Also interesting: if instead of 'Hot' and 'Cold', it were heiroglyphics or kanji, would it be fixed? Maybe, if the characters you used weren't too lossy.)&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;img align='left' src="http://www.johnsenner.com/etc/faucet2.jpg" /&gt;It's obvious to us which of these is hot and which is cold, but that's because we've all agreed to the standard. But this is still encoded - hot water isn't actually red at all. One could make a case for this simple encoding, though - lakes are blue and coals are red - and it's a pretty good one.  There's simply a little bit of intuition and guesswork going on, but it might be necessary. The red/blue temperature grammar is a pretty common one, at any rate.&lt;/ul&gt;&lt;br /&gt;One totally culture-encoding free way of conveying information is to use an actual representation - the way some bus stops have a picture of a bus. Not easy mistaking that one. However, look what happens here - we'd have to show the water molecules vibrating in place, faster for the hot water, to show what the difference is in the physical world. Well, that assumes a significant amount of prior knowledge of physics, and more people in the world likely speak English than know very much about molecules. We could do it a lot of different ways, but I can't think of a perfect one, so comment if you were able to think of it.</description><link>http://www.johnsenner.com/blog/2007/11/getting-point-across.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-8622135784640572092</guid><pubDate>Thu, 15 Nov 2007 08:03:00 +0000</pubDate><atom:updated>2008-01-01T15:02:44.870-08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Symbols</category><title>Signs, Symbols, and Icons</title><description>The images below all express the same idea.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.johnsenner.com/etc/dice_icon.jpg"&gt;&lt;img src="http://www.johnsenner.com/etc/dice_symbol.jpg"&gt;&lt;img src="http://www.johnsenner.com/etc/dice_sign.jpg"&gt;&lt;br /&gt;&lt;br /&gt;Do these all communicate the exact same information? Which of these three are you most accustomed to seeing? Which would you prefer to have if you were chilling with someone who wasn't a native English speaker? If you were playing a game with a child? If you were inebriated? Seriously- these are all valid cases for usability.</description><link>http://www.johnsenner.com/blog/2007/03/signs-symbols-and-icons.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-3928097778287788682</guid><pubDate>Fri, 02 Nov 2007 05:35:00 +0000</pubDate><atom:updated>2007-11-01T03:03:38.787-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>OLPC</category><title>OLPC, Followup</title><description>As long as the world is enduring the perils of globalization (Potential disease outbreaks, religious conflict, more fast food on Earth) we may as well really make it worth our own while - the most effective means of production we've got is also the easiest to divide up and do as chunks in separate hemispheres. I'm aware that international outsourcing is already taking place; that there are call centers and Visual Basic shops in developing countries. I know the setup is not ideal- who would expect it to be at this point? Certainly not those paying for it. But it's a good start, and the quality of output will rapidly catch up.&lt;br /&gt;&lt;br /&gt;But isn't it a shame to move all those specialized jobs from the United States to a developing country? Absolutely not. The free market demands it, for one, and it's immensely useful for both American businesses and the global economy I glossed over just a moment ago. If you're not angry when your &lt;a href="http://www.apple.com/iphone/"&gt;iPhone&lt;/a&gt; is manufactured in China, why would you mind if it's programmed there too? I'm immensely pleased with the process. What the developing world craves is more development, and for that it needs to be transacted with freely. It's far easier to outsource informational tasks than manufacturing orders. I know some people have issues with this:&lt;br /&gt;&lt;br /&gt;If you feel protective of American jobs, how would you feel if your state passed a law that no business chartered within its borders was allowed to conduct business in neighboring states? That would harm both affected states and hamper the regional economy. This is a similar situation, if you're of the mind that people on different continents are as important as the ones who live across the street.&lt;br /&gt;&lt;br /&gt;Why is it that it's so important for this to occur? Wouldn't it be more desirable to our existing information economy for the second world to continue through the developmental epochs of subsistence agriculture into manufacturing before attempting to broker in information as we do? Absolutely not - any 'leap' over large-scale agriculture or crude manufacturing is desirable. Not only for the environment and public health, but for your own interests.&lt;br /&gt;&lt;br /&gt;Incidentally, this kind of information brokering has already occurred, where dollars are exchanged for foreign labor in fair markets.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.rentacoder.com/RentACoder/default.asp"&gt;Rent A Coder&lt;/a&gt; is a site where you can post software projects or offer to do them. This is different from &lt;a href="http://www.craigslist.org"&gt;Craigslist&lt;/a&gt; primarily in that coders attempt to underbid each other for the gig.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.chinesegoldfarmers.com/"&gt;Gold Farmers&lt;/a&gt; will spend hours playing games online so that they can sell you virtual stuff for $USD. Absurd, but completely rational, and a way for children to earn income in a place with no job market, while playing video games like children ought to be doing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mturk.com/mturk/welcome"&gt;Amazon's Mechanical Turk&lt;/a&gt; is a beautiful reduction of the information economy into nearly atomic pieces. You can earn seven cents by coming up with a sports &lt;a href="http://en.wikipedia.org/wiki/The_Turk"&gt;trivia&lt;/a&gt; question. One can take it as a suggestion that the third world is ready to enter the information age, and that we would all benefit from it.</description><link>http://www.johnsenner.com/blog/2007/11/olpc-followup.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-5993199679118371625</guid><pubDate>Tue, 23 Oct 2007 01:48:00 +0000</pubDate><atom:updated>2007-11-01T03:04:13.806-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>OLPC</category><title>OLPC FTW</title><description>We'll start with a classic:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Two men are standing beside the road watching the new backhoe dig a hole. "Look at that. Think of how many men with shovels could be working if we didn't have that thing," says the first man. The second one says, "Hey, think of how many men with spoons could be working if we didn't have the shovels!"&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Take the following with a grain of salt, as I'm no &lt;a href="http://www.amazon.com/Freakonomics-Economist-Explores-Hidden-Everything/dp/006073132X"&gt;Steven D. Levitt&lt;/a&gt;, nor a &lt;a href="http://www.amazon.com/Tipping-Point-Little-Things-Difference/dp/0316346624/ref=pd_bbs_2/104-8385141-3646304?ie=UTF8&amp;s=books&amp;qid=1193904705&amp;sr=1-2"&gt;Malcolm Gladwell&lt;/a&gt;, and certainly not any &lt;a href="http://books.google.com/books?id=9zo3HgAACAAJ&amp;dq=inauthor:Thomas+inauthor:L+inauthor:Friedman&amp;ei=hoopR9bKE56KpwK9ody0Dw"&gt;Thomas L. Friedman&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I think that the &lt;a href="http://laptop.org/"&gt;One Laptop Per Child&lt;/a&gt; program, an initiative to get easy-to-use, open source personal computers to children around the world, has the potential to completely change the world's economy for the better. As little economists, we're all taught somehow or another that:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tools have throughout human history multiplied our ability to accomplish tasks. &lt;a href="http://en.wikipedia.org/wiki/Technological_change#Economics"&gt;Technological change&lt;/a&gt; is responsible for the majority of our economic advancement over our ancestors.&lt;br /&gt;&lt;li&gt;The most advanced tools to date (that don't fly around in space or kill people) are computers, which create and distribute &lt;a href="http://google.com/"&gt;massive&lt;/a&gt; amounts of &lt;a href="http://en.wikipedia.org/wiki/Main_Page"&gt;information&lt;/a&gt; worldwide, and allow people to create and organize that information in useful ways to increase productivity.&lt;br /&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Division_of_labor"&gt;Specialization of Labor&lt;/a&gt; makes the members of a cooperative market more effective at creating wealth than the same number of people operating on their own.&lt;br /&gt;&lt;li&gt;A free labor market dictates the cost of labor in proportion to the need for that type of labor. Specialized skilled labor tends to be a non-commodity, and wages are higher for those working in specialized fields. This is why income and education are directly correlated.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;See where I'm going with this? Become a software developer. Just kidding; you can already do that if you want to, or you may have already. (If so, congratulations.) The important thing is that we get more software developers, more graphic artists and writers and musicians and paper pushers and bean counters. Let's let everyone have a computer to write instructions for and pay the ones who can do it in a useful capacity.</description><link>http://www.johnsenner.com/blog/2007/10/olpc-ftw.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4915599740290456416.post-1952457691144470539</guid><pubDate>Mon, 22 Oct 2007 08:23:00 +0000</pubDate><atom:updated>2007-10-22T01:48:38.842-07:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>SQL</category><category domain='http://www.blogger.com/atom/ns#'>Puzzles</category><title>Eight Queens in SQL</title><description>I told my &lt;a href="http://www.designclinicals.com/"&gt;co-workers&lt;/a&gt; last week that SQL could help one figure out, among other puzzles, &lt;a href="http://en.wikipedia.org/wiki/Eight_queens_puzzle"&gt;Eight Queens&lt;/a&gt;. I'm sure they believed me, but I couldn't find it on the internets so I wrote it. Here it is, just run it on your database of choice:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;--SQL Eight Queens&lt;br /&gt;&lt;br /&gt;--Create the board:&lt;br /&gt;CREATE TABLE rows (&lt;br /&gt;      id    integer PRIMARY KEY); &lt;br /&gt;INSERT INTO rows (id) VALUES (1),(2),(3),(4),(5),(6),(7),(8);&lt;br /&gt; &lt;br /&gt;CREATE TABLE cols (&lt;br /&gt;       id    integer PRIMARY KEY); &lt;br /&gt;INSERT INTO cols (id) VALUES (1),(2),(3),(4),(5),(6),(7),(8);&lt;br /&gt;&lt;br /&gt;--Get a set of queens:&lt;br /&gt;SELECT&lt;br /&gt;cols.id AS col1, rows.id AS row1,&lt;br /&gt;col2, row2,&lt;br /&gt;col3, row3,&lt;br /&gt;col4, row4,&lt;br /&gt;col5, row5,&lt;br /&gt;col6, row6,&lt;br /&gt;col7, row7,&lt;br /&gt;col8, row8&lt;br /&gt;FROM rows, cols, (SELECT&lt;br /&gt; col3, row3,&lt;br /&gt; col4, row4,&lt;br /&gt; col5, row5,&lt;br /&gt; col6, row6,&lt;br /&gt; col7, row7,&lt;br /&gt; col8, row8,&lt;br /&gt; rows.id AS row2, cols.id AS col2&lt;br /&gt; FROM rows, cols, (SELECT&lt;br /&gt;  col4, row4,&lt;br /&gt;  col5, row5,&lt;br /&gt;  col6, row6,&lt;br /&gt;  col7, row7,&lt;br /&gt;  col8, row8,&lt;br /&gt;  rows.id AS row3, cols.id AS col3&lt;br /&gt;  FROM rows, cols, (SELECT&lt;br /&gt;   col5, row5,&lt;br /&gt;   col6, row6,&lt;br /&gt;   col7, row7,&lt;br /&gt;   col8, row8,&lt;br /&gt;   rows.id AS row4, cols.id AS col4&lt;br /&gt;   FROM rows, cols, (SELECT&lt;br /&gt;    col6, row6,&lt;br /&gt;    col7, row7,&lt;br /&gt;    col8, row8,&lt;br /&gt;    rows.id AS row5, cols.id AS col5&lt;br /&gt;    FROM rows, cols, (SELECT&lt;br /&gt;     col7, row7,&lt;br /&gt;     col8, row8,&lt;br /&gt;     rows.id AS row6, cols.id AS col6&lt;br /&gt;     FROM rows, cols, (SELECT&lt;br /&gt;      col8, row8,&lt;br /&gt;      rows.id AS row7, cols.id AS col7&lt;br /&gt;      FROM rows, cols, (SELECT&lt;br /&gt;       rows.id AS row8, cols.id AS col8&lt;br /&gt;       FROM rows, cols)&lt;br /&gt;       AS b8&lt;br /&gt;       WHERE cols.id != col8 AND rows.id != row8 --This checks rook moves&lt;br /&gt;       AND (cols.id + rows.id != col8 + row8) --This checks bishop moves&lt;br /&gt;       AND (cols.id - rows.id != col8 - row8)&lt;br /&gt;       ) AS b7&lt;br /&gt;      WHERE cols.id != col8 AND rows.id != row8&lt;br /&gt;      AND cols.id != col7 AND rows.id != row7&lt;br /&gt;      AND (cols.id + rows.id != col8 + row8) AND (cols.id - rows.id != col8 - row8)&lt;br /&gt;      AND (cols.id + rows.id != col7 + row7) AND (cols.id - rows.id != col7 - row7)&lt;br /&gt;     ) AS b6&lt;br /&gt;     WHERE cols.id != col8 AND rows.id != row8&lt;br /&gt;     AND cols.id != col7 AND rows.id != row7&lt;br /&gt;     AND cols.id != col6 AND rows.id != row6&lt;br /&gt;     AND (cols.id + rows.id != col8 + row8) AND (cols.id - rows.id != col8 - row8)&lt;br /&gt;     AND (cols.id + rows.id != col7 + row7) AND (cols.id - rows.id != col7 - row7)&lt;br /&gt;     AND (cols.id + rows.id != col6 + row6) AND (cols.id - rows.id != col6 - row6)&lt;br /&gt;    ) AS b5&lt;br /&gt;    WHERE cols.id != col8 AND rows.id != row8&lt;br /&gt;    AND cols.id != col7 AND rows.id != row7&lt;br /&gt;    AND cols.id != col6 AND rows.id != row6&lt;br /&gt;    AND cols.id != col5 AND rows.id != row5&lt;br /&gt;    AND (cols.id + rows.id != col8 + row8) AND (cols.id - rows.id != col8 - row8)&lt;br /&gt;    AND (cols.id + rows.id != col7 + row7) AND (cols.id - rows.id != col7 - row7)&lt;br /&gt;    AND (cols.id + rows.id != col6 + row6) AND (cols.id - rows.id != col6 - row6)&lt;br /&gt;    AND (cols.id + rows.id != col5 + row5) AND (cols.id - rows.id != col5 - row5)&lt;br /&gt;   ) AS b4&lt;br /&gt;   WHERE cols.id != col8 AND rows.id != row8&lt;br /&gt;   AND cols.id != col7 AND rows.id != row7&lt;br /&gt;   AND cols.id != col6 AND rows.id != row6&lt;br /&gt;   AND cols.id != col5 AND rows.id != row5&lt;br /&gt;   AND cols.id != col4 AND rows.id != row4&lt;br /&gt;   AND (cols.id + rows.id != col8 + row8) AND (cols.id - rows.id != col8 - row8)&lt;br /&gt;   AND (cols.id + rows.id != col7 + row7) AND (cols.id - rows.id != col7 - row7)&lt;br /&gt;   AND (cols.id + rows.id != col6 + row6) AND (cols.id - rows.id != col6 - row6)&lt;br /&gt;   AND (cols.id + rows.id != col5 + row5) AND (cols.id - rows.id != col5 - row5)&lt;br /&gt;   AND (cols.id + rows.id != col4 + row4) AND (cols.id - rows.id != col4 - row4)&lt;br /&gt;  ) AS b3&lt;br /&gt;  WHERE cols.id != col8 AND rows.id != row8&lt;br /&gt;  AND cols.id != col7 AND rows.id != row7&lt;br /&gt;  AND cols.id != col6 AND rows.id != row6&lt;br /&gt;  AND cols.id != col5 AND rows.id != row5&lt;br /&gt;  AND cols.id != col4 AND rows.id != row4&lt;br /&gt;  AND cols.id != col3 AND rows.id != row3&lt;br /&gt;  AND (cols.id + rows.id != col8 + row8) AND (cols.id - rows.id != col8 - row8)&lt;br /&gt;  AND (cols.id + rows.id != col7 + row7) AND (cols.id - rows.id != col7 - row7)&lt;br /&gt;  AND (cols.id + rows.id != col6 + row6) AND (cols.id - rows.id != col6 - row6)&lt;br /&gt;  AND (cols.id + rows.id != col5 + row5) AND (cols.id - rows.id != col5 - row5)&lt;br /&gt;  AND (cols.id + rows.id != col4 + row4) AND (cols.id - rows.id != col4 - row4)&lt;br /&gt;  AND (cols.id + rows.id != col3 + row3) AND (cols.id - rows.id != col3 - row3)&lt;br /&gt; ) AS b2&lt;br /&gt; WHERE cols.id != col8 AND rows.id != row8&lt;br /&gt; AND cols.id != col7 AND rows.id != row7&lt;br /&gt; AND cols.id != col6 AND rows.id != row6&lt;br /&gt; AND cols.id != col5 AND rows.id != row5&lt;br /&gt; AND cols.id != col4 AND rows.id != row4&lt;br /&gt; AND cols.id != col3 AND rows.id != row3&lt;br /&gt; AND cols.id != col2 AND rows.id != row2&lt;br /&gt; AND (cols.id + rows.id != col8 + row8) AND (cols.id - rows.id != col8 - row8)&lt;br /&gt; AND (cols.id + rows.id != col7 + row7) AND (cols.id - rows.id != col7 - row7)&lt;br /&gt; AND (cols.id + rows.id != col6 + row6) AND (cols.id - rows.id != col6 - row6)&lt;br /&gt; AND (cols.id + rows.id != col5 + row5) AND (cols.id - rows.id != col5 - row5)&lt;br /&gt; AND (cols.id + rows.id != col4 + row4) AND (cols.id - rows.id != col4 - row4)&lt;br /&gt; AND (cols.id + rows.id != col3 + row3) AND (cols.id - rows.id != col3 - row3)&lt;br /&gt; AND (cols.id + rows.id != col2 + row2) AND (cols.id - rows.id != col2 - row2)&lt;br /&gt; LIMIT 1337; --Arbitrary, you can let yours go all day.&lt;br /&gt;--Note that this won't return very many unique solutions (unless your queens have numbers written on them)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I realize that this could be more elegant by trimming out the hard-coded values, and that I could set it up for &lt;i&gt;N&lt;/i&gt; queens, but I got excited when it ran for 8. I wrote a nonrecursive brute-force version that ended as expected, with me sighing and restarting Postgres. If I go and edit it, it'll certainly be to put the results in a human-readable form. Because it's really cool, but isn't smart enough to choose good placements ahead of time, I give myself 7 Queens out of a possible 8:&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;img src="http://www.johnsenner.com/etc/queenband.jpg" border=1&gt;&lt;img src="http://www.johnsenner.com/etc/queenband.jpg" border=1&gt;&lt;img src="http://www.johnsenner.com/etc/queenband.jpg" border=1&gt;&lt;img src="http://www.johnsenner.com/etc/queenband.jpg" border=1&gt;&lt;br /&gt;&lt;img src="http://www.johnsenner.com/etc/queenband.jpg" border=1&gt;&lt;img src="http://www.johnsenner.com/etc/queenband.jpg" border=1&gt;&lt;img src="http://www.johnsenner.com/etc/queenband.jpg" border=1&gt;&lt;img src="http://www.johnsenner.com/etc/queenband2.jpg" border=1&gt;&lt;br /&gt;&lt;/span&gt;</description><link>http://www.johnsenner.com/blog/2007/10/eight-queens-in-sql.html</link><author>john.senner@gmail.com (John)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item></channel></rss>