Technically these are still unhygienic macros, because it relies on the programmer's carefulness to avoid accidental capture. Hygienic macros prevent capture by default.
Still, nice work :) It'll be great to eventually have both types of macros available.
> I still work on cool stuff, but nobody notices anymore, partly because everybody takes the fact that Google Search just works for granted and because I work with enough other talented people that I can't claim sole credit for anything I do anymore.
Just curious: Are you equally satisfied with the not-so-public work you're doing now?
Click on "Auto Step" to see the code execute step-by-step as the interpreter walks the AST :)
I hope metajs will be useful for building a mental model of how code really gets executed, especially with complicated control flow (like the Y-combinator example).
Source is on [GitHub][1]; it's written in node + IcedCoffeeScript, and uses browserify.
Isn't the effect true regardless of which direction the gender imbalance is in? I.e. if there's a female in a male-dominated group, she tends to end up with more social influence as the guys compete for her.
Indeed. It used to be that the only way to glean such information (for an arbitrary user) would be to crawl all the projects and sift through the data yourself.
I'm hoping that they make this info available through the API, and allow us to see contributions over all time, instead of just in the last year / month.
For those who don't know what sweet.js is: It's a macro system for Javascript, designed by the folks at Mozilla. With any luck it'll pave the way for macros in post-ES6.
`git checkout-index` allows you to run tests on the index before committing and without messing with your working tree. The only downside is that it might take a while for a large project. Example script: https://github.com/philc/vimium/blob/master/git_hooks/pre-co...
Could you give some example sites? I'll look into it. Also, if it only crashes on a small set of sites, you could selectively disable Vimium on those sites via the browser action icon.
Vimium dev here. We actually disabled Vimium on Google Reader because we were getting complaints about how it breaks Reader's own keybindings. If you wish, you can re-enable Vimium by going to the options page; once enabled, its keybindings should take priority over the page's own -- please file a bug if that isn't the case. (However, if you pressed a key that doesn't correspond to a Vimium command, it will automatically pass the keystroke down to the page's own key handlers.)
There are definitely varying rates of efficiency in learning. I personally find that working with others tends to make me more efficient, for the exact reasons that sliverstorm cites.
Indeed, it started out as a class project, but we're hoping to take it a lot further.
The plan is to implement a bytecode -> JS compiler next, a la JSIL / Emscripten. Thus far most of the work has gone into porting the runtime environment first.
P.S. I'm a sophomore, the other two are grad students :)
I haven't tried, but I'm almost certain not -- Doppio relies on the existence of either the DOM or the Node API, and Rhino lacks both. Not to mention that our support for Rhino libraries isn't perfect as-is. Of course, one could write another shim layer for Doppio that uses the Rhino API... but I'm not going there :P
I'm one of the authors. Doppio's not the first JVM in Javascript, but I believe we have the most extensive support for the JRE among the lot. In particular, we can run Rhino and the Java 4 compiler. Feel free to ask me any questions!
Does Command-T ever open new windows? For me it opens the file in the current window, and if the file is already open in a buffer, that buffer gets shown in the current window.
It actually plots the local time, i.e. a commit at 3am PDT and another at 3am EST would contribute to the same circle on the plot. (I did a clone of the old GitHub graphs a while back.) So it isn't really useful for knowing when to contact faraway developers. On the other hand, it is fun to see how many committers are regular night owls.
Sounds like a great education. I've been meaning to explore the research opportunities at my school; hopefully they will work out as well as yours did. Thanks for sharing, and sorry to hear about your loss.
Just out of curiosity, which school did you go to that provides a 3-semester long AI course? Seems like you'd be able to go into quite a bit of depth there.
Yup, I'm aware of Emscripten, which was part of the reason behind my question. I hadn't considered the issue of lack of code / data separation when dealing with pure binary code.
I'm actually working on a JVM interpreter in Coffeescript now, so this topic is particularly interesting to me. Thanks again for taking the time to explain things.
I like that idea, and I think I'm going to try it. I'm slightly perturbed that my school doesn't have an advanced compilers course, but I could definitely use this strategy as a way of learning more.
Do you mean that you did your school's compiler class project each year despite not taking the class, and every year they were targeting a different architecture?
Thanks for the explanation! It makes sense. I was just wondering though -- why is it necessary for generate_block / decode_instruction to be called on the fly, instead of as a pre-compilation step? I guess you need some sort of runtime information for the compilation?
You mentioned in the 'Worst Linux PC' thread that your implementation generates JS code on the fly and 'captures up to three backwards jumps'. Do you mind explaining in more detail how this works?
As other commenters have mentioned, she probably isn't as unknown as the article suggests. I'd have thought that her symmetry work is pretty well-known in the field of Physics, and credited under her name.