As noted on the mailing lists and other places, Dojo is once again an excited and grateful participant in Google's Summer of Code program.
A bit wiser from our experience from last summer, this year's Dojo SoC is under the capable direction of Robert Coup and Neil Roberts. I'm volunteering to mentor again this year, although there will be fewer slots available for students. Last year, we attempted to take on 7(!) projects and as a result we got some great projects done but a very high cost to the project's coherence and overall sanity. Our wa was in real trouble by the end of the summer and given our ambitious project schedule for 0.9 and 1.0, we're being even more selective about the students and projects we take on.
Here's a few tips for students who are serious about getting accepted to Dojo's SoC program this summer:
- Get involved now. Get that CLA filed. Start showing up to the weekly IRC meetings. Subscribe to the mailing lists and start asking and answering questions. File patches and start talking with contributors about the technical aspects of your project idea. Anything you can do to convince us that you are diligent, dedicated, and "get" Open Source and Dojo will be strong marks in your favor
- Got a great project idea? Ask us to get it listed on the projects page.
- Remember that the Dojo Foundation supports projects other than Dojo! You're likely to win some extra whuffie for proposing a strong enhancement to Cometd or Open Record.
- Honestly assess your familiarity with the web. If you abhor javascript, think it's a toy language, and feel like browsers are a joke of platform, you might want to apply to a different project. If you're an excellent C++ or PHP hacker who just assumes that you can walk into a JavaScript environment and kick butt, you're in for a long slog of it should we accept your project. We've had successful participants who fit this description in the past so don't let a lack of deep JS skills throw you off, but know that the constraints of the browser are very very different than other environments. Things take time that you won't expect, and code size is tremendously important. The web is where your CS training runs headlong into a wall of pragmatism. It's a rewarding climb, and we'll help you over, but if you don't already know what it looks like, expect to be spending some time learning how to climb.
- Think hard about whether or not Dojo is where you'd like to do your SoC. Summer employment in college is always a difficult thing to balance, and we know it, but we're expecting you to show up to SoC with a vengeance and start running as soon as it starts. If you know that you're the kind of person who needs strong oversight and direction, an office environment, or suspect that external factors such as family or other commitments may make you unable to treat SoC as a full-time job, it would be in your own best interests to give your SoC application more thought. The first rule about any job is that in order to succeed, you have to show up. We'll be expecting you to show up, file weekly status reports that everyone can see and document your progress in a blog. In return, your mentors will answer questions, support you in whatever way we can, and help you navigate the deep and murky waters of an Open Source community. We've had previous students become full-fledged Dojo committers and even gain employment based on their SoC work. If those sound like "best case scenario" to you too, then get that application polished! We can't wait to work with you.
As many a Dojo user is aware, we've been supporting Yahoo's forward-thinking JSON-P style endpoints for their various web services for a long time. We even have a nice RPC wrapper and simple description format for most of them. And no, you don't have to download YUI to get at this stuff...it's all pure Dojo. We make it easier to work with Yahoo's services than Yahoo does.
And that now includes Yahoo Pipes. It's cool and interesting to be able to call out to Pipes from your server-side web-app, but what the mashup-mad word REALLY needs is to be able to do the same thing from a browser. Despite not really being in the docs anywhere, Yahoo's Kent Brewster points out that Pipes supports a JSON-P callback argument. Awesome!
The structure of Pipes URLs are different than every other Yahoo service (much like flickr. ugg.), so there's no Dojo RPC for it yet, but you can easily query a pipe using dojo.io.bind
and the ScriptSrcIO
transport:
// get news results for Cometd
dojo.require("dojo.io.ScriptSrcIO"); // the x-domain magic
dojo.require("dojo.debug.console"); // firebug integration
dojo.io.bind({
// grab this URL from the pipe you're interested in
url: "http://pipes.yahoo.com/pipes/fELaGmGz2xGtBTC3qe5lkA/run",
mimetype: "text/json",
transport: "ScriptSrcTransport",
jsonParamName: "_callback", // aha!
content: {
"_render": "json",
"textinput1": "cometd"
},
load: function(type, data, evt){
// log the response out to the Firebug console
dojo.require("dojo.json");
dojo.debug(dojo.json.serialize(arguments));
}
});
Pipes is a bit slow right now, so you might not want to use this for main page content, but it's a great way to decorate pages, blogs, and other kinds of data with a lot more context from all over the web.
One of my goals for 2007 is to spend less time on the road, and SitePen has been helping to make sure that I get real blocks of time for R&D. This is all the more important given the aggressive Dojo 1.0 roadmap. As a result, I'm skipping some of my favorite conferences (SxSW, ETech, etc.) and doing less speaking in general. But that doesn't mean I'm not traveling at all, just that we're trying to "make it count".
Here's an abbreviated version of my conference schedule until about June:
- ISOC-IL 2007 Conference: after a full day of listening to me yammer, hopefully there will still be some interest in using Dojo somewhere in Israel.
- ETel: the telco guys don't know me, but if they show up at ETel the sure won't like me when it's all said and done. This talk will be something of a reprise of my no-holds-bared EuroOSCON talk. Swearing will most certainly be involved.
- AjaxWorld NY: not speaking (Dylan is!) but as I'm on the board of the Open Ajax Alliance, I'll be in NY for the members meeting at the very least.
- Web 2.0 Expo: thanks to Simon I'll be on an Ajax Toolkits panel. A good time will be had by all while we dodge the "why shouldn't I use Flash/Flex?" question.
- Java One: Jean Francois, Greg Wilkins, and I will prognosticate about the state of Comet in Java. Thanks to the hard work of both of those chaps, the future is surprisingly bright.
- 2007 IEEE Symposium on Security and Privacy: I'll be attending this one, and thankfully it's in Oakland. Lots to talk about regarding security on the web these days and this is the place to do it.
Believe it or not, that's a relaxed schedule from last year. If you're going to be heading to any of these and want to catch beer, don't hesitate to drop me a line.
I don't blog much, if at all, about politics but I spend a lot of time thinking about it. Recently, someone told me that members of my generation don't care or know anything about politics. I was aghast at the suggestion but upon reflection I think I can understand where he was coming from: having grown up in an environment of growing disenfranchisement leads to a belief that it's impossible to effect change, even if you think you know what to change. I don't even remember a time when congressional districts weren't gerrymandered beyond recognition or when incumbency was unassailable. Unless something changes, my little brother will only vote in presidential elections where untrustworthy electronic voting systems are the norm.
Despite all of that, however, I vote every chance I get. Jennifer and I study for elections, usually reserving most of a weekend beforehand to pore over the hundred-plus pages of voter information booklets that get shipped to every California voter. We spend time researching, trying to pick the best person for the job, peering through the morass of private interest and political machinations and not always coming away feeling like we really understand all that's at stake. I've never voted a straight party ticket in my life, mostly because I don't think anyone really has all the answers. I expect my elected representatives to duke it out to a good compromise. I want the kind of slow, deliberative government that leaves everyone slightly bruised and no-one very happy.
And I worry a lot about the health of the fourth estate. I'm something of an NPR junkie and my favorite show is without a doubt On The Media. It says something about me that I'm not sure I want to acknowledge that I try to make sure I'm by a radio every Sunday a 2pm to hear it. Even though I already get the podcast.
Which is why the administration's saber rattling toward Iran scares the living shit out of me. The Senate can't seem to shake its limp-wristed, morally-equivocting response to the last war while an executive that couldn't be bothered to plan for the aftermath of a war of choice attempts to foment another. The disastrous consequences of our failure to win the peace in Iraq and Afghanistan brings me close to tears. We've shattered hundreds of thousands of lives, returned Afghanistan to the warlordism and feudalism which gave rise to the Taliban in the first place, and wrought untold damage in Iraq. It was our responsibility to ensure law and order after ousting the existing regimes of these countries. This isn't the America that liberated Germany, this is the America that fucked Guatemala for half a century and overthrew an elected democracy in Iran. That overthrow, incidentally, has led us into a trumped-up "conflict" with a bruised, malignant, and blighted society next door to an American quagmire. It frightens me that Bush administration shows no signs of wanting to understand the causes of Iranian intransigence toward American foreign policy dictates. One can only imagine the lack of perspective and historical context in the discussions surrounding American/Iranian policy. The Bush administration wants influence in the mideast and something, anything to draw attention away from 30% approval ratings and a war that is now receiving something that might one day resemble congressional oversight.
Those are both pretty thin reasons to go laying the groundwork for yet another conflict in a region that is both critical to our national interest and growing more unstable by the day. As Juan Cole keeps pointing out, the agro directed in the general direction of Tehran doesn't even make any sense. And it's not like there are any good policy options for a president intent on trying to bully Iran anyway. Sure, there might be some purely military options that would perhaps be available to the US given that we've now got permanent bases in Iraq, but as James Fallows has illustrated, none of them actually make policy sense. Which is why congress needs to find its hands and then use them to find its ass, and quick. Spun the right way, the over-broad authorization of force against Iraq could be twisted to justify limited tactical strikes against Iran. When it blows out of proportion (as it inevitably would), will congress have the cojones to say no? I doubt it. They can't even get to a debate on a freaking non-binding resolution against a horribly unpopular war backed principally by a lame-duck president with approval ratings not seen since the Carter administration. Even with elections looming. Such is the jingoistic power of potentially being seen as "weak on defense" or "not supporting the troops".
And so the media fails us again, the administration makes allegations that aren't even plausible, and the attention that should be directed to a thousand other places gets focused on what can only be described as the wrong things. How long can our flirtation with authoritarian incompetence last? And what will we pay in the decades to come for our duplicitous national arrogance and cowardly ignorance?
I've been trying to avoid regular expressions in dojo.query. It's a difficult tradeoff since regexes are very space efficient vs. lots of indexOf
operations. A little digging on the point turned up a fascinating article on why regexes in most languages are slower than they need to be.
Now if only there were some explanation of why regular expression string replacement, not just matching, is brutally slow across the board.
Older Posts
Newer Posts