Holovaty.comhttp://www.holovaty.com/Adrian Holovaty's blog.en-usFri, 25 Jul 2014 17:42:23 -0500How to solve CORS IE font issues with Amazon Cloudfronthttp://www.holovaty.com/writing/cors-ie-cloudfront/<p>I've been wrestling with this for a while, and I finally found a fix! Here's a quick post for developers searching for the solution...</p>
<h2>The problem</h2>
<p>If you use Amazon Cloudfront to serve web fonts (.ttf, .woff, .eot, etc.) from your Amazon S3 bucket (as I do for <a href="http://www.soundslice.com/">Soundslice</a>), Internet Explorer will likely refuse to load the fonts, giving this error message:</p>
<blockquote>CSS3117: @font-face failed cross-origin request. Resource access is restricted.</blockquote>
<p>This happens because your media files on Cloudfront are on a separate domain than your site, and Internet Explorer doesn't like the cross-domain requests for security reasons.</p>
<h2>The solution</h2>
<p>The solution is to get CORS working with Amazon S3, then to get Cloudfront to forward the appropriate headers. Amazon only recently made this possible (<a href="http://aws.amazon.com/blogs/aws/enhanced-cloudfront-customization/">less than a month ago</a>, as of this writing), so there's not a lot of documentation on it.</p>
<p>Here's how, step by step:</p>
<p>First, go to the web interface for your S3 bucket, click "Properties," then "Permissions," then "Edit CORS Configuration." Enter this and save it:</p>
<pre>
&lt;CORSConfiguration&gt;
&lt;CORSRule&gt;
&lt;AllowedOrigin&gt;*&lt;/AllowedOrigin&gt;
&lt;AllowedMethod&gt;GET&lt;/AllowedMethod&gt;
&lt;/CORSRule&gt;
&lt;/CORSConfiguration&gt;
</pre>
<p>Note: if you're particularly security-conscious, you may want to lock this down more. In this example, I'm allowing access to all files from any origin. <a href="http://schock.net/articles/2013/07/03/hosting-web-fonts-on-a-cdn-youre-going-to-need-some-cors/">Here's a post</a> with an example of a locked-down version of the S3 CORS settings.</p>
<p>Next, go to the web interface for your Cloudfront "distribution," and click "Distribution Settings," then the "Behaviors" tab. Select the behavior (assuming you have only one) and click "Edit."</p>
<p>For "Forward Headers," change it from "None (Improves Caching)" to "Whitelist." A "Whitelist Headers" section will appear. Add "Origin" to this list. This tells Cloudfront to take the "Origin" header into account when caching.</p>
<p>Here's a step that I'm not certain is necessary, but I did it anyway: next to "Allowed HTTP Methods," select "GET, HEAD, PUT, POST, PATCH, DELETE, OPTIONS" instead of "GET, HEAD".</p>
<p>Finally, rename your font files for good measure, so that Cloudfront treats them as new files. I did all of the above steps and was still getting the IE error, but when I renamed the font files, it started working. Cloudfront is really good at caching. :-)</p>
<p>That's it! Enjoy your fully working web fonts in IE, served by S3/Cloudfront.</p>
<p><strong>UPDATE, Aug. 28, 2014:</strong> Google Chrome now requires this CORS stuff on fonts, as of version 37.0.2062.94. And here's another thing I discovered the hard way: rather than using protocol-relative URLs for your fonts, pick one of either HTTP or HTTPS and stick with it. (I recommend HTTPS.) The reason is, if you request a font via HTTP, then Cloudfront will cache it as HTTP; any subsequent CORS request to the HTTPS version will try to use the HTTP version and will fail. (<a href="https://coderwall.com/p/ub8zug">Source</a>.)Adrian HolovatyFri, 25 Jul 2014 17:42:23 -0500http://www.holovaty.com/writing/cors-ie-cloudfront/Announcing the Soundslice sheet music playerhttp://www.holovaty.com/writing/soundslice-sheet-music/<p>Since <a href="http://pjmacklin.com/">PJ</a> and I launched <a href="http://www.soundslice.com/">Soundslice</a> in November 2012, our top-most requested feature has been support for sheet music. We've spent the last six months building that for you, and we launched it today.</p>
<p>Have a look at <a href="http://www.soundslice.com/v2/auld-lang-syne/">the demo</a>. Here's a quick video I recorded showing off some of the features and benefits:</p>
<iframe width="420" height="315" src="//www.youtube.com/embed/tq1go7Ld1Q4" frameborder="0" allowfullscreen></iframe>
<p><em>Lots</em> of stuff is new here:</p>
<ul>
<li>We now render sheet music (aka standard notation), not just tabs and chord charts.</li>
<li>Instead of scrolling horizontally (<a href="http://www.soundslice.com/tabs/13/adrian-holovaty-bistro-fada-tab/">example of old site</a>), the UI is now vertically oriented. This makes it much easier to see upcoming notes, and it's a much more natural experience.</li>
<li>The player lives in "music space" instead of "time space." In our old player, the tabs were strictly laid out by time -- if a quarter note was 10 pixels, then a half note would be 20 pixels wide, etc. That approach turned out to be too simplistic, as it resulted in abnormally small or large notes in certain cases, requiring you to zoom in or out to get a better view. Now, the music is laid out according to well-established sheet-music practices, which means there's not necessarily a one-to-one mapping between a note's time length and the amount of space it takes up. As a consequence, the playhead doesn't travel at a constant speed; it ebbs and flows with the music.</li>
<li>There's a "Synthetic" option that generates audio dynamically from the notation. Obviously a real recording is better (that's the whole point of Soundslice), but in some cases, like when you're trying to learn a single part of a multi-instrument recording, the synthetic option comes in handy.</li>
<li>Click "Settings" at lower right to control what the music looks like. You can easily remove sheet music or tab if you don't read one or the other, and you can zoom/scale it in case you'd like to see more or less on the page.</li>
<li>Overall, the notation fits perfectly to the size of your screen. Smartphones, tablets, laptops, gigantic monitors -- Soundslice does the right thing regardless of screen size. Our sheet-music engine was built directly in JavaScript/HTML5, which means all the notation is laid out on the fly for your device.</li>
<li>We've finally implemented a print feature. Just click the print button. Fun fact: the print version will use whatever zoom/display settings you specified, so you can customize the printed output the same way you can customize the interactive version.</li>
</ul>
<p>There's no way to create these standard notation versions on the site yet -- that's next on our list. For now, you can buy transcriptions in this format from <a href="http://www.soundslice.com/pitch-perfect/">Soundslice Pitch Perfect</a>. As for the "classic" Soundslice (<a href="http://www.soundslice.com/completed/">the YouTube version</a>), it's still there and kicking; we're planning to make a way to automatically migrate transcriptions from the old system to the new one.</p>
<p>More new stuff to announce today:</p>
<ul>
<li>We've signed a deal with <a href="http://candyrat.com/">Candyrat Records</a> to sell their tabs, and today we're launching tab sales for <a href="https://www.soundslice.com/pitch-perfect/antoine-dufour-tabs/">Antoine Dufour</a> and <a href="https://www.soundslice.com/pitch-perfect/ewan-dobson-tabs/">Ewan Dobson</a>. They're both insanely good guitarists and I highly encourage you to check out their tunes...and use Soundslice to learn them. :-)</li>
<li>Also, we've signed a deal with <a href="http://www.jamplay.com/">JamPlay</a>, one of the biggest guitar-instruction sites, who will be embedding our new music player below their lessons. We're excited about licensing this to other companies and put together a dedicated <a href="http://www.soundslice.com/licensing/">licensing page</a>.</li>
</ul>
<p>We've got a lot of things happening and are now going to be focusing on building our business around this tech. If you're a music teacher, publisher, artist, or any other sort of music/tech person interested in using it, please <a href="mailto:feedback@soundslice.com">get in touch</a>.</p>Adrian HolovatyMon, 17 Mar 2014 14:04:19 -0500http://www.holovaty.com/writing/soundslice-sheet-music/Why Chicago needs to stop playing by Silicon Valley’s ruleshttp://www.holovaty.com/writing/chicago-bootstrapping/<p><em>I gave a talk yesterday at the Chicago Startup Forecast. Here's a rough transcript, with slides.</em></p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/01.png" style="border: 1px solid #000;"></p>
<p>This is <a href="https://en.wikipedia.org/wiki/Daniel_Burnham">Daniel Burnham</a>. He was a famous Chicago architect, responsible for some of our city's most beautiful buildings. He's known for his influential <a href="https://en.wikipedia.org/wiki/Burnham_Plan">Plan of Chicago</a>, which foresaw modern city planning, and he was a key organizer of the <a href="https://en.wikipedia.org/wiki/World%27s_Columbian_Exposition">World's Columbian Exposition</a>, also known as the Chicago World's Fair of 1893. Chicago beat out New York, DC and St. Louis for the privilege of hosting that World's Fair.</p>
<p>Back in those days, world's fairs were more common than they are now. In 1889, a few years before Chicago's fair, Paris held an <a href="https://en.wikipedia.org/wiki/Exposition_Universelle_(1889)">Exposition Universelle</a>. It was a big deal -- 32 million people visited! -- and its main attraction was the brand-new Eiffel Tower, formally introduced at the event. At 984 feet, it was the tallest man-made structure in the world, a position it held for more than 40 years. You might imagine how exciting it was for people to witness something so tall, in an era when the tallest man-made structure in a town was probably a church steeple.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/02.png" style="border: 1px solid #000;"></p>
<p>Back in Chicago four years later, Burnham and his team were plotting: how could their World's Fair showcase something more impressive than the Eiffel Tower -- something that would "out-Eiffel Eiffel"?</p>
<p>The obvious answer was to build something <em>taller</em>. If they could build something 1000 feet tall, or 1100 or 1200, surely it would be more impressive than what the French did. But to Burnham's credit, he <a href="http://books.google.com/books?id=SkFQ5tgWKfEC&amp;lpg=PP1&amp;pg=PA43">refused</a> to play by those rules, pushing his engineers to come up with something genuinely new.</p>
<p>One engineer on Burnham's team had an idea: instead of a stationary tower, why not build something that moved? Something that people could ride around in, that was still <em>tall</em> but not tall for the sake of being taller than the Eiffel. The engineer's name was <a href="https://en.wikipedia.org/wiki/George_Washington_Gale_Ferris,_Jr.">George Ferris</a>; you see where this is going.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/03.png" style="border: 1px solid #000;"></p>
<p>So Ferris and team built it: the world's first <a href="https://en.wikipedia.org/wiki/Ferris_wheel">Ferris wheel</a>. It was a huge hit, providing great views of the city plus a sense of danger ("This thing can't possibly be safe, can it?"). People all over the world immediately copied the idea. Even today, there are parts of the world where Ferris wheels are called "Chicago wheels."</p>
<p>Here's an important detail about the Ferris wheel. Its height was only 264 feet -- just over a quarter of the height of the Eiffel Tower. But it was still a huge success, because of how different it was. Instead of playing by somebody else's rules -- taller equals better -- Burnham, Ferris and team dared to change the rules.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/04.png" style="border: 1px solid #000;"></p>
<p>Fast-forward to Chicago today, with our nascent tech startup scene. I argue the biggest problem we have is one of <em>branding</em>. What is the Chicago tech identity? What's our style? Why would somebody move here to start a company, or (if they're already here) stay here as opposed to moving to the Bay Area?</p>
<p>Let's try to understand the perspective of such a person. If a startup founder wants to find out what the Chicago tech scene is about, they'd likely stumble upon <a href="http://www.builtinchicago.org/">Built in Chicago</a>, a site devoted to promoting local startups. Last week, Built in Chicago released its 2013 <a href="http://www.builtinchicago.org/blog/chicago-startups-raised-over-1b-2013">Chicago Startup Report</a>. It starts with this:</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/06.png" style="border: 1px solid #000;"></p>
<p>"2013 was a good year for Chicago startups," it says. "The total funding raised in 2013 was 169% higher than 2012 and was distributed across more than 150 different companies. Dollars from exit events were up markedly as well, with an increase of over 300% from 2012."</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/07.png" style="border: 1px solid #000;"></p>
<p>It goes on to enumerate the amount of funding raised, the number of exits and the amount of money made from exits.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/08.png" style="border: 1px solid #000;"></p>
<p>"78 companies raised $1M or more," it boasts. "Last year, 18 companies were acquired and one company went public. These exits totaled over $3B."</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/11.png" style="border: 1px solid #000;"></p>
<p>This, my friends, is Chicago playing by somebody else's rules. This is us trying to top the Eiffel Tower by building a taller tower.</p>
<p>You can imagine a startup founder's reaction to this Startup Report: "OK, so Chicago clearly values the raising of venture capital money. The goal here is to raise a lot of money, then either go public or sell your public for a lot more money." The Chicago Startup Report says that, loud and clear.</p>
<p>You can imagine the startup founder's follow-up thoughts, too. "How exactly is this different than Silicon Valley?"</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/12.png" style="border: 1px solid #000;"></p>
<p>The answer is, by those particular measures, it's unequivocally worse. I'm sure many of you saw <a href="http://www.cbinsights.com/blog/trends/chicago-venture-capital">this (admittedly link-baity) blog post</a> back in June, "Chicago Is Not Going to be the Next Silicon Valley." CB Insights, a company that tracks investment data, ran the numbers and found that Chicago's VC funding levels have been flat.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/13.png" style="border: 1px solid #000;"></p>
<p>Of course, if we're going to be the next Silicon Valley, we'll at least have to overtake New York in VC activity before we overtake California, right? Unfortunately, the numbers indicate that's not happening.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/14.png" style="border: 1px solid #000;"></p>
<p>Granted, that blog post is now seven months old. But I don't think things have changed dramatically since then. Let's not fool ourselves. We're not a hotbed for VC activity.</p>
<p>Not only is Chicago playing by somebody else's rules, it's failing miserably. We're not only trying to top the Eiffel Tower by building a taller tower -- we're failing to build something even a quarter as high.</p>
<p>So let's think back to that fictional startup founder. "OK, Chicago doesn't have quite as much VC activity as the Bay Area, or even New York. Is there something otherwise unique about Chicago? Perhaps certain types of industries work particularly well there?"</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/15.png" style="border: 1px solid #000;"></p>
<p>Cities have reputations in the startup world. The Bay Area is great for consumer-facing Internet (among other things, of course). If you're building an entertainment company, you'd do well to move to Los Angeles. New York is a mecca for finance, fashion and media. Boston has carved out a niche in biotech.</p>
<p>What's Chicago's industry? And please don't say "group coupons."</p>
<p>The answer is, there <em>is</em> no single industry. Our mayor even <a href="http://www.freeenterprise.com/entrepreneur/chicago-transforms-second-city-startup-city">said as much</a> at <a href="http://www.1871.com/">1871</a> recently:</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/16.png" style="border: 1px solid #000;"></p>
<p>You can't argue with Rahm. (In more ways than one.) We <em>are</em> diverse here, and that's <em>great</em> for our economy -- but not so great for marketing our city. "We're pretty good at a lot of things" makes people's eyes glaze over.</p>
<p>So what can we do to differentiate ourselves? There are many options, but here's one I think is particularly strong.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/17.png" style="border: 1px solid #000;"></p>
<p>Chicago is great for bootstrappers. Let's take advantage of that.</p>
<p>"Bootstrapping" has a few different connotations, but what I specifically mean is: small companies with a couple of people, likely developers, who take no outside investment money. They build products because they love the work, the craftsmanship, the pride in <em>building</em> and <em>creating</em>.</p>
<p>They want to make a good living, but, just as important, they want <em>freedom</em> -- financial freedom, of course, but equally importantly freedom from people telling them what to do (bosses, investors, etc.).</p>
<p>They want to build solid, revenue-generating businesses <em>without</em> the need for an exit. It may be a hard concept for Bay Area types to understand, but for these types of people, building things, and serving customers, are themselves the reward. If you love building, why <em>wouldn't</em> you want to do it sustainably, for the long term?</p>
<p>They don't necessarily want to "change the world," as the cliche goes. Let's recognize Silicon Valley ambition for what it is, 95 percent of the time: exaggerated BS. Maybe this BS is designed to persuade investors, maybe it's designed to persuade potential employees, maybe it's for persuading users of your product. Either way, for an Internet startup to say "we're going to change the world" is likely phony. Odds are your company will improve a small number of people's lives. We're Chicago, we're honest people -- why are we falling for this?</p>
<p>Why is Chicago the best place in America for these people? Because the bootstrapper's mentality is precisely aligned with the temperament and style of Chicagoans (and, more generally, Midwesterners). We appreciate the satisfaction of a job well done, we eschew BS, we're realists.</p>
<p>Combine that cultural norm with Chicago's supportive community, its wealth of food/music/theater/comedy/architecture, and its low cost of living compared to SF/NYC/DC/Boston, and you've got a prime environment for bootstrappers.</p>
<p>And the thing is, it's already happening. Chicago is already home to fantastic companies that are doing their own thing, refusing to play by Silicon Valley rules.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/18.png" style="border: 1px solid #000;"></p>
<p>The best example is <a href="http://37signals.com/">37signals</a>. Not only is it a successful company, with great products and a team that's devoted to these ideals of craftsmanship -- I'd argue it's the most well-regarded Internet company from Chicago among startup types. And they're unabashed proponents of bootstrapping, even going as far as maintaining a series of interviews called <a href="http://37signals.com/bootstrapped">Bootstrapped, Profitable and Proud</a>.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/20.png" style="border: 1px solid #000;"></p>
<p>A less conventional example is <a href="http://cardsagainsthumanity.com/">Cards Against Humanity</a>, a wildly successful card game made by a group of friends who took no outside investment. Their game has consistently hovered at the top of the <a href="http://www.amazon.com/Best-Sellers-Toys-Games/zgbs/toys-and-games">Amazon best-selling toys and games list</a>, and their freedom from investors and refusal to play the VC "game" has let them do incredible things. I highly recommend <a href="https://www.youtube.com/watch?v=9rIAbzXxV14">Max Temkin's XOXO talk</a> about company values; it fits the Chicago/bootstrapping philosophy perfectly.</p>
<p>Lots of other bootstrapped, one-or-two-person companies are cropping up here, including:</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/21.png" style="border: 1px solid #000;"></p>
<p><a href="https://draftin.com/">Draft</a>, a web-based tool for writers -- made by one person, Nate Kontny.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/22.png" style="border: 1px solid #000;"></p>
<p><a href="http://www.stathat.com/">StatHat</a>, a great way for companies to track time-series stats such as server performance -- made by one person, Patrick Crosby.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/23.png" style="border: 1px solid #000;"></p>
<p><a href="http://www.wizardmac.com/">Wizard</a>, a Mac app that makes data analysis super easy -- made by one person, Evan Miller.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/24.png" style="border: 1px solid #000;"></p>
<p><a href="http://www.soundslice.com/">Soundslice</a>, a modern approach to guitar tabs and sheet music -- made by me and PJ Macklin.</p>
<p style="text-align: center;"><img src="https://s3.amazonaws.com/media.holovaty.com/images/2014-01-24/25.png" style="border: 1px solid #000;"></p>
<p>My friend Evan Miller jokingly made a great slogan for this new Chicago bootstrapper scene: "Chicago: Be your own Boss." (That's a tongue-in-cheek reference to our tradition of <a href="https://en.wikipedia.org/wiki/Political_boss">political bosses</a>.) Evan also wrote a wonderful essay called <a href="http://www.evanmiller.org/marketing-startup-hubs.html">Marketing Your Startup Hub</a> that inspired me to write this talk.</p>
<p>I challenge you to consider how we should be defining our city in the Internet startup world. The Eiffel Tower has been built -- it's in Silicon Valley, and it's quite tall. Should we be playing by their rules, or changing the game?</p>
<p><strong>POSTSCRIPT:</strong> I've been amazed at the positive reaction to this talk, both in person and after the <a href="http://bluesky.chicagotribune.com/originals/chi-adrian-holovaty-chicago-bootstrap-bsi-20140123,0,0.story">accompanying Trib article</a>. The main objectors are VCs and people running companies that have raised VC money -- which is not surprising.</p>
<p>It takes courage for a city to rally around one particular theme, and we're bound to alienate people who don't have the same view. Do we have the courage?</p>Adrian HolovatyFri, 24 Jan 2014 14:25:28 -0600http://www.holovaty.com/writing/chicago-bootstrapping/Adrian and Jacob retiring as Django BDFLshttp://www.holovaty.com/writing/bdfls-retiring/<p>Since July 2005, when <a href="https://www.djangoproject.com/weblog/2005/jul/16/tutorial1/">Django was open-sourced</a>, <a href="http://jacobian.org/">Jacob Kaplan-Moss</a> and I have been the two Benevolent Dictators For Life (BDFLs) of the project. Today we're both retiring from our formal BDFL roles, given that (1) we don't have the time for it that we once had and (2) Django is in great shape with a vibrant community of contributors.</p>
<p>A BDFL, a <a href="https://en.wikipedia.org/wiki/Benevolent_Dictator_for_Life">term</a> originally used by Python creator Guido van Rossum, is basically a leader of an open-source project who resolves disputes and has final say on big decisions.</p>
<p>In the early days, circa 2004-2008, Jacob and I had to make a fair amount of decisions, and we spent a <em>ton</em> of time promoting the framework, fixing bugs and adding features. Over the last few years, the codebase has stabilized tremendously and many fantastic developers from around the globe have joined the effort, contributing code, writing documentation, helping with process (bug triage, managing releases), publishing books/tutorials, holding conferences and organizing user groups. It's an incredibly healthy, friendly and diverse open-source project/community!</p>
<p>At the same time, I've gotten a development "life" outside of Django. In the old days, I'd spend basically all of my free time improving Django -- I considered it my baby, and it would be entirely fair to call it an obsession. Then, in 2007, I founded <a href="http://www.everyblock.com/">EveryBlock</a> and found myself with a new baby, a young Internet company.</p>
<p>For the last year, I've been building <a href="http://www.soundslice.com/">Soundslice</a>, a modern approach to sheet music and guitar tabs that I've wanted to exist for a long time. Soundslice has become the thing that I'm constantly thinking about and writing code for, from morning into late hours of the night. (And I'm very comfortable with that. I've always seen Django as a means to an end -- building great web products. I'm skeptical of anybody who builds frameworks for the sake of building frameworks.)</p>
<p>So, given that I can't give Django the time that it deserves, it wouldn't be fair to continue as BDFL. At best, it'd be phony for me to keep calling myself that; at worst, it'd be doing a disservice to the framework by slowing down our decisionmaking processes and setting a tone of complacency.</p>
<p>If you're a Django user, though, have no fear. Honestly, this title seems like a big change "on paper," but in reality it won't change much. I haven't been deeply involved in day-to-day development of Django in quite a while, and I think Jacob would say the same thing -- so, if anything, this change in titles just makes official what had already been happening. I suspect nothing major will change in the Django community, except maybe some committers will feel emboldened to build great new stuff. (But please, no more Django Pony. It's stupid.)</p>
<p>I'll still continue to contribute to Django as I find things that it doesn't do that I want it to do. And of course I continue to use it in building web apps. It's been a fun ride as co-BDFL, and I'm looking forward to Django's next chapter.</p>
<p><strong>UPDATE:</strong> <a href="http://jacobian.org/writing/retiring-as-bdfls/">Here's Jacob's post</a> about it.</p>Adrian HolovatyMon, 13 Jan 2014 09:30:28 -0600http://www.holovaty.com/writing/bdfls-retiring/Google+ and YouTube tech disaster reporthttp://www.holovaty.com/writing/youtube-google-plus/<p>The Google+ / YouTube integration is a disaster.</p>
<p>Much has been written about this in the last few days, with people making great points about <a href="https://plus.google.com/115668950429167517685/posts/JcPQuXzXTgU">the value of anonymity</a> and <a href="http://edwardspoonhands.com/post/66425515182/ok-so-my-friend-emma-puts-this-video-of-her">the poor new comment-ranking algorithms</a>. <a href="http://www.zdnet.com/forced-google-plus-integration-on-youtube-backfires-petition-hits-112000-7000023196/">Here's a good roundup</a> of the various issues.</p>
<p>These are fantastic points, and I agree with them 100%. But they're fundamentally matters of <em>philosophy</em>. Whether real names are required in comments, whether a Google+ account is required to post comments/videos to YouTube, and how comments should be ranked/sorted — these are all judgment calls made by YouTube's developers and product managers. Though we may disagree with their philosophies, they have the right to build their products according to those philosophies.</p>
<p>Beyond that, it's important to consider that people don't like change. I've built web apps long enough to know that any time there's a substantial redesign or relaunch of a site, people will complain. They'll say "Version 1 was so much better than Version 2!" Then they eventually get used to it, and, ironically, when Version 3 comes along, they'll passionately defend Version 2.</p>
<p>But even accounting for these two things — people's normal resistance to change, plus Google's right to have its own philosophies/opinions on how their product should work — the YouTube changes <em>still</em> qualify as a disaster.</p>
<p>It's not that I'm upset things don't work in the same way they used to, or that I disagree with their philosophies on the product, it's that things <strong>don't work period</strong>. The implementation is just plain broken.</p>
<p>Here are three examples.</p>
<h2>Connecting your YouTube channel to a Google+ account</h2>
<p>I have a decent-sized <a href="https://www.youtube.com/user/adrianholovaty">YouTube channel</a>, with 26,000 subscribers. (I post guitar videos.) I've spent several years building up this subscriber base and, naturally, I don't want to make any missteps that might mess up my channel or devalue it in any way. So I was super skeptical about linking my channel with a Google+ account, but I finally did it after YouTube made it too inconvenient/annoying not to.</p>
<p>Problem was, it didn't work.</p>
<p>When I bit the bullet and initiated the linking of YouTube/Google+ accounts, I got the following "YouTube is updating your channel" dialog box:</p>
<p><img src="https://s3.amazonaws.com/media.holovaty.com/images/2013-11-17-youtube1.png" style="border: 1px solid #000;"></p>
<p>The dialog box contained nothing, and it was over a blank background, and...nothing happened. I initiated this several times, trying to narrow down the reasons it might be happening. I signed out of my other Google Accounts, I tried it in an incognito window, I tried doing it from the settings page as opposed to directly from the channel page. Each time, the same thing happened: only an empty dialog box with no response.</p>
<p>Then I looked at the JavaScript console and found this:</p>
<p><img src="https://s3.amazonaws.com/media.holovaty.com/images/2013-11-17-youtube2.png" style="border: 1px solid #000;"></p>
<p>So it's some sort of cross-site frame problem. I looked in my browser's (Google Chrome's) preferences to try to disable whatever security setting was causing that, but I couldn't find anything. I finally tried it in Firefox, and it worked. Evidently Firefox (or at least my particular Firefox installation) doesn't care about that cross-site frame problem.</p>
<p>Google built something that doesn't even work in the company's own browser. And the problem is still happening, as of this writing, which means it's been like that for at least a week.</p>
<h2>Posting comments</h2>
<p>With my YouTube/Google+ accounts finally linked, I could finally post comments again. (YouTube is now requiring a Google+ account in order to comment.) I found <a href="http://www.youtube.com/watch?v=KjCPklQikfY">a new video</a> by one of my favorite YouTube guitarists, troubleclef, and I wanted to say some nice stuff. But commenting <strong>did not work</strong>.</p>
<p>I clicked in the "Share your thoughts" box. A new window popped up, immediately closed, and the page flickered a little bit. Nothing changed. <a href="https://s3.amazonaws.com/media.holovaty.com/video/2013-11-17-youtube.mp4">Here's a video of the fiasco</a>; it's <em>begging</em> to be mashed up with the Benny Hill theme song.</p>
<p>Chrome was telling me a pop-up was blocked, so I enabled popups for youtube.com. Same problem. I reloaded the page. Same problem.</p>
<p>I cannot post comments on YouTube videos now. It appears to be completely broken.</p>
<h2>Viewing notifications</h2>
<p>I get a fair number of comments on my videos (a handful each day), and I get an email notification each time I get a new comment. I haven't received a "new comment" email notification in a week or two, so I was wondering whether there was some new way to get comment notifications.</p>
<p>There's now a bell icon in the upper right of YouTube pages when I'm signed in, and it's the same icon they use on Google+ for its notifications, so I assume this is where I'll see YouTube notifications. I clicked the icon and got this:</p>
<p><img src="https://s3.amazonaws.com/media.holovaty.com/images/2013-11-17-youtube3.png" style="border: 1px solid #000;"></p>
<p>"Please sign in to view your notifications"? Am I not already signed in? The fact that my username and avatar are being displayed in the upper right seems to indicate I'm signed in, no?</p>
<p>So I click "Sign in." Nothing happens. I open the JavaScript console. Not even any JavaScript errors. It's just plain broken.</p>
<hr>
<p>I have no way of knowing how many people are being affected by these three issues. But for me, using <em>Google's own browser</em>, it's resulted in a YouTube experience that's extremely broken. Beyond the social problems of requiring a real name, beyond the content problems of ranking comments in a bad way, the new YouTube simply doesn't work.</p>
<p>To me, that's the most unforgivable thing about this. Given Google's history with <a href="http://mashable.com/2010/09/03/google-buzz-lawsuit-settlement/">Google Buzz</a>, we know they don't have a subtle view of real names and privacy, so the tone-deaf real-name requirement isn't a huge surprise. The comment ordering, though wrong in several ways, is ultimately their judgment call. But the one thing Google is good at above all else — technology — its failure here is disastrous.</p>Adrian HolovatySun, 17 Nov 2013 14:02:03 -0600http://www.holovaty.com/writing/youtube-google-plus/