Where do Github users live? WebGL visualization - <AUTHOR> http://aasen.in/github_globe/ <comment><USER3> I've been fiddling around with a realtime(ish) geo visualization of github updates. Fans of the movie WarGames might enjoy the theme:

[http://streams.robscanlon.com/github](http://streams.robscanlon.com/github)

Its a work in progress!

<comment><USER4> I love that you're using IRC as the messaging protocol.

<comment><USER3> Way more fun than redis. I actually like to sit in the channel and watch the data fly by (its color coded so its actually quite pretty). /connect irc.robscanlon.com /join #github or /join #wikipedia. You can create your own channel and stream your own data as well (it'll automatically create a url on my site for you with that wargame theme). I'm working on other themes that you can choose from.

And please don't bug the web-* bots that are hanging out in the rooms... they are the actual web servers and are a bit busy at the moment ;-)

</comment></comment></comment><comment> guard-of-terra It stacks what I assume to be all unresolved Russian locations to a column the size of Saint Petersburg in the middle of Siberia.

Same thing with China with a large spike in the middle of Gobi desert.

Same with Canada - apparently some lumberjacks code when it snows too hard and they can't get out!

I wonder if there is a similar column in the USA and where is it located.

India is surprisingly bare. Come on, you can do better than that.

P. S. Went to update my Location: in github.

<comment><USER5> Author here, sorry about the spikes where people do not actually live. A lot of users put only their country and not city, and I didn't want to throw that data away.

I probably should've checked the specificity of the location and only thrown out the data for large countries like Russia and China, or distributed it across all other data points in the country.

Interesting project if you want to fork it!

<comment> guard-of-terra Distributing it across should work well. Throwing out not so much because you're losing a varying big chunk of data.

</comment></comment></comment><comment><USER6> Here's a quick 2d visualization of the data using D3.js. The advantage of a 2d projection is you can see all parts of the globe at once and have quantitative encodings that aren't distorted by projection effects. In this case, color+radius encode the magnitude variable, but there is overlap of adjacent circles.

[http://bl.ocks.org/syntagmatic/6769077](http://bl.ocks.org/syntagmatic/6769077)

<comment><USER7> Very cool. Also, I didn't know about bl.ocks.org!

</comment></comment><comment><USER8> It takes a minute, for my brain at least, to realize that the darker bits are the landmasses.

I unconsciously expected the opposite.

<comment> k-mcgrady I had the same problem. Looked around for about 10 seconds wondering why I couldn't recognise anything.

<comment><USER9> Oh man, I thought it was just me!! Sat here for a while in quiet shame after I realized it and thought there must be something wrong with me :P

</comment></comment></comment><comment><USER10> Good 3d visualization is tricky, this is a good example of a 3d fail. The 3d here adds more trouble than goods. It makes it harder to see the whole set of data and it is also harder to compare.

<comment><USER11> As someone else mentioned, there's a 2D version as well ([http://bl.ocks.org/syntagmatic/6769077](http://bl.ocks.org/syntagmatic/6769077)).

Personally I loved the 3D version. I found it interesting and __fun __.

</comment></comment><comment><USER12> It would be very exciting to normalize the Github user numbers by the population in the area they map to. Right now especially in Europe it seems to pretty much seems to map to population numbers of cities.

<comment><USER13> +1

It does correlate quite a bit to city population, although, the spike in what I presume to be Austin, relative to Dallas or Houston is quite telling.

<comment><USER14> That was the biggest surprise to me. I know Houston has over twice as many people but I didn't expect the numbers to be that large of a difference.

</comment></comment></comment><comment><USER15> It took a while until I realized that the black parts were land and gray was water.

Am I the only one who feel like it should be the reverse?

<comment><USER16> No, it was the same for me. Seas are dark blue while landmasses are white near the poles, green in most other places and sandy yellow in deserts - <USER2> colours. It makes me expect lands to be light and seas to be dark, even on a stylised monochrome globe.

</comment></comment><comment><USER17> Any thoughts what the European location that seems to be southwest of Berlin. Seems to be between Hannover and Leipzig, but there are no major cities there, and it's strange that its bigger than Berlin.

EDIT: Could be people who just wrote "Germany".

<comment><USER18> Well, it could be my coworkers here in Göttingen, but given that this lovely little town is about quite the middle of the country, I'm going with your post-edited hypothesis. Thanks for the hint, though, I was scratching my head about some of the other points I could not attribute to any city known to me.

</comment></comment><comment><USER19> Hmm, would have been nice if the great lakes were still in place in North America...they're very useful landmarks for us frozen chosen in the American tundra (read: New York, Michigan, Wisconsin, Minnesota, South Ontario).

</comment><comment><USER20> Hmm, I'm little suspicious of the accuracy of these numbers...

I looked at Japan, and there's a very high bar for Tokyo, which is expected (and a shorter line right next to it which is probably Yokohama)—and then there's a slightly shorter but still pretty extreme bar that looks like it's smack dab in the middle of Nagano prefecture, which is relatively speaking, the boonies. There seems to be almost nothing for Osaka and other big Japanese cities....

</comment><comment><USER21> I find it very hard to read because you cannot see the height of the bar from above. And when you can see the bar, then you can't see the country.

</comment><comment><USER22> This is pretty cool! However, I'm going to put on my Edward Tufte hat and point out that it's probably best to serve up this data in a static table. It always disappoints me to see sparse, categorical data visualized on a map since there's no additional context one achieves from the geospatial components. OP: maybe you could explore visualizing continuous fields, such as the Earth gravity field: [http://www.csr.utexas.edu/grace/gallery/gravity/ggm01_asia_f...](http://www.csr.utexas.edu/grace/gallery/gravity/ggm01_asia_full.jpg)

</comment><comment><USER23> While it looks cool, it only takes you a second to realize that this is kind of a worthless visualization because to see the height of the bar you have to spin the globe so the line is parallel to the view plane. If you are looking straight down, you only get the color.

Remember, 3d isn't 3d, it's 3d projected on a 2d plane. And if this were real steroscopic 3d, then each of these datapoints would be like the 3d gimmics in movies like a spear right to your face.

That said I've got this bookmarked because I think at it's base it could be useful for other visualizations.

<comment><USER5> I also used the same data in a 3D visualization with the Oculus Rift. You can check out a demo here: [http://youtu.be/dgMOdzfoPgs?t=31s](http://youtu.be/dgMOdzfoPgs?t=31s)

</comment></comment><comment><USER24> Wow - nice work! Are there really that many contributors in Alice Springs or is the big spike in the middle of the country just a generic "Australia" stat?

<comment><USER25> Yeah it seems odd that there are more people in Alice Springs than in Perth. Must just be "Australia".

<comment><USER26> I don't think it's Alice Springs. It's probably all users that wrote "Australia" as location + Alice Springs is actually a little northern that this bar.

</comment></comment></comment><comment><USER27> If you're wondering why Andreessen Horowitz felt github was worth the 100M dollar investment, look no further than India and China. These massive populations are yet to be tapped for the most part leaving a great opportunity for future growth. For a company that has been profitable from the get-go, things are only going to get a lot better in the long run.

Awesome job on the visualization btw.

<comment><USER28> I know we're all guessing here, because I assume you don't work at Andreessen Horowitz, but I don't agree with the bet you're making. When it comes to online services, China has a tendency to adopt their own versions of services started elsewhere. For example, Google is dying hard in China [1]. The players in the social media scene are similarly unfamiliar to users outside of China, with Weibo leading (I'm lacking citation here).

If Github sees China as an opportunity, they'd better move quick, and look very deeply at what has allowed services like Baidu and Weibo to trounce American-born competitors in their market.

[http://www.techinasia.com/china-baidu-qihoo-google-search- ma...](http://www.techinasia.com/china-baidu-qihoo-google-search-market-share- war/)

</comment></comment><comment><USER29> It looks like this awesome visualization was done with Three.js, but I wanted to flag Ceasium[1] to anyone wanted to do 3D 'map stuff' in a browser. It has some great features, like built in support for CRS systems (hard), WMS/WMTS client. We got a lot done with it really fast.

[1][http://cesium.agi.com/](http://cesium.agi.com/)

</comment><comment><USER30> My GitHub data challenge entry was along a similar vein. The data is stale now, but it does break it down by project and language which can form some interesting hotspots.

The globe is a really nice touch and you did a good job on canonicalization/grouping/binning.

[http://davidfischer.github.io/gdc2/](http://davidfischer.github.io/gdc2/)

</comment><comment><USER31> Seems curious to me that (at least by visual comparison) London looks to be about 30% larger than NYC, and NYC appears to be about the same as Paris. By population, you'd expect NYC = London > Paris. Is NYC really still that far behind in its tech scene? Does Paris have that large a tech scene? Or am I just reading the chart poorly?

</comment><comment><USER32> It's not showing my data from Antarctica.

<comment><USER5> It only shows the 1000 most common locations. Sorry!

</comment></comment><comment><USER33> The real story this map tells is about the Digital Divide between the First World and Third World.

</comment><comment><USER34> The usual problem with this kind of visualization is that, as you add more data, you get what is basically just a population density map.

What would be interesting is to see where there are more Github users than you would expect by pure density of internet users.

<comment><USER35> This is not the case. Examples: NYC vs SF and Madrid vs Berlin. Well, Madrid is bigger and more dense than most of the cities with more github users in this map.

</comment></comment><comment><USER36> Great visualization, but it really needs labels or some other means of figuring out what city the columns are referring to.

What is the third large spike on the East Coast? I assume the two more Northern spikes are Boston and New York.

<comment><USER37> Washington, DC

</comment></comment><comment><USER38> Lane, I don't know if you remember me, but I saw your name and instantly thought "Of course Lane would build something this cool."

 _AWESOME_ job with this, it's both fascinating and well laid out!

<comment><USER5> Thanks Leland!

</comment></comment><comment><USER39> More visualizations of the same type can be found here:

[http://www.chromeexperiments.com/globe](http://www.chromeexperiments.com/globe) (some interesting ones) :)

</comment><comment><USER26> Very awesome visualization work! Though it shows bars in the middle of nowhere (see France, UK...China too maybe), probably users that haven't mentioned any city.

</comment><comment><USER40> Low quality texture map with seams and bad filtering at the poles. Big perceptible delay on camera movements. WebGL doesn't make a subpar gfx demo cool.

</comment><comment><USER41> This is neat. Would it be possible to add boundary lines? It's difficult to determine where Louisville Kentucky is without them.

</comment><comment><USER42> As with all similar such counts, it would be nice to be able to see them normalized against the size of the local population.

</comment><comment><USER43> This might be the most beautiful visualization I've ever seen ... well done.

</comment><comment><USER44> For some reason the rotation animation and control is incredibly satisfying.

</comment><comment><USER45> Nice! Would be cool to have a tooltip over the lines to show the location.

</comment><comment><USER46> Cool stuff. That's some gnarly JPEG around the coasts, though.

</comment><comment><USER47> Makes me want to commit some code in antarctica...

</comment><comment><USER48> I guess, London is the tech centre of Europe.

</comment><comment><USER49> Antartica you are disappoint :*(

</comment><comment><USER50> Very awesome and interesting.</comment>


Nintendo Switch Emulator Alpha Is Live - <AUTHOR> http://www.switchemu.org/updates/2017/03/03/switch-emulator-is-live/ <comment><USER2> * Download requires you to sell your soul.

* No comments/documentation about the hardware or the challenges the author has gone through.

* Github repository has just CHANGELOG.md and README.md.

* Some how the author managed to get a popular game running flawlessly in a short time.

It looks more like another emulation scam than an actual product, but it could be one of those projects the author is just dreaming about making an emulator. Is that you, vgturtle?

</comment><comment><USER3> The GitHub link 404s. Could it have been DMCA'd?

<comment><USER4> Looks like the link on the website might be wrong. I opened an issue on what I think is the correct repository: [https://github.com/switchemulator/switchemulator](https://github.com/switchemulator/switchemulator)

</comment></comment><comment><USER5> Is this open source? Why does the download require some "offer" completion to unlock the download link?</comment>


Show HN: Hubski: part blog, part news-aggregator, part social-feed. - <AUTHOR>

Hubski is designed around the concept of sharing topically-broad, thoughtful discussion. In functionality, Hubski is part news-aggregator, part blogging-platform and part social-feed.
Up front, Hubski looks and works most like a news aggregator, like HN. Hubski enables you to tag each post with a hashtag, and to follow tags and other users. Doing so builds your own personalized 'hubfeed' composed of the kind of content you like.
To make sharing less dependent on the frontpage and voting, users can 'hub' a post they like, which sends it to the hubfeeds of their followers. This works like retweeting in Twitter, as posts can spread between people that want to share content.
Furthermore, to foster the submission of content rich posts, text can be posted with links, links are active in the text, and urls of images and videos are embedded. Your submissions to Hubski constitute your 'hub', which is similar in format to a blog. I now use my hub as a blog actually: http://hubski.com/hub?id=mk
The Karma system for Hubski is currency-based. Karma is spent on votes and converted into Clout which cannot be spent. A small amount of Karma is granted each day that you interact on the site. The more Clout and Followers you have, the more Karma that is granted to you. A 5-point (+ to +++++) grading system allows users to see the general value of a post or comment, but only owners of posts can see the actual score.
Hubski has been up for a couple of months, and we have a small but energetic group which is having a good time of it.
Although Hubski is just getting underway, current use has given me some direction for future development. I am working on the inter-user connections at the moment. It's my goal to increase the ability to share and find good conversation with people you appreciate, while making it easy to keep noise to a minimum. My pal calls Hubski "The thinking-man's Twitter". -IMHO, that's the highest compliment it's been paid.
Please have a look for yourself. And feedback would be greatly appreciated. Thanks in advance!
BTW, I have been programming for about 6 months now. I decided I wanted to build my own apps, and started with Hubski. Yes, it's built in Arc on top of the HN source code. I submitted it to HN about 6 weeks ago, but it really wasn't ready for prime time, and I have done quite a bit of work on it since then.
http://hubski.com <comment><USER2> Pretty neat site. I think it should allow user to login using Google/Twitter/Facebook account. It would increase registrations.

Btw, I have been working for over a year on the site for programmers with similar idea: <http://tagmask.com>

<comment><AUTHOR> Thanks for the suggestion. You are probably right. I see tagmask uses them. Have you noticed an effect? Community sites are always plagued by the chicken/egg problem, so removing any friction is probably worth the effort.

In the case of Hubski, a lot of the functionality comes as a result of using the site, and I think I can do better translating that to non-users. I see tagmask has a video. That's probably a good idea too.

<comment><USER2> An effect is worth it. For now, ~52% of users on Tagmask are registered through third-party accounts (most of them use Google account).

<comment><AUTHOR> That's quite a bit. I guess even a google account would be a big boost. Thanks for the info.

</comment></comment></comment></comment><comment><USER3> I worry that your karma->clout->followers->karma cycle may be gameable, or create "superusers" a la digg.

<comment><AUTHOR> Maybe. I haven't seen any evidence as of yet, but it is early. Also, the effect of followers/clout upon karma is pretty conservative. Another way around that is that eventually, I expect that people will be as interested or more interested in their hubfeed, rather than the front page. If it gets busy enough, I might exchange the two as the logged in home page.

Do you have any ideas why it might get gamed in particular?

(BTW, did this story get frozen at 5 votes? It got there quick and then died. :/) EDIT: I guess not. 6! :)

</comment></comment><comment><USER4> I've been using hubski for a few weeks. It is a place of intelligent discussion that opens my mind up to new things.

<comment><AUTHOR> Thanks dagski. It's appreciated.</comment></comment>


Book Review: C# 5.0 In A Nutshell - <AUTHOR> http://www.coderslexicon.com/book-review-csharp-5-0-in-a-nutshell/

<comment><USER2> That is probably the worst book "review" I have ever read: "Every page uses up almost the entire page and contains charts, tables and text in generous amounts."

W.T.F.!

Completely and utterly worthless.</comment>


Show HN: my collaborative drawing webapp - <AUTHOR> http://awwapp.com/ <comment><AUTHOR> A small HTML canvas drawing app (and embeddable widget) I did so I could use my (non-iPad) tablet for drawing quick sketches. A few people suggested I add collaboration, which was a nice excuse to play with node.js :)

Tech used: node.js/nowjs for synchronising the drawings, jquery/canvas for the frontend, flask for saving/posting the images.

<comment><USER2> The syncing doesn't work for me when I open 2 browsers and share it to myself..? Does it just share the initial state (which worked great) or also updates?

<comment><AUTHOR> It should share the updates too. If it doesn't work for you, could you please let me know which browsers you use (here, tweet to @awwapp or mail me)? Thanks!

</comment></comment></comment><comment><USER3> We did something similar for Django Dash a couple weeks ago: <http://drawnby.jupo.org/>

Knocked up in 48 hours with Django, WebSockets and Redis

All open source: <https://github.com/stephenmcd/drawnby>

Released django-socketio a week later born out of that project: <https://github.com/stephenmcd/django-socketio>

<comment><USER4> I was going to try it, but, honest feedback, the fact that I have to login before even giving it a go is a real no-go. Why don't you let me try before signing in?

<comment><USER3> Fair point and something we considered - we wanted to always have a valid account when drawing so that users could be identified when collaborating together, and with only 48 hours to get everything working the quickest way was to slap on Twitter/Facebook authentication.

</comment></comment></comment><comment><USER5> Clickable link to a work in progress: <http://awwapp.com/draw.html#ScK6YsOrwp>

<comment><AUTHOR> Sorry, the process consumed all the memory and got killed :( Wasn't expecting so much activity on a single board :) Was fun to watch!

<comment><USER5> Yes, it was a fun five-minutes-community. (The first penis showed up 30 seconds later...)

<comment><USER6> The mass erasure of 3:30 still haunts us all.

</comment></comment></comment></comment><comment><AUTHOR> Btw I've also added it to Chrome Web Store, so it can be added to Chrome as an app: [https://chrome.google.com/webstore/detail/mhmonflnoepbijmbbf...](https://chrome.google.com/webstore/detail/mhmonflnoepbijmbbfipoifgkbibofgd) (nothing fancy, just goes to the website)

</comment><comment><USER7> _Great_ job. You should add a 'submit to Reddit' button, too!

<comment><AUTHOR> Thanks! Yeah, perhaps a row of those "submit to your favorite site/forum" social buttons.

</comment></comment><comment><USER8> This looks awesome. This reminds me a little bit like the facebook application I use to play with before. <http://www.facebook.com/graffitiwall>

Except this one is more real time, but I would love a replay feature to show what people have been drawing before me.

</comment><comment><USER9> Every time I try to load a shared link I keep getting a "Cannot Join Shared Drawing" popup error

<comment><AUTHOR> Sorry about that! Either the drawing is shared no more (eg the one linked in these comments - if that's the case, you'll always get the error trying to go to that drawing), or you've found a bug. In the latter case case, could you please tell me your browser/os combo? here, in a tweet to @awwapp or in the mail (listed in my HN profile page). Thanks!

<comment><USER9> Ok, I think that must have been the issue. The drawing must be open on the browser window of the person who shares the drawing.

</comment></comment></comment><comment><USER10> Awesome work. I wanted to let you know that the erase function is not working on Firefox 3.6.19 Mac. I share the image with a Safari browser and the image there is erased when I erase in FF window but the erasure doesn't show up in the FF window I erased in.

<comment><AUTHOR> Thanks for the report, I'll look into it.

</comment></comment><comment><USER11> The English copy on the home page needs a slight, but important once-over. "A Web Whiteboard is touch-friendly whiteboard app..." should be written: "Web Whiteboard is _a_ touch-friendly whiteboard app..."

<comment><AUTHOR> Thanks for catching it! Yeah, not a native speaker, will ask someone to go through it (the wording on the "add to your site" could probably be improved as well)

</comment></comment><comment><USER12> It would be very helpful if you put a Clear button somewhere more accesible, but hard to click by mistake, such as in the lower left. Also, don't ask me if I want to clearn the page.

</comment><comment><USER13> Absolutely fun app. tried on iPad2, Chrome13 on Mac, Safari 5.1 on Mac. If you draw fast then the curves become more like straight lines, I am sure you are improving that...

<comment><AUTHOR> Thanks! Yeah, the app draws a line between the points. This isn't noticable if you're drawing slower (or if the device is fast enough), but if you're driving faster than it can be processed, the lines do show. I'll try to see how to improve on that, the plan is for the app to be useful on Android phones and iPhones as well.

<comment><USER14> Even in Photoshop, if you draw a very quick curve, you can see individual vertices along it. But Photoshop seems to quickly interpolate curves instead of straight lines, so you get a rough approximation of the curve you're drawing between the vertices. It's pretty good for hiding how it works.

Very nice app, by the way.

</comment></comment></comment><comment><USER15> Fantastic! I think it's a great idea.

I think you're missing a couple of basic tools:

\- Tex

\- Basic shapes

Edit: Removed eraser from list. Noticed there was one.

<comment><AUTHOR> Thanks!

I wanted to stick to the whiteboarding/sketching basics - you get a pen and an eraser. Perhaps it makes sense to add a few more tools, but I'm wary of adding too much, because I want it to be useable on really small screens, without keyboard, and with touch input, as opposed to only mouse.

For a sophisticated HTML drawing app (albeit not collaborative one, and not very usable without a pointing device), take look at the awesome DeviantArt Muro app (<http://muro.deviantart.com/>).

</comment></comment><comment><USER16> I like it but maybe add an undo button?

</comment><comment><USER17> Great work , works perfectly in chrome

</comment><comment><USER18> What's it written in ?

</comment><comment><USER19> Great stuff!

</comment><comment><USER20> Great work!</comment>


Yahoo Embraces The Semantic Web - Expect The Internet To Organize Itself In A Hurry - <AUTHOR> http://www.techcrunch.com/2008/03/13/yahoo-embraces-the-semantic-web-expect-the-web-to-organize-itself-in-a-hurry/ <comment><USER2> I thought the second half of this title was meant as a joke, but apparently he's serious.

<comment><USER3> Well, there is a pretty big incentive. Who wouldn't want their SERP real estate to have more attractive, more valuable information? Seems like a new kind of SEO opportunity for companies and freelance developers.

<comment><USER4> I wonder how long until we start seeing the $49.99 ebook.

</comment></comment></comment><comment><USER5> Oh boy, people will be producing shitty microformat-riddled markup instead of plain old markup.

Like remember how after web standards became a hot topic, no one produced websites that only worked in Internet Explorer anymore? That was awesome.

</comment><comment><USER6> The semantic web is going to require a heap of structured data where there isn't any right now.

That level of effort needs to be grassroots, but I don't see how it is going to be motivated.

<comment><USER7> That's the whole point of the article, isn't it? SEO will be the motivation.

<comment><USER8> Great, so the semantic web is going to work as well as <meta name="keywords">?

</comment></comment></comment><comment><USER9> Yahoo has really been impressing me in the last couple weeks. First the Open Search Platform and now this. I guess all it takes is the threat of a hostile takeover to get your productivity going.

I really hope they can stave off Microsoft, because I don't see the big M$ attempting to innovate like this if they took control.

<comment><USER10> Here's my theory:

Standardization and openness do not benefit the dominant player (or players, in close competition) in a market.

Standardization and openness tend to benefit all players that are not dominant in a market, by comoditizing the market and forcing value based competition.

If the majority of a market is locked up by the dominant player(s), standardization tends to not happen.

If the majority of the market is not locked up by the dominant player(s), things tends towards standardization.

As it pertains to Yahoo they're still an internet powerhouse, but their markets are eroding at a pace that they are probably falling out of the dominant category into the leader-of-the-non-dominant-pack category. Yahoo does some stuff very well, and I suspect commoditization of parts of web-space would be in their favor. The question is if they'll be able to push hard enough fast enough to make some of this stuff catch on while people still care.

<comment><USER11> Now, if the dominant player in a market was "foolish" enough to joyfully embrace standards even if their competitors weren't adopting standards very quickly, would they necessarily lose their "edge" over competitors, considerations of benefitting the market as a whole aside?

<comment><USER10> Well, one classic example: IBM and the PC market (where standardization helped) vs. Apple and the Mac clones (where standardization almost wiped Apple out).

Here's some more theorizing: I think it would depend on how saturated the market was. If standardization would cause the market to grow such that a smaller percentage of a bigger market was larger than a large percentage of a small market, the company could still benefit from standardization, but they'd also have to diversify in that time so that when saturation approached that they wouldn't get stuck in a commodity market while their competitors could catch up.

</comment></comment></comment></comment><comment><USER12> W3C's Semantic Web FAQ: <http://www.w3.org/RDF/FAQ>

</comment><comment><USER13> The Semantic Web isn't complete until it's machine readable by an AI

<comment><USER14> It _is_ machine-readable by an AI. The question is, where's the AI? ;)

<comment><USER13> What do you think of Cyc?

<http://www.cyc.com/>

Argh. 8week cut me off.

Bad grammar today. Meant to say 'isn't complete until an AI reads the semantic web' Time to go back to testing.

<comment><USER15> They've been working on Cyc for about 20 years or more. If it were a worthwhile direction to take AI in, it would have yielded results by now.

<comment><USER14> I hear you, but I'd be hard pressed to say that making all common sense knowledge machine readable is not a worthwhile direction.

<comment><USER5> I'd be happy to make such a claim, and many people much smarter than I am would as well.

Common sense reasoning is a dead end IMO.

</comment></comment></comment></comment></comment></comment><comment><USER14> This is great news for the Web. Very bad news for Twine though.

</comment><comment><USER16> I often wonder whether the semantic web is really Web 3.0. Shouldn't it be more like Web 2.5?

(Or maybe we should drop the revision numbers altogether?)

Seriously, I wonder if we shouldn't be thinking bigger. Adding "meaning" to web pages is important, but it seems like a smaller goal on the way to, I dunno, maybe the realization of The Metaverse (ala Stephenson). Or something big like that.

<comment><USER17> Until all the AJAX-y stuff got labelled, "Web 2.0" _was_ the Semantic Web. I can recall much of that usage around 2003/4 or so.</comment></comment>


People Can Be Convinced They Committed a Crime That Never Happened - <AUTHOR> http://www.psychologicalscience.org/index.php/news/releases/people-can-be-convinced-they-committed-a-crime-they-dont-remember.html <comment><USER2> There is a bagel place near where I grew up that had a strange link to a double homicide. Basically one partner owed another partner half a million dollars and the owed partner, along with his wife, wound up dead. The other partner faked his death and fled to California. The police arrested the murdered couple's son and convinced him that he killed his own parents, threw him in jail and locked away the key. It was 17 years before he would be let free of crimes virtually everyone in the community knew he did not commit.

[1][http://murderpedia.org/male.T/t/tankleff- martin.htm](http://murderpedia.org/male.T/t/tankleff-martin.htm) [2][http://www.nytimes.com/2008/07/01/nyregion/01tankleff.html?g...](http://www.nytimes.com/2008/07/01/nyregion/01tankleff.html?gwh=1940B18B67DFECF05D75D975E34A9FB6&gwt=pay&_r=0)

<comment><USER3> He's extremely lucky in that he didn't get sentenced to death. What an incredibly ugly story.

</comment></comment><comment><USER4> There was a great article in the New Yorker about police interrogation techniques and how they can influence people to confess to crimes (and the studies that explain why people would falsely confess).

[1][http://www.newyorker.com/magazine/2013/12/09/the- interview-7](http://www.newyorker.com/magazine/2013/12/09/the-interview-7)

<comment><USER5> This is probably the most important point I remember from "The Demon-Haunted World", in which Carl Sagan repeatedly demonstrates that human memory is completely unreliable, and that false memories can even be accidentally created by a therapist. People who say they've been abducted by aliens usually aren't lying; they genuinely believe it.

<comment><USER6> The book Mistakes Were Made (But Not by Me) by Tavris and Aronson delves into this in great detail. Well worth a read.

</comment></comment></comment><comment><USER7> Is convincing people they committed a crime really ethical? My self-image as a pretty peaceable, pretty honest person is fairly important to me: if I suddenly "remembered" a time when I stole from or attacked someone (with a weapon, no less) I'd be certainly upset, possibly traumatised.

Can anyone really give meaningful consent for an exercise like this? They paid the participants $50, but presumably they couldn't tell them exactly what was going on, or it wouldn't have worked.

<comment><USER8> Well, if the research can prove and point out to the general public that this kind of false memory already widely affects serious matters such as criminal investigation it is probably okay.

<comment><USER9> What if we could cure cancer and heart disease by physically debilitating a few dozen people? Would that also be okay?

<comment><USER10> Of course. Debilitating a few dozen people is nothing compared to the harm caused by cancer and heart disease, and if we had a choice between the two it would be wrong to pick the greater evil.

Is the premise of the question that choosing inaction adverts culpability, in a situation where either outcome is abhorrent? But inaction has only the appearance of innocence: if you really have the choice of which outcome will occur, you cannot absolve yourself of responsibility by going with a default. The fact that the greater evil is the status quo doesn't make it a more ethical choice.

<comment> k-mcgrady >> "Of course. Debilitating a few dozen people is nothing compared to the harm caused by cancer and heart disease, and if we had a choice between the two it would be wrong to pick the greater evil."

You say that like it's fact but it's your opinion based on your ethics. There's also information we don't know. Are these people volunteering or being selected against their will? Either way it would also be fine to argue that the rights of those people are so important that society can't debilitate them even if it solves cancer and heart disease. Everybody has to die of something so why ruin these peoples lives when the people saved by not getting heart disease/cancer die from something else anyway?

<comment><USER11> From the standpoint of maximising human survival it is the right call

</comment></comment></comment></comment></comment></comment><comment><USER12> One more reason to not talk to the police... Relevant explanation by an expert: [https://www.youtube.com/watch?v=6wXkI4t7nuc](https://www.youtube.com/watch?v=6wXkI4t7nuc)

<comment><USER13> The first time I watched that video I got disturbed of how easy you can get in trouble. I asked a lawyer friend and he told me the stories you see in the news are more common than people think.

</comment></comment><comment><USER14> We played a trick on my friend Jerry that I worked with in the military. The previous night we had a few drinks and then called it a night and walked home together.

Jerry, in the morning mentioned to someone that his shoulder really hurt, but he couldn't remember hurting it.

We came up with a plan that morning to convince Jerry that he had been sideswiped by a taxi, and got into a fight with a taxi driver. We emailed everyone we were with the night before, explained to them what we were doing, and started planting that idea in Jerry's mind.

At first he claimed that it never happened. He kept saying he knew we were just fucking with him.

More and more people corroborated the story. We even had a military police officer call him on the phone to inquire about the incident. We got his boss to sit him down and have a talk with him about his problem with alcohol (he doesn't drink that much).

Eventually as the story was repeated to him by everyone, especially people with authority, Jerry went from:

"this never happened.. I only had two beer last night" to: "hmm... maybe I was really drunk after all... but I don't remember anything" to: "Yeah... I remember everything now! How could I have forgotten before? Crazy!?!?"

He turned our story into real memories and even started adding his own details to the story. We thought that was hilarious.

That night we all got together and told Jerry that it was all just a joke. He couldn't believe it. He argued with us that he was sure it did happen. He remembered it. When he finally accepted it he felt really dumb, but it was a really fun day at work for us, so definitely worth it.

<comment><USER15> > ... he felt really dumb, but it was a really fun day at work for us, so > definitely worth it.

Congratulations!!! Probably every convicted rapist though something equivalent at some point, so you are in good company to be sure.

<comment><USER14> Reaching a bit?

<comment><USER15> Guilty as charged.

It's still a bit jerky to do that to someone you call "a friend".

</comment></comment></comment></comment><comment><USER16> This happens conversely as well, where the person would remember a rosy version of events in which they themselves acted quite badly in actuality. Just because a person believes they did not do something bad doesn't mean they didn't. It has led me to automatically put into doubt stories people tell me that I did not witness myself.

<comment><USER11> But how can you trust your own witness when you are also a person and just as susceptible as anyone else?

</comment></comment><comment><USER17> If false memories can be planted in those who are accused, it can be done to witnesses too, so that they swear that the shriveled nonagenarian in the courtroom is the same person as the guard in that Nazi camp more than sixty years ago.

</comment><comment><USER18> Reminds me of the excellent movie Under Suspicion

[http://en.m.wikipedia.org/wiki/Under_Suspicion_(2000_film)](http://en.m.wikipedia.org/wiki/Under_Suspicion_\(2000_film\))

</comment><comment><USER19> This is the most Kafkian thing I've read all day.

<comment><USER20> It's one of the things that seems extremely weird if you consider humans to be what they say they are ... and dead normal if you realize what humans actually are.

How memory works, according to humanity : we store all data input in our mind, where it stays. Every now and again some data disappears or is overwritten.

5 seconds of thinking about how a mind looks and what it does will leave you with 100 very hard questions about how you could possibly make that happen in a neural network.

How memory works, the real version : you "learn" memory. When a person is presented with a pointer to a specific point in time or a specific event, his mind then reconstructs the memory by repeatedly asking the question "what happened next ?". All the data produced comes from the predictor, not from actual memory.

So what is actually stored in your memory ? Well useful things. Not an index of dates combined with what happened. But "I start my day, then wash my teeth, then make a piece of toast, then ..."

"What did you do yesterday ?"

("conversation" in someone's mind starts happening :

"well obviously I woke up. Then what ? I washed my teeth. Ok, then what ?

 __interrogator interrupts __You ate a biscuit __your mind __

Ok that sounds reasonable, and I 'm not all that sure at all. He may be right. I'll go with it)

Memory changed. Next time you remember it will be a lot easier to go with the changed memory.

When you remember something, the memory is not "recalled" like on a computer, but recreated from scratch. You start with a specific event (that itself may or may not have happened, but it must be quite normal for it to happen so the predictor doesn't see it as too unlikely). Because external persons can both contribute and interfere with the recreation process it can be used to change memories (your mind doesn't separate multiple inputs, so if a person is talking when you're recalling, it influences the recall process). You want your memory to be accurate, spend a while with extremely limited inputs first.

Because of how the predictor works, it "synchronizes" with other people's predictors (nothing magical, it simply predicts what the other person's mind is doing and takes that into account). But that results in that if you have extreme uncertainty about an event and the person you're talking to feels very strongly about it, your mind will be quite likely to follow the other person's convictions.

Keep doing this, and you can convince someone they're a monster (note: requires that the interrogator believes that to be true, builds trust and avoids firing the "bullshit detector" and even then large changes require quite a bit of time)

There are a few more of these things that are quite normal, given that our minds copy others' behaviors, but people find extremely hard to believe. The one I have refused to believe for the longest time was that people who get abused, whether by a military, simply be economic situation, or even when kidnapped, initially want to get out. But if the situation persists, the no longer want the abuse to stop. They want to become the abuser (because that person is the person their mind most often gives attention to). For a behavior copy "machine", this is expected and normal. In psychology this simple fact has been known for centuries. Many other counterintuitive facts become easy to explain (e.g. why commercials work).

<comment><USER19> This is the most enlightening thing I've read thsi year, thank you!

</comment></comment></comment><comment><USER21> "The fact that the students appeared to internalize the false events to the extent that they did highlights the fundamental malleability of memory"

Is it true that the memories themselves are false or is it the remembering process that is influenced to produce false beliefs about what happened?

<comment><USER22> Consider the anomaly of Deja Vu.

Did this moment actually happen previously and your remembering it again, or is a chemical reaction in your brain tricking you into thinking you've had this thought before?

<comment><USER3> Deja-Vu is actually something else, it's a phenomenon that is apparently triggered by the different lengths of travel that information can take through the brain, causing the same information to be presented twice, once directly from the source and once indirectly.

<comment><USER23> Any chance of a reference for that? I'm in the middle of adapting a story about this and haven't heard this idea before, I'd love to learn more about it.

<comment><USER3> Let me look that up, it's been a while.

One moment.

Edit: ok, found it:

[http://science.howstuffworks.com/science-vs-myth/deja- vu4.ht...](http://science.howstuffworks.com/science-vs-myth/deja-vu4.htm)

"Another theory is based on the way our brain processes new information and how it stores long- and short-term memories. Robert Efron tested an idea at the Veterans Hospital in Boston in 1963 that stands as a valid theory today. He proposed that a delayed neurological response causes déjà vu. Because information enters the processing centers of the brain via more than one path, it is possible that occasionally that blending of information might not synchronize correctly.

Efron found that the temporal lobe of the brain's left hemisphere is responsible for sorting incoming information. He also found that the temporal lobe receives this incoming information twice with a slight (milliseconds- long) delay between transmissions -- once directly and once again after its detour through the right hemisphere of the brain. If that second transmission is delayed slightly longer, then the brain might put the wrong timestamp on that bit of information and register it as a previous memory because it had already been processed. That could explain the sudden sense of familiarity."

The article contains a lot of other theories about the origin of Deja-Vu as well but that one seems to have stood the test of time very well.

<comment><USER24> If you read it from another source and remember anything else about deja vu, don't suppose you recall anything about this: I don't think I've experienced a pure deja vu since I was a child (so 10-15 years), but since then I do get - not frequently, but every now and then - what I call "double deja vu"s, i.e. instead of thinking I've seen/whatever something before, I think I've had deja vu of something before. So it feels like this is the 3rd time, not the 2nd.

Never found any information on or even many other people reporting this though.

<comment><USER3> There is a strong correlation between people experiencing frequent deja-vu and epilepsy. The reason I remembered all this is that a friends child was diagnosed with epilepsy a while ago and I read everything I could on the subject and one of the offshoots of all that reading was a bunch of stuff about deja-vu.

Maybe that would be a good starting subject for some 'light reading'.

<comment><USER24> Thanks, as far as I'm aware I don't have epilepsy but my brain definitely has some other odd wiring.. Will look into epilepsy more anyway :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> Oh it can be sumup in a single word, _Politics_

</comment><comment><USER26> Makes me wonder if this might be put to more productive use. Like, convincing people that they don't habitually talk during movies thus making them stop?

<comment><USER27> Maybe we could convince people that they are 'good drivers.'

<comment><USER28> Most bad drivers I know _are_ convinced they are 'good drivers'...

<comment><USER29> Right, the problem is self-awareness. You'd want to convince bad drivers that they are bad, hoping this makes them try to improve.

</comment></comment></comment></comment><comment><USER30> Memory and imagination are linked, and they can be confused, but they are not the same and can be distinguished by a trained mind.

<comment><USER7> What sort of training? What's the evidence it works? Do you have a link, or can you provide more details?

</comment></comment><comment><USER31> And those people are called white-guilt liberals.

</comment><comment><USER32> I'm going to send a link to this article to the MPAA, RIAA and my ISP the next time the claim I was downloading/sharing something illegally.

</comment><comment><USER33> I don't understand. Didn't we know this already?

[http://www.ncbi.nlm.nih.gov/pubmed/23196385](http://www.ncbi.nlm.nih.gov/pubmed/23196385)

Even further back from that, there have been studies where researches can do this with children very easily.

<comment><USER34> I don't understand what point you're trying to make. Is further research not needed? Is there any reason not to continue to raise the level of awareness by the general public to this phenomenon?</comment></comment>


Open-Sourcing My Gambit Scheme iOS Game from 2010 - <AUTHOR> http://jlongster.com/Open-Sourcing-My-Gambit-Scheme-iOS-Game-from-2010

<comment><USER2> Thanks so much! I was really stoked by yesterday's related post (and your discussion in the comments). I also find it really interesting to see Scheme used in production; I sort of marginalized it (unfairly to myself, I'm sure) after college as being a good toy Lisp for things like demonstrations in SICP.

<comment><USER3> I sometimes wish there was a language inbetween scheme and common lisp that actually caught on. They're both powerful languages, but to me the little scheme I've done makes me feel like I'm just reinventing common lisp as I go along, and sometimes common lisp leaves me wanting for something a bit "smaller" that doesn't take up 30mb of memory just to open the REPL. This especially holds true in the mobile world.

<comment><USER4> Not sure what you mean by between Scheme and CL, but if there's one Lisp that'll catch on to today's practical needs, it's probably Clojure (and ClojureScript).

<comment><USER3> What I meant by inbetween is something exactly like CL with a smaller footprint and possibly a smaller library. I believe CL more than covers today's practical needs (real threading, compiling to machine code, calling out to C, etc etc). I might choose Clojure if I was writing something highly concurrent that required a more functional approach, but for any other general purpose app I'll take CL any day. (Disclosure: I've never actually built anything in Clojure).

</comment></comment></comment></comment><comment><USER5> This is really great! I loved the live coding demo with the sine wave animation. You've inspired me to do some more hacking on my pet project. I am developing a 2D game engine in GNU Guile Scheme and it shares many features with what you've developed:

\- A "cooperative" REPL server that plays nice with the running event loop

\- An Emacs development environment with Geiser providing the remote REPL integration

\- Cooperative multitasking using coroutines and a scheduler

\- OpenGL renderer

\- Functional reactive programming

<comment><USER6> I ported Box2D-lite to R6RS Scheme a few years ago:

[https://github.com/dharmatech/box2d-lite](https://github.com/dharmatech/box2d-lite)

If you decide to add a physics engine to your project, that might give you a head start, or at least some ideas. :-)

<comment><USER5> Thanks! This could be very useful!

</comment></comment></comment><comment><USER7> On an irrelevant note, I started research on "that thing people are talking about", scheme/gambit. Given the quote from scheme-faq-general:

>> Scheme is often used in computer science curricula and programming language research, due to its ability to represent many programming abstractions with its simple primitives. [..] There are few known uses of Scheme in "real-world" systems.

What's the motivation to start using it in production code? Besides smart people around you talking about it/using did you find that you benefited from the switch from C++ to Scheme?

</comment><comment><USER8> Awesome! This is some of the coolest stuff I've seen on HN in awhile. Thanks for posting this writeup and making your code open-source.

<comment><USER9> Couldn't have said it better. Thanks for sharing your experience!</comment></comment>


Tischen: Ridding the world of unemployment. - <AUTHOR> http://www.tischen.com/

<comment><USER2> That's not how unemployment works. Good luck to them anyway.

<http://en.wikipedia.org/wiki/Efficiency_wages>

<http://en.wikipedia.org/wiki/Effective_demand></comment>


Steve Jobs at Next documentary - Old but very interesting - <AUTHOR> http://www.youtube.com/watch?v=rdPxKDJzt7Q&eurl= <comment><USER2> Nice. The voiceover sounds like it's from a 1950s science video, and the dude at 0:56 looks like Napoleon Dynamite. When you get past the superficial stuff, there's a lot of insight here too. It's really interesting to see how Jobs managed his people back then.

"I don't want to hear 'just because we blew it last time, we're going to blow it this time.'" Smart stuff.

</comment><comment><USER3> He doesn't seem all that bad, not like his reputation. Not sure why they needed that many people in a room for two days, but maybe it made sense.

That was a cool machine though. We had a lab of them in college.

</comment><comment><AUTHOR> Yeah it's an interesting glimpse into how he rules his companies. With some funny 80s style thrown in to spice it up ;)

</comment><comment><USER4> Interesting how much a startup was like a big company that far back. Two whole days of meetings? Ugh.

</comment><comment><USER5> jobs also looks like isaac brock from modest mouse, for better or worse</comment>


Implement an emulator for a fantasy CPU in JavaScript - <AUTHOR> https://dev.to/codeguppy/implement-an-emulator-for-a-fantasy-cpu-in-javascript-3617 <comment><USER2> Many years ago when I was bored I «designed» a fantasy CPU with 6 (six) bits and only one usable register, the accumulator. I thought why not. The result:

18 bit address bus

12 bit stack pointer

6 flags zero, negative, carry, overflow, float and user

7 addressing modes accumulator, immediate, absolute, relative, stack, stack without pop, stack special

64 opcodes like NOP, OR, JMP, ROL, STO, ...

I discovered that it is well possible to have a 6 bit CPU but of course this is just a game and probably not useful at all. I wonder whether I would be able to create the circuit for the CPU in a simulator. Probably not even if I omit the floating point handling or only if I dedicated about 10 years of free time. I would need to design a microcode or PLA (like MOS 6502, see [https://news.ycombinator.com/item?id=5353198](https://news.ycombinator.com/item?id=5353198)) system.

I find it amusing that this is the one CPU where octal base is really the primary way to display numbers.

<comment><USER3> You'd be surprised, it may not take quite that long. With something like Chisel you can create that idea with little friction. Plus, it's "just" Scala so if you already know that it's a lot easier than, say, learning Verilog which has a very different syntax.

</comment></comment><comment><USER4> If you're looking for a good next step I recommend CHIP-8.

<comment><USER5> And if you've written a CHIP-8 interpreter, I recommend playing around with Octo[0] and then participating in the Octojam[1] this October!

[0] [https://github.com/JohnEarnest/Octo](https://github.com/JohnEarnest/Octo)

[1] [http://octojam.com](http://octojam.com)

<comment><USER6> Tangent but much larger audience is the original GB game jam coming up next week.

[https://itch.io/jam/gbjam-8](https://itch.io/jam/gbjam-8)

<comment><USER5> The GBJam isn't about making software that runs on a legacy platform; you're using modern game engines, languages, and techniques while imitating the _aesthetic_ limitations of the original Game Boy. (And pretty loosely, at that.)

It's a very different style of creative constraint compared to programming a specific virtual machine with limited RAM and not a multiplier or floating- point unit in sight.

<comment><USER6> Gotcha, I assumed that it was programming against the original exactly. But I guess the emulators they allow are more flexible/modern takes on the original.

</comment></comment></comment></comment></comment><comment><USER7> Nice article! I would definitely recommend for everyone to write a CPU emulator at least once. It will give you a lot of perspective on how computers really work. As someone else pointed out CHIP-8[0] is a good one that's not too complicated.

If you want something more "real", MIPS and RISC-V are also not too hard, if you just do a subset of the instruction set and not the whole thing. You can skip most of the instructions that deal in bytes and half-words. It's also easier to implement main memory as being word-addressable only (but this can introduce incompatibilities with real assembler programs).

I wrote a cycle-accurate, pipeline simulator for MIPS for a course, which totaled only about 1200 SLOC. If you didn't need to simulate all the pipeline registers (you probably don't) and use a higher level language, this is probably a <750SLOC project.

0 - [https://en.wikipedia.org/wiki/CHIP-8](https://en.wikipedia.org/wiki/CHIP-8)

<comment><USER8> Do you have any suggested resources for learning to implement a CPU emulator, such as for RISC-V?

<comment><USER9> I'm not the person you asked, but I made an educational simulator for RISC-V [0].

The most critical resource even if it is not super convenient is the official RISC-V specification [1] (this is the latest draft as of writing this comment).

There are a bunch of open source simulators [2] to look at for reference if you are unsure of how something is suppose to work. I would recommend compiling a C program to RISC-V and looking at disassembled machine code to get an idea for how things are normally done in terms of RISC-V assembly.

There isn't any particularly nice documentation that I am aware of, but enough universities teach using it that there should be some resources that would be helpful for making a simulator. I can probably come up with some links if you are serious about making a simulator, but its a little too much effort to do for a drive-by comment.

[0]: [https://github.com/TheThirdOne/rars](https://github.com/TheThirdOne/rars)

[1]: [https://github.com/riscv/riscv-isa- manual/releases/download/...](https://github.com/riscv/riscv-isa- manual/releases/download/draft-20200727-8088ba4/riscv-spec.pdf)

[2]: [https://github.com/riscv/riscv-software- list#simulators](https://github.com/riscv/riscv-software-list#simulators)

<comment><USER7> Hey, thanks for making RARS! I am TA-ing a class this semester where we are using RARS. It's my university's "build a CPU with Verilog class", and we just switched to RISC-V. We previously used MIPS with MARS, and lacking a MARS alternative was one of our blockers for switching to RISC-V.

</comment></comment></comment></comment><comment><USER10> Low level javascript [1] has a great set of videos on this and other topics

[1] [https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCR...](https://www.youtube.com/playlist?list=PLP29wDx6QmW5DdwpdwHCRJsEubS5NrQ9b)

</comment><comment><USER11> Reading through that was a great refresher. Thanks.

One question: would a real CPU have a JL instruction or would that be implemented some other way, like a series of smaller instructions?

<comment><USER12> `JL` and other conditional jumps/branches are a common type of instruction [0][1][2].

Depending on the ISA [3][4][5], there can be jumps, branches, and subroutine transfers (or even a subset of those). Some can be based (conditional) on what value is in a primary register (often traditionally called the accumulator), a condition/flag/status register, a memory location, and even well known constants (0, 1, -1). Many ISAs have ways branching to a function/subroutine/procedure that can include adjusting a calling stack or transferring control to an OS kernel. x86 is notable in that you can cause a branch or jump without calling a branch or jump instruction.

[0] [https://www.tutorialspoint.com/assembly_programming/assembly...](https://www.tutorialspoint.com/assembly_programming/assembly_conditions.htm)

[1] [https://thinkingeek.com/2013/01/19/arm-assembler- raspberry-p...](https://thinkingeek.com/2013/01/19/arm-assembler-raspberry-pi- chapter-5/)

[2] [https://www.ibm.com/developerworks/library/l-powasm3/index.h...](https://www.ibm.com/developerworks/library/l-powasm3/index.html)

[3] [https://en.wikipedia.org/wiki/Instruction_set_architecture](https://en.wikipedia.org/wiki/Instruction_set_architecture)

[4] [https://en.wikipedia.org/wiki/Branch_(computer_science)](https://en.wikipedia.org/wiki/Branch_\(computer_science\))

[5] [https://en.wikipedia.org/wiki/Subroutine](https://en.wikipedia.org/wiki/Subroutine)

<comment><USER13> > x86 is notable in that you can cause a branch or jump without calling a > branch or jump instruction.

I'm curious what you are referring to here. Are you talking about CMOV? Or INT/SYSCALL/SYSENTER? Or just the ability to trigger a fault handler? Or semantic games like push followed by ret?

</comment></comment></comment><comment><USER14> A related topic (that the title initially made me think of) is fantasy consoles like the PICO-8, although those appear to commonly use high-level programming languages like Lua.

[https://github.com/paladin-t/fantasy](https://github.com/paladin-t/fantasy)

</comment><comment><USER15> okok

<comment><USER15> asdfasdfas

</comment></comment><comment><USER16> I've written a SuperH and TriCore emulator from scratch (qemu wouldn't cut it). I couldn't do it in JavaScript because it falls apart when it comes to bit-shifting and integer arithmetic. A lot of processors rely on the C-like functionality of int32_t, uint32_t, etc.

>>> 0 in JavaScript just doesn't cut it.

<comment><USER17> You can use typedarrays, no? I built a fantasy emulator several years ago, and that was my strategy.

<comment><USER16> like this?

const a = new Uint8Array([0xFE])

const b = new Uint8Array([0x02])

a[0] = a[0] + b[0]

<comment><USER17> yes, although IIRC what I did was more like this:

        const r_idx = {ax: 0, bx: 1...}
        const registers = new Uint8Array([...])
        add = (r1, r2) => registers[r_idx[r1]] = registers[r_idx[r1]] + registers[r_idx[r2]]

which lets you do:

        add("ax", "bx")

which is one step closer to making it look a lot like asm syntax.</comment></comment></comment></comment>


Ask HN: Is there a repository listing privacy sensitive files with default path? - <AUTHOR>

I'm looking for a repository listing files (whith their default paths) that might contain privacy sensitive information. Some Examples: browser history, saved passwords, ssh keys, address books generated by different programs, location data from gps, config files containing credentials etc.<p>Is there a project which lists such files depending on the OS and installed software? Or do you alternatively know of efficient methods to create such a list for a specific desktop/mobile/server setup? <comment><USER2> I've been thinking of doing just that for Mac OS X. If you'd like to do it yourself, more power to you.

There are many, many ways that private information gets logged on OS X. Often it's not the fault of the operating system but of third-party applications.

<comment><AUTHOR> I'm mostly using Linux. So that's where i would start should i decide to start something myself.

I'm interested to see your list should you get around to do it :)</comment></comment>


Story Card Faster Than The Speed Of Pivotal Tracker (slurper and slurper.vim) - <AUTHOR> http://www.adamlowe.me/2009/12/story-card-faster-than-speed-of-pivotal.html

<comment><USER2> Amazing. I wrote much the same thing about a month or 2 ago when I had a large number of stories I wanted to add. I even wrote a vim thing to generate the story stub. :) my tools don't post directly from vim tho. But I can add a story from the shell.

I try as much as possible to enter such data via local files and the CLI, and pivotal tracker's API is quite good for this.

<comment><USER3> It has worked out really well for us. Wes Gibbs had the original idea and we were just writing plain text and then running a ruby script he wrote to get the stories into Tracker through the api. The Vim plugin and packaging as a gem has made it a lot easier when working on multiple projects at a time and needing to write cards for all of them switching back and forth quickly.</comment></comment>


Pharo 5.0 (the immersive, pure object oriented language and environment) is out - <AUTHOR> http://pharo.org/news/pharo-5.0-released <comment><USER2> There's a mooc that started last week about Pharo [https://www.fun- mooc.fr/courses/inria/41010/session01/info](https://www.fun- mooc.fr/courses/inria/41010/session01/info)

They use pharo 5. I have to admit it's a very peculiar experience. A bit Emacs on steroid in terms of dynamism and homogeneity.

They address French and English speakers in the reading material, not in the Videos IIRC.

<comment><AUTHOR> videos have subtitles in English :)

<comment><USER2> Good point. I had to forget that important detail.

</comment></comment></comment><comment><USER3> Just as interesting are their success stories:

[http://pharo.org/success](http://pharo.org/success)

</comment><comment><USER4> Congratulation to the Pharo community !

</comment><comment><USER5> Great! Congrats!</comment>


Ask HN: Where to go in NY to see the startup scene? - <AUTHOR>

I'm in NYC until Monday... I want to go see Silicon Alley. Where should I go? <comment><USER2> Dogpatch Labs (36 East 12th Suite 200) and General Assembly (902 Broadway 4th Floor) both have a number of companies in them although they are really working spaces and not events (GA might have somethings going on).

<comment><AUTHOR> Can I just show up and say hi at DogPatch?

</comment></comment><comment><USER3> Its Across the river, but the Hoboken tech meetup was a great place to have been last night.

There's also a happy hour/party for new work city tomorrow night as well- I'm sure you can find details on meetup.com

</comment><comment><USER4> Lobby of the Ace Hotel</comment>


Google Wallet may not be secure - <AUTHOR> http://www.techieinsider.com/news/13397

<comment><USER2> "All of this should raise some major concerns with everyone."

Well. Yeah. How is it even possible that Google did not perform their own security audit for a new credit card payment tool?</comment>


Troubling Trends in Machine Learning Scholarship - <AUTHOR> http://approximatelycorrect.com/2018/07/10/troubling-trends-in-machine-learning-scholarship/ <comment><USER2> This is only going to get worse. I see literally no counter force putting any kind of barrier against the incentive to e.g. overfit in order to get exaggerated results. The lucrative reward is too large not to fall for the use of shady tactics (which are sometimes not even consciously obvious; not being critical enough of your own work is a form of model loosening which acts in favour of more impressive results).

<comment><USER3> A major factor is that machine learning is so conference deadline driven. Does the main result look good enough? Submit it! Ablation studies are the last thing you do, and often you are pressed for time due to the deadline. Since so much work is done by PhD students, they are incentivized to get their work out as fast as possible because they need to graduate and papers in top- conferences play a huge factor in getting jobs in academia and industry.

I'm aware of multiple papers by top labs where their state-of-the-art results are really the result of some very minor change (e.g., some pre-processing technique, bigger images) that was swept under the rug in their paper. All the math and the complex model had minimal impact on the actual numeric result, with the actual reason being unpublishable in a top venue.

<comment> at-fates-hands Your entire first paragraph makes me cringe. Coming from an academic/research background, all of the things you mentioned goes against everything I was taught in terms of being rigorous with your research.

Is this more evidence we have really entered the "click baiting" era? Where the end result of the research is now secondary to getting published and into big conferences to get some notoriety?

<comment><USER4>
      all of the things you mentioned goes against
      everything I was taught in terms of being
      rigorous with your research.

There are certain areas where "the system" asks people to do things right - but provides vast rewards for doing things wrong, if you can avoid detection.

If you're a pro cyclist who isn't doping, good for you! But there's no medal for finishing fourth; you'll be rewarded with medals and sponsorship cash for doping undetectably.

Academics whose rigorous papers aren't _quite_ getting into top-tier journals are in a similar situation.

</comment></comment></comment></comment><comment><USER5> "The ubiquity of this issue is evidenced by the paper introducing the Adam optimizer [35]. In the course of introducing an optimizer with strong empirical performance, it also offers a theorem regarding convergence in the convex case, which is perhaps unnecessary in an applied paper focusing on non- convex optimization. The proof was later shown to be incorrect in [63]."

I strongly disagree here. Researchers, please keep trying to prove that your proposed optimizers are correct, even if you can only manage to prove it for a subclass of problems, and even if it risks publishing an accidentally incorrect proof.

<comment><USER6> Yes, but why do it on paper when you can use an automated prover instead, since you're proving properties of an algorithm?

It smells of laziness...

<comment><USER7> can you cite any non-trivial examples where people writing papers include machine-checked proofs , in fields of study unrelated to the study of machine- checked proofs?

</comment></comment></comment><comment><USER8> _" Failure to identify the sources of empirical gains, e.g. emphasizing unnecessary modifications to neural architectures when gains actually stem from hyper-parameter tuning."_

I think everyone is looking for gains coming from architecture modification since more power and clever hyperparameter tuning can only go so far.

But given that any of systems requires hyperparameter tuning and that requires a lot of time, it is inherently hard to distinguish between this and novel architectures. If someone says "X worked for me but Y didn't", tuning could always be the explanation.

It seems like one could only really scientifically distinguish two architectures if the hyperparameter methodology was fixed. But that's about the opposite of now as far as my amateur exposure to the field goes.

<comment><USER6> You could also try to devise optimal hyperparameters by genetic algorithm (or similar global optimizer) for every architecture with a big fixed number of generations.

That should be apples to apples comparison... Or best to best. At the same time fragility of hyperparameters can be evaluated.

I really appreciate the detailed analysis in the article.

<comment><USER9> Genetic algorithms, Bayesian optimization, simulated annealing etc. are like 101 optimization algorithms, they won't get you anywhere. Hyperparameter tuning is as NP-hard as it gets in the same theoretical ballpark as cryptology when it comes to measuring how demanding it is. In Deep Learning you are basically doing meta-optimization, as the process of learning neural network itself is already non-linear optimization (hint: Adam is a non-linear optimizer); non-linear optimization is generally NP-hard unless restricted to some trivial cases like quadratic programming; here you want to optimize over an infinite set of already NP-hard problems.

<comment><USER10> What are you saying goes beyond "101 optimization algorithms"? Are you saying to put another "layer" of deep learning to tune the parameters of the first "layer"? Doesn't this just add even more parameters to tune?

<comment><USER9> No, you don't put another layer of Deep Learning (well, you technically could if you had some training data for optimization, but almost certainly you don't).

You simply put another layer of (mixed-integer) non-linear optimization on top of Deep Learning hyperparameters, i.e. the hyper-parameters like learning rate, batch size, category weights, even the loss function composition, will be the variables you optimize. The (mixed-integer) non-linear optimization method will have its own set of parameters (they all do), so later you might indeed want to optimize those as well, if you get hold of some hyper-computing device allowing you to compress the first two steps to less than your lifetime. You can probably do this kind of hyper^n optimization as deeply as you like but I doubt it would lead you anywhere, given how terrible non-linear optimization performance on general functions is and how short the existence of Universe is.

<comment><USER10> Sorry, its still unclear. Do you consider genetic algorithms, etc to be an example of (mixed-integer) non-linear optimization? Or are you talking about some other method?

>"You can probably do this kind of hyper^n optimization as deeply as you like but I doubt it would lead you anywhere, given how terrible non-linear optimization performance on general functions is and how short the existence of Universe is."

In practice you don't need to find the actual optimum though, just do better than the alternatives. This reminds me of "a single nn layer can approximate any function". Sure, but in practice a reasonable approximation will arise much easier with other architectures.

EDIT:

By "101" I thought you meant something like "low level" or "first thing you learn/try". Did you mean something else?

</comment></comment></comment></comment></comment></comment><comment><USER11> I skimmed this, found it troubling and started trying to make a checklist of does/don'ts to apply to my own work -

[https://github.com/N-McA/ml-paper- checklist/blob/master/READ...](https://github.com/N-McA/ml-paper- checklist/blob/master/README.md)

</comment><comment><USER12> "Mathiness" as the author puts it is one of my main complaints of many academic papers, this is not at all limited to ML. I think we really need to get away from typical math notation and start to present the calculations as code. This is more readable to the modern practicing professionally and the algorithm's degree of parallelization opportunities (or troubling lack thereof) would be more clear.

<comment><USER13> The paper needs to explain _what_ is being done, _why_ and under what _assumptions_. As long as each of those are clearly explained, in my experience, it doesn't really matter whether each of them is explained in words/math/code. Yes, one form might be a little bit more work for people from a certain background, but that's a hump you can get over relatively easily after reading a few papers on the topic. The worst is when you have to guess at what the authors might be doing and why they're doing it that way, and what assumptions they might be operating under... and all they've done is dumped their results within the page limit and before the conference submission deadline.

</comment></comment><comment><USER14> Yesterday: [https://news.ycombinator.com/item?id=17497235](https://news.ycombinator.com/item?id=17497235).

</comment><comment><USER15> isn't that true for absolutely everything in CS?

<comment><USER16> Doing bad science is an issue that all scientific fields need to be vigilant about (e.g. the "replication crisis" in psychology). It is particularly relevant to machine learning at this point in time as i) the field is growing extremely rapidly and ii) there is lots of $s on the table for those who achieve commercialisable results. So the incentives to do bad science are increasing while the checks against are weakening. These forces are not at play in, say, theoretical CS.

<comment><USER17> > _e.g. the "replication crisis" in psychology_

Just an aside, it's not just psychology. When you google "replication crisis" most articles say "... in science" for good reason.

[https://en.wikipedia.org/wiki/Replication_crisis](https://en.wikipedia.org/wiki/Replication_crisis)

When mentioning "replication crisis" I should probably add articles like this one too: [https://www.insidehighered.com/news/2018/04/05/scholar- chall...](https://www.insidehighered.com/news/2018/04/05/scholar-challenges- idea-reproducibility-crisis)

<comment><USER18> That article is incredibly frightening.

> to conclude that, although misconduct and questionable research methods do > occur in "relatively small" frequencies,

which is kind of expected in a career track that doesn't exactly come with hedge fund-type money -- why would many people be dishonest for grants?

> there is "no evidence" that the issue is growing.

which might mean that the issue isn't in how science is practiced nowadays, but that the scientific process (grants, publication, peer review, research programs) has always been broken.

It's not _clear_ that any of these is the case, but it's depressing to see "well, people are generally not crooks and the game has always been played this way" as an optimistic view of the replication crisis.

<comment><USER10> While outright fraud is probably rare, "questionable research methods/practices" are standard. Most people doing them dont even know there is something wrong with it. Pick any biomed or social science paper and I will quickly find some indication of them (lack of blinding, weird unexplained sample size changes, missing controls, failure to show a direct comparison of the variables you claim are related, etc).</comment></comment></comment></comment></comment>


Russian ATM uses voice analysis to tell when you're lying - <AUTHOR> http://m.engadget.com/default/article.do?artUrl=http://www.engadget.com/2011/06/11/russian-atm-uses-voice-analysis-to-tell-when-youre-lying/&category=classic&postPage=1 <comment><USER2> I saw a similar one once. <http://www.nij.gov/journals/253/tracking.html> It was extreme. It analyses voice, facial gestures, fingerprints and a variety of biometrics.

IMHO, using only voice signatures to identify stress levels can be a bit trivial. The causes for stress may vary and this system should be clubbed with facial gesture recognition for accuracy.</comment>


Ask HN: What do you feel about Indian equivalent of MTurk? - <AUTHOR> _ <comment><USER2> I believe it already has stiff competition...</comment>