And Sean is most definitely on the case. But please give him some time and space.
1,544 karma · joined December 10, 2008
I'm a hacker from London who works on decentralised systems.
Feel free to contact me for help/advice or just for a friendly chat:
tav@espians.com
http://tav.espians.com
https://twitter.com/tav
All content produced by me on HN is dedicated to the Public Domain:
* http://creativecommons.org/publicdomain/zero/1.0/
Use it however you want :)
[ my public key: https://keybase.io/tav; my proof: https://keybase.io/tav/sigs/mWU8_7ohyVhbWe4CC4-BULZt9ko__aSLRFa1T-GJ5xc ]
And Sean is most definitely on the case. But please give him some time and space.
However, I really don't care for most of my popular repos or some of the external ones I've contributed to. My ideal would be to hide repos that I don't care about and to highlight the ones that I want to showcase.
The "Contribution Activity" stuff is totally fine, but given how much the public repos reflect the "personality" of an individual, I am a little saddened that it's being lost in the sea of popularity. It'd be nice to be able to reclaim some control over that.
Edit: To clarify, two of my popular repos with a few hundred watchers between them are efforts I spent all of a few evenings on. I am as proud of them as some notes I scribbled last week. In contrast, I have repos which I've poured months of effort into which I would rather highlight.
Likewise, one of the repos to which I recently contributed is of such subpar quality that I'd rather not be publicly associated with it so prominently. Whilst I'm happy to help others out, knowing that it'd be displayed in such a prominent manner acts as an anti-incentive to partake in low quality projects.
So, if any GitHubbers are listening... please replace "Popular Repositories" with "Highlighted Repositories" and give us more control over what gets displayed with regards repos we've contributed to. And, oh, whilst I'm at it, perhaps "Most Recent Streak" would be more motivating than "Current Streak" which I imagine would be at an awe-inspiring 0 for many of us way too often.
As a multi-player strategy game, Galcon [1] is a lot of fun! And the guy behind the game, Phil Hassey, has made a lot of valuable open source contributions to the Python community like tinypy [2]. So, if you are looking for a good experience, Galcon 2 would be well worth it!
Go is a beautifully minimal language and very easy to learn. Rust isn't quite as productive, but it won't be too foreign for most coders either — unlike the Erlangs and Haskells of this world. And whilst I've never missed generics in Go, I've already found them useful in Rust.
Rust's memory model takes a bit of time to understand, but it provides a lot more power and flexibility than Go is ever likely to. To get the same kind of fine-grained memory management in Go, you have to manually allocate and manage []byte slices. Not only does this get tedious, but you end up losing most of the benefits of static typing as well.
Rust is also exciting due to the lower-level nature of tasks (the unit of concurrency in Rust). Goroutines are awesome, but you are at the mercy of Go's runtime/scheduler. In Rust, the potential is there to even do interesting things like dynamically load new tasks at runtime — opening up possibilities like Erlang's hot swapping so that code can be changed without ever stopping the system.
However, despite the awesomeness of the language, Rust suffers from a terrible standard library at the moment. Even when Go was first released in 2009, it had a really impressive standard library. And, today, thanks to having superstar hackers like agl and bradfitz on its team, Go has some of the highest quality libraries around — especially in crypto, networking, http, etc. In comparison, Rust's standard library is rather poor with little attention having been paid to API design.
Rust also suffers in comparison to Go with regards tooling support. The 'go' command-line tool is awesome. I've not had a single dispute over style guides due to 'go fmt' and 'go doc'. The 'go fix' command really helped in auto-updating my Go code as the language evolved. The 'go build' tool saves me from having to write build scripts and Makefiles. And Go's (non-existent) package management system is absolutely brilliant — just 'go get github.com/user/repo'!
But, neither problems — quality of the standard library or tooling — are intractable in Rust. In fact, now that the language is starting to stabilise, I am highly confident that a lot of love and attention will be given to both of those issues. This is also an area where we, the community, can also help out a lot. Myself, I've slowly started working on a port of the 'go' tool called rusty:
* https://github.com/tav/rusty
And, having found the Rust developer community to be extremely friendly on #rust on irc.mozilla.org, I'm pretty sure they would be happy to have other interesting hackers join in too!
Don't get me wrong, remote wipes are useful. But they should be protected by some kind of a "Remote Wipe Authorization Passphrase" that the user must set up. Otherwise we are all simply at the mercy of the next access control vulnerability in iCloud.
This is exactly the problem that https://github.com/agl/extract-nss-root-certs was written to solve. I'd strongly recommend using it.
However, given that it's what we currently have, I'd strongly advice taking advantage of the security that it provides. Requiring API client library authors to ship certs will make for poor security. Not only do certificates expire, they also get compromised.
It would be easy to conduct MITM attacks using revoked certs and API client library users would be none-the-wiser. Instead, it should be the responsibility of HTTPS client libraries to use the latest cacerts data and support features like OCSP [1] for validating certificate revocations, etc.
[1] http://en.wikipedia.org/wiki/Online_Certificate_Status_Proto...
Mozilla's list also includes distrusted certificates, so you need to be careful to leave them out when generating the PEM-encoded format. In fact, I'd strongly recommend using Adam Langley's excellent extract-nss-root-certs tool [2] which takes care of the subtle details for you.
And, if you are willing to trust me, you can download my pre-generated PEM-encoded cacerts file from a month or so ago [3].
[1] https://mxr.mozilla.org/mozilla/source/security/nss/lib/ckfw...
[2] https://github.com/agl/extract-nss-root-certs
[3] https://github.com/downloads/tav/ampify/distfile.cacerts-201...
Thus a fixed URI like /.well-known/oauth.json would allow us to potentially do everything from service discovery to authorized requests from within client-side JavaScript apps without the need for server-side proxying or interpretation.
I never bothered to finish it back in 2010 since everyone seemed quite content with OAuth 2.0 at that time. However, now that it has been posted, I would love to know if anyone would like to see a completed version.
[Edit: Also, any criticisms of what's already there and thoughts on anything else you feel should be included would be really appreciated. Thanks!]
Unfortunately it's not that interesting as it holds just the revision history. Earlier this week I was contemplating on writing a script to import the entire Wikipedia dataset into BigQuery. Has anyone else already done this or be interested in such a script?
Google cache: http://webcache.googleusercontent.com/search?q=cache:www.bel...
- Ability to leverage the richness of Python to pre/post-process the inputs/outputs from other shell commands.
- Easier to parameterise and maintain.
- Familiarity with Python over the likes of bash, zsh, etc.
For what it's worth, I was in the Monotone [1] camp against Darcs back in the day... :)
Unfortunately back then, students tended to use Windows and setting up Cygwin scared a lot of them before they even got around to doing any programming. A tool like Python Anywhere would definitely be a far more attractive approach if I were to do something similar today.
[-] http://code.google.com/p/vitess/source/browse/go/rpcwrap/
The use of the Tweet count to create the custom "tweet this" message is pretty cool.
RPython -> LLVM -> Emscripten -> JavaScript
And, then, there have been efforts like my own which have focused on building a WebKit bridge [4] to PyPy.[1] http://www.mail-archive.com/pypy-dev@codespeak.net/msg03946....
[2] http://pyppet.blogspot.com/2011/04/rpython-to-javascript.htm...
uglify --define DEBUG=true
It will then replace all uses of the DEBUG symbol to true. And when you set it to false, it will even strip away dead code like: if (DEBUG) ...
We even added support for define-from-module which allows you to specify and use the exported symbols from a nodejs module instead of defining them on the command line. I tend to have dev.js and prod.js setup for this purpose.Hope these features address your requirements. Apologies if we didn't make the feature visible enough. It's documented on the UglifyJS frontpage...
Link: <http://www.cern.ch/TheBook/chapter2>; rel="Previous"
We should be applauding Google for supporting standard headers instead of making up new ones. The Link: header is even mentioned in the HTTP 1.0 spec [2] and, as mentioned in the OP, there's even an RFC acting as a registry for the various Link relation types [3].Though I don't always agree with standards, I hope you'd agree that it really does make sense in this case...
[1] http://tools.ietf.org/html/rfc2068#section-19.6.2.4