
There's a map for that - bencevans
https://github.com/blog/1528-there-s-a-map-for-that
======
buro9
I'm increasingly thinking that the biggest competitor we have isn't other
forum software (who aren't innovating), but Github.

Our startup ( [http://microco.sm/](http://microco.sm/) ) is working on
improving communities, which most people read as vBulletin, phpBB,
Discourse... but my view is simply that if you have a group of people together
around some interest (topic, locality, project) that they want to communicate,
share, transact at every level.

And that, the fragmented experience of going to Google Maps, Facebook Events
or Eventbrite, Wikipedia, review sites, eBay, etc... just to bring the last 5%
into a community... well that's frustrating and a poor user experience.

Instead the first 60-80% of the functionality elsewhere should just be in the
tool. Where the community already is.

And we're starting with forums and going outward, in every direction (it
feels). And here is github, starting with the code, and also heading outward,
in every direction.

I've a great deal of love for Github (as a dev, how could I not)... so I wish
them well. They're solving things from a dev/work perspective, and we're
aiming at consumers/users/hobbies/interests... but still, I've no doubt that
we've a lot to learn from them, and when we're up to speed perhaps we can
teach them a thing or two.

~~~
asperous
People forget this, but even though git was developed for programming version
control, there isn't a lot that makes it useful strictly for programming only.

Git is a powerful version control and _collaboration_ system for any plain
text (or maybe even binary) files.

There's nothing special about programmers that makes it so they are the only
ones that can learn about these tools and use them. With something like
TortoiseGit (or Github's app) I can totally see people you would never expect
start taking advantage of this.

Authors, mathematicians, research agents, cartographers, government agents
(all those legal documents need version control badly), lawyers, etc.

As the world trusts computers with more and more of their files, they might
start picking up the tools that programmers have held so dear.

Why not empower them?

~~~
derleth
Torvalds, in classic Unix hacker fashion, designed git to be so stupid it
doesn't care what it's being used for, which goes quite a long way to making
it all things to all people.

Similar is how the Linux filesystem code flatly refuses to care about what
encoding scheme filenames use as long as the byte 0x2F (ASCII '/') is only
used to separate pathname components, the byte sequences 0x2E (".") and 0x2E
0x2E ("..") appearing alone in a component are special, and the byte 0x00
(ASCII nul) is only used to terminate the entire pathname. The kernel is so
stupid it only sees byte sequences and only cares about those specific values
and sequences; as a direct result, users can use any character encoding which
guarantees those values will only be used for their respective purposes, and
rely on easily-configurable applications to sort it out.

Here's Torvalds, Viro, and Ts'o chewing out someone who thought the kernel
should enforce UTF-8 file and directory names:

[http://yarchive.net/comp/linux/utf8.html](http://yarchive.net/comp/linux/utf8.html)

~~~
rmc
I thought ".." was a hardlink to the parent directory created when a directory
was created? Hence the kernel doesn't actually have to treat ".." as anything
special, since, due to hardlinks, "it'll all work out"?

~~~
asperous
I hope not, that'd be such a waste

------
noelwelsh
I wonder about priorities when I read this. For example, how do I diff two
commits via Github? There is a blog post describing this feature:

[https://github.com/blog/612-introducing-github-compare-
view](https://github.com/blog/612-introducing-github-compare-view)

However it seems the UI has changed, and the only way I could find to use it
was to manually construct the URL.

I'd love for someone to show me some obvious UI I've missed. Diffing is really
fundamental for a VCS. I'd much rather Github cleaned up the UI for existing
features than added these little flourishes that I can't imagine even 1% of
users use.

~~~
Newky
I have to agree.

The fact that you still cannot do side by side diffs on pull requests makes it
a less than useful code review tool.

~~~
gcr
What's the difference between a diff and a side-by-side view of two files? I'd
(usually) prefer the former.

~~~
swang
It is difficult to follow the code that's been added when all the
deletions/diffs get in the way.

~~~
sdesol
I agree. I find that unified diffs work well 90% of the time but when it
doesn't it can be crippling. I've attached some screenshots at

[http://screenshots.gitsense.com/index.html](http://screenshots.gitsense.com/index.html)

that illustrates where side by side becomes a requirement for me. Yeah I can
make sense of things with a unified view but the side by side really makes
things more obvious.

Note you can find this diff at github at
[https://github.com/joyent/node/pull/5615/files#L0L80](https://github.com/joyent/node/pull/5615/files#L0L80)

~~~
jervisfm
What program or tool were you using to see the diffs side by side ?

~~~
sdesol
It's from my tool that I've been developing. You can see how the diffing works
at

[https://www.youtube.com/watch?v=fi7GvcW1NKA](https://www.youtube.com/watch?v=fi7GvcW1NKA)

Unfortunately I don't show you how to switch to the side by side view. To do
this, you just click on the view toggle button at the top left corner of the
diff window.

~~~
gcr
Nice Work! That sounds similar to Meld.
[http://meldmerge.org/](http://meldmerge.org/)

------
bitops
I am curious if anyone has any insight as to what GitHub's strategy is with
this move?

It seems that they are steadily tracking towards a browser-based cloud IDE.
GitHub also seems to be a popular choice for devs hosting their blogs. I
wonder if they're hoping to be a more all-round app hosting service?

~~~
callmeed
The recent Inc. article [1] about GitHub isn't really deep but the end has
some insights:

 _a shift is taking place: "Now we are finding that it's not just about the
code; it's about, 'Hey, I want to work on this with you.' That's really eye-
opening to us and gets everyone here superexcited. Working with someone else
is just an awesome part of being alive. Creating art, creating tools, creating
documents, doing homework, anything--it's not limited to programming. I don't
see why musicians wouldn't want to work this way, for example."_

Take that, and now consider how much a forward-thinking city could do with its
data as GitHub adds features like this. I don't think it's about being just an
IDE/app hosting service ... it's (eventually) about
collaboration/control/revisioning beyond purely software projects.

[1] [http://www.inc.com/magazine/201303/will-bourne/2-reasons-
to-...](http://www.inc.com/magazine/201303/will-bourne/2-reasons-to-keep-an-
eye-on-github.html)

~~~
fossuser
This reminds me of trying to determine the scope of your company.

I remember reading somewhere (probably here) that part of the reason the
railroads failed to adapt to cars was because they thought of themselves as
railroad companies instead of transportation companies. Maybe github is
thinking of themselves as a collaborative work company rather than a
collaborative coding company and trying to adapt to that.

~~~
drewda
I know you're just trying to make a metaphorical comparison with railroads,
but the story isn't that simple.

In the U.S., intercity railroads found they could make more money by focusing
on freight and leaving passengers to poor Amtrak. If Warren Buffet's
acquisition of BNSF is any indication, the private railroads are quite
profitable.

The decline of intracity passenger rail in the U.S. has many causes (massive
public investment in the Interstate highway system for one). Still, it's worth
remembering that auto companies played an active role in acquiring and
disassembling streetcar lines:
[http://en.wikipedia.org/wiki/General_Motors_streetcar_conspi...](http://en.wikipedia.org/wiki/General_Motors_streetcar_conspiracy)

------
rurounijones
Whatever you think of Github you gotta admit that they are machines when it
comes to adding new features to the site, the pace is fast and steady.

------
philjackson
I'd love to know where these ideas come from. All the way from the top?
Product? Developers with a 20% time window? They've always been innovative and
despite size/growth/scale seem to be able to keep that up.

~~~
holman
> Developers with a 20% time window?

We like to call it 100% time. Work on what you're interested in.

In this case, Ben — who handles a lot of our outreach to government agencies —
knew that GeoJSON is something that could be a big deal for open data in
government, so he built the feature. There's not much more to it than that.

~~~
voltagex_
Cool. I wonder what the conversion workflow --> GeoJSON is like? KPX and CSV
and XLS are common over at data.gov.au / data.act.gov.au

~~~
saraid216
GeoJSON is an entirely different type of data. "columns" and "rows" aren't a
useful way to think about it; you have to talk about points and closed
polygons and their associated metadata instead.

------
kmfrk
The downside of this seems to be that it discourages users from using the
superior format TopoJSON by Mike Bostock, as it outputs in plain .json:
[https://github.com/mbostock/topojson](https://github.com/mbostock/topojson).

~~~
buro9
GeoJSON is a feature of Leaflet:
[http://leafletjs.com/features.html](http://leafletjs.com/features.html)

Leaflet is the library used by Mapbox.

Pretty sure if you add a pull request to Leaflet with code for TopoJSON that
Mapbox will get it too and then Github will have it.

------
TeMPOraL
Since GitHub is starting to feel Emacs-like, why not go fully in this
direction? Add a "dotfile" repository for everyone to manage their own client-
side JavaScript extensions for Github that would be loaded by default. And
then let people collaborate, share and create extensions and "configurations".
Want a better map? Fork the official one and modify it. And then let others
fork from you.

~~~
cscheid
This would make scripting attacks really hard to defend against. They could
use something along the lines of Caja, but it's a really hard problem in
general (and one they're worrying about, given the gh-pages move to a separate
domain)

------
kh_hk
Hmm, neat. I've added all the bike sharing networks I can think of to a
repo[1], and for all you NY bike sharing lovers, there you go[2].

I don't think I will update it to work in 'real time' because it would not
make much sense, but it was fun to play with.

[1]: [https://github.com/eskerda/cb-
geojson/blob/master/networks.g...](https://github.com/eskerda/cb-
geojson/blob/master/networks.geojson)

[2]: [https://github.com/eskerda/cb-
geojson/blob/master/citibikeny...](https://github.com/eskerda/cb-
geojson/blob/master/citibikenyc.geojson)

~~~
kh_hk
EDIT: nevermind

[https://github.com/bikesharebot/bikesharestats/blob/master/c...](https://github.com/bikesharebot/bikesharestats/blob/master/citibikenyc.geojson)

~~~
Oompa
That's fucking sick. Nice work man.

~~~
kh_hk
Nice work on pulling this off!

One could question, who would want maps on github? Sometimes one cannot know
what something can be used to until being able to actually use it, that should
be the whole point on technology.

~~~
Oompa
A lot of folks from the GIS community. As mentioned in the blog post, people
will already storing this data on GitHub, now it's simply presented in a nicer
fashion :)

And as you mentioned, sometimes just providing the tools empowers the
community to do to do amazing things.

------
dergachev
I wish they would just make HTML previews work instead of hardcoding specific
use cases with 3d models and geodata.

Eg why can't github just let visitors preview this html file:
[https://gist.github.com/dergachev/5769111#file-index-
html](https://gist.github.com/dergachev/5769111#file-index-html)

For now, I have to link bl.ocks.org, which is nice but far from perfect. And
check out [http://htmlpreview.github.io](http://htmlpreview.github.io)

(I understand that there are security concerns, but I'm sure they can be
addressed with an iframe or by clicking an external link)

------
kombine
Well they have a file system(git), now they add ways to interact with data, up
until they create a fullblown operating system. Something that Google is
already onto with ChromeOS.

------
wallio
Cool stuff - had not heard about the 3D rendering linked in the article
either. These are not trivial features to implement or maintain and seem to
have a somewhat narrow audience. GitHub has such an amazing team and the core
functionality seems pretty complete. I wonder if the "ship code" ethic and
loose management structure (both of which I think are great) will inevitably
lead to a bloated, feature overloaded product eventually. This has happened so
very often in the past to others. So far they have been pretty good at closing
down unused features.

------
monkmartinez
This is really cool! However, I would be remiss to not mention that I would
love for Github to focus more on Git. I have been using git for about two
years, but I am far, far, far from being a git ninja. I suspect that I am not
alone based on what I see at stackoverflow with questions tagged "git."

What if they spent their time improving: 1\. Github Pulls - Have you seen the
hoops one needs to jump through to submit a single-commit pull request? One
needs to be extra careful about the workflow.

2\. Let me determine the Project/Repo language - How many repos do you have
that are labeled Javascript when its really a Python, Ruby or something else
Project? Not critical, but seems really silly that I have to wade into the src
to determine something like base lang.

3\. Make git, itself, more intuitive - Surely if they can add the crazy cool
features they've added, making the management of git repos DEAD simple should
be a priority. Look at the questions tagged with "git" on stackoverflow and
see how many you could devine an answer from using github.

4\. Git fast forward - Could github provide an way to see what is going to
happen to a repo when issuing git commands? All these cool visualizations
online and we have to experiment with git locally seems a bit odd.

Free idea; Gitfiddle. See what your crazy ass commands will do to your repo
before you spend the next 4 hours figuring out why you didn't want to do that.

Ie. Find the merge base between your branch and master: ‘git merge-base master
yourbranch’ Assuming you’ve already committed your changes, rebased your
commit onto the merge base, then create a new branch: git rebase –onto
<basecommit> HEAD~1 HEAD git checkout -b my-new-branch Checkout your
ruggedisation branch, and remove the commit you just rebased: ‘git reset –hard
HEAD~1′ Merge your new branch back into ruggedisation: ‘git merge my-new-
branch’ Checkout master (‘git checkout master’), merge your new branch in
(‘git merge my-new-branch’), and check it works when merged, then remove the
merge (‘git reset –hard HEAD~1′). Push your new branch (‘git push origin my-
new-branch’) and log a pull request.

the above from: [http://steveko.wordpress.com/2012/02/24/10-things-i-hate-
abo...](http://steveko.wordpress.com/2012/02/24/10-things-i-hate-about-git/)

~~~
gkop
> Free idea; Gitfiddle. See what your crazy ass commands will do to your repo
> before you spend the next 4 hours figuring out why you didn't want to do
> that.

It's really hard to screw things up that badly with git, you can nearly always
go back using $ git reflog and $ git reset --hard .

~~~
monkmartinez
You can't screw it up they says, it so easy they says... well then why this:
[http://stackoverflow.com/questions/134882/undoing-a-git-
reba...](http://stackoverflow.com/questions/134882/undoing-a-git-rebase) and
this: [http://ocpsoft.org/tutorials/git/use-reflog-and-cherry-
pick-...](http://ocpsoft.org/tutorials/git/use-reflog-and-cherry-pick-to-
restore-lost-commits/) and a gazillion more just for that one command;
'reflog'... type --rebase vs --merge and let your head explode with the rest
of us n00bs.

The truth; Git is hard. My opinion, I want to write code and keep it
somewhere. I'm not a professional developer and I want to contribute to open
source in my free time. That means git || hub, generally. It would be awesome
for Github to make git exploration from the browser easier. Yes, I pay github
every month and I am happy to do it.

~~~
gkop
Agree that the git command-line API is harder than it ought to be. My comment
was meant to help git beginners that are afraid of exploring for fear of
wasting many hours fixing their mistakes; you should consider learning the
commands to undo your mistakes before learning other crazy commands.

~~~
monkmartinez
How do you learn to fix a mistake before you make one? You may have a weak
notion of what you need to do... but you don't know until it happens and have
a need to git dirty. Further, In my opinion of course, these features are
great... but someone is going to make git easy while retaining its power.
__Git is a nacent technology __and while Github is dominating now... there is
always room for disruption. They, the people who make git easy, will be the
winners. Don 't make me think.

------
graue
Hmm, on Firefox 23.0a2 I just see a white box with nothing there. Usually this
means an addon is interfering somehow. But I turned off AdBlock, Ghostery,
HTTPS Everywhere, Flashblock and Greasemonkey, which is basically everything,
and reloaded, and still nothing. Anyone else?

(Edit: All fixed, thanks Oompa!)

~~~
Oompa
Woops! Small issue. Should be fixed now :)

------
saosebastiao
A little UI feedback if anybody from GitHub is listening:

When you click and hold to move the map, and you scroll the mouse all the way
off the map, the map acts like you are continuing to hold the mouse button
down, even if you let go of the mouse button. When you return the mouse to the
map, it acts like the button is still pressed and the map sticks to the
pointer...for which you have to click again to get out.

This is unexpected behavior, especially if you are trying to scroll through
more than one screen with repetitive mouse drags. The map scrolling should
maintain the same behavior of the mouse button hold even if you scroll off the
map.

------
jknz
A terrific feature would be to have the same in gist, embeddable everywhere.

Want to show a place or some directions on your website/blog/... ?

Just create a gist with geojson format and embed it on your blog, as
programming blogs embed code gist right now.

Congrats!

------
state
I look forward to the day when git is the defacto way to collaborate, and I'm
so happy to see that GitHub is leading the way forward. This kind of stuff is
great!

------
dakimov
Wow. Speaking of Leaflet.js, modern web-technologies are powerful and elegant.

And GitHub is becoming a whole universe. What a wonderful service, idea,
design, usability! I am really amused.

