364 karma · joined October 14, 2010
[ my public key: https://keybase.io/timblair; my proof: https://keybase.io/timblair/sigs/Rbsp4_2FCkrnFyTb75OVK_3UFohT_4YZ9cLvwW7gwYQ ]
[1] http://99percentinvisible.org/episode/separation-anxiety/
The live-reload functionality is there as a development workflow tool, to automatically reload the page to see the results of the latest code change, rather than manually switching to the browser and hitting ⌘R/F5.
* Stars: the ability to privately star individual messages (so you can easily find them again)
* Pinning: the ability to publicly highlight specific messages within a channel, much like pinned posts in a forum (effectively channel-wide starring)
* History links: click on the timestamp next to any Slack message and it'll open a canonical URL for that message, allowing you to drop these links to specific messages or points in a conversation into other chats, GH issues or anywhere else you fancy.
* An agile team could use this as part of their retrospectives, and could track the data points across multiple sprints to see trends, as well as "scoring" the latest sprint.
* Sometimes an individual in a team can be quite quiet and reserved, and won't physically speak up if something's not going so well. Moving to a system like this may give them a voice.
* The levels can be tracked both by the team and by an individual's line manager to keep an eye on those people who are consistently (or increasingly) bored, frustrated, not learning, or generally unhappy.
* If this were completed every day, then it would effectively become a Niko-niko calendar[1] (although you might want to fill out just a single data point if you're doing it every day).
* Having a daily version would also work as an early-warning indicator of trouble brewing within a team or project.
[1] http://agiletrail.com/2011/09/12/how-to-track-the-teams-mood...
Facebook have their own, similar method of supporting batched calls through the Graph API [3], and this even permits you to specify dependencies between operations in a single request using JSONPath [4].
[1] http://jsonapi.org/ [2] http://jsonapi.org/extensions/bulk/ [3] https://developers.facebook.com/docs/graph-api/making-multip... [4] https://code.google.com/p/jsonpath/
Also, saying that using Redis is slower than using a local hash table is a truism. There are myriad reasons why using a local, in-memory data structure is not viable: scalability and persistence, for example. It's like saying "I don't need a database, I can store everything in a local variable."
I agree that a GUI can make some tasks a lot simpler but, personally, I've always found that teaching people to use any DVCS from the ground up (i.e. from the command line) ends up with a greater level of understanding. Once you've got that, you can move on to using a GUI to improve your workflow, but with the understanding of exactly what is being abstracted away.
It would have been really useful if the upgrade notification had included this level of detail to start with so people could make a much more informed decision about when/if to upgrade, rather than having to dive through bug reports, commits etc just to work out if our apps are vulnerable.
Regardless of the fact that a well-designed application encourages people to use it more, the fact that GitHub provide their employees with the opportunity to produce such well-polished interfaces is an incredible marketing tool for potential new recruits.
At the end of the day, it all fosters an environment where developers want to be The Guy That Works at GitHub, and all the great talent they attract just bolsters their position even more.