Advertise with Googlier.com tag:blogger.com,1999:blog-8295194Wed, 26 Aug 2026 01:17:21 +0000seedsCaitlynmozillamusicmovieshomeschoolingdesignfreelancingheaven and earthinterchangeapprenticeshipplanetaryeraseize the daygimmeshinyishidoIan Gilman - Bloghttp://blog.iangilman.com/noreply@blogger.com (Ian Gilman)Blogger177125tag:blogger.com,1999:blog-8295194.post-1084745375689765994Sat, 03 Feb 2024 19:00:00 +00002024-02-03T11:00:19.397-08:00Moving On<p>It's time for me to admit I'm not really posting here on Blogger anymore. I'll still keep this blog online (as long as Blogger continues to exist) as a record of nearly 2 decades of writing, but I don't expect to be adding to it.<br /><br />If you want to see what I'm up to now, come find me on <a href="https://iangilman.medium.com/" target="_blank">Medium</a> or <a href="https://iangilman.substack.com/" target="_blank">Substack</a>!</p>http://blog.iangilman.com/2024/02/moving-on.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-6301028733996074417Mon, 17 Jan 2022 04:25:00 +00002022-01-17T10:09:10.921-08:00freelancingGoodbye 2021, Hello 2022!<img border="0" data-original-height="545" data-original-width="1500" src="https://blogger.googleusercontent.com/img/a/AVvXsEhga17TPb5PRY34MYj-EQdswx7KI1PIsYsxlzlKgjsIKJ9o4Mtg2G6uI3jJyFGI7piOfHHD9vqB-ZEL2cTdASo6oemjnjJRKNuDwt40M9G386BA7dXkE7G3d6ONxveLKy4f2AUct0cJuDmKNW97CNFUWQ_WuACJEJaTJ-JPcQZHUYWfFpgxvQ=w640-h232" width="490" /><p>It’s that time again, where we answer the question, “What the heck have I been up to this last year?” Step into my wayback machine all the way to last January and we’ll find out…</p><p class="graf graf--p" name="47dd">2020 was a challenging year for all of us, and part of that in my case was that at some point I just gave up on keeping up with <a class="markup--anchor markup--p-anchor" data-href="https://openseadragon.github.io/" href="https://openseadragon.github.io/" rel="noopener" target="_blank">OpenSeadragon</a> stuff, and the issues and pull requests piled up. In January 2021 I finally started digging my way back out of that hole, and within a few months I was caught up again. Things are humming along there now, and we even <a class="markup--anchor markup--p-anchor" data-href="https://github.com/openseadragon/openseadragon/releases/tag/v3.0.0" href="https://github.com/openseadragon/openseadragon/releases/tag/v3.0.0" rel="noopener" target="_blank">released version 3.0.0</a> with a ton of features and fixes! We’ve also joined the modern world and moved our primary chat space over to <a class="markup--anchor markup--p-anchor" data-href="https://discord.gg/Ygwap8UrGC" href="https://discord.gg/Ygwap8UrGC" rel="noopener" target="_blank">Discord</a> (<a class="markup--anchor markup--p-anchor" data-href="https://gitter.im/openseadragon/openseadragon" href="https://gitter.im/openseadragon/openseadragon" rel="noopener" target="_blank">Gitter</a> still works, but Discord is where the party’s at). Somehow we ended up making some <a class="markup--anchor markup--p-anchor" data-href="https://github.com/openseadragon/openseadragon/discussions/2031" href="https://github.com/openseadragon/openseadragon/discussions/2031" rel="noopener" target="_blank">OpenSeadragon memes</a> as well… That’s how you know that a project has truly arrived, right? That said, we need more, so if you have any meme ideas, get cracking!</p><p class="graf graf--p" name="790d">We also finally set up an <a class="markup--anchor markup--p-anchor" data-href="https://opencollective.com/openseadragon" href="https://opencollective.com/openseadragon" rel="noopener" target="_blank">OpenCollective for OpenSeadragon funding</a>. I think OpenCollective is a great service; I love their focus on transparency. Of course <a class="markup--anchor markup--p-anchor" data-href="https://www.patreon.com/iangilman" href="https://www.patreon.com/iangilman" rel="noopener" target="_blank">Patreon</a> is cool too, but I feel it’s more appropriate for an individual creator like myself than a whole open source project like OpenSeadragon. Things are starting slowly with the OpenCollective… I think there’s a real possibility for the many institutions that rely on OpenSeadragon to each kick in some regular money to keep things rolling. Unfortunately, going to all these folks with the hat out isn’t really my forte, so for now we just wait for people to discover it.</p><p class="graf graf--p" name="267a">Oh! And I’m also putting together an <a class="markup--anchor markup--p-anchor" data-href="https://github.com/openseadragon/openseadragon/discussions/1990" href="https://github.com/openseadragon/openseadragon/discussions/1990" rel="noopener" target="_blank">OpenSeadragon training course</a> with <a class="markup--anchor markup--p-anchor" data-href="https://www.newline.co/" href="https://www.newline.co/" rel="noopener" target="_blank">Newline</a>. It’ll take you through the basics and up through advanced techniques, all with real-world projects. I’m looking for beta readers, so if that’s of interest, hit me up!</p><p class="graf graf--p" name="7577">It hasn’t all been OpenSeadragon… The <a class="markup--anchor markup--p-anchor" data-href="https://pixfabrik.com/livingworlds/" href="https://pixfabrik.com/livingworlds/" rel="noopener" target="_blank">Living Worlds</a> app continues to find its audience, which is awesome! For my part, I’ve been moving up the learning curve on <a class="markup--anchor markup--p-anchor" data-href="https://iangilman.medium.com/living-worlds-sounds-db8c917540ad" href="https://iangilman.medium.com/living-worlds-sounds-db8c917540ad" rel="noopener" target="_blank">sound design</a>, putting together sounds for the different scenes. I’ve used monthly social media posts as a way to focus the problem into bite-size chunks. You can see them all on <a class="markup--anchor markup--p-anchor" data-href="https://www.instagram.com/livingworldsart/" href="https://www.instagram.com/livingworldsart/" rel="noopener" target="_blank">Instagram</a>, but you can also find them on <a class="markup--anchor markup--p-anchor" data-href="https://twitter.com/livingworldsart" href="https://twitter.com/livingworldsart" rel="noopener" target="_blank">Twitter</a>, <a class="markup--anchor markup--p-anchor" data-href="https://www.facebook.com/LivingWorldsArt" href="https://www.facebook.com/LivingWorldsArt" rel="noopener" target="_blank">Facebook</a>, and <a class="markup--anchor markup--p-anchor" data-href="https://www.tiktok.com/@livingworldsart" href="https://www.tiktok.com/@livingworldsart" rel="noopener" target="_blank">TikTok</a>. Oh yeah! I started the Facebook and TikTok for Living Worlds in 2021. I finally feel I’m ready to start rolling those soundscapes out in the app, and the <a class="markup--anchor markup--p-anchor" data-href="https://iangilman.medium.com/living-worlds-soundscapes-january-edition-176581f8a91e" href="https://iangilman.medium.com/living-worlds-soundscapes-january-edition-176581f8a91e" rel="noopener" target="_blank">January sounds are in</a>! By continuing to do it one month at a time, I’m keeping it doable (and besides, it’s kind of fun to release things one piece at a time).</p><p class="graf graf--p" name="d9b3">Let’s see, early in 2021 I also did a bunch of work improving <a class="markup--anchor markup--p-anchor" data-href="https://www.driftory.com/" href="https://www.driftory.com/" rel="noopener" target="_blank">Driftory</a> in preparation for <a class="markup--anchor markup--p-anchor" data-href="https://www.stuartmcmillen.com/" href="https://www.stuartmcmillen.com/" rel="noopener" target="_blank">Stuart McMillen’s</a> new comic <a class="markup--anchor markup--p-anchor" data-href="https://www.patreon.com/posts/more-work-in-43279937" href="https://www.patreon.com/posts/more-work-in-43279937" rel="noopener" target="_blank">project on universal basic income</a>. That’s gone on hold while he finishes up <a class="markup--anchor markup--p-anchor" data-href="https://www.stuartmcmillen.com/comic/town-without-television-1-notel/" href="https://www.stuartmcmillen.com/comic/town-without-television-1-notel/" rel="noopener" target="_blank">The Town Without Television</a>, but hopefully it will be appearing sometime in 2022.</p><p class="graf graf--p" name="e54d">I’ve also been pursuing 3D art, which has been a very rewarding journey. I’ve fallen in love with <a class="markup--anchor markup--p-anchor" data-href="https://www.blender.org/" href="https://www.blender.org/" rel="noopener" target="_blank">Blender</a> and the wonderful community around it! <a class="markup--anchor markup--p-anchor" data-href="https://www.artstation.com/iangilman" href="https://www.artstation.com/iangilman" rel="noopener" target="_blank">My ArtStation</a> is the best place to see my finished pieces.</p><p class="graf graf--p" name="385e">Of course there’s client work. I’m blessed to be part of several great teams on exciting projects! The theme right now seems to be “fun telepresence” (if we can’t get together in person, we can get together online, and it might as well be enjoyable): I’m helping build a whimsical 3D/video gathering space with <a class="markup--anchor markup--p-anchor" data-href="https://www.urnowhere.com/" href="https://www.urnowhere.com/" rel="noopener" target="_blank">Nowhere</a> and a lighthearted shared doodle space with <a class="markup--anchor markup--p-anchor" data-href="https://scribbletogether.com/" href="https://scribbletogether.com/" rel="noopener" target="_blank">Scribble Together</a>. I’m also continuing to make pretty data visualizations with <a class="markup--anchor markup--p-anchor" data-href="https://www.schemadesign.com/" href="https://www.schemadesign.com/" rel="noopener" target="_blank">Schema Design</a> and keeping things running at <a class="markup--anchor markup--p-anchor" data-href="https://www.tota.world/" href="https://www.tota.world/" rel="noopener" target="_blank">Traditions of the Ancestors.</a> There are other things in the works, but they are top-secret still!</p><p class="graf graf--p" name="bd38">What does the future hold? Well, pretty much more of the same, I figure… I feel like I’m in a pretty good groove. I’ll be rolling out new versions of Living Worlds with new sounds for each new month. I’ll continue to facilitate progress on OpenSeadragon. Hopefully Driftory will see new content this year. All of my clients have big plans. I intend to keep doing 3D art and sharing it with the world. We’ll see what surprises the world has in store, but we’ve got to make the best of it as we can.</p><p class="graf graf--p" name="faa8">Thank you for reading this far, and for being part of my journey (in all the ways you are)… May our 2022 be a good one! ❤️</p>http://blog.iangilman.com/2022/01/goodbye-2021-hello2022.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-6968417584683721071Fri, 08 Jun 2018 04:37:00 +00002018-06-09T12:38:32.702-07:00apprenticeshipWrists & Apprentices<img border="0" data-original-height="226" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfhKhBIZm-ghUBjJDp1Z1i1Z7JzhKSi7VyrxCb5Hc1gdj2hQVC6MjgwJToLtJVZF0MJAVzH2KRb0A9cvY_qCekVz-n4GUvw1VYtakiNttoyMzb3UNDZ8aD5KoVmPFiy_v9Zy1I/s800/Apprentice+post+banner.jpg" width="490" /><br /> <br /> I've been working with apprentices since the early 90s, but I haven't really written about it here; I suppose it's about time!<br /> <br /> Every year or so my apprentice graduates and I hire a new one. I recently went through that hiring process, and I'm always a little overwhelmed by all of the interested (and interesting!) people. It's distressing that I can only hire one, especially since I seem to be one of the few people offering this sort of thing in the web development industry.<br /> <br /> Anyway, a little history… I started programming when I was 9 and went pro when I was 17. I became obsessed and didn't take care of my body, and by the time I was 20 I had developed a chronic wrist injury that I still have decades later. Maybe I should have walked away from computers, but by then I was hooked! That was a dark time, but eventually I struck upon a solution… I could dictate my code to someone else who could be my hands. Turns out this can be very effective and rewarding (even if it does require some patience).<br /> <br /> I use the term apprentice because they're never just a typist… It's impossible to be the conduit for all of that code without picking up a lot of things along the way. I liken it to learning a foreign language by going to a foreign country and hearing people speak it all day long. As we work, I try to explain things along the way, and encourage my apprentice to ask questions. At the beginning I may have to spell everything out, but over time the apprentice picks up the patterns and I can speak at a more high level. The more they understand of what we're doing, the more powerful a team we become!<br /> <br /> When I started doing this in the early 90s, pair programming wasn't a widely known practice, but nowadays it's much more common. What I'm doing with my apprentice is much like pair programming, except that the experience gap between my apprentice and me is wider than for most pairs (sometimes my apprentices start out knowing nothing about programming, though that's rarer these days with all the online code learning resources), and we never swap who's typing. Many of the benefits to pair programming still apply:<br /> <ul> <li>Two pairs of eyes on the code means fewer mistakes </li> <li>We are focused on the job all day long; having someone else there makes it harder to procrastinate</li> <li>Knowledge exchange; my apprentice is learning from me, and I'm learning from talking things through with them</li> <li>We are able to discuss design challenges and alternatives to come up with better solutions</li> </ul> You might think all of this communication must slow us down, but quite the contrary… When we get rolling we really fly! Two minds are better than one.<br /> <ul> </ul> It's a very close working relationship… We sit just a few feet apart and talk constantly together all day long, week after week. Many of my <a href="http://iangilman.com/apprentices/" target="_blank">former apprentices</a> have become lifelong friends of mine. It's also very satisfying to see their careers develop after they move on to the next thing.<br /> <br /> Often people ask me about my "apprenticeship program" and how they can replicate it at their company or in their region. First off: yes, you should! There are tons of promising novice programmers out there who just need a bit of guidance and an opportunity to grow. There seems to be no shortage of software jobs, but it's difficult for someone new to break in. Anyone who can tap into that budding talent gets a competitive advantage. Meanwhile, the apprentices get a head start with invaluable learning by being directly involved with real projects. Better training and knowledge exchange means better developers, which means a better industry. For more thoughts on why (and how), see <a href="https://robwalling.com/2005/11/15/software-training-sucks-roll-it-back/" target="_blank">Software Training Sucks: Why We Need to Roll it Back 1,000 Years</a> from Rob Walling. I've also written about the benefits of <a href="http://blog.iangilman.com/2011/06/apprenticeship-culture.html" target="_blank">apprenticeship culture</a> before.<br /> <br /> I think what I've been doing gives pretty good results, but of course it's also tuned to my situation… After all, the driving need here is for me to be able to get my work done. If I didn't need them to type for me, I would want the apprentice to move to greater levels of individual contribution gradually over time. As it is, I do recommend my apprentice use their off time to focus on their own projects and bring them in to discuss with me, to help cement their learning.<br /> <br /> Anyway, my recommendations: <br /> <ul> <li>Pick someone who shows promise and passion but doesn't have a lot of experience. Don't just go for college students on break (like many internship programs), or you'll miss out on all the folks coming out of boot camps or who've learned with online resources.&nbsp;</li> <li>Get them working on real projects right away (whether this be in a company setting or on open source). Real projects are the only way to turn theory into skill. The sooner they get started, the sooner all of the lessons and exercises they've done will actually make sense. Besides, this way they're being productive from the beginning.</li> <li>Start them out pairing with someone who's already established. Make sure the mentor/apprentice relationship is explicit and that both sides understand what's expected. I think it's good for the less experienced programmer to do the typing, because otherwise it's easy for them to zone out while the more experienced programmer whizzes around, but your mileage may vary. It may feel slow at first, but you're sharing valuable information, and things will speed up as your shared experience grows.&nbsp;</li> <li>Next step would be to have them make their own pull requests and have the experienced programmer critique them. This exercises different parts of the brain than the pair programming, and helps them move into the driver seat. Actually, I suppose you could do this step live, with the more experienced programmer doing the typing based entirely on dictation from the apprentice, but giving feedback along the way. Either way, you'll already have a rich shared understanding to build on.</li> <li>Move them gradually up to more levels of autonomy, until one day they become the mentor for the next apprentice! </li> </ul> So that's my story, and some thoughts on bringing apprenticeship to your neck of the woods. I know it's already happening in some parts of the industry (within companies and at places like <a href="https://apprenticareers.org/" target="_blank">Apprenti</a>), but I think it would be great for there to be more of it! Any skilled trade with a complex set of tools and a rich culture can benefit from the kind of cross-pollination and dialogue engendered by apprenticeship, and I'd say software development certainly fits the bill.<br /> <br /> What do you think? I'm sure I've just scratched the surface… Hit me up with questions if you've got 'em!http://blog.iangilman.com/2018/06/wrists-apprentices.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-5682196154683262554Thu, 08 Feb 2018 22:33:00 +00002018-02-08T14:36:55.086-08:002017<img border="0" data-original-height="296" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZZ0su30gzZi1jZonIE_23_ZzKT449HXWQoEFRic26LqCuZrpwTnofaS1B3sbpm9whxTZM7UWbNy2_7ZyzWSHm9_f2b5ezX3xp3sw_Zan-ecvfz2TJc1U0NDva4g3B9DJK_VfV/s1600/2017.jpg" width="490" /><br /> <br /> Wow, I guess I haven't been posting here much lately (though I've been posting regular updates on <a href="https://www.patreon.com/iangilman" target="_blank">Patreon</a>). Maybe it's time to change that… How about I start with a little 2017 wrap-up? <br /> <br /> Let's see… I'd say it's been a pretty good year for me, both personally and professionally (politics notwithstanding), but I don't have anything really dramatic to report… It's mostly been a continuation of threads from previous years.<br /> <br /> I'm working on a variety of projects professionally, as well as my various side projects. For the latter, my <a href="https://www.patreon.com/posts/goodbye-2017-16194128" target="_blank">year-end wrap-up on Patreon</a> is a good summary, and for the former, you can see a few new entries on my <a href="http://iangilman.com/projects/" target="_blank">projects page</a>, but a bunch of them are still under wraps.<br /> <br /> We didn't go on any big trips, beyond going down to Oregon for the solar eclipse (which was amazing; highly recommended!). Caitlyn is continuing with her homeschool, and continuing to develop her skills in art (traditional and digital; 2D and 3D; still and animated). Christina is continuing to pursue her <a href="https://www.instagram.com/kittarlin/" target="_blank">many pursuits</a> and still somehow finding time to keep the rest of us organized.<br /> <br /> Meanwhile, I <a href="https://www.goodreads.com/user/year_in_books/2017" target="_blank">read books</a>, <a href="https://letterboxd.com/iangilman/films/year/2017/" target="_blank">watched movies</a>, and <a href="https://www.last.fm/user/iangilman/listening-report/year" target="_blank">listened to music</a>.<br /> <br /> All in all it's been a fine year. What do I hope for from 2018? Well, probably more of the same. We've found a nice groove. Still, if I could have some wishes:<br /> <ul> <li>I'd like to do more writing. Maybe here, maybe on Patreon, maybe somewhere else… There are too many options these days, and it's not clear how best to find the right audience.</li> <li>I'd like to get more people involved in my passion projects… Things like <a href="http://www.artywidget.com/" target="_blank">Arty Widget</a>, <a href="http://www.clockworkgoldfish.com/" target="_blank">Clockwork Goldfish</a>, and <a href="http://www.driftory.com/" target="_blank">Driftory</a> are all made for people to build with; I need to encourage more people to do so.</li> <li>I'd like to get involved in building VR experiences. Caitlyn and I have been playing in VR, there's a ton of VR stuff happening in this area, and I've been learning a lot about 3D programming, so I figure the time is right.</li> </ul> We shall see… May 2018 be a good year, for all of us!<br /> <br /> <div style="font-size: 12px; text-align: right;"> <a href="https://unsplash.com/photos/nCwwfG23cvQ" target="_blank">Photo by Echo Grid</a></div> http://blog.iangilman.com/2018/02/2017.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-5279963857619863738Sun, 16 Jul 2017 23:03:00 +00002017-07-16T17:11:04.597-07:00OpenSeadragon 2.3.0<a href="https://openseadragon.github.io/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" target="_blank"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEphFVunrA83eKHWmf1tocZjJ4fj5JP1IOmSNady2q5x3tD5ZYrSIovjxiDyJP-8EyupByNdYee4GN-zA2QvVgIqdysXZ20PkRxjxB5L9vOBXP5QA0IKCkdGn3zs0wI0BEIVmc/s200/openseadragonlogo-transparent.png" width="123" /></a> We've just released version 2.3.0 of <a href="http://openseadragon.github.io/" target="_blank">OpenSeadragon</a>!<br /> <br /> For those unfamiliar, OpenSeadragon is a web-based zooming library, used all over the world to share high-resolution imagery (classic paintings, ancient manuscripts, medical imaging, etc.). I wrote the original version back in 2007 (holy cow, that's 10 years ago!) when I worked on the Seadragon team at Microsoft. We later open sourced it, and it's been picking up steam ever since then. <br /> <br /> This new version brings lots of little improvements along with new features like:<br /> <ul> <li>Zoomify format support. This is useful for moving over from legacy Zoomify installations, but it also gives us access to Zoomify's tileset creation tools, such as the <a href="http://www.zoomify.com/photoshop.htm" target="_blank">Photoshop export plug-in</a>, which may mean an easier on-ramp for folks new to zooming technology.</li> <li>The ability to rotate individual images. You've already been able to rotate the entire viewport, but now you can rotate each image within individually.</li> <li>Events to let you know when the current view has fully resolved; as the user zooms deep into your image it can take a moment for all the pixels to load, and knowing exactly when can be useful for certain effects.</li> <li>The ability to preload images before showing them, for smoother transitions from image to image.</li> <li>CommonJS support.</li> </ul> … and <a href="https://github.com/openseadragon/openseadragon/releases/tag/v2.3.0" target="_blank">much more</a>!<br /> <br /> OpenSeadragon is truly a group effort, with <a href="https://github.com/openseadragon/openseadragon/graphs/contributors" target="_blank">89 contributors</a> so far, not to mention the folks creating <a href="http://openseadragon.github.io/#plugins" target="_blank">plug-ins</a> for it. I'm still kind of stunned at how the OpenSeadragon community has grown!<br /> <br /> I oversee the project, but my role is more facilitator than lead. Whenever someone reports an issue, I help them get to the bottom of it, and I review their patches, but I don't do the actual coding for them. This allows me to have a greater impact with the limited time I have for the project, and it empowers more people to become actively involved in shaping the code. I think if I'd personally taken on fixing every bug and adding every feature as they are posted, I would have burned out long ago, and none of the great contributors would have joined.<br /> <br /> So, if you're new to OpenSeadragon, come check it out and see all the <a href="http://openseadragon.github.io/examples/in-the-wild/" target="_blank">cool stuff</a> people have made with it! Also, if you appreciate my part in the project, please consider pledging to <a href="https://www.patreon.com/iangilman" target="_blank">my Patreon</a> to support my work there.<br /> <br /> Congratulations to everyone who's made this release possible! Here's to many more years of awesome zooming!http://blog.iangilman.com/2017/07/openseadragon-230.htmlnoreply@blogger.com (Ian Gilman)5tag:blogger.com,1999:blog-8295194.post-3827619726172161903Sun, 06 Nov 2016 19:32:00 +00002016-11-06T11:32:07.088-08:00seedsGetting to the Bottom of ItIn today's world we have many large controversial topics that we keep going around and around on, instead of just getting to the bottom of. I'm sure there are many reasons for this, many of which don't have anything to do with rational discourse, but let's pretend for a moment that a little rational discourse can at least make a small improvement.<br /><br />Part of the problem with these big topics is that they are so multifaceted, it's hard to hold it all in your head at once. What we need is a big map starting from a simple premise and going down, down, down through all the pros and cons, twists and turns, branching into every subtopic, to fully cover every facet. I'm confident this information is already available; it just needs to be organized.<br /><br />I'm imagining a website for this. Anyone can start a new topic, e.g. "is global warming real?" Then anyone can add pro or con posts, and anyone can add rebuttals to each, and rebut the rebuttals and so on. Once a topic is in place, you can navigate it by expanding the areas that interest you, until you get to the bottom of it.<br /><br />In order for this to work, a lot of care needs to go into making sure the structure is clean… No circular arguments, no logical fallacies. All of the misinformation needs to be debunked (not just buried). Wherever possible there should be links to primary sources. Each answer needs to cover a single point. This means there needs to be as much energy and facility directed toward structural work as there is toward content contribution.<br /><br />So, for instance, redundant answers need to be able to be merged; answers covering multiple points need to be split; points that have been covered elsewhere need to be linked; logical fallacies need to be flagged; etc. Of course each of these actions need to be vettable, so improperly merged, split, or flagged items can be undone. All of this activity needs to be transparent.<br /><br />Even if a thing like this won't resolve these arguments directly, it would be an invaluable resource for those working to do so.http://blog.iangilman.com/2016/11/getting-to-bottom-of-it.htmlnoreply@blogger.com (Ian Gilman)2tag:blogger.com,1999:blog-8295194.post-3114008269898107033Sat, 30 Apr 2016 18:52:00 +00002016-05-25T20:29:37.953-07:00moviesplanetaryeraCaptain America and the Planetary EraThe upcoming Captain America movie has reminded me of a thing I wrote up about Winter Soldier back when it came out but never got around to posting, about the way Planetary Era themes popped up in that seemingly unlikely place.<br /> <br /> If you're not familiar with the Planetary Era concept, I highly recommend watching my father's talk: <a href="http://www.context.org/foundation-stones/what-time-is-it/wtii-videos/" target="_blank">What Time Is It?</a> The basic idea is that various global trends are moving us into a new societal state that is fundamentally different than the empire-driven societies of the last few millennia. Due to our now globally interconnected nature we need to start thinking and working together as one planetary family, with all of the opportunities and challenges that entails. As with any major shift, some folks are already way ahead on this front, while others lag behind.<br /> <br /> So anyway, here are my thoughts. If you haven't already seen Winter Soldier, you need to re-examine your priorities, but also be warned spoilers lie below:<br /> <br /> So I saw Captain America: Winter Soldier, and I was struck by a couple of Planetary Era themes. I know, you'd think a movie featuring a hero named after a country would be all about Empire Era thinking, and there was plenty that too, but you could see the Planetary Era peeking through.<br /> <br /> One thing that really stuck out for me was the way in which the conflict was repeatedly framed as one between order and chaos. That's not unusual in movies of this sort, but what is unusual is that it was pretty clearly stated that order was the side of the villains, not the good guys. Now, of course any healthy society has a balance between order and chaos, but balance isn't a static thing; it's always moving to match the needs of the time. While the Planetary Era may in fact be more orderly in some ways, I'd say it's pretty clear that the Planetary Era themes of diversity, self-organization, and even our increasingly small-world connectivity will certainly look and feel more chaotic to many observers. Rather than clinging to the illusion of order the Empire Era thinking provided, we will be better served by stepping into the apparent chaos of a vibrant interconnected world.<br /> <br /> The other thing that struck me was how one of the key aspects of the good guys winning was the public sharing of all of SHIELD's secrets. This too seems more in tune with the Planetary Era's themes of connectivity and self-organization than the Empire Era's rigid hierarchies and us-versus-them thinking.<br /> <br /> Perhaps it's a bit much to say that Captain America is leading the charge into the Planetary Era, but it's good to see that even in this unlikely place, ideas that resonate with the new era are taking hold. I'm looking forward to the upcoming movie… We'll see if it continues the trend, or if Winter Soldier was just a comic book outlier.http://blog.iangilman.com/2016/04/captain-america-and-planetary-era.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-3790627864932663969Mon, 30 Nov 2015 06:05:00 +00002015-11-29T22:12:11.966-08:00planetaryeraThe Importance of Being IronicHipsters and their irony, amirite? What even is the deal?<br /> <br /> In the 20th century, the world got way smaller than ever before, but now in the 21st we've taken it to a whole new level with almost instant access from anyone to anyone on the planet. 100 years ago you could easily go months or even years without your worldview being challenged. Not so much anymore, even with the <a href="https://en.wikipedia.org/wiki/Filter_bubble" target="_blank">filter bubble</a> effect.<br /> <br /> This is actually a good thing… The world has been filled with different ideas and viewpoints for all of history, and it's about time we as a species get around to accepting this fact. It's about time we learned to use our differences to the benefit of all. Just as in natural ecosystems, diversity creates strength, but it also has its challenges.<br /> <br /> One of these challenges is holding conflicting ideas in mind simultaneously without feeling the need to pick sides. Sometimes the only way through a complex situation lies on the road to seeming paradox. Becoming comfortable with this cognitive dissonance, so you can freely navigate the multilayered thoughtspace of the world, is a key skill of the 21st century.<br /> <br /> And irony, our old friend, is a handy steppingstone to mastery of that skill. What is irony, after all, but the binding together of conflicting ideas? Whether they know it or not, irony aficionados are doing exactly what they must in order to thrive in the hyper-connected world of today and tomorrow.http://blog.iangilman.com/2015/11/the-importance-of-being-ironic.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-436328609257768611Wed, 27 May 2015 17:51:00 +00002015-05-27T10:52:30.305-07:00designfreelancingOpenSeadragon 2.0: Forest-to-Tree Zooming<a href="https://openseadragon.github.io/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEphFVunrA83eKHWmf1tocZjJ4fj5JP1IOmSNady2q5x3tD5ZYrSIovjxiDyJP-8EyupByNdYee4GN-zA2QvVgIqdysXZ20PkRxjxB5L9vOBXP5QA0IKCkdGn3zs0wI0BEIVmc/s200/openseadragonlogo-transparent.png" width="123" /></a> Today we cross a major threshold!<br /> <br /> <a href="https://openseadragon.github.io/">OpenSeadragon</a> turns 2.0 and brings with it full support for zooming multiple high-resolution images in the same scene. Imagine all the pages of an ancient manuscript laid out on your screen and being able to seamlessly zoom in to the smallest detail on any page. <br /> <br /> Back in 2008 when OpenSeadragon (then called Seadragon Ajax) was first released — when IE 7 was Microsoft's top browser and woolly mammoths wandered the frozen steppes — smoothly zooming a single image in pure JavaScript was quite the feat! We could only dream about the sort of cool multi-image scenarios Blaise demoed using a native app with GPU-accelerated code in <a href="http://www.ted.com/talks/blaise_aguera_y_arcas_demos_photosynth">his famous TED talk</a>.<br /> <br /> OpenSeadragon doesn't yet do everything shown in that video, but multi-image opens up some exciting new possibilities! Check out these demos for some inspiration:<br /> <br /> <a href="http://iangilman.com/openseadragon/rdio/"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAWnoE9RKy-kgjnnQMnz247_2YOujwVjk-QIYHnoYh3wiI_LoXLHA3UhwnQvydtYRwOO5Sc49vzhhIpYloHCfJLoa0R979nUw5SG06pqm3rh0x9C3kLdH8cWyBM5UXayhT5Saw/s400/osd%252Brdio.jpg" width="490" /></a><br /> <br /> <a href="http://iangilman.com/openseadragon/rdio/">OpenSeadragon + Rdio</a>: swim across a sea of high-resolution album artwork, discovering new music as you go.<br /> <br /> <br /> <a href="http://iangilman.com/openseadragon/flickr/"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilR2Ee7It5jmgwrCBjJh762ZSf5ijoNrr1YiKMYiqO8ff_DgIKbWlN5N24tHh4ONk2uyqNQFhXez-EU2g92JbgFC-1vbcZoQRfMZechTxasCY39L2-jAkoG7PJDf9pvXZ9m45Q/s400/osd%252Bflickr2.jpg" width="490" /></a><br /> <br /> <a href="http://iangilman.com/openseadragon/flickr/">OpenSeadragon + Flickr</a>: hop from image to tag to image on Flickr's most interesting photos of the day.<br /> <br /> <br /> <a href="http://iangilman.com/openseadragon/chrisjordan/"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGHap55XFa8xzD8f076nw1gjL2yBBYcgtUra9ljAgPiLWEa26ZU58X1Xy_mf6g43MraofXQwaIFhNAr9GJ6lzLqRSG2PQxzYnwIR8mMnzJJ_QhnaX6G1L6ijpLDD-HIdYByZKU/s400/osd%252Bchrisjordan.jpg" width="490" /></a><br /> <br /> <a href="http://iangilman.com/openseadragon/chrisjordan/">Chris Jordan Infinite Zoom</a>: kick back and fill your screen with Chris Jordan's giant photo montages.<br /> <br /> <br /> If you're new to OpenSeadragon, you should also check out <a href="http://openseadragon.github.io/examples/in-the-wild/">all the great work</a> people have done with the single-image version, such as this <a href="http://www.in2white.com/">gigantic panorama of Mont Blanc</a> and this <a href="http://beehivecollective.org/posterViewer/?poster=mr">amazingly detailed story-map of Central America</a>.<br /> <br /> Now what are you waiting for? Make some cool multi-image <a href="https://openseadragon.github.io/">OpenSeadragon</a> things!http://blog.iangilman.com/2015/05/openseadragon-20-forest-to-tree-zooming.htmlnoreply@blogger.com (Ian Gilman)1tag:blogger.com,1999:blog-8295194.post-4769276339449046636Tue, 03 Feb 2015 20:57:00 +00002015-02-03T13:00:30.410-08:00self = thisI teach JavaScript, and one of the things I've found most confuses people is the <tt>self = this</tt> pattern (some people even go to <a href="https://mryuked.wordpress.com/2010/07/23/internet-explorer-saved-my-life/">great lengths</a> to avoid learning about it). I haven't been able to find a good post on it, so here's my attempt. If you're not interested in JavaScript, feel free to skip this and read some of my <a href="http://blog.iangilman.com/2010/07/when-lao-tzu-met-tyler-durden.html">other</a> <a href="http://blog.iangilman.com/2005/12/organic-design.php">fine</a> <a href="http://blog.iangilman.com/2012/08/intersection-union_7.html">posts</a>.<br><br> Okay, I'll start with a concise definition and then explain in depth.<br><br> <strong>Use the <tt>self = this</tt> pattern whenever you have a function nested inside of an object's method, and you want to access the object's properties.</strong><br><br> Assign <tt>self</tt> in the object's method and use it inside the nested function. Here's how it looks:<br><br> <pre> var myObject = { aMethod: function() { var self = this; this.aProperty = 'foo'; setTimeout(function() { console.log(self.aProperty); // outputs 'foo' }, 1); } }; </pre><br> So, let's explain further.<br><br> <h2>Objects with Functions</h2> While you can certainly write plenty of JavaScript without ever attaching a function to an object, I find that organizing my code into objects makes things a lot cleaner. To avoid junking up the global namespace, I usually define a single global object (named "App" or some such) that all of my variables and functions are attached to. To further organize, I'll group related functions and variables into sub-objects attached to the main object.<br><br> Most objects will have a mix of variables (called properties when they are part of an object) and functions (called methods when they are part of an object). Here's a simple object with one of each:<br><br> <pre> var myObject = { aProperty: 'foo', aMethod: function() { } }; </pre><br> Inside an object's methods, there's a special variable, named <tt>this</tt>, that is a reference to that object. If the method wants to access any of the object's properties or other methods, it does so through that variable, like so:<br><br> <pre> var myObject = { aProperty: 'foo', aMethod: function() { console.log(this.aProperty); // outputs 'foo' } }; </pre><br> This special variable is managed by JavaScript; you don't have to assign it, and in fact you can't. It's assigned automatically for every function. If it's an object method, <tt>this</tt> is a reference to the object. For any other object, <tt>this</tt> is a reference to the global variable namespace.<br><br> <h2>Nested Functions</h2> In JavaScript, you can nest functions inside of other functions, including object methods. This is a common practice when working with user events, network requests, timers, etc.<br><br> <pre> var myObject = { aMethod: function() { setTimeout(function() { }, 1); } }; </pre><br> One handy feature of nested functions is that the inner function has access to all of the variables defined in the outer function. This is called closure.<br><br> <pre> var myObject = { aMethod: function() { var a = 'foo'; setTimeout(function() { console.log(a); // outputs 'foo' }, 1); } }; </pre><br> The one exception is the special <tt>this</tt> variable; since the nested function is just a regular function, not an object method, its <tt>this</tt> is a reference to the global namespace.<br><br> <pre> var aProperty = 'global'; var myObject = { aMethod: function() { this.aProperty = 'local'; setTimeout(function() { console.log(this.aProperty); // outputs 'global' }, 1); } }; </pre><br> <h2>Putting It All Together</h2> So, we need a way to get a reference to the object to be available inside the nested function. Closure to the rescue! We assign another (non-special) variable, e.g. <tt>self</tt>, with the object from <tt>this</tt>. Since this variable isn't overwritten for each function (unlike <tt>this</tt>), we can use it inside the inner function.<br><br> <pre> var myObject = { aMethod: function() { var self = this; this.aProperty = 'foo'; setTimeout(function() { console.log(self.aProperty); // outputs 'foo' }, 1); } }; </pre><br> <h2>Notes</h2> <ul> <li>There's nothing magic about the word <tt>self</tt>; you can use whatever variable name you want. However, <tt>self</tt> is the most commonly used variable name for this pattern, so it's a good choice for clarity's sake.</li> <li>If a method needs a <tt>var self = this;</tt> line, I always put it at the very top of the method. Putting it at the top isn't absolutely necessary, but I think it's a good convention; that way you don't have to go hunting to see if it's defined.</li> <li><tt>this</tt> is only set up properly if you call the method via the object, like <tt>myObject.aMethod()</tt>. If you instead call the method indirectly, such as when you pass it to another function (e.g. <tt>setTimeout(myObject.aMethod, 1)</tt>), <tt>this</tt> won't be set up. To deal with this, we use closures again, like so: <tt>setTimeout(function() { myObject.aMethod(); }, 1)</tt>.</li> <li>It's actually possible in certain cases for <tt>this</tt> to not be the object or the global namespace. By using JavaScript's <tt>apply</tt> or <tt>call</tt> features, you can set <tt>this</tt> to whatever you want when you're calling a function. jQuery uses this in its event handlers, for instance.</li> </ul> http://blog.iangilman.com/2015/02/self-this.htmlnoreply@blogger.com (Ian Gilman)4tag:blogger.com,1999:blog-8295194.post-3298852456434763668Tue, 06 Jan 2015 18:00:00 +00002015-01-06T10:00:03.146-08:00CaitlynhomeschoolingBe More AwesomeWith <a href="http://blog.iangilman.com/2014/01/homeschooling.html">education</a>, as with many things, I find it's useful to start from basic principles. There are so many options and philosophies, it's easy to get overwhelmed. A good mission statement can cut through all that, or at least give you a place to start.<br /> <br /> So, here's ours:<br /> <br /> The goal is for Caitlyn to <b>become more awesome</b>. Our strategy for becoming more awesome is to <b>learn new skills</b> and <b>improve existing ones</b>. The <b>only way</b> to learn/improve skills is through <b>practice</b>. Therefore her job is to practice, and to improve her ability to practice (since practicing is itself also a skill).<br /> <br /> Practice can be made more effective with:<br /> <br /> <ul> <li>Instruction and examples</li> <li>Feedback</li> <li>The proper tools</li> <li>A conducive environment</li> <li>Goals and rewards</li> <li>Other skills</li> <li>No doubt many more things</li> </ul> <br /> All of these are worth gathering when possible, but none of them are worth waiting for.<br /> <br /> That's it.<br /> <br /> I suppose one other question worth answering is, "Which skills should we practice?" To be honest, I don't think it really matters that much. All skills are useful, and all can be translated to other contexts, and at any rate the most important skill is how to practice effectively. That said, some of the most important skills are what you might call building block skills; those that many other skills are based on. Reading, writing, and math are the obvious ones, but there are many more, such as time management, teamwork, research, and experimentation.<br /> <br /> Anyway, with this simple mission statement, we can focus on what's important while allowing a broad range of variation.http://blog.iangilman.com/2015/01/be-more-awesome.htmlnoreply@blogger.com (Ian Gilman)2tag:blogger.com,1999:blog-8295194.post-4228683435148213239Tue, 21 Oct 2014 17:00:00 +00002015-02-03T11:52:14.936-08:00musicHow I RdioI've been a fan of <a href="http://www.rdio.com/">Rdio</a> for years now (which, come to think of it, is probably why <a href="http://iangilman.com/rdio/">I work for them</a>). More interesting, though, than the question, “What music service do you use?” is, “How do you actually use it?” Here then, is my answer. For starters, it should be noted that while in general I love Rdio’s UI, there are various things I’ve found to be missing that I’ve gone ahead and built for myself using Rdio’s lovely JavaScript API (which, as it turns out, I also built; that’s how I know how lovely it is). With that in mind, let’s take a tour:<br /> <br /> <b>The Tunes Must Flow</b><br /> <br /> I listen to music most frequently while working at my computer. During the workday, I just want to have excellent music playing, and I want to stay in the flow. For me this means whole albums, because each album has a consistency that doesn’t grab your attention with each track change. This also means being able to queue up a whole bunch of albums ahead of time, so I don’t have to stop and fiddle with my music periodically throughout the day. Fortunately, Rdio excels at thinking in terms of albums, and it’s got a fine queue. Every so often, when the queue runs low, I’ll jam a new pile on; I’ve generally got dozens of albums lined up.<br /> <b><br />Discovery</b><br /> <br /> When I’m not working, I do like to fiddle with music, as a leisure-time activity. In the evenings I sometimes wander around, checking things out, adding new stuff to my queue or favorites, etc. This is the modern-day equivalent of my old habit of haunting music stores, looking for that next great find. If I'm looking for new music, I'll use <a href="http://www.letsfathom.com/">Fathom</a> or the social stuff that shows up on Rdio’s homepage feed or the "here are new albums from your favorite artists" feature that shows up in <a href="http://www.rdio.com/notifications/">notifications</a>.<br /> <br /> Once I’ve found a promising-sounding album, I toss it on the queue for a full listening during the workday. Every few days I go to <a href="http://music-triage.appspot.com/">Music Triage</a> which shows me any new albums I've listened to that I haven't already triaged. Here I quickly add things to my favorites or mark things I didn't like. In this way I make sure nothing falls through the cracks, without having to pay attention throughout the day.<br /> <br /> <b>Rediscovery</b><br /> <br /> It turns out music discovery these days is so great, I’ve got a new problem: <a href="http://www.rdio.com/people/iangilman/favorites/">hundreds of albums I’ve discovered</a> and liked enough to add to my favorites but never listened to again because I was off to the next big thing. To listen to music I already know I like, and hopefully connect more deeply with things I’ve discovered, I pull up <a href="http://iangilman.com/rdio/collection-random/">Collection Random</a> and use it to quickly queue up a bunch of albums. I find this "show me some stuff randomly from my collection" better than any sort of rational sorting… otherwise you end up falling into ruts.<br /> <br /> <b>Mid-Queue Interruptions</b><br /> <br /> My next-most-frequent music-listening station is in the kitchen while cooking and cleaning. I usually want to listen to something entirely different there; more upbeat and attention-grabbing. If I think of it before leaving my computer, I push an appropriate album ahead of the queue (in Rdio’s Mac interface, it’s command-clicking the play button on any album). Unfortunately, Rdio’s mobile app doesn’t support such things, so I’ve made <a href="http://iangilman.com/rdio/mobile-queue/">Mobile Queue</a> to support reorganizing the queue on my mobile web browser.<br /> <br /> <b>So there you have it</b><br /> <br /> …my music “workflow”. Who knows what my music rhythm will be like in a year, but for now this is working great, and I love having the power to customize my interactions as needed.&nbsp; At the moment, I think I’ve found a good balance between finding new stuff and listening to favorites, with a minimum of ongoing effort (not counting the initial development time, which was fun noodling anyway).<br /> <br /> How about you? How do you use your music service?http://blog.iangilman.com/2014/10/how-i-rdio.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-7382165302098471750Tue, 04 Feb 2014 17:30:00 +00002014-02-04T09:30:00.520-08:00CaitlynhomeschoolingVideo GamesI played a lot of videogames as a kid (mostly on the Apple II, and then later on the Mac). At the time, of course, I just thought of it as fun, but now I realize I learned a lot doing so. Problem solving and resilience/determination are high on the list. You can't get anywhere in this world without being willing to try and fail and try again. Video games are great way to instill that instinct.<br /> <br /> Of course Caitlyn has been playing games on the iPad for years now, but computer games are a different beast. In the past, we've focused on puzzle games; they make you think, but there's no time pressure, and not much need for eye/hand coordination. That was good for when she was younger, but now she's ready for more of a challenge.<br /> <br /> We started with <a href="https://itunes.apple.com/us/app/return-to-dark-castle/id410703154">Return to Dark Castle</a>, which is a remake of one of my favorite games from when I was kid. Now we're playing <a href="http://store.steampowered.com/app/224760/">FEZ</a>, which is delightful. Platformers seem like a good point on the videogame spectrum at the moment. They provide exploration and puzzle solving, but with an added level of arcade action, but not too intense yet.<br /> <br /> I'm on the lookout for the next game. Any suggestions?http://blog.iangilman.com/2014/02/video-games.htmlnoreply@blogger.com (Ian Gilman)5tag:blogger.com,1999:blog-8295194.post-4602596319180930929Tue, 28 Jan 2014 17:30:00 +00002014-01-28T09:30:00.864-08:00JavaScript & Uncorrected VideoThere is this continuing debate that rages in tech circles: If you're going to make an app, should it be web or native? The true answer, of course, is that it depends. I'm a web guy, though, so when I enter the fray, it's generally on that side.<br /><br />The common perception of web tech is that it's easier, but produces inferior results. You can slap something together in a fraction of the time, but it's not going to have that slick, polished quality you expect from native apps.<br /><br />It all reminds me of the old film vs digital thing the movie industry went through a while ago. I was working in Hollywood at the time, and there was a lot of buzz about the liberating potential of digital video, but also a lot of criticism of its inferior quality.<br /><br />Well, to some extent it was inferior, because it was still young, but there was more than that at play. The thing is, when you shoot film, you have to get it developed, and part of this process is making sure the colors came out right, and you get the tonal range you want, etc. Without that color correction step, film looks horrible, unusable. With video (digital or otherwise), you can skip that step; uncorrected video isn't great, but it's not as horrible as uncorrected film. So, since you can skip it, lots of people did, and video got this reputation for having that bland, washed out look. Over time, however, people clued in, and now tons of movies are shot on digital, but they're always color corrected. At this point, film and digital are virtually indistinguishable to the viewer, and what the cinematographer uses is more just a question of personal taste than any technical consideration.<br /><br />Back in JavaScript land, we have a similar situation. The technology is still young, so it was pretty bad not that long ago. Like digital video, it's liberating; your app can run anywhere, and you can get started with a set of simple tools. The fact that it's easier, however, gives us the uncorrected video problem: people who don't know what they're doing can still create JavaScript apps. They may be crappy apps, but they work. With a native app, there's a higher bar; if you don't know what you're doing, you're likely to not end up with anything usable at all. The native apps that survive generally have a decent level of quality.<br /><br />But when someone who really knows what they're doing builds a JavaScript app, you can get the flexibility you expect from the web and the polish you expect from native, just like digital video can look great if you bother to color correct it. For me, that's the best of both worlds, though of course your mileage may vary.<br /><br />My favorite example of a slick mobile web app is <a href="http://forecast.io/">Forecast.io</a> (at least on the iPhone). I'm doing my best to walk the talk as well with <a href="http://www.driftory.com/">Driftory</a> and <a href="http://gimmeshiny.com/">Gimme Shiny</a>, both of which work great on mobile.http://blog.iangilman.com/2014/01/javascript-uncorrected-video.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-8482970548523167393Tue, 21 Jan 2014 17:30:00 +00002014-01-21T09:30:00.085-08:00CaitlynhomeschoolingHomeschoolingThis last summer, Caitlyn made the transition from regular school to homeschool, and so far I'm delighted! I homeschooled as a kid; I'm excited to be diving back in now with Caitlyn. I haven't written anything about it here (<a href="http://journal.dolcideleria.com/2013/10/the-next-big-thing.html">unlike Christina</a>) so it's time to catch up:<br /><br />We always intended to homeschool her, but it was important to us that she got a <a href="http://blog.iangilman.com/2010/09/thoughts-on-school.html">chance to experience mainstream school</a> for as long as she wanted to (no forbidden fruits there), and that homeschool be her choice. Regular school is something that kind of happens to you; homeschool takes a lot more personal responsibility, at least the way we're doing it. She needs to really want it in order for it to work. We made it clear what's expected of her, so she knew what she was getting into.<br /><br />Towards the end of second grade she came to us and said she was ready. We insisted she finish out the year, which she did reluctantly. In the end, the last day of school was both exciting and sad, saying goodbye to the place she'd spent so much time for the last three years, and hello to a whole new way of life.<br /><br />We used the summer to ease into the concept of homeschool (starting with a two-week <a href="http://journal.dolcideleria.com/2013/08/summer-journal-wandering-in-canada.html">field trip to Canada</a>), and we started in earnest in the autumn. Of course, even now, we're still figuring out the right mix of activities. A lot of her day is what's generally described as "unschooling", where she's left to pursue her own interests, but Christina is working with her directly on a few fundamentals. We figure she can get into chemistry, history, basket weaving, etc. as the mood strikes her, and she's likely to go deep on some subjects and shallow on others, which is fine. Everybody's gotta get a firm foundation in the three Rs, though. Reading is not an issue; she's already a voracious reader, chewing through 350-page books in a weekend. Math and writing are not as favored, so Christina works with her on those subjects.<br /><br />When left to her own devices, Caitlyn's favorite subject is art, and her skill is increasing steadily. She's learning firsthand the value of practice! She has an art tutor who comes over every other week, and both Christina and I also mentor her in various ways on the subject.<br /><br />One of the wonderful things about homeschooling today, at least in this part of the world, is that there's an amazing amount of resources, and a strong support network. She regularly gets together with her friends (other homeschoolers, friends from the neighborhood, friends she met in school) for both structured and unstructured activities. Several of her homeschool companions get together at one house for science, and then back to ours for tea and poetry with Christina.<br /><br />Of course this means Christina's getting to learn more about poetry, too. This is one of the hidden benefits of homeschooling; the parents get to learn as well. Caitlyn is interested in Spanish, so all three of us are taking a course together. Her interest in art means we all get to practice our art-making more, etc.<br /><br />Let's see, what else? Circus class continues, and she's doing theater again. She gets quality time at the public library, and she's got a library account on her computer so she can order books whenever she wants. She's also learning general computer use and typing. I'm taking advantage of time to work with her on subjects that were dear to my heart as a kid. We're doing programming together, as well as Legos, of course. <br /><br />Surely it will continue to evolve, but I feel like we're off to a good start. The three of us have embarked upon a great adventure together!http://blog.iangilman.com/2014/01/homeschooling.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-5220808581799047743Tue, 07 Jan 2014 17:30:00 +00002014-01-07T09:30:02.944-08:00freelancingHire Me!I'm footloose and <a href="http://blog.iangilman.com/2012/03/freelancing.html">freelance</a>, so theoretically I could be flitting from project to project. The reality is I seem to find big, meaty projects and focus on them for over a year each. For the last year and a half, I've been <a href="http://iangilman.com/rdio/">devoted to Rdio</a>, creating their new JavaScript API, their new developer site, and several other things I can't speak about yet. That all came to a sudden halt in November, when they laid off a chunk of their staff, including me. So here I go, back to being footloose!<br /> <br /> Coming off a big project like this is like coming off a long-term relationship. It's this strange combination of distressing and liberating, and all I want now is a rebound fling. Or maybe I do want something more lasting, but I'm shy to commit until we've gotten to know each other.<br /> <br /> Anyway, here I am, on the prowl again. If you're looking for an experienced, design-oriented JavaScript developer, I'm your man! I can do anything from architecture to animation, but I especially love interaction work, getting the behaviors just right. Even better if we're pushing the boundaries of the web as we know it.<br /> <br /> Check out my <a href="http://iangilman.com/projects/">portfolio</a>, my <a href="http://iangilman.com/resume/">resume</a>, my <a href="https://github.com/iangilman/">GitHub profile</a>, and/or this bit on my <a href="http://iangilman.com/prototyping/">prototyping skills</a>, then <a href="mailto:ian@iangilman.com">hit me up</a>! Who knows, we may just fall for each other.http://blog.iangilman.com/2014/01/hire-me.htmlnoreply@blogger.com (Ian Gilman)3tag:blogger.com,1999:blog-8295194.post-4353186413205473378Tue, 31 Dec 2013 17:30:00 +00002013-12-31T09:30:00.457-08:00 2013Man, it's been almost a year since I last posted here! I blame <a href="https://twitter.com/iangilman">Twitter</a>, luring me away with its brevity and wit and whatnot. <br /> <br /> Well, perhaps it's time for a little catch-up. Let's see, what have I been up to this last year?<br /> <ul> <li>I made <a href="http://www.rdio.com/">Rdio</a>'s new <a href="http://www.rdio.com/developers/">developer site</a> and JavaScript API (still in beta), as well as a bunch of <a href="http://iangilman.com/rdio/">hacks &amp; examples</a>. Then I got laid off. Meanwhile, my <a href="http://www.rdio.com/people/iangilman/collection/sort/playCount/">Rdio collection</a> is almost up to 2000 albums.</li> <li>I created <a href="http://www.driftory.com/">Driftory</a>, pretty much the future of comic presentation on the web. Seriously, tell all your friends, especially those who create comics!</li> <li>I posted Chris Jordan's newest zooming images (<a href="http://www.chrisjordan.com/gallery/rtn/#building-blocks">Building Blocks</a>, <a href="http://www.chrisjordan.com/gallery/rtn/#unsinkable">Unsinkable</a>, and <a href="http://www.chrisjordan.com/gallery/rtn/#cig-butts">Cigarette Butts</a>), and created an interactive media wall installation at Duke University showcasing his work.</li> <li>The <a href="http://openseadragon.github.io/">OpenSeadragon</a> community, which I manage, has been a happy hive of activity! I'm delighted to see the tech being used in <a href="https://github.com/openseadragon/site-build/issues/6">so many interesting places</a>. I've also continued to curate my list of other <a href="https://github.com/iangilman/zooming">zooming tech</a>.</li> <li>I gave <a href="http://www.clockworkgoldfish.com/">Clockwork Goldfish</a> a big upgrade under the hood; hopefully I'll get to adding new features in the new year.</li> <li>I pretty well ignored <a href="http://www.letsfathom.com/">Fathom</a>, though it did get some <a href="http://lifehacker.com/5986157/fathom-is-an-immersive-guide-to-new-music-through-the-artists-you-love">nice press</a>.</li> <li>My apprentice <a href="https://github.com/felizuno">Kevin Ewing</a> graduated to his own programming gig, and <a href="https://twitter.com/xenolinguistin">Emily Beauprey</a> has come in to replace him.</li> <li>I continued to be a JavaScript mentor. I also started a collection of links for <a href="https://github.com/iangilman/learning-javascript">learning JavaScript</a>, posted a <a href="https://github.com/iangilman/simple-webapp-boilerplate">simple web app boilerplate</a>, and made some <a href="https://www.khanacademy.org/profile/iangilman/programs">toys on Khan Academy</a>.</li> <li>Caitlyn started homeschool (more on that in future posts).</li> <li>We spent a <a href="http://journal.dolcideleria.com/2013/08/summer-journal-wandering-in-canada.html">couple weeks in Canada</a>; Caitlyn's first trip out of the country, and the first <a href="http://iangilman.com/germany/">since Germany</a> for Christina and I.</li> <li>Christina did way too much stuff to summarize here; read all about it <a href="http://journal.dolcideleria.com/">on her blog</a>.</li> <li>...and I read an <a href="https://www.goodreads.com/review/list/594566-ian?read_at=2013&amp;view=covers">embarrassingly small number of books</a>.</li> </ul> I'm entering 2014 without a clue as to what I'll be working on, but I'm sure it will be lovely. I'm looking forward to the continuing homeschool adventure for the whole family.<br /> <br /> Maybe I'll even write some more blog posts.http://blog.iangilman.com/2013/12/2013.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-3428744019418349313Tue, 29 Jan 2013 17:30:00 +00002013-03-17T13:37:40.930-07:00HTML5 for .NET DevelopersWe need more JavaScript developers! There are too many jobs, and not enough qualified devs. The thing is, JavaScript isn't even that hard, and it's actually quite beautiful, but you've got to take the time to get to know it.<br /> <br /> There's a huge pool of talented developers in the .NET world, hitherto sheltered from JavaScript, but now starting to become curious. For a long time, Microsoft urged devs to shun HTML and JavaScript in favor of the tidy, self-contained world of .NET. They scared us with horror stories about browser incompatibility and unreliable open source libraries. Even if you wanted to do interesting things on the client side, there was Silverlight to keep you in the safe Microsoft bubble.<br /> <br /> It worked for a while, but now the winds have changed. All of the interesting stuff that's happening in the client-side world today is done in HTML, JavaScript, and CSS. With Node.js, JavaScript is becoming an important language on the server. With Windows 8, even Microsoft has embraced these technologies, leaving a lot of developers feeling stuck. Having never taken the time to learn the open web stack, is it too late now?<br /> <br /> Jim Jackson and I wrote <a href="http://affiliate.manning.com/idevaffiliate.php?id=1207&amp;url=52">HTML5 for .NET Developers</a> as an invitation, to help bring these folks into this new world. We give you a crash course in the core web technologies, as well as an introduction to some of the latest additions. Since each chapter is its own little project, we give you lots of great starting points for your own explorations.<br /> <br /> Throughout the book, we're sensitive to the issues particular to folks coming from the .NET world. One of the common problems is trying to program JavaScript like it's C#. You can kind of do it, but you end up with a mess that's worse than either language on their own. We show you how to program JavaScript like it wants to be programmed, and everything is much smoother. It may take an open mind at first, but it's worth it.<br /> <br /> People are also often overwhelmed by the fact that, while .NET is relatively self-contained, the JavaScript world is wide open; you're using all these libraries from different places, on all these different platforms, and there's new stuff every day. The good news is you don't have to learn it all, and there are tons of other people using the same stuff, sharing their discoveries, and helping each other out. We help you establish a beachhead from which you can continue to expand your knowledge.<br /> <br /> So, if you're JavaScript-curious, come on in, the water's fine! <a href="http://affiliate.manning.com/idevaffiliate.php?id=1207&amp;url=52">Buy our book</a>, play with <a href="http://www.ellipsetours.com/Demos/">our examples</a>, hang out on <a href="http://stackoverflow.com/questions/tagged/javascript">Stack Overflow</a>, and make stuff! When you do, let me know… I'd love to see what you come up with!http://blog.iangilman.com/2013/01/html5-for-net-developers.htmlnoreply@blogger.com (Ian Gilman)1tag:blogger.com,1999:blog-8295194.post-4251743684989247778Tue, 28 Aug 2012 17:00:00 +00002012-08-28T10:00:06.080-07:00designmusicFathom Philosophy<a href="http://www.letsfathom.com/">Fathom</a> is simple enough, but it's actually got a lot of my design philosophy packed into it. I'd like to go into detail on each of these points eventually, but for now I think it's worth just getting the broad brush strokes out here. So, in no particular order:<br /> <br /> Rather than focusing on the recommendation algorithm, I'm focusing on the presentation/exploration interface. Recommendation algorithms have gotten lots of attention, so it's hard to move the needle there; interface not so much, so there's lots of potential in that area.<br /> <br /> Make it fun, inviting, and safe to explore… eliminate click friction; make it easier to just try something than it is to think about whether you should.<br /> <br /> Rather than completely passive (like Pandora) or completely active (like Amazon), you get to choose and fluidly slide between levels of involvement.<br /> <br /> By using APIs, I can focus on my strength (user interface) without having to build up all of the required data ahead of time. Also, by being connected to those other sites, we become just a <a href="http://blog.iangilman.com/2012/07/interdependence.html">little entwined</a>… no website is an island anymore. This approach has its challenges, of course, but I feel it's worth exploring.<br /> <br /> The interface scales to fit your window, however big or small.<br /> <br /> The content is the interface, as much as possible. Controls appear when needed and disappear when not.<br /> <br /> Animation is used to explain what's going on… you see where things are going to and coming from.<br /> <br /> Focus on albums, rather than tracks.<br /> <br /> Promoting album cover art and reconnecting it with the music in people's minds.<br /> <br /> Minimize unnecessary clicks; for instance, you don't have to click an extra “play” after selecting an album.<br /> <br /> An album's “neighborhood” of related albums gives it context… you start to get a sense for the space.<br /> <br /> Having new albums come in with every move keeps things fresh and gives a game-like exploration feel.<br /> <br /> Music is right-brain; your interface shouldn't be left-brain classics like the spreadsheet (iTunes) or huge pages of text (Amazon).<br /> <br /> Of course Fathom is just one possible expression of these ideas. I look forward to future explorations along these lines. What do you think? Did I miss any? Are there other good examples of these principles out there?http://blog.iangilman.com/2012/08/fathom-philosophy.htmlnoreply@blogger.com (Ian Gilman)2tag:blogger.com,1999:blog-8295194.post-127608724219116208Tue, 07 Aug 2012 17:00:00 +00002012-08-07T10:00:05.574-07:00Intersection & UnionTime for today’s math lesson! How are the geometric concepts of intersection and union applicable to your daily life? To discuss this fine topic, we'll use our old friend, the Venn diagram:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHU2ysf6U2qOP1Ed2pnS7-ACYPe1KUufJzvO7qoO7BUMlqYPApuz1f3RnhdRCavTtYyKGDGRgsInY4A1OwaGLw5dskccb0ZrpSgPmIvcUPBRIEyKUyhMNLPcHTOlPBAiMeJC1O/s1600/Intersection1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHU2ysf6U2qOP1Ed2pnS7-ACYPe1KUufJzvO7qoO7BUMlqYPApuz1f3RnhdRCavTtYyKGDGRgsInY4A1OwaGLw5dskccb0ZrpSgPmIvcUPBRIEyKUyhMNLPcHTOlPBAiMeJC1O/s1600/Intersection1.jpg" /></a></div> <br /> That bit where the two circles overlap is called the <b>intersection</b>:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP9pr-dZW5cIrTRXbK95Hcm5Emg7kOcPkCjcQ97vcfQJuVx0tsXTZKdxk9JgmdRUYSOPVFi7SSPzadzyfcmXx425q_44ml-6V2_Trr3IRYUFcsOiKWAjytpnu7uw7DwiQpgDsa/s1600/Intersection2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP9pr-dZW5cIrTRXbK95Hcm5Emg7kOcPkCjcQ97vcfQJuVx0tsXTZKdxk9JgmdRUYSOPVFi7SSPzadzyfcmXx425q_44ml-6V2_Trr3IRYUFcsOiKWAjytpnu7uw7DwiQpgDsa/s1600/Intersection2.jpg" /></a></div> <br /> The entirety of both circles together is called the <b>union</b>:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkxN7tQYCg_OrPxvyyup-zXijZbHIUCoEzd3plDBb3jdlMlKEa5bmeUqBwqatAxrazFLRUmw7C6eoKl0HJYdPSBcNuSFEQJpnanxYvIy0YoR3vo96mntaUrKBknmcBGnNZt_l8/s1600/Intersection3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkxN7tQYCg_OrPxvyyup-zXijZbHIUCoEzd3plDBb3jdlMlKEa5bmeUqBwqatAxrazFLRUmw7C6eoKl0HJYdPSBcNuSFEQJpnanxYvIy0YoR3vo96mntaUrKBknmcBGnNZt_l8/s1600/Intersection3.jpg" /></a></div> <br /> Pretty basic stuff. Remarkable how few people seem to get how it applies to them, however. Let's take business: When I was at Microsoft, we were constantly being told, “You can't do that, you’ll step on the toes of one of the other divisions,” or, “Helping our customers in that way would also be helping our competitors.” The idea was that no part of the company should do anything that might interfere with what some other part of the company was trying to do. All the different parts should make the other parts work better. There are all sorts of great buzzwords for this, like “synergy” and “better together”. On the face of it, it all sounds like common sense… don't get in your own way, help yourself out. The problem is, when you think that way, you end up with only the intersection of your business initiatives, only the areas where one helps the others:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP9pr-dZW5cIrTRXbK95Hcm5Emg7kOcPkCjcQ97vcfQJuVx0tsXTZKdxk9JgmdRUYSOPVFi7SSPzadzyfcmXx425q_44ml-6V2_Trr3IRYUFcsOiKWAjytpnu7uw7DwiQpgDsa/s1600/Intersection2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhP9pr-dZW5cIrTRXbK95Hcm5Emg7kOcPkCjcQ97vcfQJuVx0tsXTZKdxk9JgmdRUYSOPVFi7SSPzadzyfcmXx425q_44ml-6V2_Trr3IRYUFcsOiKWAjytpnu7uw7DwiQpgDsa/s1600/Intersection2.jpg" /></a></div> <br /> … and every new initiative you have, that intersection gets smaller:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS6u8BG9jtz-0cqlNDtLwo7T3mpSwYmCGEQNhr7DEaozHxqoMPv1kOq6x8vCQhYLym36UdNSYfEKJvptdiQ0Qhsftx6By2qcNve2IYzUDj0-WI2u5zM1-WN44QN3h4OBSiGqox/s1600/Intersection4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS6u8BG9jtz-0cqlNDtLwo7T3mpSwYmCGEQNhr7DEaozHxqoMPv1kOq6x8vCQhYLym36UdNSYfEKJvptdiQ0Qhsftx6By2qcNve2IYzUDj0-WI2u5zM1-WN44QN3h4OBSiGqox/s1600/Intersection4.jpg" /></a></div> <br /> … but this is business, ruled by bigger, better, more! What you really want is everything, the union:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-xNjJx5OWZxvuC3pL5w3GcmQkrqdx5ltM6grzL6CbDb-ddgx1P8BBXhnoxK0gXUilozGKOIgAchZbp4NTplqGez5pDn1PWupeHNt8MhhYmHiBc1_yBTPvma6qakiVaVlDypO/s1600/Intersection5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-xNjJx5OWZxvuC3pL5w3GcmQkrqdx5ltM6grzL6CbDb-ddgx1P8BBXhnoxK0gXUilozGKOIgAchZbp4NTplqGez5pDn1PWupeHNt8MhhYmHiBc1_yBTPvma6qakiVaVlDypO/s1600/Intersection5.jpg" /></a></div> <br /> If one department steps on the other’s toes, it’s okay, because the whole pie is so much larger.<br /> <br /> This doesn't just apply to business, of course. Let's say you're dating someone. Here’s a diagram of your movie tastes as a couple:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHU2ysf6U2qOP1Ed2pnS7-ACYPe1KUufJzvO7qoO7BUMlqYPApuz1f3RnhdRCavTtYyKGDGRgsInY4A1OwaGLw5dskccb0ZrpSgPmIvcUPBRIEyKUyhMNLPcHTOlPBAiMeJC1O/s1600/Intersection1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHU2ysf6U2qOP1Ed2pnS7-ACYPe1KUufJzvO7qoO7BUMlqYPApuz1f3RnhdRCavTtYyKGDGRgsInY4A1OwaGLw5dskccb0ZrpSgPmIvcUPBRIEyKUyhMNLPcHTOlPBAiMeJC1O/s1600/Intersection1.jpg" /></a></div> <br /> … and now it’s time to pick out a movie to watch together. Should you go for the intersection (where your tastes overlap), or the union (where at least one of you is interested)?<br /> <br /> It comes down to how long you're together. If this is your first date, you’d better stick to the intersection, so you know everyone's happy. If you're going to stay together for years, though, you need to start venturing out into the union… otherwise, not only will you not see as many of the kinds of movies you like, you also won't get the opportunity to discover new things you might like outside of your comfort zone. For a marriage to survive, you need to be able to keep reinventing yourselves together, and that means trying new things.<br /> <br /> The timing factor applies to companies as well: if you're a startup, everybody needs to be focused on one thing so you can move quickly. That puts you right in the middle of the intersection. Once the company has a chance to mature, however, sticking to the intersection means stagnation, which means death, or at least irrelevance.<br /> <br /> Whether you're a person, a marriage, or a company, long-term survival depends on periodic reinvention. Look to the union of your interests, and you'll always find it.<br /> <br /> Thank you, math!http://blog.iangilman.com/2012/08/intersection-union_7.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-1093949015310439465Tue, 10 Jul 2012 17:00:00 +00002012-07-10T10:00:04.525-07:00CaitlyndesignThings You Don't Mind BreakingAs anyone who lives with kids well knows, they're a potent force of destruction. It's tempting to hide all the breakables and fill their lives with indestructible plastic objects. Of course this means you can't have nice things. Worse yet, your kid never learns how to treat things nicely.<br /><br />Our strategy has been to fill Caitlyn's life with nice things, breakable and not, which are nonetheless relatively inexpensive and easy to replace. We don't want them broken, but it's not a big deal if they are, and it's a valuable learning experience for Caitlyn. If it's a plate, she helps clean it up, and we get another. If it's a toy, we try to fix it, and if we can't, that's how you lose your toys. These days she routinely handles heavy glass jars full of food, for instance, and rarely is there ever an incident.<br /><br />It seems to me that this is a good principle in design as well. If you treat your users like idiots and constantly protect them from themselves, then they'll just keep getting dumber. If you give them nice things and help them learn when they break stuff, you're helping them grow, and they'll love you for it.http://blog.iangilman.com/2012/07/things-you-dont-mind-breaking.htmlnoreply@blogger.com (Ian Gilman)0tag:blogger.com,1999:blog-8295194.post-7463338207144206269Tue, 03 Jul 2012 17:00:00 +00002012-07-03T10:00:05.931-07:00InterdependenceI'm a pretty self-reliant guy, but somewhere along the line I have come to realize that too much self-reliance is a bad thing; it isolates you from other people. The advantage of "relying on the kindness of strangers" is you get to know people, and you build a web of social capital and debt. Being able to act independently is a powerful thing, but it doesn't beat being enmeshed in a strong social fabric.<br /><br />So next time you think you can do it better on your own, think about what you might be missing by not letting someone else into your life.http://blog.iangilman.com/2012/07/interdependence.htmlnoreply@blogger.com (Ian Gilman)1tag:blogger.com,1999:blog-8295194.post-6533548830963992386Tue, 26 Jun 2012 17:00:00 +00002012-06-26T10:00:05.621-07:00Whole Systems ThinkingThe candy bar was delicious, but now I've got this wrapper to deal with. Easiest thing would be to chuck it here on the street. I'm optimizing for my own convenience.<br /><br />But what about the whole system? What impact does my action have? Well, just this one candy wrapper doesn't make much difference. But what if everyone dumped their trash wherever they happened to be standing? We'd be wading through it, right? Doesn't sound good. On the other hand, maybe we could hire a small army of folks to collect our trash for us, and solve our unemployment problem! Of course, if we could afford to hire all those people, is there something better we could be doing with their time? And anyway, who's going to pay for those jobs? Maybe a sales tax increase? Is it worth a few extra pennies per candy bar for us all to be able to drop our wrappers wherever we want and still not end up drowning in seas of trash?<br /><br />Maybe so, maybe not, but at least you're thinking the whole thing through.<br /><br />Of course, if we thought through every decision that thoroughly, we'd never get anything done! It's a useful skill to have, though, especially when thinking about shaping the institutions that surround us. Every one of us has an impact on those institutions (your neighborhood, your job, the government, etc.) on a regular basis, whether you think of it or not. The more we all learn how to think at the system level, the better off we'll all be.<br /><br />So how does one get better at thinking in systems? Practice, of course! Learn about systems, build systems, experiment with them.<br /><br />Believe it or not, playing games helps… games are often little systems (small enough to wrap your head around), and figuring out the dynamics of the system increases your skill at the game. Next up is modifying games (say, change some of the rules to Uno, which itself is just a modified form of Crazy Eights), and then creating new games.<br /><br />Systems are all around us; you just need to keep your eyes open. How do things fit together? What actions lead to what reactions? What happens when single actions become many? Ask yourself questions like, “What if everyone on the planet did this?” or, “What if we continue doing this for the next thousand years?” or, “What changes in behavior would this incite?”<br /><br />I don't know, what other ways can we help strengthen our systems thinking muscles?http://blog.iangilman.com/2012/06/whole-systems-thinking.htmlnoreply@blogger.com (Ian Gilman)2tag:blogger.com,1999:blog-8295194.post-6826645761925288946Tue, 19 Jun 2012 17:00:00 +00002012-06-19T10:00:03.891-07:00seedsRed PenI'm an incurable proofreader. I grew up in a household that published <a href="http://www.context.org/iclib/">a magazine</a>, and now it's second nature to spot typos, improper homonyms, punctuation issues, etc., wherever they may be. Even when I find a typo on someone's website, sometimes I'm compelled to let them know. I figure it's the virtual equivalent of telling someone they've got broccoli in their teeth… a little embarrassing perhaps, but it saves them from greater embarrassment down the road.<br /><br />What I (and all the other incurable proofreaders of the world) need is an easy way to inform the website owner, so bit by bit we can collectively clean up the writing on the Web!<br /> <br /> Here's one possible design: A “red pen” bookmarklet sits in your browser, awaiting the moment you find some text that needs fixing. When that moment arrives, as it inevitably will, you select the offending text and hit the bookmarklet. Up pops a dialog box with the text, an opportunity for you to describe the correction, and a big friendly “send” button. Hitting the button e-mails your note, along with the URL of the page, to the best address we can find (if nothing else, the technical contact listed for that domain's WHOIS record). If this thing becomes popular enough, people will even register their websites with the service, to streamline the process.<br /><br />What do you think? Is this the gadget you've been waiting for, or should we all just keep our writing critiques to ourselves?http://blog.iangilman.com/2012/06/red-pen.htmlnoreply@blogger.com (Ian Gilman)4tag:blogger.com,1999:blog-8295194.post-3719032525816181111Wed, 02 May 2012 17:00:00 +00002012-05-02T10:00:01.595-07:00musicFathom: Now with more music!<a href="http://www.letsfathom.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0RieQGsOAkaTY8A1uJknjAarAdsFONkPO9Jvyd9ED3ha762kPrWJ5P3SMvT51jg7xotyaAUHma8mdBYG5kyYsAuLSvT8NL4m44ivmjq51fUYjb1ddEgRi_chL1xqOTFCnQ_HT/s1600/Avatar1.jpg" /></a>I've finally gotten around to adding <a href="http://click.linksynergy.com/fs-bin/click?id=TQbUUgB/Ke4&amp;subid=&amp;offerid=221756.1&amp;type=10&amp;tmpid=7950&amp;RD_PARM1=http%253A%252F%252Frdio.com">Rdio</a> streaming music support to <a href="http://www.letsfathom.com/">Fathom</a>! This means everyone now hears at least samples of all the tracks, which already makes for decent music discovery. If you have an Rdio account, however, you'll hear full-length tracks, which is even better! You don't need to log in to Rdio on Fathom; as long as you're logged in on the Rdio site, it just works (thanks to the great Rdio API).<br /> <br /> So what are you waiting for? <a href="http://www.letsfathom.com/">Get hunting</a>!http://blog.iangilman.com/2012/05/fathom-now-with-more-music.htmlnoreply@blogger.com (Ian Gilman)0