Toolness https://www.toolness.com/wp/ Recent content on Toolness Hugo -- gohugo.io en &copy; <a href="https://github.com/toolness">Atul Varma</a> 2021 2021年12月30日 00:00:00 +0000 Exercise-friendly Gaming https://www.toolness.com/wp/post/exercise-friendly-gaming/ 2021年12月30日 00:00:00 +0000 https://www.toolness.com/wp/post/exercise-friendly-gaming/ <p>Over the past several years, I&rsquo;d been watching <a href="https://www.toolness.com/wp/post/an-ode-to-youtube-recs/">educational YouTube videos</a> while on an elliptical in a gym. During the pandemic, however, gyms closed down, and I had to figure out what to do.</p> <p>Late last year I bought a <a href="https://www.amazon.com/gp/product/B007595TKU/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&amp;psc=1">cheap exercise bike</a> that I&rsquo;m actually very satisfied with. Instead of watching videos on my phone or tablet, I can just roll my bike in front of my computer monitor and watch whatever I want there.</p> <p>This was a great replacement for my usual routine with the elliptical, but early this year I realized I could actually play video games while on the bike, too. The only requirement was that the games be playable with a controller.</p> <p></p> My First Quake Level https://www.toolness.com/wp/post/my-first-quake-level/ 2021年10月11日 00:00:00 +0000 https://www.toolness.com/wp/post/my-first-quake-level/ <blockquote> Some people are also natural tool builders instead of game builders. For them, the game is the reason for building game engines and tools, not the other way around, and their ultimate dream is to build engines and tools that are so efficient, so optimized, and so friendly that the game practically builds itself. <p> <cite>&mdash;Derek Yu, <a href="https://bossfightbooks.com/products/spelunky-by-derek-yu">Spelunky</a></cite> </p> </blockquote> <p>I have a tendency to drift towards coding in virtually any situation, even ones that aren&rsquo;t initially technological in nature. One problem with this approach, as Derek Yu continues to write in <em>Spelunky</em>, is this:</p> <blockquote> <p>To them, the engine itself is a work of art, too, and I’m inclined to agree. In practice, though, it’s easy for someone like this to noodle on their game engine ad infinitum.</p> </blockquote> <p>This is precisely my problem, and it&rsquo;s part of why despite being very excited about game development as a kid, I never <em>finished</em> any of the games I started making. I never really let myself have fun with game <em>design</em> because I was so preoccupied with building engines and tooling.</p> <p>One of the things that attracted me to building a Quake level, though, was that&ndash;if I set the right constraints for myself&ndash;it would <em>force</em> me to focus on design. As I described in my <a href="https://www.toolness.com/wp/post/the-tools-of-level-design/">previous blog post</a>, the tools already existed and were easy and fun to use. I just needed to take the time to actually <em>design</em> something.</p> <p></p> The Tools of Level Design https://www.toolness.com/wp/post/the-tools-of-level-design/ 2021年10月08日 00:00:00 +0000 https://www.toolness.com/wp/post/the-tools-of-level-design/ <blockquote> If you had asked me about Quake a few years ago, I would've made a weird farting sound with my mouth. <p> <cite>&mdash;Robert Yang, <a href="https://www.rockpapershotgun.com/quake-renaissance-how-to-start-playing-quake">Quake Renaissance: how to start playing original Quake today</a></cite> </p> </blockquote> <p>This first sentence from Robert Yang&rsquo;s final article on <em>The Quake Renaissance</em> resonated with me. Only unlike the author, I didn&rsquo;t know anything about what had been going on in the Quake modding world since I last played the game in the late 1990s&ndash;and while I enjoyed it multiplayer, I had always wrinkled my nose at its palette of muted browns and greens.</p> <p>Reading Yang&rsquo;s <a href="https://www.rockpapershotgun.com/quake-renaissance-a-short-history-of-25-years-of-quake-modding">short history of 25 years of Quake modding</a> was inspiring, though, and its high praise for <a href="https://trenchbroom.github.io/">TrenchBroom</a>, a newer open-source level editor renowned for its ease of use, piqued my interest.</p> <p>Well, that&rsquo;s a bit inaccurate: my interest had actually been piqued several months ago.</p> <p></p> Tilt https://www.toolness.com/wp/post/tilt/ 2021年6月18日 14:55:48 -0400 https://www.toolness.com/wp/post/tilt/ <p>I recently found Maria Konnikova&rsquo;s <a href="https://www.mariakonnikova.com/books/the-biggest-bluff/">The Biggest Bluff</a> lying on a stoop and decided to pick it up.</p> <p>It&rsquo;s a compelling read. One of the chapters that particularly resonated with me described a concept called <em>tilt</em>, which is that "you&rsquo;re letting emotions—incidental ones that aren&rsquo;t actually integral to your decision process—affect your decision making" (page 253). This is something I&rsquo;ve experienced a lot, particularly when things don&rsquo;t go as I expect them to.</p> <p></p> The Stories Streets Tell https://www.toolness.com/wp/post/paint-manhattan-circa-1799/ 2020年1月29日 13:06:01 -0500 https://www.toolness.com/wp/post/paint-manhattan-circa-1799/ <blockquote> Those who saw him hushed. On Church Street. Liberty. Cortlandt. West Street. Fulton. Vesey. <p> <cite data-page="3">&mdash;Colum McCann, <a href="https://en.wikipedia.org/wiki/Let_the_Great_World_Spin">Let The Great World Spin</a></cite> </p> </blockquote> <p>Despite having lived in New York City for most of the 2010s and worked in Lower Manhattan for a few of them, I still didn&rsquo;t know where these streets were when I was reading Colum McCann&rsquo;s novel at the end of 2019.</p> <p>Knowing the names of a city&rsquo;s streets has always been meaningful to me, despite its waning utility. But aside from being useful if the internet happens to be down or if one&rsquo;s GPS is on the fritz, streets somehow make me feel <em>connected</em> to a city in a way that I find important. The denizens of a place have so little in common with one another aside from their shared geography, and it sometimes disappoints me that the simple act of asking for directions is a dwindling reason to have a conversation in the age of the smartphone. But at least it&rsquo;s still a valid one.</p> <p></p> An ode to YouTube's recommendation algorithm https://www.toolness.com/wp/post/an-ode-to-youtube-recs/ 2018年12月29日 06:09:00 -0500 https://www.toolness.com/wp/post/an-ode-to-youtube-recs/ Much has been said about the harmful effects of YouTube&rsquo;s recommendation algorithm, from Zeynep Tufecki&rsquo;s We&rsquo;re building a dystopia just to make people click on ads to James Bridle&rsquo;s Something is wrong on the internet. While these are very important (and disturbing) analyses that need to be acknowledged, this post isn&rsquo;t about that. It&rsquo;s about my personal experience with YouTube&rsquo;s recommendation engine, which has been overwhelmingly positive, largely due to the kind of content I constrain myself to watching while on the site. PyCon 2017 https://www.toolness.com/wp/post/pycon-2017/ 2017年5月23日 09:23:46 -0700 https://www.toolness.com/wp/post/pycon-2017/ <p>I recently attended <a href="https://us.pycon.org/2017/">PyCon</a> for the first time in several years and thought I&rsquo;d write a bit about my favorite sessions, the <a href="https://www.youtube.com/channel/UCrJhliKNQ8g0qoE_zvL8eVg">videos</a> of which are already online.</p> <p></p> Audm https://www.toolness.com/wp/post/audm/ 2017年5月15日 21:20:21 -0400 https://www.toolness.com/wp/post/audm/ <p>For the past several months, I&rsquo;ve been complementing my <a href="https://www.toolness.com/wp/wp/2013/09/audio-things/">podcast regimen</a> with narrated long-form journalism via an excellent new service called <a href="https://www.audm.com/">Audm</a>.</p> <p></p> Eviscerated by Spammers https://www.toolness.com/wp/post/eviscerated-by-spammers/ 2017年5月14日 06:18:08 -0400 https://www.toolness.com/wp/post/eviscerated-by-spammers/ <p>My blog was gutted by spammers.</p> <p>This has happened before, because I&rsquo;m apparently not very good at keeping my Wordpress installation up-to-date and secure. Only before, the spammers who hacked into my blog to pepper ads in its innards only modified PHP templates, and those weren&rsquo;t too hard to fix.</p> <p>This time, though, they came for the database.</p> <p></p> My First Elm App https://www.toolness.com/wp/2017/01/my-first-elm-app/ 2017年1月16日 00:00:00 +0000 https://www.toolness.com/wp/2017/01/my-first-elm-app/ <p>I recently wrote my first application in <a href="http://elm-lang.org">Elm</a>, which is promoted as a &ldquo;delightful language for reliable webapps&rdquo;.</p> <p>The application is an <a href="https://toolness.github.io/accessible-color-matrix/">accessible color palette builder</a>, which builds on the excellent design of the <a href="https://pages.18f.gov/brand/color-palette/">18F Visual Identity Guide</a> to provide visual designers with real-time feedback on the accessibility of their palettes:</p> <p><a href="https://toolness.github.io/accessible-color-matrix/"><img src="https://www.toolness.com/wp/wordpress-uploads/2017/01/accessible-color-matrix-337x440.jpg" alt="Screenshot of the accessible color palette builder application" width="337" height="440" class="aligncenter size-medium wp-image-1886" /></a></p> <p></p> Fun with TypeScript https://www.toolness.com/wp/post/fun-with-typescript/ 2016年12月09日 00:00:00 +0000 https://www.toolness.com/wp/post/fun-with-typescript/ <p>I&rsquo;ve written about TypeScript in the past for my <a href="http://processing.toolness.org/general/2016/03/16/typescript-to-the-rescue.html">p5 friendly error fellowship</a>, and at a coworker&rsquo;s encouragement, I made a series of four YouTube videos, totalling about 12 minutes in length, that attempt to provide a quick survey of what I like most about the tool.</p> <p><a href="https://www.youtube.com/watch?v=2WCebm_1Zjo&amp;list=PL79r88piDzwZVwCI_26T3ZjC3xKvQLgjh&amp;index=1">You can view the TypeScript videos here.</a></p> <p></p> Pode, An Accessible Code Editor https://www.toolness.com/wp/post/pode-an-accessible-code-editor/ 2016年7月19日 00:00:00 +0000 https://www.toolness.com/wp/post/pode-an-accessible-code-editor/ <p>My colleague Claire Kearney-Volpe and I have recently been co-teaching HTML and CSS to students who are visually impaired.</p> <p>One of the benefits of learning coding today is the fact that it can be done without having to install anything: using sites like JS Bin, CodePen, and Mozilla Thimble, people can tinker with code on their web browser, and even publish it instantly online with the click of a button.</p> <p>Unfortunately, however, these sites are inaccessible to screen reader users.</p> <p></p> Embeddable p5 Learning Sandboxes https://www.toolness.com/wp/post/p5-widget/ 2016年4月27日 00:00:00 +0000 https://www.toolness.com/wp/post/p5-widget/ <p>I&rsquo;ve recently been helping my colleague Taeyoon Choi with his series of <a href="http://taeyoonchoi.com/signing-coders-1/">Signing Coders workshops</a>, in which we&rsquo;ve been teaching students who are hearing-impaired how to code using <a href="https://p5js.org/">p5.js</a>.</p> <p>One of the challenges Taeyoon faced in writing his computer-based learning activities was providing students with a simple, welcoming coding environment in which they could tinker with example p5 sketches without fear, embedded in the context of his curriculum.</p> <p></p> Passage, Emscriptened https://www.toolness.com/wp/post/passage-emscriptened/ 2016年2月01日 00:00:00 +0000 https://www.toolness.com/wp/post/passage-emscriptened/ <p>A friend and I were recently reminscing about a poignant 2007 game by Jason Rohrer called <em>Passage</em>.</p> <p>It&rsquo;s hard to describe the game without spoiling anything, but since it literally takes five minutes to play, I encourage you to <a href="http://passage.toolness.org/">play it online right now</a>.</p> <p>The thing is, until today, you <em>couldn&rsquo;t</em> play it online.</p> <p></p> Adventures in Python Core Dumping https://www.toolness.com/wp/post/adventures-in-python-core-dumping/ 2016年1月16日 00:00:00 +0000 https://www.toolness.com/wp/post/adventures-in-python-core-dumping/ <p>After watching Bryan Cantrill&rsquo;s presentation on <a href="https://www.youtube.com/watch?v=sYQ8j02wbCY">Running Aground: Debugging Docker in Production</a> I got all excited (and strangely nostalgic) about the possibility of core-dumping server-side Python apps whenever they go awry. This would <em>theoretically</em> allow me to fully inspect the state of the program at the point it exploded, rather than relying solely on the information of a stack trace.</p> <p>I decided to try exploring a core dump on my own by writing a simple Python script that generated one.</p> <p></p> Discovering Accessibility https://www.toolness.com/wp/2015/08/discovering-accessibility/ 2015年8月10日 00:00:00 +0000 https://www.toolness.com/wp/2015/08/discovering-accessibility/ <p>My final project working at the Mozilla Foundation was <a href="http://teach.mozilla.org/">teach.mozilla.org</a>, which was the first content-based website I&rsquo;ve helped create in quite some time. During the site&rsquo;s development, I finally gave myself the time to learn about a practice I&rsquo;d been procrastinating to learn about for an embarrassingly long time: accessibility.</p> <p></p> On Gaming And Media Narratives https://www.toolness.com/wp/2014/11/on-gaming-and-media-narratives/ 2014年11月29日 00:00:00 +0000 https://www.toolness.com/wp/2014/11/on-gaming-and-media-narratives/ <p>On December 13, 2013, I sent the following email to several of my friends who play videogames:</p> <blockquote> <p>Hey, if you're receiving this it's because you're on my Steam friends list. I don't send spam out often but right now I am frustrated with the collective hatred of the internet and this is the only way I can think of fighting back.</p> <p>Earlier this year, I played a web-based game called <a href="http://depressionquest.com/">Depression Quest</a>. It's not particularly "fun", because it's about depression, but it is very good at building awareness about, and empathy for, a serious mental condition.</p> <p>The creator happens to be a woman and has been <a href="http://indiestatik.com/2013/12/13/female-game-developers/">harassed by the internet</a>. The game, while free, is trying to get on Steam and a bunch of internet assholes are down-voting the game because misogyny.</p> <p>So, if you either like the premise of the game or despise misogyny (or both!), I encourage you to vote for the game on Steam Greenlight using the link below:</p> <a href="http://steamcommunity.com/sharedfiles/filedetails/?id=200770535">http://steamcommunity.com/sharedfiles/filedetails/?id=200770535</a> <p>That is all. Thanks for reading this, and apologies if this is spam to you.</p> </blockquote> <p>The above email was the only &ldquo;mass email&rdquo; I&rsquo;ve sent in at least the past two years. I was pretty frustrated at the time.</p> <p></p> Does Privacy Matter? https://www.toolness.com/wp/2014/01/does-privacy-matter/ 2014年1月27日 00:00:00 +0000 https://www.toolness.com/wp/2014/01/does-privacy-matter/ <p>A few years ago, I made a tool called <em>Collusion</em> in an attempt to better understand how websites I&rsquo;d never even heard of were tracking my adventures across the Internet.</p> <p></p> Clarifying Coding https://www.toolness.com/wp/2013/12/clarifying-coding/ 2013年12月10日 00:00:00 +0000 https://www.toolness.com/wp/2013/12/clarifying-coding/ <p>With the upcoming <a href="http://code.org/educate/hoc">Hour of Code</a>, there&rsquo;s been a lot of confusion as to the definition of what &ldquo;coding&rdquo; is and why it&rsquo;s useful, and I thought I&rsquo;d contribute my thoughts.</p> <p></p> How Colorblindness Blinds Us https://www.toolness.com/wp/2013/11/how-colorblindness-blinds-us/ 2013年11月04日 00:00:00 +0000 https://www.toolness.com/wp/2013/11/how-colorblindness-blinds-us/ <blockquote> When will we (finally) become a colorblind society? The pursuit of colorblindness makes people impatient. With courage, we should respond: <em>Hopefully never.</em> <p> <cite data-source="The New Jim Crow" data-page="242">&mdash; Michelle Alexander</cite> </p> </blockquote> <p>In her excellent book <a href="http://newjimcrow.com/">The New Jim Crow</a>, Michelle Alexander makes an argument that the notion of colorblindness is a deeply flawed principle that has proved catastrophic for African Americans in the post-civil rights era.</p> <p></p> Audio Things! https://www.toolness.com/wp/2013/09/audio-things/ 2013年9月06日 00:00:00 +0000 https://www.toolness.com/wp/2013/09/audio-things/ <p>I&rsquo;ve really gotten into podcasts this summer. Normally, I find them difficult to focus my attention on, but some habits I&rsquo;ve picked up recently have helped with this: I started running regularly, and I started playing <a href="http://www.pcgamer.com/review/euro-truck-simulator-2-review/">Euro Truck Simulator 2</a>. In fact, I liked the latter so much that I started a blog about it at <a href="http://eurotruckin.tumblr.com/">eurotruckin.tumblr.com</a>.</p> <p>Just as French Fries are my delivery vehicles for ketchup, these new activities are my delivery vehicles for podcasts.</p> <p></p> A HTML Microformat for Open Badges https://www.toolness.com/wp/2013/07/a-html-microformat-for-open-badges/ 2013年7月31日 00:00:00 +0000 https://www.toolness.com/wp/2013/07/a-html-microformat-for-open-badges/ <p>Sometimes a person wanders by the <code>#badges</code> IRC channel and asks us how to issue a badge.</p> <p>The response usually involves asking the user what kind of technical expertise they have; if they&rsquo;re a programmer, we point them at the <a href="https://github.com/mozilla/openbadges/wiki/Assertions">specification</a>. If they&rsquo;re not, well, we usually point them to a place like <a href="http://badg.us/">badg.us</a> or <a href="https://credly.com/">credly</a>.</p> <p></p> On Enforcing Mandatory Code Review https://www.toolness.com/wp/2013/01/on-enforcing-mandatory-code-review/ 2013年1月17日 00:00:00 +0000 https://www.toolness.com/wp/2013/01/on-enforcing-mandatory-code-review/ <p>Many software projects enforce mandatory code reviews, even for their most senior developers. While I&rsquo;ve <a href="http://www.toolness.com/wp/2010/11/adventures-in-code-review-and-pair-programming/">mentioned before</a> that code reviews can be very useful, I also think that <em>mandatory</em> code reviews among trusted members of a software team can have a number of downsides.</p> <p></p> Building Bridges Between GUIs and Code With Markup APIs https://www.toolness.com/wp/2013/01/building-bridges-between-guis-and-code-with-markup-apis/ 2013年1月07日 00:00:00 +0000 https://www.toolness.com/wp/2013/01/building-bridges-between-guis-and-code-with-markup-apis/ <p>Recently the <a href="http://twitter.github.com/bootstrap/javascript.html">Twitter Bootstrap</a> documentation gave a name to something that I've been excited about for a pretty long time: <em>Markup API</em>.</p> <p>Markup APIs give superpowers to HTML.</p> <p></p> Building Experiences That Work Like The Web https://www.toolness.com/wp/2012/12/building-experiences-that-work-like-the-web/ 2012年12月05日 00:00:00 +0000 https://www.toolness.com/wp/2012/12/building-experiences-that-work-like-the-web/ <p>Much has been said about the greatness of the Web, yet most websites don&rsquo;t actually work like the Web does. And some experiences that aren&rsquo;t even <em>on</em> the web can still embody its spirit better than the average site.</p> <p>Here are three webbish characteristics that I want to see in every site I use, and which I try my best to implement in anything I build.</p> <p></p> Questions: Designing for Accessibility on the Web https://www.toolness.com/wp/2012/07/questions-designing-for-accessibility-on-the-web/ 2012年7月07日 00:00:00 +0000 https://www.toolness.com/wp/2012/07/questions-designing-for-accessibility-on-the-web/ <p>Marco Zehe recently wrote a good, sobering <a href="http://www.marcozehe.de/2012/07/06/are-web-apps-accessible-enough-to-replace-desktop-applications-any-time-soon/">blog post</a> comparing the accessibility of Web apps to those of native ones.</p> <p></p> Empathy For Software Conservatives https://www.toolness.com/wp/2012/07/empathy-for-software-conservatives/ 2012年7月06日 00:00:00 +0000 https://www.toolness.com/wp/2012/07/empathy-for-software-conservatives/ <p>Recently my friend Jono wrote an excellent blog post entitled <a href="http://evilbrainjono.net/blog?showcomments=true&amp;permalink=1094">Everybody hates Firefox updates</a>. I agree with pretty much everything he says.</p> <p></p> Learning and Grammatical Forgiveness https://www.toolness.com/wp/2012/04/learning-and-grammatical-forgiveness/ 2012年4月26日 00:00:00 +0000 https://www.toolness.com/wp/2012/04/learning-and-grammatical-forgiveness/ <p>HTML is a very interesting machine language because, like human languages, most things that interpret it are very forgiving.</p> <p>For instance, did you know that the following HTML is technically invalid?</p> <pre><code class="language-html">&lt;video&gt; &lt;source src=&quot;movie.mp4&quot;&gt;&lt;/source&gt; &lt;/video&gt; </code></pre> <p></p> Prototyping Presentations https://www.toolness.com/wp/2012/03/prototyping-presentations/ 2012年3月31日 00:00:00 +0000 https://www.toolness.com/wp/2012/03/prototyping-presentations/ Presentations take a long time to make. Particularly when I&rsquo;m just conceptualizing my presentation, it takes a lot of work to record myself talking, use a tool to sync it with the proper visuals, and then repeat the recording and syncing process as I iterate on the content. I recently made a simple tool called Quickpreso to make the process of &ldquo;prototyping&rdquo; a presentation quicker, and more like writing a simple HTML page. Coffee Machines And Community https://www.toolness.com/wp/2012/03/coffee-machines-and-community/ 2012年3月28日 00:00:00 +0000 https://www.toolness.com/wp/2012/03/coffee-machines-and-community/ The Toronto and San Francisco Mozilla offices each feature very different coffee makers. The Toronto office has a Rancilio Epoca espresso machine. It has lots of knobs and switches, and one has to be taught how to use it. When one learns, the first few drinks they make are likely to taste very bad; a conscious effort must be made to learn from one&rsquo;s mistakes and create better drinks. Storything Interactive Prototype https://www.toolness.com/wp/2012/03/storything-interactive-prototype/ 2012年3月26日 00:00:00 +0000 https://www.toolness.com/wp/2012/03/storything-interactive-prototype/ Last week I merged the Webmaking Tutorial Prototype with the Webmaking 101 for Journalists prototype we made during our three day sprint in NYC in February. The result, which is code-named Storything, is currently hosted at storything.toolness.org. Give it a try! The design for this prototype is based on Jess Klein&rsquo;s instructional overlay mockups. A separate two-pane editor for example snippets is included in the movie frame; my hope here is that by setting the tutorial movies in an actual editing environment, users will obtain a better understanding of how to use our tool. Webmaker Tutorial Prototyping https://www.toolness.com/wp/2012/03/webmaker-tutorial-prototyping/ 2012年3月09日 00:00:00 +0000 https://www.toolness.com/wp/2012/03/webmaker-tutorial-prototyping/ Recently I&rsquo;ve been playing around with creating interactive tutorials that teach people how to create things on the Web. Check out this prototype. At the end of a movie-like tutorial, you&rsquo;ll be given a challenge to write your first bit of HTML. At any time, you can use the scrubber at the bottom-right to review any part of the tutorial; anything you&rsquo;ve typed so far in the challenge is undone while you&rsquo;re scrubbing, and is automatically re-applied once you&rsquo;re back at the challenge. The Role of Performance in Online Life https://www.toolness.com/wp/2012/02/the-role-of-performance-in-online-life/ 2012年2月11日 00:00:00 +0000 https://www.toolness.com/wp/2012/02/the-role-of-performance-in-online-life/ In Sherry Turkle&rsquo;s Alone Together, the author writes: Brad says, only half jokingly, that he worries about getting "confused" between what he "composes" for his online life and who he "really" is. Not yet confirmed in his identity, it makes him anxious to post things about himself that he doesn't really know are true. It burdens him that the things he says online affect how people treat him in the real. Achievement and Playfulness https://www.toolness.com/wp/2011/11/achievement-and-playfulness/ 2011年11月30日 00:00:00 +0000 https://www.toolness.com/wp/2011/11/achievement-and-playfulness/ Michelle Levesque is tearin&rsquo; it up with her rapid pace of blogging and it&rsquo;s inspiring me to blog more myself. Yesterday in her post Things I Have Done, she ruminated on different kinds of categories for achievement badges. I personally have conflicted feelings about badges, and sympathize with something Jessica Klein mentioned in a blog post a few months ago: My colleague Jack Martin and I participated in this local learning incubator where we told a story with twitter. Playfulness and Learning https://www.toolness.com/wp/2011/11/playfulness-and-learning/ 2011年11月29日 00:00:00 +0000 https://www.toolness.com/wp/2011/11/playfulness-and-learning/ Michelle Levesque recently wrote a post about the importance of play in learning. We need to change people's mindsets to make them comfortable fooling around, making things, breaking things, and playing on the web. I totally agree. This is one of the design goals of the Hackasaurus tools and events, actually&mdash;it&rsquo;s a combination of stylistic touches and emotional design to help people feel that what they&rsquo;re doing is fun, along with humane functionality that makes experimentation easier, such as infinite undoability. Hacking The Web With Interactive Stories https://www.toolness.com/wp/2011/08/hacking-the-web-with-interactive-stories/ 2011年8月15日 00:00:00 +0000 https://www.toolness.com/wp/2011/08/hacking-the-web-with-interactive-stories/ I recently made The Parable of The Hackasaurus, which is a game-like attempt to make web-hacking easy to learn through a series of simple puzzles in the context of a story. The parable is really more of a proof-of-concept that combines a bunch of different ideas than an actual attempt at interactive narrative, though. The puzzles don&rsquo;t actually have anything to do with the story, for instance. But I wanted an excuse to do something fun with the vibrant art that Jessica Klein has made for the project, while also exploring possibilities for the Hack This Game sprint and giving self-directed learners a path to understanding how the Hackasaurus tools work. The Decline and Fall of The URL https://www.toolness.com/wp/2011/08/the-decline-and-fall-of-the-url/ 2011年8月08日 00:00:00 +0000 https://www.toolness.com/wp/2011/08/the-decline-and-fall-of-the-url/ The URL is a very powerful concept; it represents a universal way to access any resource anywhere in the world. Here&rsquo;s one of them, as it appears in Firefox 5&rsquo;s address bar: The first few letters before the colon are called the protocol, which tells the computer how to interpret the rest of the URL. The http protocol is the most common and specifies a resource on the World Wide Web, while the tel protocol specifies a telephone number, and https specifies a resource on the Web transferred over a secure channel that can&rsquo;t be eavesdropped. Collusion https://www.toolness.com/wp/2011/07/collusion/ 2011年7月07日 00:00:00 +0000 https://www.toolness.com/wp/2011/07/collusion/ I&rsquo;ve been reading Eli Pariser&rsquo;s book The Filter Bubble and was fascinated by his description of how data collection companies operate. Independently of that, David Ascher suggested that I add a feature to the Hackasaurus goggles which helps learners understand how cookies and tracking works. I actually didn&rsquo;t know a lot about tracking myself, so I whipped up a Firefox add-on called Collusion to help me visualize it better. The results were a little unsettling. Moving At Internet Speed https://www.toolness.com/wp/2011/06/moving-at-internet-speed/ 2011年6月25日 00:00:00 +0000 https://www.toolness.com/wp/2011/06/moving-at-internet-speed/ In his book Program or be Programmed, Douglas Rushkoff writes: For most of us, the announcement of the next great "iThing" provokes not eagerness but anxiety: Is this something else we will have to pay for and learn to use? Do we even have a choice? At Mozilla, we talk a lot about user choice, but one choice we have a hard time giving our users is whether to upgrade to the latest version of our software. The Challenges of Developing Offline Web Apps https://www.toolness.com/wp/2011/06/the-challenges-of-developing-offline-web-apps/ 2011年6月23日 00:00:00 +0000 https://www.toolness.com/wp/2011/06/the-challenges-of-developing-offline-web-apps/ As I mentioned at the end of my last post, there's a lot of usability problems that make writing an offline web app difficult. When writing a "native" client-side app using technologies like Microsoft .NET or Apple's Cocoa framework, it's assumed that everything your program is doing, and everything it needs, is already installed on the local device. Anything not on the local device needs to be explicitly fetched over the network. On The Usability Of An Offline Web https://www.toolness.com/wp/2011/06/on-the-usability-of-an-offline-web/ 2011年6月22日 00:00:00 +0000 https://www.toolness.com/wp/2011/06/on-the-usability-of-an-offline-web/ Last week I spent some time working on a simple offline web app called All My Etherpads. Creating it has made me think about a lot of things, one of which has to do with how the word &ldquo;offline&rdquo; constantly seems at odds with the word &ldquo;web&rdquo;. When you&rsquo;re using a web browser, it&rsquo;s simply assumed that you&rsquo;re online. Many argue that a resource must live in the cloud for it to be truly &ldquo;of the Web&rdquo;. Making Hackasaurus Remix Easier https://www.toolness.com/wp/2011/06/making-hackasaurus-remix-easier/ 2011年6月09日 00:00:00 +0000 https://www.toolness.com/wp/2011/06/making-hackasaurus-remix-easier/ <p>I've been working on an experimental iteration in the <a href="http://hackasaurus.org/goggles.php">X-Ray Goggles</a> which addresses some problems we observed kids having with the <em>Compose A Replacement</em> (aka &ldquo;remix&rdquo;) dialog at the <a href="http://openmatt.wordpress.com/2011/06/08/maker-kids-mozilla-and-the-future-of-school/">TEDx Kids Brussels 2011</a> event and other hack jams.</p> <p></p> Three Lessons Learned From Hack Jams https://www.toolness.com/wp/2011/03/three-lessons-learned-from-hack-jams/ 2011年3月21日 00:00:00 +0000 https://www.toolness.com/wp/2011/03/three-lessons-learned-from-hack-jams/ The first five Hackasaurus hack jams taught us a lot. Here are a few lessons we learned from them. Know How Much Freedom You Have. At our hack jams in the New York Public Library, we discovered that their publicly-accessible Windows XP machines were so locked-down that we were unable to run Firefox or any other programs off a USB stick. Our prototype Web X-Ray Goggles don&rsquo;t currently work with the built-in Internet Explorer 8, so we weren&rsquo;t able to use them. Enter The Hackasaurus https://www.toolness.com/wp/2011/03/enter-the-hackasaurus/ 2011年3月14日 00:00:00 +0000 https://www.toolness.com/wp/2011/03/enter-the-hackasaurus/ I've recently switched projects at Mozilla. I was previously the technical lead for the Jetpack project, but at the beginning of February 2011 I started working on a new project called Hackasaurus: a toolkit and curriculum to help kids and other "non-techies" understand the Web and how to hack it. The origins of this project go back to a blog post I wrote in 2009 called Kids And The Open Web, where I compare a Web page to " My Minecraft Adventure https://www.toolness.com/wp/2011/01/my-minecraft-adventure/ 2011年1月08日 00:00:00 +0000 https://www.toolness.com/wp/2011/01/my-minecraft-adventure/ I did not expect to enjoy this game. My friend Mike was completely obsessed with Minecraft, and Dave Humphrey blogged a bit about all the amazing things people had done with it: creating replicas of the German Reichstag, the U.S.S. Enterprise, working CPUs. All creative uses of cognitive surplus. But I still didn't think that it was for me. When visiting Washington, D.C. in the last days of December 2010, I finally sat down with Mike and he showed me how to play. Adventures in Code Review and Pair Programming https://www.toolness.com/wp/2010/11/adventures-in-code-review-and-pair-programming/ 2010年11月08日 00:00:00 +0000 https://www.toolness.com/wp/2010/11/adventures-in-code-review-and-pair-programming/ A key component of Mozilla&rsquo;s development process is code review, which consists of a trusted expert reviewing the material comprising the changes to a piece of software in order to fix a bug or add a feature. This is a great idea for a number of reasons: It helps increase the project's bus factor, or number of people who understand how the software works and why decisions were made. If any trusted member of the community could simply push changes without requiring another person to be aware of them and understand them, then if that person were hit by a bus or truck, some amount of understanding about the software would be lost, especially rationales that could only be uncovered by the conversation that occurs during code review. Prelude To Barcelona https://www.toolness.com/wp/2010/10/prelude-to-barcelona/ 2010年10月13日 00:00:00 +0000 https://www.toolness.com/wp/2010/10/prelude-to-barcelona/ I recently wrote about a talk I gave at the Mozilla Summit on What Mozilla Can Learn From 826 National. Shortly after my presentation, Mark Surman dared me to teach a class on Web hacking for non-techies at the Peer 2 Peer University School of Webcraft, which got me thinking about how I&rsquo;d teach a class in such a distance-learning environment. My favorite kind of teaching is face-to-face, one-on-one mentoring. I think it works well because teacher and student have easy access to each others&rsquo; &ldquo;state&rdquo;: they can see what each other are working on, and infer how they&rsquo;re feeling based on body language and other non-verbal cues. Reviewer Dashboards https://www.toolness.com/wp/2010/10/reviewer-dashboards/ 2010年10月04日 00:00:00 +0000 https://www.toolness.com/wp/2010/10/reviewer-dashboards/ As I mentioned in my post on The Social Constraints of Bettering The Web, finding a code reviewer can be difficult in Mozilla projects. At least, it&rsquo;s definitely the case with the Jetpack SDK, which I&rsquo;m actively involved in as both a reviewer and contributor. Last week, on casual observation, it seemed like Myk Melez had been getting a lion&rsquo;s share of code review demands placed on him. While I had some theories on why this might be the case, I also realized that I had no idea what the big picture was as far as code reviews were concerned. What Mozilla Can Learn From 826 National https://www.toolness.com/wp/2010/10/what-mozilla-can-learn-from-826-national/ 2010年10月03日 00:00:00 +0000 https://www.toolness.com/wp/2010/10/what-mozilla-can-learn-from-826-national/ At the Mozilla Summit in early July, I gave a short presentation on what Mozilla could learn from an awesome non-profit family of writing centers called 826 National. One of the many things that really impresses me about this organization is that their chapters ooze with a love for writing and creativity, and encourage and showcase it everywhere. For example, their San Francisco chapter, 826 Valencia, masquerades as a pirate supply store that&rsquo;s filled with products like kitten and hamster planks, beard extensions, and scurvy remedies&mdash;all with hilariously-written labels and instructions for use, and whose proceeds go directly to the writing center&rsquo;s many tutoring programs. Twitblob https://www.toolness.com/wp/2010/09/twitblob/ 2010年9月30日 00:00:00 +0000 https://www.toolness.com/wp/2010/09/twitblob/ Over the past few years, I&rsquo;ve made a number of little Web applications that are actually just HTML pages. Building things this way is really fun and really simple. It&rsquo;s easy to understand and remix because there&rsquo;s no custom server-side infrastructure to complicate matters. In some ways, it&rsquo;s just like writing my first Web pages in the 1990&rsquo;s, only now I can use JavaScript for more than just image rollovers. Good Customers https://www.toolness.com/wp/2010/09/good-customers/ 2010年9月15日 00:00:00 +0000 https://www.toolness.com/wp/2010/09/good-customers/ Here&rsquo;s something I read in a blog post by Esther Dyson, where she describes a visit to Russia in which she was asked for advice on how to spur innovation in the country: In fact, I started my discussion with Russia's government leaders by talking about my experiences as chair of NASA's Innovation and Technology advisory committee. The issue, I said, was not really about funding technology innovation; it is how to create a culture that rewards thoughtful innovation and considers mistakes the price of learning. Participatory, Scalable, Transparent Competitions https://www.toolness.com/wp/2010/09/participatory-scalable-transparent-competitions/ 2010年9月02日 00:00:00 +0000 https://www.toolness.com/wp/2010/09/participatory-scalable-transparent-competitions/ I&rsquo;ve been involved in the judging pipeline for three competitions now. Today, I judged for an inspiring competition called Node Knockout, held by Joyent and Fortnight Labs. The first two competitions I participated in didn&rsquo;t scale. I wasn&rsquo;t even a judge for the first one&mdash;we had a tiny handful of celebrity judges who couldn&rsquo;t possibly review all of the submissions, so me and some colleagues furiously attempted to cull the list down for them. The Social Constraints of Bettering The Web, Part I https://www.toolness.com/wp/2010/08/the-social-constraints-of-bettering-the-web-part-i/ 2010年8月31日 00:00:00 +0000 https://www.toolness.com/wp/2010/08/the-social-constraints-of-bettering-the-web-part-i/ I&rsquo;ve recently been proud and inspired to see two new features land in the latest Firefox 4 betas: Web developers can now access the raw audio data in &lt;audio&gt; and &lt;video&gt; elements, and Firefox Panorama helps users manage their tabs. In his excellent post Experiments with audio, conclusion, Dave Humphrey mentions the following Tweet from Joe Hewitt: Bottom line: we can currently only move as fast as employees of browser makers can go, and our imagination is limited by theirs. My First CrisisCamp https://www.toolness.com/wp/2010/08/my-first-crisiscamp/ 2010年8月29日 00:00:00 +0000 https://www.toolness.com/wp/2010/08/my-first-crisiscamp/ On Friday I attended CrisisCamp Silicon Valley. I didn&rsquo;t really know what to expect, since I was unfamiliar with the nascent field of internet-facilitated crisis response and was unable to find a high-level overview of how people&mdash;both techies and non-techies&mdash;can really make an impact. The Bird's Eye View As I understand it, this is the big picture of internet-facilitated crisis response: People on the ground in a disaster are told, through various channels, to report what they're seeing to the public through a variety of media: SMS, Twitter, Facebook, whatever's easiest and most understandable for them. 1994 https://www.toolness.com/wp/2010/08/1994/ 2010年8月26日 00:00:00 +0000 https://www.toolness.com/wp/2010/08/1994/ The New York Times recently wrote that The Web Means The End of Forgetting. I never kept a copy of my first public software project with me&mdash;yet because I put it on the internet, it eventually made its way into an FTP archive, many mirrors of which still host the files sixteen years later, when a casual conversation with a friend prompted me to search for them. In 1994, I didn&rsquo;t like Macintosh computers, so I decided to replace the explosive barrels in DOOM with them. A Dashboard for Bugs https://www.toolness.com/wp/2010/08/a-dashboard-for-bugs/ 2010年8月24日 00:00:00 +0000 https://www.toolness.com/wp/2010/08/a-dashboard-for-bugs/ Early this year, I had to start using Mozilla&rsquo;s Bugzilla, an issue tracker that, while incredibly powerful, nonetheless confused and intimidated me to no small degree. One of my most basic needs was to have a simple display containing bugs of interest to me. I couldn&rsquo;t find a page in the product that satisfied me, so I used Gervase Markham&rsquo;s excellent Bugzilla REST API to create an HTML page that fetched the information I needed and displayed it. The Emotional Design of Firefox https://www.toolness.com/wp/2010/08/the-emotional-design-of-firefox/ 2010年8月12日 00:00:00 +0000 https://www.toolness.com/wp/2010/08/the-emotional-design-of-firefox/ Earlier this year I read Don Norman&rsquo;s Emotional Design, and I&rsquo;ve been reflecting on some of the reasons I decided to start using Firefox back in 2004. When I hear most people talk about why they used Firefox, they sound pretty rational. They liked Firefox because it stopped pop-ups; it had tabs; or because it was faster than Internet Explorer. My recollections of my first impressions of Firefox involved some of those things, but I mostly remember having a positive emotional reaction to the product. Ethnography, Usability, and Community https://www.toolness.com/wp/2010/05/ethnography-usability-and-community/ 2010年5月30日 00:00:00 +0000 https://www.toolness.com/wp/2010/05/ethnography-usability-and-community/ Context offers fodder for innovation. Hidden in the physical work space, in the users' words, and in the tools they use are the beautiful gems of knowledge that can create revolutionary, breakthrough products or simply fix existing, broken products. &mdash;Jon Kolko, Thoughts on Interaction Design I&rsquo;ve been talking with my colleague Jinghua Zhang, the project lead for Mozilla&rsquo;s Test Pilot program, about the usefulness of ethnography and qualitative research in user interface design, and it seems like something that could both strengthen Mozilla&rsquo;s community and help make our products easier to use. On The Webbyness of an Installable Web App https://www.toolness.com/wp/2010/05/on-the-webbyness-of-an-installable-web-app/ 2010年5月26日 00:00:00 +0000 https://www.toolness.com/wp/2010/05/on-the-webbyness-of-an-installable-web-app/ I&rsquo;ve heard some talk lately, primarily from Henri Sivonen, regarding whether Google&rsquo;s notion of an Installable Web App is &ldquo;webby&rdquo;. I am not sure exactly what webby means, but if I had to guess, it would involve the kinds of qualities that Mitchell Baker and Mark Surman believe make the web better: more transparent, participatory, decentralized, and hackable. Though I&rsquo;m not fully sold on these newfangled apps, I can think of three ways that they could make the web better. The Paradox of Choice https://www.toolness.com/wp/2010/03/the-paradox-of-choice/ 2010年3月01日 00:00:00 +0000 https://www.toolness.com/wp/2010/03/the-paradox-of-choice/ I wanted to quickly illuminate what one might call the flip side of the Open To Choice campaign, which is summarized by this Publishers Weekly review of Barry Schwartz&rsquo;s The Paradox of Choice (2004): Like Thoreau and the band Devo, psychology professor Schwartz provides ample evidence that we are faced with far too many choices on a daily basis, providing an illusion of a multitude of options when few honestly different ones actually exist. You Are Not a Gadget https://www.toolness.com/wp/2010/02/you-are-not-a-gadget/ 2010年2月15日 00:00:00 +0000 https://www.toolness.com/wp/2010/02/you-are-not-a-gadget/ This is what a social network looks like. Each dot represents a human being. Each line represents a social connection between two people, such as acquaintanceship, financial exchange, friendship, or love. The picture can become arbitrarily more complex as we take one-way relationships into account and add more dimensions to model particular interests and behaviors. Much of the attention around technology these days has something to do with this picture. Herdict-Firefox Integration and Better HTML Presentations https://www.toolness.com/wp/2010/02/herdict-firefox-integration-and-better-html-presentations/ 2010年2月10日 00:00:00 +0000 https://www.toolness.com/wp/2010/02/herdict-firefox-integration-and-better-html-presentations/ I recently wanted to create a short, two-minute and thirty second &ldquo;pitch&rdquo; for the Herdict-Firefox integration prototype I&rsquo;m working on with Jennifer Boriss, Laura Miyakawa, and Jeffrey Licht. Here is the result. It turned out that the pitch itself was an experiment for me: after fiddling around with Screenflow and iMovie for a bit, I got frustrated with their limitations and decided to just use HTML to put together the presentation. The Value of Nothing https://www.toolness.com/wp/2010/01/the-value-of-nothing/ 2010年1月17日 00:00:00 +0000 https://www.toolness.com/wp/2010/01/the-value-of-nothing/ From what I&rsquo;ve read of Tim Harford&rsquo;s The Undercover Economist and The Economist, capitalism seems like a reasonable way to make the world a better place, given its assumptions of human nature. In particular, America&rsquo;s brand of capitalism, which tries to lower the barriers to getting a job or starting a business as much as possible, seems compatible with notions of liberty and democracy. I just finished reading The Value of Nothing, which provides a fascinating counterpoint to all of this. Evolving Firefox Extensions https://www.toolness.com/wp/2010/01/evolving-firefox-extensions/ 2010年1月11日 00:00:00 +0000 https://www.toolness.com/wp/2010/01/evolving-firefox-extensions/ Firefox&rsquo;s extension platform is incredibly powerful and generative, but when I created my first extension in early 2008, I found a number of barriers to entry&mdash;difficulties echoed by a number of other newcomers I talked to. For one thing, extensions were difficult to get started with. Perhaps the best indicator of this is Myk Melez&rsquo;s video tutorial titled Extensions Bootcamp: Zero to &ldquo;Hello World&rdquo; in 45 Minutes, which actually ended up being 90 minutes long. Mozilla: The Big Picture https://www.toolness.com/wp/2009/12/mozilla-the-big-picture/ 2009年12月13日 00:00:00 +0000 https://www.toolness.com/wp/2009/12/mozilla-the-big-picture/ I realized over the past year that the Mozilla community doesn&rsquo;t just generate cool software&mdash;it actually produces a wealth of great visual assets, too. I thought it&rsquo;d be useful for both folks on the periphery and on the inside to use images as a way of understanding what&rsquo;s going on at Mozilla&mdash;sort of like about:mozilla, but using pictures instead of words. Here&rsquo;s what I&rsquo;ve got so far: This prototype is a showcase of what happened in the Mozilla community during the month of November 2009. Web Application Memory Profiling, Take Two https://www.toolness.com/wp/2009/10/web-application-memory-profiling-take-two/ 2009年10月06日 00:00:00 +0000 https://www.toolness.com/wp/2009/10/web-application-memory-profiling-take-two/ Back in July, the Mozilla Developer Tools Lab released an experimental memory tool that allowed a web developer to get a better picture of Firefox&rsquo;s memory usage. That tool was a great start, but it had a few issues: It was slow. It showed the entire Firefox JS heap, which included lots of objects internal to Firefox that weren't of much use to web developers. It was a bit of a hassle to set up, as it involved freezing Firefox and accessing a local web server from a different browser. Liberating Your Data From Other People https://www.toolness.com/wp/2009/09/liberating-your-data-from-other-people/ 2009年9月15日 00:00:00 +0000 https://www.toolness.com/wp/2009/09/liberating-your-data-from-other-people/ Ragavan recently posted some interesting thoughts on DataLiberation that got me thinking: Another factor to consider is how you define what "your data" is. For example, if you look at it as just exporting your photos out of Picasa and importing them to flickr, I'd posit that's a rather simplistic view. A large part of what makes your data useful and valuable is all the relationships associated with it. I share my photos with my friends and family, I license some under Creative Commons, I group them, I tag them &mdash; all of these make my data very context rich. Coming At You Like A Pydermonkey https://www.toolness.com/wp/2009/09/coming-at-you-like-a-pydermonkey/ 2009年9月11日 00:00:00 +0000 https://www.toolness.com/wp/2009/09/coming-at-you-like-a-pydermonkey/ Since learning JavaScript over a year ago, it&rsquo;s become one of my favorite dynamic programming languages alongside Python. And as I&rsquo;ve mentioned before, I think the two languages actually complement each other pretty well. Python, at its heart, is a platform that&rsquo;s built to be extended. The evidence for this is plentiful: there&rsquo;s modules and packages out there that offer practically any functionality you want, from web servers to 3D game engines to natural language processing toolkits and more, all instantly accessible through a simple command or an installer download. Kids And The Open Web https://www.toolness.com/wp/2009/09/kids-and-the-open-web/ 2009年9月04日 00:00:00 +0000 https://www.toolness.com/wp/2009/09/kids-and-the-open-web/ Every time I think about why I like the open web, I basically think of how well it fits with the way I learned to use and program computers as a kid: my first computer, an Atari 400, came with everything I needed to do programming, and I (or my parents) didn&rsquo;t have to spend hundreds of dollars or sign an NDA to get a development tool. My favorite technical book as a child was Creating Adventure Games On Your Computer, which contained plain BASIC code for games that you could play, augment, and make your own. Freedom At The Endpoints https://www.toolness.com/wp/2009/09/freedom-at-the-endpoints/ 2009年9月02日 00:00:00 +0000 https://www.toolness.com/wp/2009/09/freedom-at-the-endpoints/ Lately I&rsquo;ve been thinking a bit about Drumbeat, and what the Open Web actually means to me. This morning, I came across an article by Katherine Mangu-Ward titled Transparency Chic which reminded me about a few of its most important aspects. Transparency Chic discusses a Firefox addon called RECAP which helps make U.S. Judicial Records as freely-searchable as everything in Google by taking any of the free information browsed through PACER, the Federal court system&rsquo;s clunky web-based database that charges eight cents per page, and submits it automatically to a free Internet archive. Flexible Membranes and Catch-alls in JavaScript https://www.toolness.com/wp/2009/07/flexible-membranes-and-catch-alls-in-javascript/ 2009年7月29日 00:00:00 +0000 https://www.toolness.com/wp/2009/07/flexible-membranes-and-catch-alls-in-javascript/ One of the recurring issues that the Mozilla platform team has to contend with is the issue of how to allow trusted, privileged JavaScript code to interact with untrusted JavaScript code. Google&rsquo;s Caja team actually has to deal with a very similar problem, albeit at a different layer in the technology stack. This issue is quite subtle, and fully explaining it is beyond the scope of this blog post. If you know JavaScript, I recommend checking out the Caja Specification, which nicely lays out the problems inherent in running code with different trust levels in the same environment. In Defense of Sweatshops https://www.toolness.com/wp/2009/07/in-defense-of-sweatshops/ 2009年7月25日 00:00:00 +0000 https://www.toolness.com/wp/2009/07/in-defense-of-sweatshops/ Back in 2001, I made a satirical site for Nike Sweatshops, arguing that poverty is a great thing for capitalism. Poverty is a great thing for capitalism, but Tim Harford&rsquo;s The Undercover Economist&mdash;which I recently picked up from Dog Eared Books and finished this morning&mdash;offers an excellent explanation for why sweatshops and similar forms of foreign investment are ultimately a good thing for the world. What impresses me most about The Undercover Economist is Harford&rsquo;s underlying humanitarianism. The Wall of Text on My Business Card https://www.toolness.com/wp/2009/07/the-wall-of-text-on-my-business-card/ 2009年7月19日 00:00:00 +0000 https://www.toolness.com/wp/2009/07/the-wall-of-text-on-my-business-card/ At Mozilla we get the opportunity to design the back of our business card. As I&rsquo;ve written about before, Mozilla is a unique hybrid organization with a mission that lots of people don&rsquo;t know about. It&rsquo;s often hard to communicate to others in passing, so I decided to put it on my business card: I don&rsquo;t really expect many people to read it, but at least it&rsquo;s out there for anyone who wants to learn more. Fun with SpiderMonkey https://www.toolness.com/wp/2009/07/fun-with-spidermonkey/ 2009年7月18日 00:00:00 +0000 https://www.toolness.com/wp/2009/07/fun-with-spidermonkey/ Over the past few weeks I&rsquo;ve had the pleasure of working with Dion Almaer on a Browser Memory Tool Prototype. This has been a lot of fun for me; for one thing, I&rsquo;ve always wanted to help developers diagnose the problem of &ldquo;I&rsquo;ve been running my web app/Firefox extension for 8 hours, why&rsquo;s it taking up 800 megabytes of RAM?&rdquo;. And I&rsquo;ve also always wanted to have an excuse to learn about the internals of SpiderMonkey, Mozilla&rsquo;s JavaScript engine, and play with its C API. Jetpack: Summer 2009 State of Security, Part 1 https://www.toolness.com/wp/2009/07/jetpack-summer-2009-state-of-security-part-1/ 2009年7月13日 00:00:00 +0000 https://www.toolness.com/wp/2009/07/jetpack-summer-2009-state-of-security-part-1/ Security is hard! It&rsquo;s tough enough designing a platform that&rsquo;s powerful, well-documented, and easy to use; but what about security? If we aren&rsquo;t careful, adding a incorrectly tuned or naive security model negatively affects generativity and usability. Jetpack needs to balance all three. The following is something I wrote at the beginning of June, but didn&rsquo;t post until now because I&rsquo;ve had my head in code for a bit too long. Couches in Browsers https://www.toolness.com/wp/2009/04/couches-in-browsers/ 2009年4月16日 00:00:00 +0000 https://www.toolness.com/wp/2009/04/couches-in-browsers/ A little while ago, Vladimir Vukicevic wrote an excellent blog post outlining the reasons why he&rsquo;s not a fan of exposing a specific implementation of SQL to Web Content. I agree with everything he says in his post; I&rsquo;ve also been a fan of CouchDB for some time. A CouchDB-like API seems like a nice solution to persistent storage on the Web because so many of its semantics are delegated out to the JavaScript language, which makes it potentially easy to standardize, as well as easy to learn for Web developers. Design Challenge Tutorials https://www.toolness.com/wp/2009/04/design-challenge-tutorials/ 2009年4月04日 00:00:00 +0000 https://www.toolness.com/wp/2009/04/design-challenge-tutorials/ Over the last two weeks, I gave two tutorials to our Design Challenge students. The first was called Engineering Prototypes, and centers on the most challenging part of working on prototypes for me, which is the balance between expediency of implementation and robustness. Prototyping involves prioritizing the former over the latter, but it&rsquo;s unwise to throw engineering principles out the door: for instance, a prototype that constantly crashes or runs slowly may not be usable enough to dogfood, and one whose implementation is poorly designed can be difficult to iterate and evolve. Redesigning Planets and Project Dashboards https://www.toolness.com/wp/2009/03/redesigning-planets-and-project-dashboards/ 2009年3月03日 00:00:00 +0000 https://www.toolness.com/wp/2009/03/redesigning-planets-and-project-dashboards/ The Ubiquity project has been moving pretty quickly and despite the fact that I spend most of my time working on it, I actually have a hard time keeping track of its progress. At Labs we&rsquo;ve talked about the idea of having &ldquo;project dashboards&rdquo; that present the latest developments on our projects, so I thought it might be a good opportunity to play around with new ways of visualizing community activity. An Experiment in Redesigning about:mozilla https://www.toolness.com/wp/2009/03/an-experiment-in-redesigning-aboutmozilla/ 2009年3月01日 00:00:00 +0000 https://www.toolness.com/wp/2009/03/an-experiment-in-redesigning-aboutmozilla/ With Deb Richardson&rsquo;s recent posts on the evolution of the about:mozilla newsletter, I decided to try my hand at a new layout for the existing issues, in the hopes that experimenting with new designs could help shed some light on the situation. For reference, this is how the February 24th issue looks: One of the notable things about this layout is that there isn&rsquo;t actually much useful information in the first screen: there&rsquo;s a table of contents that has headlines, but the user needs to click on a headline or scroll down to learn more. Automatic Bug Reporting for Firefox Extensions https://www.toolness.com/wp/2009/02/automatic-bug-reporting-for-firefox-extensions/ 2009年2月27日 00:00:00 +0000 https://www.toolness.com/wp/2009/02/automatic-bug-reporting-for-firefox-extensions/ We want to make Ubiquity awesome at reporting errors. In our original release, a transparent message with JavaScript exception information was displayed, which wasn&rsquo;t very useful to the average user, and was downright annoying when dozens of exceptions were logged in the same instant. At present, running a command that raises an error just results in that message being logged to the JS Error console, which very few people know how to access&mdash;so most people are left scratching their heads and wondering why their command is taking so long to run. Ubiquity 0.1.6 and Release Scheduling https://www.toolness.com/wp/2009/02/ubiquity-016-and-release-scheduling/ 2009年2月17日 00:00:00 +0000 https://www.toolness.com/wp/2009/02/ubiquity-016-and-release-scheduling/ As we&rsquo;ve mentioned before, Ubiquity 0.2 has fairly broad, visionary goals that won&rsquo;t be fully satisfied for some time. So we&rsquo;re going to be pushing its changes to the 0.1 line at more regular intervals as we continue to develop it. By &ldquo;pushing its changes&rdquo; we mean that we&rsquo;ll effectively be disguising our work-in-progress 0.2 as a 0.1.x release. For instance, Ubiquity 0.1.5, which we released about a month ago, is essentially the same thing as 0. PyXPCOM vs. jsbridge https://www.toolness.com/wp/2009/02/pyxpcom-vs-jsbridge/ 2009年2月11日 00:00:00 +0000 https://www.toolness.com/wp/2009/02/pyxpcom-vs-jsbridge/ Yesterday Tempura left a good question as a comment on my blog post concerning Ubiquity&rsquo;s experimental support for Python: What about http://pyxpcomext.mozdev.org ? They bring Python in an xpi for all major plattforms, without the need of an local installed interpreter. Using PyXPCOM was actually a potential option we had considered, but we ended up going with jsbridge for a number of reasons: PyXPCOM uses XPCOM as its means of communication between Python and the Mozilla platform. Ubiquity's Python Feed Plugin https://www.toolness.com/wp/2009/02/ubiquitys-python-feed-plugin/ 2009年2月10日 00:00:00 +0000 https://www.toolness.com/wp/2009/02/ubiquitys-python-feed-plugin/ A few weeks ago I wrote about Ubiquity Feed Plugins, which are basically just a way of separating the user interface of subscribing to a new feature from the implementation of the feature itself. As I&rsquo;ve written about before, one of the things I&rsquo;ve missed about the Mozilla development environment is its support for the Python programming language. Aside from being humane and having a great community, it has functionality that could complement the Mozilla platform quite nicely. Beautifully Documented Code https://www.toolness.com/wp/2009/01/beautifully-documented-code/ 2009年1月07日 00:00:00 +0000 https://www.toolness.com/wp/2009/01/beautifully-documented-code/ When searching for a documentation system to use for Ubiquity, we looked at a number of tools. None of them particularly satisfied me; all the ones I saw required a build step to convert raw source code into formatted documentation, and I wasn&rsquo;t very pleased with the typography of the generated content&mdash;though obviously the aesthetics were customizable through CSS, none of the default stylesheets left me dying to read the documentation I created. Ubiquity 0.2 Preview Release: Feed Plugins! https://www.toolness.com/wp/2008/12/ubiquity-02-preview-release-feed-plugins/ 2008年12月31日 00:00:00 +0000 https://www.toolness.com/wp/2008/12/ubiquity-02-preview-release-feed-plugins/ I&rsquo;ve just released the first preview release of Ubiquity 0.2, which implements some of the functionality outlined in the Ubiquity 0.2 Architecture Proposal. In particular, we now have support for something called Feed Plugins, which makes it possible for Ubiquity to draw from a much wider range of functionality: imagine, for instance, if end-users saw Greasemonkey and CoScripter scripts no differently from standard Ubiquity command feeds, and used the exact same interface to subscribe to and use functionality that&rsquo;s been implemented with any number of web technologies. Ubiquity 0.2 Architecture Proposal https://www.toolness.com/wp/2008/12/ubiquity-02-architecture-proposal/ 2008年12月16日 00:00:00 +0000 https://www.toolness.com/wp/2008/12/ubiquity-02-architecture-proposal/ Much simpler than the one for 0.1.3. Read more about this architecture proposal at Ubiquity 0.2 Design: UI and Security Extensibility, and feel free edit the document or join in the conversation on ubiquity-core! The Curious Architecture of a Labs Experiment https://www.toolness.com/wp/2008/12/the-curious-architecture-of-a-labs-experiment/ 2008年12月12日 00:00:00 +0000 https://www.toolness.com/wp/2008/12/the-curious-architecture-of-a-labs-experiment/ To prepare for some of the upcoming changes to Ubiquity, I took some time this morning to document the architecture of what&rsquo;s about to be released as Ubiquity 0.1.3: The full prose to go with the above diagram is on the wiki. The tool I used to make the above diagram is called OmniGraffle, and has been recommended to me over the past few years by most of my friends who use Macs. A Letter to School Board Member Norton https://www.toolness.com/wp/2008/12/a-letter-to-school-board-member-norton/ 2008年12月09日 00:00:00 +0000 https://www.toolness.com/wp/2008/12/a-letter-to-school-board-member-norton/ One of the most interesting races for me this past election season was that of the four seats available for the San Francisco Board of Education. The voter&rsquo;s guide put out by the city included profiles of each candidate, and of the fifteen running for office, only seven of them had a website. Six of them were essentially static, electronic versions of standard campaign brochures. The last was that of Rachel Norton, whose site consisted of a frequently-updated blog with comments enabled&mdash;and which the candidate actually responded to. Ubiquity 0.1.3 Preview: Faster, Prettier https://www.toolness.com/wp/2008/12/ubiquity-013-preview-faster-prettier/ 2008年12月05日 00:00:00 +0000 https://www.toolness.com/wp/2008/12/ubiquity-013-preview-faster-prettier/ We&rsquo;re currently working on Ubiquity 0.1.3, a release that improves Ubiquity&rsquo;s responsiveness and adds skinning support. In preparation for this, I&rsquo;ve just released the first Ubiquity 0.1.3 Release Candidate. Please feel free to download it&mdash;you&rsquo;ll automatically be upgraded to each new release candidate as it becomes available, as well as the final 0.1.3 release. Any bugs that you can report either to our bug database or our mailing list would be much appreciated. Browsing and Searching in China https://www.toolness.com/wp/2008/11/browsing-and-searching-in-china/ 2008年11月20日 00:00:00 +0000 https://www.toolness.com/wp/2008/11/browsing-and-searching-in-china/ Mike Beltzner recently wrote an excellent blog post that puts the newly-released Firefox China Edition in a cultural context: I'm used to a very search-based culture, and was shocked to discover that search - while still important - was a secondary task for all of my Chinese colleagues. Their normal pattern would be to first visit an authoritative source (a portal of some form, either a media hub, a news site, or a topic-oriented site like one for music) and then drill into the information presented. A Security Model for Ubiquity https://www.toolness.com/wp/2008/11/a-security-model-for-ubiquity/ 2008年11月19日 00:00:00 +0000 https://www.toolness.com/wp/2008/11/a-security-model-for-ubiquity/ We discussed at the first Ubiquity planning meeting that we need to come up with and implement a security model for the next release, so I thought I&rsquo;d write down a few thoughts I&rsquo;ve been having about it. I don&rsquo;t consider myself a security expert by any stretch of the imagination, though, so any suggestions or corrections are more than welcome. Firstly, as noted in the meeting notes, the notion of a security model being discussed here is separate from, but supporting of, the kind of social &ldquo;web of trust&rdquo; based model that I&rsquo;ve written about before. The SF Green Festival and >play https://www.toolness.com/wp/2008/11/the-sf-green-festival-and-play/ 2008年11月17日 00:00:00 +0000 https://www.toolness.com/wp/2008/11/the-sf-green-festival-and-play/ This weekend I represented Mozilla at the &gt;play Expo at the Haas School of Business at UC Berkeley and the San Francisco Green Festival. This was the first time I&rsquo;d ever represented Mozilla at a public event, so it was quite a learning experience. It was also fun trying to get an idea of what an individual was interested in and connecting it with something relevant about Mozilla. The &gt;play Expo The First Ubiquity Planning Meeting https://www.toolness.com/wp/2008/11/the-first-ubiquity-planning-meeting/ 2008年11月14日 00:00:00 +0000 https://www.toolness.com/wp/2008/11/the-first-ubiquity-planning-meeting/ Yesterday we had our first public Ubiquity planning meeting. What made this meeting particularly interesting for me was the fact that we were trying something a little different from most standard Mozilla project meetings I&rsquo;ve attended. Generally, project meetings consist of one group of people who are in the same room together and can communicate very efficiently while all the folks calling-in can barely hear them, dramatically increasing their barrier to participation. November Labs Night, Thunderbird Awesomeness https://www.toolness.com/wp/2008/11/november-labs-night-thunderbird-awesomeness/ 2008年11月13日 00:00:00 +0000 https://www.toolness.com/wp/2008/11/november-labs-night-thunderbird-awesomeness/ Last night we held a really fun Labs Night at Mozilla&rsquo;s Building K in Mountain View, California. The Thunderbird team was here for their work week, some folks from Seedcamp dropped in, and Dion and Ben of the Ajaxian and the new Mozilla Developer Tools Lab were all here, which made for a night of innovative presentations that got lots of interesting conversations started. The evening started out with Jono presenting a quick overview of all the currently active Labs projects while wearing a large sombrero. That Empowerment Thing https://www.toolness.com/wp/2008/11/that-empowerment-thing/ 2008年11月13日 00:00:00 +0000 https://www.toolness.com/wp/2008/11/that-empowerment-thing/ One of the really interesting things about the social-network-oriented website for the Obama campaign, my.barackobama.com, was the fact that it was essentially an online nexus that connected people who were interested in political and social change. And as Henry Jenkins mentioned in February, what Obama has created over the past year has not been a campaign, but a movement that would have lived on even if he&rsquo;d lost the election. An American Moment: My Vision https://www.toolness.com/wp/2008/11/an-american-moment-my-vision/ 2008年11月07日 00:00:00 +0000 https://www.toolness.com/wp/2008/11/an-american-moment-my-vision/ The newly-launched change.gov has a section for citizens to share their vision for what America can be, and where President-Elect Obama should lead America. I decided to post this to their form: While reading Robert Kuttner's Obama's Challenge several weeks ago, I was fascinated by his description of Denmark's Flexicurity program, which seemed to both help the interests of free-market capitalism while simultaneously offering security to its country's citizens. Rather than subsidizing failing industries, their government appears to give corporations as much free reign as they want to fire/lay-off employees, move workforces overseas, and so forth; they then offer a wealth of social services for people to recover from job loss through retraining. Online Business and Reciprocity https://www.toolness.com/wp/2008/10/online-business-and-reciprocity/ 2008年10月31日 00:00:00 +0000 https://www.toolness.com/wp/2008/10/online-business-and-reciprocity/ Farhad Manjoo recently wrote an article on Slate promoting the notion of online businesses like Facebook charging people for services. It&rsquo;s an interesting business argument, but I wanted to address this situation from a more social perspective. There&rsquo;s some notable differences that emerge when I compare my two favorite web-based businesses, Google and Amazon. I feel very comfortable in my relationship with Amazon, largely because I understand how they help me and how I help them: I give them money, they give me goods or services. A Refreshing Alternative to Presidential Debates https://www.toolness.com/wp/2008/10/a-refreshing-alternative-to-presidential-debates/ 2008年10月05日 00:00:00 +0000 https://www.toolness.com/wp/2008/10/a-refreshing-alternative-to-presidential-debates/ Nothing reminds me how much I despise American politics as the presidential debates. Due to the context surrounding them&mdash;that is, the election&mdash;the candidates have an enormous incentive to focus on tactics directed at lowering the public&rsquo;s regard of an opponent while improving one&rsquo;s own standing, often through the use of misleading statistics and avoiding candid answers to questions. And as a result, rather than helping me understand the issues, the bickering between the two candidates usually results in an incoherence that leaves me utterly confused about the issues and saddened about our politicians&rsquo; ability to arrive at any kind of consensus. President as Teacher https://www.toolness.com/wp/2008/10/president-as-teacher/ 2008年10月01日 00:00:00 +0000 https://www.toolness.com/wp/2008/10/president-as-teacher/ This year&rsquo;s Presidential election has me more passionate about politics than I&rsquo;ve ever been. In part, this is because Obama&rsquo;s campaign is more like a social movement than a political campaign: as Henry Jenkins explains in Obama and the &ldquo;We&rdquo; Generation, part of the reason that Obama&rsquo;s message resonates so much with me and others in my generation is because of how participatory it is. His campaign isn&rsquo;t about making him president and then having him magically repair our nation; it&rsquo;s about working together, with his help, to make our country a better place. What Mozilla Means to Me https://www.toolness.com/wp/2008/09/what-mozilla-means-to-me/ 2008年9月17日 00:00:00 +0000 https://www.toolness.com/wp/2008/09/what-mozilla-means-to-me/ When I talk to my friends and family about Mozilla, I notice that they all have different perceptions of what Mozilla is. Looking at Mozilla&rsquo;s Wikipedia entry doesn&rsquo;t shed much light on things either, as it&rsquo;s largely a glorified disambiguation page that attempts to clarify the word&rsquo;s many different meanings over time. This essay is about what that word means to me. It isn&rsquo;t meant to be definitive, but it should contribute to the ongoing discussion of Mozilla&rsquo;s identity. Ambient News: The Movie https://www.toolness.com/wp/2008/09/ambient-news-the-movie/ 2008年9月11日 00:00:00 +0000 https://www.toolness.com/wp/2008/09/ambient-news-the-movie/ A few weeks ago, I made my first screencast&mdash;a pitch for Ambient News on the Mozilla Labs Concept Series: The screencast was recorded with Vara Software&rsquo;s ScreenFlow; the title cards were composed in Adobe Photoshop CS3 and typeset in Helvetica Neue light. I thought I&rsquo;d write a few notes about some of the thoughts and experiences that went into the making of this. I intentionally gave this video a target run-time of 45 seconds. Ambient News https://www.toolness.com/wp/2008/08/ambient-news/ 2008年8月22日 00:00:00 +0000 https://www.toolness.com/wp/2008/08/ambient-news/ As some people know, it&rsquo;s possible to get the latest news about our favorite sites on a single page through a fairly ubiquitous technology called web syndication. The advantage of this is that we can look at all the news we want in a single place, instead of having to visit dozens of websites per day. Unfortunately, actually setting up web syndication can be a chore&mdash;and often, a confusing one at that. Herdict: The Verdict of the Herd https://www.toolness.com/wp/2008/08/herdict-the-verdict-of-the-herd/ 2008年8月15日 00:00:00 +0000 https://www.toolness.com/wp/2008/08/herdict-the-verdict-of-the-herd/ I&rsquo;m still in the middle of reading The Future of the Internet and How to Stop It, but one of the major &ldquo;take-aways&rdquo; from the book is a software suite that Zittrain has been working on at Harvard University&rsquo;s Berkman Center for Internet and Society called Herdict, which is a portmanteau of &ldquo;herd&rdquo; and &ldquo;verdict&rdquo;. From what I understand, one component of the suite, Herdict for Network Health, is a Firefox/IE plug-in that allows an end-user&rsquo;s computer to tell &ldquo;the herd&rdquo;&mdash;that is, the other users of the software as a single anonymous entity&mdash;what sites it can access. Tab Navigation: Tradeoffs https://www.toolness.com/wp/2008/08/tab-navigation-tradeoffs/ 2008年8月14日 00:00:00 +0000 https://www.toolness.com/wp/2008/08/tab-navigation-tradeoffs/ One of the latest features to land on the trunk of the mozilla-central source code repository&mdash;what will eventually become Firefox 3.1&mdash;is a new mechanism for switching between tabs in Firefox when using the Ctrl+Tab and Ctrl+Shift+Tab shortcut gestures. In Firefox 3.0 and earlier, pressing Ctrl+Tab brings the tab to the right of the currently visible tab into focus, and pressing Ctrl+Shift+Tab brings the tab to the left into focus. One major problem with this interface is that it&rsquo;s usually modal: the user&rsquo;s locus of attention is often focused on the page they want to see, rather than the location of the desired page relative to the current page in the tab order. Parchment on the iPhone https://www.toolness.com/wp/2008/08/parchment-on-the-iphone/ 2008年8月10日 00:00:00 +0000 https://www.toolness.com/wp/2008/08/parchment-on-the-iphone/ I recently spent time making Parchment work properly on my new iPhone 3G. The iPhone has been my first foray into the world of the mobile web, and getting Parchment to work well on it was an interesting experience. Some of the challenges I faced involved getting the iPhone&rsquo;s on-screen keyboard to display properly&mdash;Parchment doesn&rsquo;t actually have any text input fields on it, so by default the iPhone didn&rsquo;t think that users had to enter text&mdash;and modifying some processor-intensive JavaScript code so that the iPhone didn&rsquo;t think that Parchment had gone into an infinite loop. Towards Inter-Community Trust https://www.toolness.com/wp/2008/07/towards-inter-community-trust/ 2008年7月30日 00:00:00 +0000 https://www.toolness.com/wp/2008/07/towards-inter-community-trust/ In my recent post on Trusting Functionality I alluded to a socially-based framework for trust that would allow software to be generative and safe at the same time. When trying to figure out a solution to this problem, I realized that there are already communities on the internet that have built-in social mechanisms for trust. Python, for example, is a language notorious for its lack of protection against untrusted code. Yet we don&rsquo;t see much concern that a Python script may contain malicious code, even though it has the ability to do whatever it wants to our computer. Mercurial Woes https://www.toolness.com/wp/2008/07/mercurial-woes/ 2008年7月27日 00:00:00 +0000 https://www.toolness.com/wp/2008/07/mercurial-woes/ Over the past few days my friends Ben Collins-Sussman and Jim Blandy and I have been having an interesting conversation about the use of Mercurial for development collaboration. Eventually one of my email responses got so long-winded that I figured it&rsquo;d be best to make the conversation public. So, here&rsquo;s my take on Mercurial, and some reasons for why a HG birds-of-a-feather session at the Mozilla Summit coming up next week would be very useful for me. Trusting Functionality https://www.toolness.com/wp/2008/07/trusting-functionality/ 2008年7月23日 00:00:00 +0000 https://www.toolness.com/wp/2008/07/trusting-functionality/ One of the major challenges we face with the design of our new linguistic command-line project is that of trust. As Zittrain mentions in The Future of the Internet, this is really the fundamental problem of generative systems, and also their most valuable asset: the ability for a user to run arbitrary code is simultaneously what gives the personal computer its revolutionary power, but it&rsquo;s also its greatest vulnerability. At present, because our project is still in the prototyping stage, we&rsquo;re opting for freedom of expressiveness and experimentation over security. My First Ambulate-For-a-Cause https://www.toolness.com/wp/2008/07/my-first-ambulate-for-a-cause/ 2008年7月21日 00:00:00 +0000 https://www.toolness.com/wp/2008/07/my-first-ambulate-for-a-cause/ Yesterday I participated in the San Francisco AIDS Walk with two Mozilla interns. I&rsquo;ve always been a bit puzzled by the concept of walks/runs-for-a-cause because at a surface level, the energy an individual spends running or walking doesn&rsquo;t directly contribute to the actual cause they&rsquo;re ambulating for. Ultimately, it seems like it&rsquo;s a transaction for one&rsquo;s time and energy in exchange for a cause&rsquo;s publicity: rather than simply donating a few dollars to a cause, ambulating for the cause is indicative of the sacrifice of one&rsquo;s time in the name of a cause (which can be more valuable than money, depending on the individual). Ubiquitous Interfaces, Ubiquitous Functionality https://www.toolness.com/wp/2008/07/ubiquitous-interfaces-ubiquitous-functionality/ 2008年7月14日 00:00:00 +0000 https://www.toolness.com/wp/2008/07/ubiquitous-interfaces-ubiquitous-functionality/ Lately some of us at Mozilla Labs have been experimenting with graphical keyboard user interfaces in Firefox. Our current work-in-progress is something that we&rsquo;re calling Ubiquity for the time being, though the name is by no means set in stone. This project is heavily informed by Enso, a software product developed by me and my colleagues at Humanized from 2005-07. Aside from the benefits outlined in Alex Faaborg&rsquo;s blog post entitled The Graphical Keyboard User Interface, this experiment is intended to solve few other problems, one of which I&rsquo;ll address in this post. The Future of the Internet, How to Stop It, and Me https://www.toolness.com/wp/2008/07/the-future-of-the-internet-how-to-stop-it-and-me/ 2008年7月11日 00:00:00 +0000 https://www.toolness.com/wp/2008/07/the-future-of-the-internet-how-to-stop-it-and-me/ A few weeks ago, Oxford University professor Jonathan Zittrain recommended Firefox 3 on The Colbert Report. While getting the bump for the browser from this great show was certainly a win for Mozilla, more provocative was the new book Zittrain was discussing with Colbert, entitled The Future of the Internet and How to Stop It. Contrary to the Luddism I&rsquo;d assumed the book&rsquo;s title implied&mdash;e.g., that the Internet is a terrible thing and needs to be dismantled&mdash;Zittrain instead celebrates how open and positive the Internet and personal computing have been for us, but warns that this liberating period is in danger of coming to a close. Running C and Python Code on The Web https://www.toolness.com/wp/2008/07/running-c-and-python-code-on-the-web/ 2008年7月03日 00:00:00 +0000 https://www.toolness.com/wp/2008/07/running-c-and-python-code-on-the-web/ Last week, Scott Petersen from Adobe gave a talk at Mozilla on a toolchain he&rsquo;s been creating&mdash;soon to be open-sourced&mdash;that allows C code to be targeted to the Tamarin virtual machine. Aside from being a really interesting piece of technology, I thought its implications for the web were pretty impressive. Before reading this post, readers who aren&rsquo;t familiar with Tamarin may want to read Frank Hecker&rsquo;s excellent Adobe, Mozilla, and Tamarin post from 2006 for some background on its goals and why it&rsquo;s relevant to Mozilla and the open-source community in general. Learning How to Write Interactive Fiction https://www.toolness.com/wp/2008/06/learning-how-to-write-interactive-fiction/ 2008年6月29日 00:00:00 +0000 https://www.toolness.com/wp/2008/06/learning-how-to-write-interactive-fiction/ Yesterday I tried learning Inform 7. I&rsquo;m not sure how I feel about the documentation for this language; on the one hand, like its predecessor, the DM4 for Inform 6, it&rsquo;s extremely thorough and well-written. On the other hand, one aspect of the DM4 that made it among my favorite programming books&mdash;perhaps one of my favorite books, period&mdash;was its exercises, which made experiencing the book fairly interactive. The act of reading a relatively short amount of text and then putting one&rsquo;s newly-found knowledge to use in the solving of a difficult problem not only helped reinforce the knowledge for me, but it was also fun. Introducing Parchment https://www.toolness.com/wp/2008/06/introducing-parchment/ 2008年6月15日 00:00:00 +0000 https://www.toolness.com/wp/2008/06/introducing-parchment/ A few weeks ago, I started a small project to create a user interface for something called a Z-Machine: a virtual machine created by Infocom in the late 1970&rsquo;s to run their text adventure games&mdash;the most famous among them being Zork, which is apparently what the &ldquo;Z&rdquo; in Z-Machine stands for. These games, as their name suggests, are completely text-based; Infocom&rsquo;s 1984 masterpiece The Hitchhiker&rsquo;s Guide to the Galaxy, for instance, opens with this passage: Python-SpiderMonkey Resurrected https://www.toolness.com/wp/2008/06/python-spidermonkey-resurrected/ 2008年6月11日 00:00:00 +0000 https://www.toolness.com/wp/2008/06/python-spidermonkey-resurrected/ Yesterday I found John J. Lee&rsquo;s old Python-SpiderMonkey code from 2003, which creates a bridge between the Python language and Mozilla&rsquo;s SpiderMonkey JavaScript engine&mdash;the same engine that powers Firefox. Lee mentioned on his website that it&rsquo;s not currently maintained, and after downloading it and trying to compile it, I found that SpiderMonkey had changed a bit since the code had been written, so I made some fixes and, after discussing things with him, set up a new Google Code project for it at http://code. The Morality of Bottled Water https://www.toolness.com/wp/2008/06/the-morality-of-bottled-water/ 2008年6月08日 00:00:00 +0000 https://www.toolness.com/wp/2008/06/the-morality-of-bottled-water/ Salon.com recently published an interesting interview with Elizabeth Royte, the author of a new book called Bottlemania: How Water Went on Sale and Why We Bought It. It&rsquo;s definitely worth a read, I think. One of the biggest takeaways from it is the fact that the whole &ldquo;8 cups of water a day&rdquo; maxim isn&rsquo;t so much a myth as a misinterpretation that&rsquo;s been promulgated by the water industry: yes, we need 8 cups of water a day, but we already get most of it from the water contained in the food we eat. Python for JavaScript Programmers https://www.toolness.com/wp/2008/06/python-for-javascript-programmers/ 2008年6月06日 00:00:00 +0000 https://www.toolness.com/wp/2008/06/python-for-javascript-programmers/ I couldn&rsquo;t find anything on the web that attempted to teach Python to readers who already knew JavaScript, so I thought I&rsquo;d give it a shot, since a number of my friends at Mozilla don&rsquo;t know much about Python but know JavaScript incredibly well. The languages actually aren&rsquo;t that dissimilar&mdash;in fact, some of JavaScript&rsquo;s latest features have been borrowed directly from Python. Aside from focusing on differences and similarities between the two languages, I also try to explain Python&rsquo;s design philosophy a bit, to give readers a context for why things work the way they do. Enso: A Progress Report https://www.toolness.com/wp/2008/06/enso-a-progress-report/ 2008年6月01日 00:00:00 +0000 https://www.toolness.com/wp/2008/06/enso-a-progress-report/ Since moving to Mozilla, I haven&rsquo;t had a ton of time to work on Enso, the commercial product turned open-source project that I worked on at Humanized. One of the things I&rsquo;ve been learning about at Mozilla, though, has been getting into the habit of writing about what I&rsquo;m working on. We didn&rsquo;t do this much at Humanized, at least not until the first few months of 2008 when we started designing openly. Weave: An Issue of Humane Security https://www.toolness.com/wp/2008/05/weave-an-issue-of-humane-security/ 2008年5月29日 00:00:00 +0000 https://www.toolness.com/wp/2008/05/weave-an-issue-of-humane-security/ Given what I explained about Weave in yesterday&rsquo;s blog post, it&rsquo;s clear that one of the biggest challenges facing the project, aside from its far-from-trivial implementation, will be its usability. The good thing, as I mentioned in yesterday&rsquo;s post, is that the project abstracts away any notion of asymmetric cryptography and all the complex concepts it brings to the table. But are there other ways it could be made easier to use? Mozilla Weave: A Bird's-eye View https://www.toolness.com/wp/2008/05/mozilla-weave-a-birds-eye-view/ 2008年5月28日 00:00:00 +0000 https://www.toolness.com/wp/2008/05/mozilla-weave-a-birds-eye-view/ For the past week at Labs, many of us have been sprinting on getting Weave to release 0.2, which aims to be able to allow users to sync all their information between multiple browsers. This is something that Google Browser Sync has been doing for a while, but Weave&rsquo;s adding an interesting twist to it all: because it aims to maximize user privacy, the data stored on the cloud is basically encrypted by a passphrase that only the user knows. Humane Code Highlighting and js2-mode https://www.toolness.com/wp/2008/05/humane-syntax-highlighting-and-js2-mode/ 2008年5月21日 00:00:00 +0000 https://www.toolness.com/wp/2008/05/humane-syntax-highlighting-and-js2-mode/ One feature of many text editors that I&rsquo;ve always been a little skeptical about from a user interface perspective has been syntax highlighting. It certainly looks pretty and serves to make the process of reading and writing code more satisfying, but I&rsquo;ve had a hard time justifying to myself that it&rsquo;s something that&rsquo;s truly useful in a concrete way. The few examples that always come to mind are when syntax highlighting alerts me to the fact that I&rsquo;m using the wrong syntax. More Firefox 3 Awesomeness: Smooth Image Scaling https://www.toolness.com/wp/2008/05/more-firefox-3-awesomeness-smooth-image-scaling/ 2008年5月18日 00:00:00 +0000 https://www.toolness.com/wp/2008/05/more-firefox-3-awesomeness-smooth-image-scaling/ I actually noticed another new Firefox 3 awesomeness yesterday while writing my post Firefox 3 is Awesome. Three of Deb&rsquo;s images I used were too big for the width of my blog&rsquo;s main column, which is 500 pixels. So instead of using HTML like this: &lt;img src=&ldquo;http://www.flickr.com/bigimage.jpg&quot;&gt; I used HTML like this: &lt;img src=&ldquo;http://www.flickr.com/bigimage.jpg&quot; width=&ldquo;500&rdquo;&gt; This basically tells the browser to try to proportionately resize the image so that it&rsquo;s 500 pixels wide. Firefox 3 is Awesome https://www.toolness.com/wp/2008/05/firefox-3-is-awesome/ 2008年5月17日 00:00:00 +0000 https://www.toolness.com/wp/2008/05/firefox-3-is-awesome/ Mozilla has just released Firefox 3 Release Candidate 1 and the final release is just around the corner. I really think that this is an awesome product, and wanted to mention my two biggest reasons for why that is. Reason 1: The AwesomeBar Yes, it&rsquo;s actually called the AwesomeBar. This is what the URL bar looks like in Firefox 2: and this is what it looks like in 3: The great thing about this interface is that it requires zero effort to find and take advantage of; everyone uses the URL bar, and will eventually discover the usefulness of this feature when the suggestion list gives them what they want before they&rsquo;re done asking for it. Information Complexity and the Downfall of the Adventure Game https://www.toolness.com/wp/2008/04/information-complexity-and-the-downfall-of-the-adventure-game-2/ 2008年4月24日 00:00:00 +0000 https://www.toolness.com/wp/2008/04/information-complexity-and-the-downfall-of-the-adventure-game-2/ Back in 2005, I wrote a tentative article for The Game Chair titled Information Complexity and the Downfall of the Adventure Game, but due to some annoying legal issues, it never got published there. A little under a year ago, I contacted my favorite gaming magazine, The Escapist, to see if they&rsquo;d be interested in publishing it, and they were. It was subsequently featured in issue 116 last September, but I just realized that I never mentioned it here. My Stuff, Open-Sourced https://www.toolness.com/wp/2008/04/my-stuff-open-sourced/ 2008年4月21日 00:00:00 +0000 https://www.toolness.com/wp/2008/04/my-stuff-open-sourced/ After hearing Chris McAvoy drunkenly wax poetic on how programmers should be more open with the stuff they write&mdash;McAvoy himself keeps a lot of his code in a public works repository on Google Code&mdash;I decided to work more openly too. So a month or two ago I set up a Mercurial repository at hg.toolness.com and have been regularly pushing a lot of my one-off projects to it. Most of the projects on there don&rsquo;t mention anything about their license, though, and I&rsquo;m not sure what to do about that. My First Mozilla Patch https://www.toolness.com/wp/2008/04/my-first-mozilla-patch/ 2008年4月19日 00:00:00 +0000 https://www.toolness.com/wp/2008/04/my-first-mozilla-patch/ Last week I decided to try my hand at contributing my first patch to the Mozilla source code repository, and I thought it might be useful to chronicle what went into it, as well as what I learned from the process. This particular contribution was actually motivated in part by a blog post by Mike Beltzner on the need for Mac-specific improvements to Firefox 3, and also by my own work on the Mac port of open-source Enso. PyOhio https://www.toolness.com/wp/2008/04/pyohio/ 2008年4月14日 00:00:00 +0000 https://www.toolness.com/wp/2008/04/pyohio/ I just found out that my hometown of Columbus, Ohio, is holding a Python conference. This is really cool. I encourage anyone in the area who is interested in computer programming or knows anyone who is to spread the word about this. Aside from being a really fun and easy language to learn and use&mdash;it&rsquo;s simple enough to be taught to children&mdash;it&rsquo;s also powerful enough to be widely used in the industry (for instance, it&rsquo;s the flagship language of the recently-released Google App Engine). Python as a Platform https://www.toolness.com/wp/2008/03/python-as-a-platform/ 2008年3月16日 00:00:00 +0000 https://www.toolness.com/wp/2008/03/python-as-a-platform/ <p>Something that recently occurred to me is that the only operating system that doesn&rsquo;t come with Python pre-installed on it is Windows.</p> <p>While Linux and OS X both view Python as essentially a first-class development platform&ndash;i.e., as something that shrink-wrap applications can be built on&ndash;Windows does not. Instead, it&rsquo;s generally expected that a Python-based Windows application be &ldquo;frozen&rdquo;: bundled into a self-contained package that includes a copy of the Python interpreter and whatever libraries it uses, which are private to the particular application. While this ensures that the application will function as expected and not run into &ldquo;dependency hell&rdquo;, it also results in a relatively large download&ndash;distributing a simple &ldquo;Hello World&rdquo; program is at least a megabyte in size, and makes extending the program&rsquo;s functionality more difficult.</p> <p>During the summer of 2007, I made simple Python-based tool for some friends who played World of Warcraft; for those that played on the Mac, the situation was easy because their computers already had Python on them. For the Windows users, however, I was faced with the dilemma of either &ldquo;freezing&rdquo; the program into a fairly large download which would be difficult to test and update, or making my friends download the Python installer from <a href="http://www.python.org">python.org</a> and running my Python script from source. Either solution seemed too cumbersome.</p> <p>So instead, I opted for a different solution: I&rsquo;d create a tiny executable that would first check for the existence of a Python installation on the end-user&rsquo;s system. If Python was already installed, the executable would simply extract a Python script from itself and run it. That script was much like <a href="http://peak.telecommunity.com/DevCenter/EasyInstall#installing-easy-install">ez_setup.py</a>; along with a few tricks, it essentially ensured that my friends would transparently auto-update to the latest version of the tool whenever they launched the program.</p> <p>If there was no Python installation on the end-user&rsquo;s system, however, the executable would simply transparently download the latest Python installer from python.org, silently install it on the end-user&rsquo;s system without any prompting, and then proceed as outlined above.</p> <p>So, in other words, a small executable file&ndash;only about 50k in size&ndash;was essentially responsible for &ldquo;bootstrapping&rdquo; my program by downloading and silently installing Python if necessary, and then downloading and running the latest version of my program&rsquo;s source code. This ultimately meant that the user would be able to run a self-updating Python program from a tiny executable without having to click through any installation prompts or dialog boxes.</p> <p>I&rsquo;m glossing over a few details here and there are definitely some holes in my implementation&ndash;for instance, if the user uses a web proxy, they&rsquo;re hosed&ndash;but I thought the general idea was interesting.</p> <p>The source for the executable was compiled using the <a href="http://nsis.sourceforge.net/Main_Page">Nullsoft Scriptable Install System</a>, along with its <a href="http://nsis.sourceforge.net/InetLoad">InetLoad plug-in</a>. The source file is below for those interested.</p> On The New York Times https://www.toolness.com/wp/2008/02/on-the-new-york-times/ 2008年2月15日 00:00:00 +0000 https://www.toolness.com/wp/2008/02/on-the-new-york-times/ I&rsquo;ve decided that I&rsquo;m not a big fan of New York Times, or of newspapers in general. It&rsquo;s not that they&rsquo;re fundamentally wrong or anything, but as a source of daily information, it&rsquo;s complete and total overload for me. For instance, on the day after Super Tuesday, I wanted to read a bit about what happened, so I tried subscribing to a two-week trial of the online edition of the New York Times on my Kindle. A Simple Mozilla Build Script and Tutorial https://www.toolness.com/wp/2008/01/a-simple-mozilla-build-scripttutorial/ 2008年1月18日 00:00:00 +0000 https://www.toolness.com/wp/2008/01/a-simple-mozilla-build-scripttutorial/ <p>Last Wednesday, I started working at <a href="http://www.mozilla.com">Mozilla</a>, the awesome company responsible for leading and coordinating the development of the Firefox browser. I&rsquo;m now working for their <a href="http://labs.mozilla.com/">labs team</a>, exploring new ways of making the internet easier to use. Everyone I&rsquo;ve met here so far is very friendly, intelligent, and motivated to make the web a better place; I&rsquo;m really looking forward to working with them more.</p> <p>One of the first tasks I&rsquo;ve given myself here has been to get myself acquainted with the Mozilla build system, which is used to build Firefox, among other Mozilla projects. I&rsquo;m most familiar with <a href="http://www.scons.org/">SCons</a>, a Python-based tool we use at <a href="http://www.humanized.com">Humanized</a> to develop Enso, and while I have some experience with Makefiles and the GNU Autotools, it&rsquo;s been enlightening to see how the build system for a project as large as Firefox works.</p> <p>While doing this, I spoke with Mike Meltzner, who passed me some gems of wisdom that were given to him by Vlad Vukicevic regarding a different way of setting up the build system than the one prescribed in the <a href="http://developer.mozilla.org/en/docs/Build_Documentation">Mozilla Build Documentation</a>.</p> <p>I thought that the way Mike and Vlad did things was much more preferable than the one prescribed in the traditional build documentation, largely because it kept the CVS checkout 100% &ldquo;pristine&rdquo; and used a completely separate, parallel directory structure for everything else; aside from providing a really clean separation between what was under version control and what wasn&rsquo;t, this gave me a much better idea of how the build system actually worked. Mike said that his way of doing things wasn&rsquo;t documented anywhere, so I figured I&rsquo;d write a simple script/tutorial that walks a reader through the setting up of the build system, the checking-out of Firefox from the source code repository, and the building of the application itself. It works on my OS X machine; I&rsquo;m not sure if it works under cygwin or Linux, but I imagine it should.</p> <p>Feedback is appreciated.</p> Pickle Presentation Slides https://www.toolness.com/wp/2008/01/pickle-presentation-slides/ 2008年1月11日 00:00:00 +0000 https://www.toolness.com/wp/2008/01/pickle-presentation-slides/ At yesterday&rsquo;s Chicago Python User Group (ChiPy) meeting, I gave a presentation on the Python pickle module; I&rsquo;d always been curious in the internals of how serialization works &ldquo;under the hood&rdquo; and wanted to learn enough about it to give a talk that was accessible to Python newcomers and veterans alike. I&rsquo;d like to thank Robert Zeh of GETCO for hosting the meeting, and everyone for attending&ndash;we had a great turnout. Forging The Seal: When beating the game is beating the interface https://www.toolness.com/wp/post/forging-the-seal/ 2007年7月13日 00:00:00 +0000 https://www.toolness.com/wp/post/forging-the-seal/ <p><span style="font-variant:small-caps;"><b>B</b>reaking the drake's will was the easy part.</span></p> <p>The dragon "Emberstrife" faltered before her, his wings flailing in the air, struggling to support his massive and broken frame. Ichor fell from his wounds, sizzling into the water below him in a crimson torrent.</p> <p></p> Mixed Thoughts on the Metaverse https://www.toolness.com/wp/mixed-thoughts-on-the-metaverse/ 2007年4月29日 00:00:00 +0000 https://www.toolness.com/wp/mixed-thoughts-on-the-metaverse/ <p>Last week, I spent a few days on Second Life and read <a href="http://www.amazon.com/Unofficial-Tourists-Guide-Second-Life/dp/0752226460/ref=sr_1_1/002-4267169-5240829?ie=UTF8&s=books&qid=1177856414&sr=8-1">The Unofficial Tourists&rsquo; Guide</a>.</p> <p></p> PyPy Presentation Slides https://www.toolness.com/wp/2007/04/pypy-presentation-slides/ 2007年4月13日 00:00:00 +0000 https://www.toolness.com/wp/2007/04/pypy-presentation-slides/ At yesterday&rsquo;s Chicago Python User Group (ChiPy) meeting, I gave an informal presentation on PyPy, a project that I&rsquo;ve been interested in lately. I&rsquo;ve posted the slides here as a PDF. Be warned, though, that PyPy is by no means my area of expertise, so these slides may not be terribly accurate. I&rsquo;ll be fixing them as I learn about their errors. Humanized https://www.toolness.com/wp/2007/03/humanized/ 2007年3月08日 00:00:00 +0000 https://www.toolness.com/wp/2007/03/humanized/ In late 2005, three colleagues and I founded a company called Humanized. A little over a month ago, we released our first two products, Enso Launcher and Enso Words. I&rsquo;m indebted to my incredible co-workers, Jono DiCarlo, Aza Raskin, and Andrew Wilson, for making this possible. Working at Humanized has certainly been the best job I&rsquo;ve ever had, not to mention an excellent learning experience. Naz Hamid was also instrumental in providing us with superb graphic design and was very helpful as a business mentor in general. Python Emacs Development https://www.toolness.com/wp/2007/03/python-emacs-development/ 2007年3月08日 00:00:00 +0000 https://www.toolness.com/wp/2007/03/python-emacs-development/ Back in 2005, while I was taking a class taught by the late Jef Raskin at the University of Chicago, I was inspired by his program The Humane Environment to write some Emacs commands that would make software development a little easier for myself. Based on some interest from the Chicago Python User Group, I&rsquo;ve polished the code a bit and published it here. Read more about pymdev, A Python Emacs Development Module. GuildPal 0.3 https://www.toolness.com/wp/guildpal-03/ 2006年7月31日 00:00:00 +0000 https://www.toolness.com/wp/guildpal-03/ <p>GuildPal is a World of Warcraft addon that adds two simple slash commands to your World of Warcraft interface, intended to facilitate the communication between members of a growing guild.</p> <p></p> F.E.A.R. -- Single-Player Demo Impressions https://www.toolness.com/wp/2005/08/fear-single-player-demo-impressions/ 2005年8月08日 00:00:00 +0000 https://www.toolness.com/wp/2005/08/fear-single-player-demo-impressions/ <p>I recently played through the single-player demo of Monolith&rsquo;s upcoming suspense-themed first-person shooter, <i>F.E.A.R.</i>, and decided to write about it.</p> <p></p> Chicago Google Earth Overlays https://www.toolness.com/wp/google-earth-overlays/ 2005年8月01日 00:00:00 +0000 https://www.toolness.com/wp/google-earth-overlays/ <p>After learning about <a href="http://earth.google.com/">Google Earth</a> and discovering Sam Perkins-Harbin&rsquo;s excellent <a href="http://www.forge22.com/ge/">overlays</a> including CTA maps and Chicago traffic overlays, I decided to play around with the technology a little myself. Since I&rsquo;m currently in the middle of reading <a href="http://www.amazon.com/exec/obidos/ASIN/0226443221/qid=1122912014/sr=2-1/ref=pd_bbs_b_ur_2_1/102-5533122-5209742">Heat Wave: A Social Autopsy of Disaster in Chicago</a> and I&rsquo;m interested in Chicago history, I decided to start out with a few overlays related to those topics.</p> <p></p> Slightly Old Stuff https://www.toolness.com/wp/2005/08/slightly-old-stuff/ 2005年8月01日 00:00:00 +0000 https://www.toolness.com/wp/2005/08/slightly-old-stuff/ The following is a summary of stuff I worked on before the new Toolness was created, but after I stopped maintaining any of my old sites. Programming Narrowcaster - During the summer of 2004, I realized how great RSS syndication was and decided to get an aggregator. Unfortunately, all of them were horribly complicated: highly modal interfaces, tons of tabs and controls and buttons to mess around with and what have you. Another Beginning https://www.toolness.com/wp/2005/07/about-toolness/ 2005年7月31日 00:00:00 +0000 https://www.toolness.com/wp/2005/07/about-toolness/ Well, the new Toolness has been launched. You can read about what this site is for here. Façade - Second and Final Play https://www.toolness.com/wp/post/facade-second-and-final-play/ 2005年7月25日 00:00:00 +0000 https://www.toolness.com/wp/post/facade-second-and-final-play/ <p>This game is not fun. I don't mean that as an insult; it's just an observation. I mean, how could mediating an argument that may result in the dissolution of a marriage possibly be <i>amusing</i>? There's a good reason that the authors call this an interactive drama and not a game.</p> <p></p> Façade - First Play Session https://www.toolness.com/wp/post/facade-first-play-session/ 2005年7月13日 00:00:00 +0000 https://www.toolness.com/wp/post/facade-first-play-session/ <p>Gaming is born of conflict. From chess to <i>Super Mario Bros.</i> to <i>Halo</i>, it's always had something to do with disharmony, the player's mission to set things right being the impetus for gameplay.</p> <p>It's no surprise, then, that the story of <i>Façade</i>, a one-act interactive drama, involves a battle of wills and charged emotion. Being the mediator in a pivotal argument that could easily lead to the dissolution of a marriage is probably about as tenuous as being caught in the line of fire between two opposing armies, if not moreso, and <i>Façade</i> faithfully depicts this psychological battleground with terrifying aplomb.</p> <p></p> Façade - Prologue https://www.toolness.com/wp/post/facade-prologue/ 2005年7月12日 00:00:00 +0000 https://www.toolness.com/wp/post/facade-prologue/ <p>A lot of gamers have always longed for the kind of games that are like their favorite novels and films. Something that, for instance, carries with it the same emotional impact and capacity for provoking thought as an award-winning play.</p> <p></p> SWKOTOR2 Secret Tomb Bugfix https://www.toolness.com/wp/swkotor2-secret-tomb-bugfix/ 2005年6月06日 00:00:00 +0000 https://www.toolness.com/wp/swkotor2-secret-tomb-bugfix/ <p>I made a fix for a scripting bug in <a href="http://www.lucasarts.com/games/swkotor_sithlords/">Star Wars - Knights of the Old Republic II: The Sith Lords</a>.</p> <p></p> Food Force review https://www.toolness.com/wp/post/food-force-review/ 2005年4月17日 00:00:00 +0000 https://www.toolness.com/wp/post/food-force-review/ <p>Education + twitch gaming = bad idea.</p> <p></p> A Farewell to Jef Raskin https://www.toolness.com/wp/a-farewell-to-jef-raskin/ 2005年3月01日 00:00:00 +0000 https://www.toolness.com/wp/a-farewell-to-jef-raskin/ <p>As many of you may already know, Jef Raskin, commonly credited as the creator of the Macintosh computer, died on Saturday, February 26th, 2005.</p> <p>Jef was both my mentor at the University of Chicago in the spring of 2004, and became my employer the following summer, when I began to work with him on his next-generation computing platform, called Archy.</p> <p>This isn&rsquo;t to say that I was particularly close to the man; my relationship with him was strictly professional, and as such, I don&rsquo;t know how much I can say about him.</p> <p>But I can say a few things.</p> <p></p> Planetfall review https://www.toolness.com/wp/post/planetfall-review/ 2004年4月17日 00:00:00 +0000 https://www.toolness.com/wp/post/planetfall-review/ <p>Not impressed.</p> <p></p> Plundered Hearts review https://www.toolness.com/wp/post/plundered-hearts-review/ 2004年4月17日 00:00:00 +0000 https://www.toolness.com/wp/post/plundered-hearts-review/ <p>An unusual game for Infocom, and a good introduction to interactive fiction.</p> <p></p> Wishbringer review https://www.toolness.com/wp/post/wishbringer-review/ 2004年4月08日 00:00:00 +0000 https://www.toolness.com/wp/post/wishbringer-review/ <p>An excellent introduction to puzzle-based interactive fiction.</p> <p></p>

AltStyle によって変換されたページ (->オリジナル) /