Show HN: round.io, our side project for the last two years - <AUTHOR> http://round.io/?ref=hn <comment><USER2> Also have a look at [http://www.localmind.com/](http://www.localmind.com/) (acquired by AirBnb) and Circle ([https://play.google.com/store/apps/details?id=com.discoverci...](https://play.google.com/store/apps/details?id=com.discovercircle10&hl=en))

<comment><USER3> I´ve checked localmind out, and will for sure have a look at Circle. There´s also Findery, Pindrop and Banjo. Plus, you have this connect-them-all application for iOS called Localscope. There´s so much inspiration and great thinking within many of these apps.

However, none of them works exactly the way round.io does, and I still haven´t seen any service yet that does it. So we hope people will enjoy using it once we get to a more finished state.

Anyway, thanks for the tips! :-)

Best regards, Baard

</comment></comment><comment> why-el Two things I think will help you:

1\. Leverage other social networks

I know it sounds ineffective, but other social networks are a great channel to go through if you make sure people understand you offering more than they can find there. Think Pinterest, who also ask you to sign through Facebook.

2\. Provide guarantees you will not be a place for creeps

This again can be achieved through 1. Think Chatroulette here. Phenomenal space for people to communicate but their efforts to dwarf the creeps came in too late.

Besides these two points, here are less important ones:

\- I think your value proposition needs some work. Start with examples first and highlight your strengths (the fact that this leverages people around you).

\- Communicate why usernames such as mine are not valid.

\- Why is it that your Facebook posts redirect to your homepage?

All in all very good concept and a lot of potential. By the way you guys are not English speaking right? ;) I recognize it from how your keyboard renders the apostrophe.

<comment><USER3> Hi there, and thanks a ton for taking the time! I´m Baard, one of two people currently working on this project.

1\. Facebook login/signup will come. 2\. Agreed! This will for sure be a top priority for us to achieve.

We´re for sure working on a pitch to make strengths and highlights stand out. We´ll probhably need some iterations to get to the point we want to be. :-)

I can´t see why your username should not be valid, I´ll put that in the todo- list. It sure should be a valid username to pick.

As mentioned, the facebook posts are redirected to home page because you´re not logged in. We´ll change this once we go out of the experimental phase, which are kind of the state the project is in right now.

Also, we´re the majority of the norwegian population at round.io at the moment, yes. ;-)

Again, thanks a ton for your feedback, it was really helpful.

Best regards, Baard

<comment> why-el You're welcome. I will be in the look out for your next iteration and see how I can help.

</comment></comment></comment><comment><USER4> I was instantly put off by having to create an account without being able to see what it does and how it works. Sorry but I am too impatient for this and I'm afraid a lot of other people will feel the same.

<comment><USER3> Thanks for your feedback!

I have discussed the current design with people who say the same as you, and I can definetly see your point. We´re in the making of a video that explains the concept better, and will design the front page better as well.

Hoping to see you register some day anyway, though! ;-)

Best regards, Baard

<comment><USER5> Why can't I browse locations without an account?

<comment><AUTHOR> Hi there, and thanks for your feedback!

You will be able to, just not right now, since the site is in an experimental/beta state. :-)

</comment></comment></comment></comment><comment><USER6> I like the idea. Sounds interesting ! :-)

A few things though: \- I find the title "Get instant knowledge from everything nearby." to not really explain what Round does. Sounds more like a description of an analytic's system than a social app. \- At the bottom of the page, I can "register", but why should I? What will a registration get me?

<comment><AUTHOR> Thanks! Yeah, we still have got some work to do there.

If you register, though, you'll become a part of a community built for sharing knowledge about what's happening, and where to find cool stuff to explore. At least, we got a gut feeling saying the patterns we implement allow the community to grow in that direction.

For example, there is no friending/following. All conversations are open for everybody to see. And we allow people to vote both up and down. The filters we plan to implement, will hopefully make the community much more noise-free than other similar services.

It's a bit of work left, but we really hope we'll make it happen in not too long.

<comment><USER7> I agree with first comment. You definitely want to be more specific in the early adopters you're targeting. You mentioned exploring, that is a great word to use and should be part of your headline, something like "Explore the world around you." Your facebook page does a good job of giving examples of what the best use cases are. It will help for you to focus on travels who want to explore the city they are in.

<comment><USER3> Thanks for your feedback!

Actually, "Explore your surroundings" was our headline a few weeks ago. However, this headline tend to change quite often, as the ideas flow along. I guess you´re right, though. The exploration part of the app is what we want to grow, and is probhably a very good thing to focus on. So I guess in future iterations, this will probhably be focused on some more.

Best regards, Baard

</comment></comment></comment></comment><comment><USER8> I started working for similar project a year ago. But when I found that getting real location in browser is not possible for 100%. I skipped it.

Now working something similar on mobile app.

</comment><comment><USER9> ... very interesting idea; can't wait to get the iPhone/Android apps with push notifications! :-)

<comment><USER3> Thanks! We´ll for sure make apps for both iOS and Android. Hopefully soon! :-)

Best regards, Baard

</comment></comment><comment><USER10> If you want to _see_ what's happening around you, please check out my startup: [http://wesawit.com/events](http://wesawit.com/events)

<comment><USER3> Damn, that´s some _really_ sweet service! Please don´t mind us linking to your site on a regular basis! ;-)

Best regards, Baard

<comment><USER10> Inbound links are certainly welcome ;-). We offer a paid API service [0] too. If that's something you might be interested in, please let me know: firstname.lastname@example.com

[0] - [http://wesawit.com/developer](http://wesawit.com/developer)</comment></comment></comment>


Eye Candy vs. Bare-Bones in UI Design - <AUTHOR> http://uxmag.com/design/eye-candy-vs-bare-bones-in-ui-design <comment><USER2> This article makes some good points about the balance of design & graphics, but with the first image being of the windows 'ribbon' interface, I wish the author would have used that as an example, and am curious if the author would use that as an example of bad design. Personally, i still can't adjust to the ribbon, too much going on, and lacks direction.

At the same time it is great to hear Donald Norman perspective 'prettier things are actually easier to use, or are at least are perceived to be.' This is my opinion of Mac's (which I am typing this on now). Pretty, but I think most people confuse that with easier to use.

<comment><USER3> I would argue that the Mac is easier to use not because it is pretty, but because it feels considered from the ground up to be a pleasure to use, rather than an afterthought.

Things people mistake for "pretty", such as the genie minimising effect are actually cues that show clearly what your action has done.

Similarly, having a single menu bar at the top of the screen gives the menu items infinite height, so they're much easier to target than the menus on Windows (this is especially important on laptops with trackpads).

..of course, some of it is just pretty. damn pretty.

<comment><USER4> At the same time, the single top menu makes it harder to access menu items of two programs simultaneously. If you have two different programs side by side, in windows you can just click the menus on either one, but in mac you have to click the window you want to use, then move up to the top to click the menu, then back and so on.

I'm a bit biased, I have double display set up so I constantly switch between 4-5 windows at a time. If I had to click on the top menu all the time as on a mac I would go a little more insane.

Personally I think both the mac and windows setups are junk, which is why I'm making my own desktop shell.

<comment><USER5> Purely anecdotally, i have found that applications that are native to the mac are not as reliant on the menu bar for the most of their tasks than their windows counterparts. As a result i don't find having to switch applications to access a menu particularly onerous.

<comment><USER4> I think menu bars in general are a relic and should be done away with entirely. I can't count how many applications have the obligatory File/Edit/Tools/Help menus when the application has absolutely no need for them. Some of the newer microsoft apps have been moving away from them, which is a good sign, but they're obviously not the king of innovation.

I have an idea for how to shake things up, which is what I'm working on.

</comment></comment></comment></comment></comment><comment><USER6> One opinion I do want to throw out there is with the screenshot the author has of the mac Coda application. What strikes me as completely out of place interms of visual asthetics is the mac vertical scroll bar.

While the rest of the screenshot looks pretty consistent interms of colour (low-contract, grey(ish) shades, modest use of gradients), there's this bright, shiny, blue, bubble-shaped scroll bar wedged inside a heavily- gradiented scrollbar background.

Whenever I see UI articles pointing to mac appeal, this is the first thing that strikes me as out of place. And I hope I'm not the only who thinks so.

<comment><USER7> You're most definitely not. Look to iTunes to see what Apple is experimenting with in terms of UI, it's typically a release or two ahead. Some things are retained, some things are lost, of course.

I think the shiny-blue scroll bars are doomed fairly soon, and looking at iTunes suggests they are indeed. The scroll bars there are a much less obtrusive non-glossy, paler base with a blue-grey tone, all _heavily_ anti- aliased. They're also narrower, which I hope is kept. I rarely use the scroll bar, and most Mac users I know don't either; the two-finger scroll is more than accurate enough, and any specific point is still accessible by clicking on a specific location. Having a large one is unnecessary space waste, and draws your eye away from the content of the application.

</comment></comment><comment><USER5> One factor of pretty that wasn't discussed is that a pretty (rather than just bling-fueled) interface is often one that has a lot of attention to detail paid to it, thus it is an indicator that other aspects may have received equivalent care.

<comment><USER8> Really? I mean, I had one (potential) customer who checked out a rather nice (tier 3) data center and said he didn't like it because the paint on the doors was scratched up. "if they ignore that detail, what other details are they skimping on?" The guy ended up over at one of the cut-rate (tier 1) datacenters that skimped on cooling and power but paid extra attention to things like paint and free drinks.

Now, I'm in no position to judge UIs, but I am in a position to judge datacenters, and picking the datacenter with the nicest paint is about as retarded as picking the programmer in the nicest suit. I suspect (though, of course, don't know) that a similar principle applies to UI design and eye candy.

<comment><USER5> Firstly, I agree that its certainly not a definite signifier of quality, but it is an indication that care has been paid.

Secondly, the floor on the data center to me sounds like its closer to the box the software came in than to the interface itself. From a users perspective the interface _is_ the software whereas the box (and the painted floor) are merely a nicity that you only see once. I can't stretch the analogue any further though because I don't know data centers.

<comment><USER8> I'm just railing against this idea that unrelated details are an indicator that care has been paid to important things. Now, not everything is like the programmer in a suit; I know so little about UI that it's possible that things I see as unrelated details are not, in fact, unrelated.

<comment><USER5> The connection between pretty and good posited either in the linked article or one of its links (perhaps [http://www.uiandus.com/blog/2009/7/27/realizations- of-rounde...](http://www.uiandus.com/blog/2009/7/27/realizations-of-rounded- rectangles.html) ?) is that the cognitive workload required to process visual cues is (inversely) related to the qualities that are often perceived as 'attractive', e.g. round rectangles, non-garish color schemes, sensible type choices etc.

<comment><USER8> heh. well, my idea of 'pretty' is probably so far off from yours that I wouldn't know. I'm halfway colorblind, so all your well-tuned colorschemes are for naught. A friend made me a (presumably really nice) multicolored pastel logo for prgmr.com. I thought looked like a yellow circle. Apparently, it had four different colors.

But yeah; I mean, I've seen a lot of really bad websites that have obviously had a lot of effort put into making them pretty. Remember the 'click here to enter' intro screens? or flash-based websites? One certainly can be pretty without being usable.

<comment><USER4> I'm curious... do you have a hard time distinguishing the color magenta/fuchsia from other colors? Or does it stand out pretty well?

<comment><USER8> I had to look up what that meant; but yeah, uh, I can see purple, but I can have a hard time distinguishing between different purples. In general, the pastel colors look, well, pretty similar.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Eye candy is mostly about conspicuous consumption. It makes it look like you have resources to spare so you must be doing something right.</comment>


Screenqueri.es - Pixel Perfect Responsive Design Testing Tool - <AUTHOR> http://screenqueri.es/ <comment><USER2> Clickable: <http://screenqueri.es/>

This is the best of these tools I've used so far. Previously I used <http://jamus.co.uk/demos/rwd-demonstrations/>

One problem I have though, the phone menu is very long and doesn't scroll with the page, so if your window isn't as tall as the list (it only just fits on my 13" Macbook Air) then you can't see the full list.

</comment><comment><USER3> Looks nice! But: For my site - <http://davidtanzer.net> \- it does not produce the correct result for the new iPad. On the real device it looks exactly like on the iPad (no side bar, everything is just higher res).</comment>


The actual time complexity of array access - <AUTHOR> http://daniel.lubarov.com/The-actual-time-complexity-of-array-access

<comment><USER2> While a valid observation, there are other physical limits which affect the analysis. For example, assuming constant density and ever increasing sizes (which it does), at some point the computing machine will turn into a black hole. With DNA storage, the density is about that of water and the maximum storage size will be about 10E8 solar masses or about 6 AU. This is a sphere about 50 light minutes in radius, though of course the gravity well will be seriously distorted by this point and the system will need some added reinforcements to handle the rather immense pressures involved.

Any model which assumes constant density will be subject to the same absolute limit, so Ω notation doesn't apply. There is also an upper limit in information density, due to quantum mechanics.

Two other factors apply. Landauer's principle places a lower theoretical limit of energy consumption of a computation. The digital logic to look up something of index N requires at least log2(N) bits of logic for the addressing. You have to cool this off somehow, and the Stefan-Boltzmann law places a limit on how much you can cool in a vacuum. The only resolution is to slow down the system. That might place a higher constraint on the time analysis.

EDIT: Oops! Quite the other way around. The energy needed to keep the entire system warm, despite S-B cooling, will be a limiting factor. Someone else will need to do the full analysis.

And secondly, this assumes there's no need for error handling. As the address size increases, the error rate per address increases exponentially. This requires more space and more heat in order to bring the error rate down to an acceptable threshold. I don't know how to factor that in.

Therefore, instead of worrying about complex physical constraints which are not relevant to just about any computing issue, algorithms analysis uses a specific RAM model, like the trans-dichotomous model.

</comment><comment><USER3> Reminiscent of the old joke where the physicist says "let's assume the horse is a sphere." But while a sphere might be a good model for a horse, it's definitely not a good model for how actual computers currently work.

In other words, the "actual" in the title should be replaced with "theoretical", with a footnote saying "under a theory that is worse than the one you are already using." Of course, nobody would read it then.</comment>


Nine year old whiz kid writes an iPhone application that is download 4,000 times - <AUTHOR> http://www.reuters.com/article/newsOne/idUSTRE5140FI20090205 <comment><USER2> Already posted: <http://news.ycombinator.com/item?id=467067>

<comment><USER3> Is there a feature in the works to resolve these sort of stories with more than one source?

<comment><USER4> I'd imagine that a simple check on the vocabulary of the page vs the vocabularies of the pages linked in the last couple of months would do that just fine.

Easier said than done though! The devil with these things is always in the details.</comment></comment></comment>


XDA summary of the answers from Android's team AMA on Reddit - <AUTHOR> http://www.xda-developers.com/heres-everything-we-learned-from-the-android-nougat-ama/ <comment><USER2> I think the post title would be clearer if written as "XDA summary of ...". If there is a better mechanism to offer this suggestion, please do let me know.

<comment><AUTHOR> Thanks for the hint. Updated.</comment></comment>


Chrome Extension: Enables Horizontal Scroll in Trello - <AUTHOR> https://chrome.google.com/webstore/detail/trello-horizontal-scroll/helbelbejomncfaikdnecdmpjfcnpfoi

<comment><AUTHOR> Enables Horizontal Scroll in Trello Trello by default doesn't gives the feature to scroll board horizontally whereas as the number of lists grows its not easy to view all lists by clicking and moving the board or moving the horizontal bar manually (surely this flow doesn't seems smooth on desktop and laptops right).

So, this extension adds the feature and enables the horizontal scroll on Trello boards.</comment>


Nokia to add open interfaces to its telecom equipment - <AUTHOR> https://www.reuters.com/article/us-nokia-5g-idUSKBN2480S0 <comment><USER2> I've been following Nokia for the past two years and watched the two documentaries about them (they are similar; one has more Finnish). [1] [2]

My conclusions about them are this:

1\. They can become a major player in 5G for Europe.

2\. The places in Finland where they operated did not become ghost towns as you may have thought.

3\. They are still very competent. In fact, when their mobile business was bought out by Microsoft, it appears that they were a leader in car navigation systems. Not sure if MS considered that when doing the takeover and not sure whether they took it over.

4\. They have always been a telecom infrastructure player and become more so after the 2010–2012 fiasco. They were working on Linux derived OSs for phones. I always thought they tanked due to their marriage to Symbian and ignorance towards Android. I am not sure anymore; I have become more old school and like people that write their own code.

5\. The Finns seem to blame hubris for their downfall. I think even without hubris, you can't really compete against countries with a lot of people and low wages.

6\. Finland remains an awesome country. Their engineers are probably better than Germans, but they are 1/10th in number. (Sorry, I like to take on the Germans in a challenge. Maybe it's because they are actually something to take on?)

[1] [https://www.imdb.com/title/tt5654050/](https://www.imdb.com/title/tt5654050/)

[2] [https://www.imdb.com/title/tt8717008/](https://www.imdb.com/title/tt8717008/)

<comment><USER3> On point 3, the car navigation systems and map data were a separate division called Here. Microsoft wanted to buy it together with the mobile phones, but Nokia held out for a better price, and finally sold Here in 2015 to a consortium of Audi, Daimler and BMW for about $3B USD.

On point 6, as a Finn working in USA, I would add that the stereotypical Finnish engineer in my mind is someone very capable who believes their job is finding reasons to say "no" to ideas. This is a paradigmatic cultural difference from America where most people feign enthusiasm loosely. IMHO one of the things that holds Finland back is the belief that pessimism wins out in the long run.

<comment><USER4> an interesting anecdote on the pessimism aspect.

As someone from another northern european country, "pessimism" seems to be a phenomenon that is very common in most western/northern european countries. People are critical about radical ideas (usually for good reason imo) and blind optimism makes you look like a fool.

<comment><USER5> I recently joined a Finnish tech company coming from a South American country. My "blind optimism" seem to be quite refreshing for my Finn colleagues :^)

<comment><USER6> Interesting... Care to elaborate? Which type of company are you working at? What kind of job do you do there?

</comment></comment></comment></comment></comment><comment><USER7> Some terms are like voodoo for me as I am not familiar with telcom infrastructure. I found this site helpful to explain the terms at least.

[https://mavenir.com/blog/what-is-the-difference-between- open...](https://mavenir.com/blog/what-is-the-difference-between-openran-o- ran-and-vran/)

Not yet sure what to make of it but it sounds pretty good. If we had open standards between components, maybe we could audit proprietary modules to a better degree.

<comment><USER8> My reading is that it is not that much about open standards between components (which are supposed to be somewhat open and interoperable already), but about open and vendor-neutral OAM interfaces.

</comment></comment><comment><USER9> 5G is definitely changing the way cell networks are built although traditional towers are still a part of this. my understanding is that traditional towers will operate on spectrum that reaches out for miles like a traditional tower, while the smaller towers built on lampposts and street corners will be operating on higher bandwidth spectrum that doesn't reach as far, requiring more small towers in densely populated areas. open RANs are the key to making sure all the operators can use existing infra instead of overbuilding each other. sure we'll have a ton of small 5g towers in dense areas, but imagine how many towers would be installed if individual telecoms had to build their own networks.

<comment><USER10> It really is becoming a public utility and should be treated as such by government and business. The original concept for "cellular division" for higher density bandwidth is why we call them cell towers in the first place.

<comment><USER11> But how can we create billionaires like Carlos Slim and Naguib Sawiris in every country without cellphone companies?

</comment></comment></comment><comment><USER12> Relevant: [https://www.o-ran.org](https://www.o-ran.org)

</comment><comment><USER13> This is interesting considering the direction standards/advisory bodies like TM Forum have been heading into. The telco industry was always big on standardisation, but paradoxically interop was a constant challenge when I was working in 3G rollouts...

<comment><USER14> Indeed - standardisation is adopted as it helps drive more handset sales and stimulate consumer demand. But standardisation is eschewed even in 4G and 5G when it comes to the equipment deployment - everyone is trying to build their "moat" of proprietary features to make you want to only deploy their radios in a given area (or ideally the whole network).

Automatic neighbour detection and cross-eNB resource block coordination are 2 that spring to mind which I think you lose in 4G if you don't go with a single-vendor approach. And good luck actually getting rival radio vendors to talk X2 to each other nicely...

</comment></comment><comment> kube-system What incentive do lower cost manufacturers have to cooperate with this?

<comment><USER15> It would allow them to spend less time designing an entire software ecosystem, for one.

Sort of like OpenDaylight [https://www.opendaylight.org](https://www.opendaylight.org)

<comment> kube-system Given that wireless equipment vendors already have an existing system, I can't imagine that the marginal cost of maintaining it outweighs the benefits of vendor lock-in. ... unless I'm missing something about the economics of the situation.

Edit: I see now -- from another link in this section, it sounds like this may be beneficial for the growth of smaller niche players who have tiny market share.</comment></comment></comment>


More is More - <AUTHOR> http://www.nybooks.com/articles/2017/05/25/consumer-society-more-is-more/ <comment><USER2> Increased productivity and production are always good for the economy. But increased consumption is _only_ good insofar as it increases the happiness of the consumer. This is tautologically true: if we didn't care about consumption increasing somebody's happiness, we could easily generate arbitrary amounts of consumption by digging and filling in ditches.

Historically, most increases in consumption have lead to higher standards of living, so increasing consumption has been pretty well correlated with increased happiness. But in the developed world today the median individual has all of his or her basic needs taken care of with lots of expendable income sloshing around to buy luxuries besides. I think this warrants taking a critical look at the role of consumption in our individual lives. If you're far enough up Maslow's hierarchy that your day-to-day worries are mostly related to esteem or self-actualization, I would _highly_ encourage taking the opportunity to look at what you're actually spending money on, and cutting out anything that doesn't actually bring you satisfaction and is perhaps only on the list out of habit, or to keep up appearances. By cutting those things out, you'll have more time and cash to spend on the things that _do_ matter to you both now and in the future. Saving money that would otherwise be spent on something you don't care much about anyway feels really good -- give it a try!

<comment><USER3> Housing, food and transport make up 70% of my spending. Somehow for real meaning to come out of this exercise I feel like money needs to come out of one of those. However these are not generally easily adjusted. I can't just give up my automotive expenses, for example, without major and negative impacts to my well being.

<comment><USER2> > I can't just give up my automotive expenses, for example, without major and > negative impacts to my well being.

Sure, if something you're spending money on currently does increase your happiness, then don't cut it out! But even within the categories of essentials you listed, different peoples' spending levels vary drastically. To your point, my wife and I drive a 12-year-old Hyundai Elantra that I bought in good condition for $4k on Craigslist. When I add up depreciation, gas, repairs and insurance, it costs us about $220/mo all-in. A new mid-market SUV, under the same analysis, might cost $600/mo. Now, I would probably enjoy a newer, nicer bigger car some, but I certainly wouldn't enjoy it $400/mo more, especially when I compare it to the other things I could spend that money on that I care about more, like buying a nice new deep-learning rig (4 months of smaller-car savings), or a cool extra $750k in retirement ($400/mo for 40 years compounding at 6%).

The point is, decide what's most important to you, and spend your money on _that_. For some people it will be buying a new car every 4 years, but I'm willing to bet that if we really thought hard about our priorities for most people it wouldn't be.

<comment><USER4> If you enjoy this comment by kcorbitt you should read this book [1] and check out this blog [2]. They are both enlightening on consumerism.

1] [https://www.amazon.com/Early-Retirement-Extreme- Philosophica...](https://www.amazon.com/Early-Retirement-Extreme- Philosophical-Independence/dp/145360121X)

2] [http://www.mrmoneymustache.com](http://www.mrmoneymustache.com)

</comment></comment></comment></comment><comment><USER5> There's a wiki page about this phenomenon (forgot its exact name), but it's funny, I was thinking about this very book this morning, even though I haven't even read it, I just skimmed through it a couple of months ago. More exactly, I was thinking about the French Situationists ([https://en.wikipedia.org/wiki/Situationist_International](https://en.wikipedia.org/wiki/Situationist_International)), which I think this book quotes at some point.

<comment><USER6> Hedonic treadmill?

</comment></comment><comment><USER7> This reminds me of guitarist Yngwie Malmsteen's famous "How can less be more?" interview ([https://www.youtube.com/watch?v=QHZ48AE3TOI](https://www.youtube.com/watch?v=QHZ48AE3TOI))</comment>


Ask HN: Who/What would you have liked to have heard in college? - <AUTHOR>

If you were in college (computer science/engineering) and had the opportunity to hear absolutely anybody in the world give a talk, who would that person be and what would you want to hear?
Would you listen to Ray Kurzweil giving a talk about Transhumanism or his inventions? Would you listen to Richard Stallman giving a talk about the FSF?
Or would you rather hear someone give a talk about nutrition/something non-computer sciencey?
Names and topics would be really helpful. <comment><USER2> I feel foolish but : Steve Jobs of course ! ([http://www.youtube.com/watch?v=UF8uR6Z6KLc&fmt=18](http://www.youtube.com/watch?v=UF8uR6Z6KLc&fmt=18))

He's a great storyteller, that's why I guess his keynotes are so successful.

</comment><comment><USER3> I would have liked someone to tell me the following:

1\. Double-major in something marketable + something unusual. It's important to differentiate yourself early on, and an unusual skill, like say, Japanese fluency, can open a lot of doors.

2\. Get good grades. Even if you think grades don't mean much, you might want to go to grad school, or apply to some company that actually cares about grades.

3\. I can't improve on Larry Page's commencement speech, so just watch that: <http://www.youtube.com/watch?v=qFb2rvmrahc>

</comment><comment><USER4> Definitely marvin minsky (<http://en.wikipedia.org/wiki/Marvin_minsky>) . He is pretty much the father of artificial intelligence, and not a bad speaker either.

</comment><comment><USER5> Peter Norvig... his talk at SS'08 made me wish he taught all my classes.

<comment><USER6> I think you mean 07?

<http://singinst.org/media/singularitysummit2007>

<comment><USER5> Was referring to Startup School (in 2008)...

But thanks for the link to a bunch of great videos! Watching them now.

Edit: Not the best quality, but video here: <http://www.justin.tv/clip/116fb17d94c>

</comment></comment></comment><comment><USER7> Roger Penrose. <http://en.wikipedia.org/wiki/Roger_Penrose>

<comment><USER8> Funny you should say that. He spoke at my graduation (York, 2006), and being a graduation speech it was unfortunately relatively insight-free.

</comment></comment><comment><USER9> Feynman.

</comment><comment><USER10> RMS spoke at my college about FSF. If you're already familiar with FSF, etc, then it won't be particularly interesting.

...until your econ major friend starts arguing with him, and he starts hurling personal insults.

</comment><comment><USER11> I am in college but the people I would want to hear in College probably would be John McCarthy Peter Norvig

</comment><comment><USER12> I'd probably attend and listen to anything these people would talk about: Alan Kay, Don Knuth, Feynman, Oppenheimer, Teller, Von Braun, Henry Ford, Edison, Telsa, Edwin "Major" Armstrong (FM), Charlie Munger, Kary Mullis, Ray Kurzweil, Alfred Loomis, Turing, the transistor boys (Shockley, Bardeen, Brattain), Jim Williams (Linear Technology), Robert Pease (formerly National Semi), Bob Widlar (National Semi), maybe even Wozniak.

I would not bother to attend a talk by any politician or Steve Jobs.

</comment><comment><USER13> Ramanujam(indian mathematician with no formal training) <http://en.wikipedia.org/wiki/Srinivasa_Ramanujan> \- for an insight into how his thought process may be. Without all that formal training, how did he treat maths?

Kathy Sierra -In college, there is nothing motivating than talks about "being passionate" and "You can do it!" - talks. Kathy Sierra knows the hacks of the brain (i think).

Someone who talks about HOW they hacked their way rather than someone who presents their entire hardwork in one sentence. [for context, Adam Savage talking about creating a dodo skeleton, [http://fora.tv/2008/12/12/MythBusters_Co- Host_Adam_Savage_on...](http://fora.tv/2008/12/12/MythBusters_Co- Host_Adam_Savage_on_Obsession)]

</comment><comment><USER14> Steve Jobs, definitely. He has knowledge and skills that no college professor can teach. To get a glimpse of his business genius would be unfathomably valuable.

</comment><comment><USER15> Peter Diamendes, founder of the XPrize. Just heard him a few weeks ago... he will blow anybody's mind.

</comment><comment><USER16> Leonardo Da Vinci.

<comment><USER17> He was my childhood hero, still remains a big influence in all I do to this day. Growing up I always wanted to be a "universal genius" like Da Vinci, so I tried to pick up on science, music, art and pretty much anything I could get my hands on. I think my admiration of his abilities and the realization that he was just a man (like you or I) provided a lot of the drive and ambition I now have. This does have the unfortunate consequence of producing a 'jack of all trades, master of none' type persona, or at least it did for me.

So yes, it would have been amazing to hear him speak. =)

</comment></comment><comment><USER18> Any professor who had _Founders at Work_ as the textbook for his class.

A class in Nutrition would have been good for me too.

</comment><comment><USER19> Paul Graham, on how the industry has changed in the past 15 years ago and what to do about it.

Or I could just read his essays, but a talk would be nice too.

<comment><USER20> I devour everything that guy puts out. Any idea if he's got a twitter account? The one w/ his name doesn't seem to be him.

<comment><USER21> He does, however, have his own social news site.

</comment></comment></comment><comment><USER22> \- David Deutsch, driving force behind the formalization of quantum computing, generally interesting in a wacky way, <http://en.wikipedia.org/wiki/David_Deutsch>

\- Stallman was interesting to hear in college.

\- Lawrence Lessig would also be really interesting.

</comment><comment><USER23> Nikola Tesla

</comment><comment><USER24> I really would like to hear Douglas Hofstadter.

</comment><comment><USER25> Ben Franklin as motivational speaker. Title: Industry! Frugality!

</comment><comment><USER26> Brian Cox, the physicist. I missed a chance to see Stephen Hawking. Out of some bigger names I saw Stallman, Mitnick and Desmond Tutu, all interesting people.

</comment><comment><USER27> Mohammed Yunus, the Dalai Lama .. (& Barack?)

</comment><comment><USER28> I did hear Dijkstra speak while I was in undergrad, on some graph algorithms. That was a win.

</comment><comment><USER29> Wendell Berry, as an intelligent counterpoint to all the enthusiasm about technology

</comment><comment><USER30> Alan Turing, Issac Newton or Jimi Hendrix

</comment><comment><USER31> David Deutsch on epistemology.

</comment><comment><USER32> Leonhard Euler or Carl Gauss.

</comment><comment><USER33> Robert Hooke.</comment>


Algebraic Structures: Things I wish someone had explained about FP - <AUTHOR> https://jrsinclair.com/articles/2019/algebraic-structures-what-i-wish-someone-had-explained-about-functional-programming/ <comment><USER2> This post shows a Haskell-ish definition of Functor, then attempts to show the same thing in TypeScript.

        interface Functor<A> {
            map<B>(f: (a: A) => B): Functor<B>;
        }

But the TypeScript definition loses something important: the point of a Functor is that you get back the _same_ data type -- there's one `f` in the Haskell defn both in the argument and return type, while this TS definition can give you back any random data type. E.g. the implementation of Array.map could give you back an Either.

I don't mean this comment to be a random nitpick of the post. Trying to think these things through is hard, and trying to use things you know to help understand the new idea is not unreasonable. But in particular with PL each thing has so much associated baggage (here in TS, subtyping) that reasoning "by metaphor" often means you end up missing the critical point.

<comment><USER3> Haven't had a coffee yet so go easy on me - doesn't this solve your issue?

        interface Functor<A> {
            map<B>(f: (a: A) => A): Functor<A>;
        }

You map over an option, you get an option. You map over an either, you get an either. etc etc.

<comment><USER4> That gets closer to the problem, but the solution is further away. You don't want to return "Functor" (which is like a vtable, the interface itself) but instead the thing itself which is implementing the Functor interface.

So you end up with

        interface Functor<A> {
            map<B>(f: (a: A) => A): Self<B>
        }

where `Self` needs to recognize that the type being defined to implement this interface has a "slot". This tends to make things tough.

<comment><USER3> You've lost me. Returning an interface isn't returning a concrete thing. It's returning the thing that implements the interface

I'm a very low level functional programmer. I'm big on immutability, big on not using loops and instead using map/flatMap/filter/fold, I tend to roll my own either and option implementations when they don't exist because it's the tidiest way of handling errors I've come across, etc etc. But when it comes to stuff like functors I don't get what it's buying me. What interesting stuff can I do if I know that both an option and a list can be mapped over?

I really need to look more deeply into it at some stage. I might be missing out on some powerful tools. Or it might be a bunch of stuff that's theoretically interesting but practically useless.

<comment><USER5> I think you may have misunderstood their point. They're just saying that specifying `Functor` in the return type of `map` isn't enough to resolve the issue because you could still have a case of `List#map` returning a `Maybe` or `Either` since they are all implementations of `Functor`.

This gets handle by the Cats library in Scala ([https://typelevel.org/cats/typeclasses/functor.html](https://typelevel.org/cats/typeclasses/functor.html)) by defining the type class the functor is being defined for as an abstract type on the functor itself.

</comment></comment></comment></comment></comment><comment><USER6> The [https://en.wikipedia.org/w/index.php?title=Algebraic_structu...](https://en.wikipedia.org/w/index.php?title=Algebraic_structure&oldid=898454436132) link in footnote 1 is broken, it takes me to a page saying 'The revision #898454436132 of the page named "Algebraic structure" does not exist.'.

As for the quoted definition, I agree that if this is your first exposure to abstract algebra, you'll need a moment to unpack the sentence, follow some links, and especially, read on. But that's not just Wikipedia; the blog post also takes considerably more than one sentence to explain what it is trying to say. You can't explain everything in one sentence.

For whatever it's worth, as a data point relating to a recent discussion on whether a university CS education makes you a better programmer or not: We literally started learning about algebraic structures in the first math class on the first morning of the first year of university. If you're going to program in a setting where algebraic structures (or data types!) are relevant, this university knowledge will help.

Finally, this blog looks very nice visually, but the "broken typewriter" font effect makes the code examples much too hard to read. It would be great if the ribbon in that typewriter could be replaced.

<comment><USER7> I think Wikipedia is wrong here. I never knew that anyone referred to any generic set with operations as an "algebra". That's a magma! An algebra has much more structure than any generic set with operations.

Does this really happen? Do people really say generic "algebra" for any set with operations?

(And as an aside, I don't like the "abstract algebra" monicker. It sounds so immature and undergraddy. There isn't an ordinary algebra and an abstract algebra. It's all just algebra.)

<comment><USER6> > I never knew that anyone referred to any generic set with operations as an > "algebra". That's a magma!

If I have a structure S with an associative operation, and another structure G with an associative operation and a neutral element, I will say that S and G are different algebras, not "different magmas". Others looking at S or G will not ask "oh, what kind of magma do you have there", they will ask what kind of _algebra_.

So... Yes, these are both (special cases of) magmas, but the general term used for them is "algebra" or "algebraic structure". Don't you agree?

<comment><USER7> But you added extra structure: associativity. Cohn's definition doesn't. It just says "set with operations" (well, finitary operations, but that's kind of always implicit in the definition of "operation").

So you're saying people shorten the phrase "algebraic structure" to "algebra"; this hasn't been my experience.

<comment><USER6> > But you added extra structure: associativity.

Of course I added extra structure since I wanted to make a point about _different kinds_ of algebraic structures which are all subsumed by the term "algebraic structure" or "algebra". And it's only possible to distinguish kinds of algebraic structures by differences in structure.

But adding extra structure in one example doesn't mean that I somehow exclude magmas from the definition. Here is the example again, extended to be include a component with no extra structure:

If I have a structure M with no structure but an operation, a structure S with an associative operation, and another structure G with an associative operation and a neutral element, I will say that M and S and G are different algebras, not "different magmas". Others looking at M or S or G will not ask "oh, what kind of magma do you have there", they will ask what kind of algebra.

Of course this extension by M doesn't change anything about the validity of the example. Magmas are just as included in the term "algebraic structure" as semigroups, groups, rings, and fields are.

> So you're saying people shorten the phrase "algebraic structure" to > "algebra"; this hasn't been my experience.

<shrug> It has been mine. Wikipedia has lots of uses of the phrase "the algebra of": [https://en.wikipedia.org/w/index.php?search=%22the+algebra+o...](https://en.wikipedia.org/w/index.php?search=%22the+algebra+of%22&title=Special%3ASearch&go=Go&ns0=1), always meaning something like "the algebraic structure of set X with operations f, g, and h".

</comment></comment></comment></comment></comment><comment><USER4> Calling these things algebraic structures might help you win some confidence, but the communities which talk about algebraic structures aren't going to be helpful for learning how to program with these things. Mathematicians love algebraic structures (and non-algebraic ones).

The advantage really plays out more with the first-order structures, too. Things like monoid, semiring, torsor, group. You also have nice ones in more standard data structures: a balanced tree is an excellent example of a structure where the laws exist to cut out unbalanced trees.

In my opinion, there are two things to study here:

First, the practice of thinking about abstract structures that apply to concrete data. For this, the practice of thinking of there being a type (or multiple interrelated ones) which offers some set of "constructors" which create the type or augment existing values (gluing new items into a tree, merging two trees, etc) and some set of "laws" for which all values of that type must uphold.

It turns out that you can do a lot of analysis of the behavior of these structures in the abstract and then apply it wholesale throughout programs. Many concrete values you work with are the combination of multiple structures in natural ways. Sometimes you can replace whole APIs with hundreds of calls, each named uniquely to this implementation of this type, with just a small set of nicely orthogonal methods with completely standard names.

Second, the use of higher order structures like Functor, Applicative, Monad. These get a LOT of airtime because they're both challenging and offer important capabilities. But they're also in a lot of senses their own realm of study. Not only are they developed very uniquely in programming communities (as opposed to what you'll find if you read about the category theoretic definitions) but they are also "higher order" in that they involve functions between types.

This higher-order nature both makes their own equations much more complex, but it also means that to see them applying (in languages other than Haskell and its ilk where purity drives this) you have to get _really_ good at seeing languages in an abstract fashion. It's a great skill to develop, but ramps up the difficulty greatly.

Master the "first order" ones first. Master concrete, interesting types like Either, Maybe, List (as a source of non-determinism) first. Then come back and see if you can see how the skills you develop with the "first order" structures apply to these higher order, computationally minded types.

</comment><comment><USER8> For the more beginners of us, I love this blog post / cheatsheet by Julie Moronuki on the matter of Algebraic Structures [https://argumatronic.com/posts/2019-06-21-algebra- cheatsheet...](https://argumatronic.com/posts/2019-06-21-algebra- cheatsheet.html)

</comment><comment><USER9> > Functor isn't the only algebraic structure either.

I actually wouldn't call it an algebraic structure at all. A functor really isn't just a set with some finitary operations. A quick search online [1] tells me I'm not alone.

[https://www.quora.com/Why-is-functor-considered-to-be-an- alg...](https://www.quora.com/Why-is-functor-considered-to-be-an-algebraic- structure)

<comment><USER10> I guess this is an easy point of confusion. Are specific instances of functor algebras, then? (What about f-algebras?) What would be the more appropriate word for the category theoretical things the author is trying to refer to here, functor and monad and so on?

<comment><USER11> A monad (on Set) is an "algebraic structure" (eg. the notion of a group). An algebra for that monad is an "algebra" (eg. one individual group).

This is the original use for monads in universal algebra, before they were interpreted as computational effects. An algebraic structure like a group or monoid is traditionally given by a signature: a list of what operations it has and what rules the operations need to follow. You can generalize from a signature Sig to a monad M. If a is a set, then Ma is "the set of expressions with constants from a": the set of formal expressions built from elements of a and the operations in Sig and where two expressions are regarded as equal if you can manipulate one into the other using the rules from Sig. The list monad for example corresponds to the signature for monoids.

The monad laws can thus be read as expressing "how to do algebra" at the most general level (ie. the level that is common to all algebraic structures). I would gloss them as "the order you evaluate an expression does not matter".

</comment></comment></comment><comment><USER12> I know it's not for everybody, but go back and read Backus' Turing Award lecture introducing FP: "Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs" [https://dl.acm.org/ft_gateway.cfm?id=1283933&type=pdf](https://dl.acm.org/ft_gateway.cfm?id=1283933&type=pdf)

The two main points (they're in the title) are eliminating the "von Neumann bottleneck" between the CPU and RAM, and the _algebra_ of [FP] programs, the potential to manipulate programs as one manipulates mathematical formulas.

<comment><USER13> I just skimmed that paper but I don't see a section on how to avoid the bottleneck when your functional program is trapped on a Von Neumann machine. It seems to me that functional constructs have to be mapped down to structures that will suffer the Von Newmann bottleneck if they are being executed on a Von Newmann machine. But there isn't any apparent discussion of an alternative machine architecture, just the computer language.

Indeed one of the complaints you sometimes see about functional programming is the amount of memory churn it produces on a Von Newmann architecture.

<comment><USER12> I'm actually working on that. I've come up with a way to dynamically create dataflow graphs on banks of hardware interconnected by latching sort-nets and programmed by a simple, pure, functional, "concatinative" programming language called Joy.

<comment><USER13> Didn't the MIT LISP machines achieve this back in the 80s?

</comment></comment></comment></comment><comment><USER14> I don't have a need right now to master a new programming paradigm in order to leverage my business.

However, if I happen to bump into this need, I'd focus first on Logic and Array-Oriented programming languages first. They seem more valuable to my industry (finance).

For example: Prolog and J.

</comment><comment><USER15> Gotta say I love the style/aesthetics of that site.

<comment><USER16> You must have good vision, because it's annoying for me to read.

<comment><USER17> I had to turn off the background and change the fonts of the code samples. It was impossible otherwise.

<comment><USER18> I found the code blocks a very interesting looking and authentic, but that's true for me: it was somewhat difficult to read.

</comment></comment></comment></comment><comment><USER19> > a.map(g).map(f) ≣ a.map(x => f(g(x)))

> But the one on the left will be slower and use a lot more memory.

Is it really true? I mean, GC will clean the intermediate array, won't it? And the speed won't be significantly slower. It's still linear complexity anyway.

<comment><USER6> Dragging a large data structure through the cache only once rather than twice can be beneficial. Also, GC will clean the intermediate array, but (depending on the specifics of the language and the data types involved) it might first have to make yet another scan through the data structure. So yes, it's linear, but possibly 2-3x slower.

<comment><USER19> Then why do I have the following results?

        const a = [...Array(1000000).keys()];
        const m = 8;
        let leftAvg = .0;
        for(let _ of Array(m)) {
            const t0 = performance.now();
            a.map(Math.tan).map(Math.sin);
            const t1 = performance.now();
            leftAvg += (t1 - t0)/m;
        }
        let rightAvg = .0;
        for(let _ of Array(m)) {
            const t0 = performance.now();
            a.map(x => Math.sin(Math.tan(x)));
            const t1 = performance.now();
            rightAvg += (t1 - t0)/m;
        }
        console.log(leftAvg, rightAvg, leftAvg/rightAvg);
        // JS Firefox 70:  264 360.75 0.7318087318087318

        var a = Enumerable.Range(0, 10000000).Select(x => (double)x).ToArray();
        double[] xs1 = null;
        double[] xs2 = null;
        var m = 16;

        var leftAvg = .0;
        foreach (var _ in Enumerable.Range(0, m))
        {
            var watch = System.Diagnostics.Stopwatch.StartNew();
            xs1 = a.Select(Math.Tan).ToArray().Select(Math.Sin).ToArray();
            watch.Stop();
            leftAvg += (double)watch.ElapsedMilliseconds / m;
        }

        var rightAvg = .0;
        foreach (var _ in Enumerable.Range(0, m))
        {
            var watch = System.Diagnostics.Stopwatch.StartNew();
            xs2 = a.Select(x => Math.Sin(Math.Tan(x))).ToArray();
            watch.Stop();
            rightAvg += (double)watch.ElapsedMilliseconds / m;
        }

        Console.WriteLine($"{leftAvg} {rightAvg} {leftAvg / rightAvg}");
        // C# Results: 505.75 602.25 0.839767538397675

<comment><USER6> Hard to tell without more information, and probably more runs. Did the code run often enough for the JIT compiler to warm up sufficiently? If you're running in interpreted mode, or only baseline compiled mode, you have other overheads. Also, and this is admittedly something I should not have glossed over: The _reading and writing costs_ of fused maps might be sped up by the factors I mentioned, but in your loops you also have _allocations_ , which have their own costs and can complicate things. And the computation is not free either, though at sufficiently large sizes the memory accesses should dominate sind and tan, I think.

It also matters how this code is compiled exactly. The C# version (I know nothing about C# or how good its compiler is) looks like it must first allocate some kind of dynamic stream, and only when ToArray() is called can it allocate the final array, so there might be extra copying. Maybe the compiler is smart enough to optimize a sequence of arr.Select().ToArray() to allocate a target array of the size of arr right away, I don't know.

Also, the JavaScript version uses a smaller array than the C# version, is that on purpose? 1000000 unboxed doubles are only 8 MB, which is not very big: On the machine I'm typing this on, L3 cache is 6 MB.

My advice would be to run the JavaScript version many times, for many more than 8 iterations, and with sizes increasing stepwise up to a GB or so. Also try replacing the maps with preallocated arrays and hand-written loops that contain only the computations, not the allocations. I know this sounds like I'm trying to give you homework, which I'm not, but benchmarking is hard, and there are many factors to take into account.

<comment><USER6> > And the computation is not free either, though at sufficiently large sizes > the memory accesses should dominate sind and tan, I think.

Looks like I was wrong about this! You might want to retry your experiments with cheaper operations than sin and tan.

I wrote a little C benchmark to test this more:

        #include <stdio.h>
        #include <time.h>
        #include <math.h>

        extern void sinTanSeparate(double *a, double *b, int n) {
            for (int i = 0; i < n; i++) {
                b[i] = tan(a[i]);
            }
            for (int i = 0; i < n; i++) {
                b[i] = sin(b[i]);
            }
        }

        extern void sinTanFused(double *a, double *b, int n) {
            for (int i = 0; i < n; i++) {
                b[i] = sin(tan(a[i]));
            }
        }

        #define N (128 * 1024 * 1024)
        #define RUNS 5

        double a[N];
        double b[N];

        int main(void) {
            clock_t start, end;

            printf("will do %d runs over %zu MB of data\n\n",
                   RUNS, sizeof a / (1024 * 1024));

            for (int i = 0; i < RUNS; i++) {
                start = clock();
                sinTanSeparate(a, b, N);
                end = clock();
                printf("separate: %f sec\n", ((double) end - start) / CLOCKS_PER_SEC);
            }

            printf("\n");

            for (int i = 0; i < RUNS; i++) {
                start = clock();
                sinTanFused(a, b, N);
                end = clock();
                printf("fused:    %f sec\n", ((double) end - start) / CLOCKS_PER_SEC);
            }

            return 0;
        }

Compiling this with gcc -O3 gives:

        will do 5 runs over 1024 MB of data

        separate: 1.461349 sec
        separate: 1.020120 sec
        separate: 1.019002 sec
        separate: 1.019888 sec
        separate: 1.018454 sec

        fused:    1.014774 sec
        fused:    1.014724 sec
        fused:    1.013895 sec
        fused:    1.016440 sec
        fused:    1.013729 sec

So _almost_ no difference, though with enough runs I think this would be significant. Interestingly, although C is not JIT compiled, even here there is a "warmup" effect. I guess these are initial page faults or something.

But if we now comment out <math.h> and instead use some cheap "fake" implementations of in and tan:

        // #include <math.h>
        #define tan(x) (x + 1)
        #define sin(x) (x + 2)

we get very different behavior:

        will do 5 runs over 1024 MB of data

        separate: 0.548558 sec
        separate: 0.154741 sec
        separate: 0.151271 sec
        separate: 0.150542 sec
        separate: 0.151337 sec

        fused:    0.078880 sec
        fused:    0.074742 sec
        fused:    0.078313 sec
        fused:    0.076987 sec
        fused:    0.077729 sec

Here the computation is so cheap that it's really other effects that dominate, and you get a 2x difference.

</comment></comment></comment></comment></comment><comment><USER20> YAGNI

99% of problems one encounters while programming can be solved in C++ with std::vector and functions taking a vector in and producing a vector out. That's my main problem with FP and many other language making bold claims: oversell. That simple fact is that for most computing tasks, you don't meed much more than simple types.

<comment><USER21> Heck, even a turing machine could solve most of these problems.

<comment><USER16> How highfalutin! It's x86 assembly for me!

<comment><USER22> x86 is more complex than a Turing machine.

</comment></comment></comment></comment><comment><USER23> Unfortunately, the author doesn't actually understand functional programming; they think that it has to do with loops and mutability. Also, they cannot get outside of their "I worked really hard for my PhD" mindset for long enough to consider programming as it actually is, rather than as they want to imagine it to be.

<comment><USER24> May I humbly recommend you read the article before leveling a complaint about its content, as at least some of this was clearly addressed in the second section, starting above the fold.</comment></comment>


Lisp: Basically Speaking (1981) [pdf] - <AUTHOR> http://mypage.iu.edu/~rdbeer/Software/BasicLisp/BasicLisp1.pdf

<comment><USER2> Damn that summabitch! I typed that whole monstrosity into my TRS-80 Model III the month that came out and it didn't work! I spent a whole summer debugging and got some things to work but the program never ran right. Granted it might have been the few subtle differences between M1 & M3 but still, my first frustrating experience with hacking someone else's code. I was 17, what a waste of an irreplaceable summer.

Don't suppose any body has a text file version? would still like to copy & paste it into QBasic and finally make it work right. Just outta pure spite.

</comment><comment><AUTHOR> From Randall Beers main page:

 _"This one is just for fun. When I first learned Lisp in 1981, I did so by reading Winston and Horn's book and writing my own Lisp interpreter. The interpreter was written in Basic on the only system I had access to at the time: a TRS-80 Model I. This interpreter eventually ended up as part of a series of three articles on Lisp that I wrote for 80 Micro, a TRS-80 hobbyist magazine. The first part of the series, which contains the source code for the interpreter itself, is included here. Note that the listing has all optional spaces removed so that I could fit both the interpreter and 1100 (!) cons cells into 16K of memory."_

<http://mypage.iu.edu/~rdbeer/>

</comment><comment><USER3> I think that the what this really shows is that having a common language you can expect to work on all installs shortens the feedback loop for obtaining and using small programs by leaps and bounds.

Of course, having to type it in from a magazine is quite a barrier.

<comment><USER4> The "Load 80" icon in the upper-right corner of the first page indicates that the code was on the issue's counterpart cassette tape ... which could be purchased separately.

</comment></comment><comment><USER5> I remember reading this when it was new, and typing it in. Not very usable as a Lisp programming environment, running doubly interpreted on a 1.78MHz 8-bit CPU. But, it was certainly nifty.</comment>


Show HN: Extension for creating learning paths, newsletters from your bookmarks - <AUTHOR> https://chrome.google.com/webstore/detail/joosephcom/ifjdaomkhaojkoilmenjgijobcfihcij/reviews?hl=en <comment><AUTHOR> Hey HN,

We're Fırat and Tolga, we are the builders Joospeh. We were frustrated by dozens of tabs in our browsers and endless search for high-quality articles and videos. At some point we were so frustrated by the fluff marketing content and piles of tabs in our browsers, we decided to create a better way to use the internet.

We come with this idea of an online directory for organizing and discovering great learning materials through collections (like learning paths, newsletters etc.). Basically, you can save and organize your articles,videos etc. in your library and discover and share collections as learning paths, newsletters etc.

You can easily search and filter any of your bookmarks from your library. Also, you can weekly newsletter from your recent bookmarks and the collections you have followed

Any of the content can be ranked by liking or disliking, also your likes and dislikes personalize your suggestions so you can find easily great articles and videos about the subjects that matters to you.

Now today we're launching our extension, here's what you can do with it:

\- Bookmark any link to your favorites or your collections (like folders)

\- Create new collections from extension

\- Check rating of a content

\- You can like and dislike any content from extension

I hope you like it. Waiting for your feedback on the comments :)</comment>


Transparency Regarding Data Security - <AUTHOR> https://www.digitalocean.com/blog_posts/transparency-regarding-data-security <comment><USER2> > At no time was customer data "leaked" between accounts. This would require > that a user explicitly not scrub their volume after destroying their server; > in this instance data would be recoverable and should be considered not > sensitive.

For fuck's sake, now you're just _lying_.

Not scrubbing has been the default - a user doesn't have to "explicitly not scrub". A simple unadorned "destroy" api command creates the circumstance in which the data is not destroyed, but made available to others.

If no customer data leaked between accounts, how was I able to read someone else's stack traces[1], web logs[2], and customer tokens[3] on a freshly provisioned VM?

What follows is evidence to directly support the claim that you're lying through your teeth to save face after having been caught being grossly irresponsible with your customers' data.

Please start acting like professionals.

[1] [http://i.imgur.com/TMp2kdf.png](http://i.imgur.com/TMp2kdf.png)

[2] [http://i.imgur.com/WLv2qSE.png](http://i.imgur.com/WLv2qSE.png)

[3] [http://i.imgur.com/fJOxRN9.png](http://i.imgur.com/fJOxRN9.png)

<comment><USER3> You're being ridiculous. They made a conscious decision to increase performance and the lifetime of their SSD drives by turning `scrub` off by default. If you enjoy DigitalOcean's prices (starting at $5), there must be some balance and optimizations to continue to run a business.

In the control panel, its quite clear, and easy to simply check scrub on. I agree that this change on the API front should have been articulated. However, Moisey acknowledge their mistake, let's move past it.

<comment><USER4> No one would intentionally make the choice of having their data shared with other users, and if that is a business model they rely upon they need to find another.

This is a profound, never-ever-should-happen gap in data security, and it is yet another instance where DigitalOcean comes out looking remarkably amateurish.

Conversationally, I would have expected their hypervisor to have been doing thin provisioning: That until you write data to a block the block is 0s (having no provisioning on actual storage). And if you write 0s, that too isn't actually provisioned on real storage. And when you write actual data, well that is what the block now contains.

<comment><USER5> >No one would intentionally make the choice of having their data shared with other users, and if that is a business model they rely upon they need to find another.

Unless they do not care if their data is shared, and would be willing to let it be shared for a reduced cost.

<comment><USER4> If there were a box that said "share your data" that you had to click, I cannot imagine the users who would click it. Further no one was ever told that the value proposition of DigitalOcean relies upon a complete and utter lack of data integrity.

That is a dishonest angle. It is not in any way how this has been sold. Further you don't get a discount for choosing not to scrub, but instead essentially get tricked into it by the magical law of defaults.

<comment><USER5> I do not mean to say that it was justified in this particular case. I was responding to the idea that all products must be secure, even for users who do not want to pay for the added security. Also, it is not so much that I think a service should offer a discount for handling your data insecurely (although in this particular case, the insecure handling is actually cheaper on a per user basis). Rather, there is a place in the market for products that are not secure, and therefore do not have to pay to develop and maintain the security aspects of the service.

</comment></comment></comment></comment></comment></comment><comment><USER6> The fact that DigitalOcean have no idea how to secure customer block devices makes me wonder what other security issues they are unaware of.

</comment><comment><USER7> I am not their customer, but I admire their acceptance of their mistake, "The second mistake that we made was not notifying our customers that use the API"

</comment><comment><USER8> Either digital ocean actually has real SSd disks for each vm or something is deeply wrong.

A new VM should have a new disk file.

When I create a vm I create a vmdk file that represents the disk. When I delete the vm I also delete the vmdk file. If I then create a new vm I would use a new vmdk file.

Apparently that is not the way digital ocean does things, but how do they do stuff then?

<comment><USER9> This was covered in the previous thread: [https://news.ycombinator.com/item?id=6983270](https://news.ycombinator.com/item?id=6983270) DO may not be using file-based storage because it is slower.</comment></comment>


Show HN: Tweetpleth - Where are people tweeting? - <AUTHOR> http://tweetpleth.herokuapp.com/

<comment><AUTHOR> A final project for a class I took at GT (CS 4460: Intro to Info Vis). Thought it was viable as a an actual website since its realtime, so I put it up using heroku's free service.

<comment><USER2> Pretty cool - good work!

I've been working with similar data and trying to find good ways of displaying it. Would be very interested in seeing the source on Github if you still plan to release it. Are you using Twitter's `place` attributes from their "Streaming API" filter endpoint?

<comment><AUTHOR> Yeah i'l get on that soon. I'm using the location filter to only get tweets in the US. 'locations': ['-180','15','19','72']}

<comment><USER2> Still considering doing this?</comment></comment></comment></comment>


(Sean Parker) Taking a Risk, and Hoping That Lightning Strikes Twice - <AUTHOR> http://dealbook.nytimes.com/2012/07/23/taking-a-risk-and-hoping-that-lightning-strikes-twice/ <comment><USER2> Very good article. Very few entrepreneurs have done it successfully more than once.</comment>


Why Living in a City Makes You More Innovative - <AUTHOR> http://blogs.smithsonianmag.com/ideas/2013/06/why-living-in-a-city-makes-you-more-innovative/ <comment><USER2> "...in certain very specific areas." I grew up near quite rural areas and a certain level of mechanical innovation was expected. You need to use the power take-off on a tractor to run an irrigation pump temporarily until you can buy a new one? Break out the welder. The snow plow broke beyond reasonable repair? Break out the welder.

For further evidence, watch any TV show making fun of rednecks. You'll typically see things like an excavator used to create a waterfall for everyone to swim through, or someone fastening a lawn chair to a beefed-up, self- propelled push lawnmower to make a riding mower.

City life very well might increase innovation in certain fields. I'd posit that country life increases innovation just as much, but in different areas.

<comment><USER3> > City life very well might increase innovation in certain fields. I'd posit > that country life increases innovation just as much, but in different areas.

Innovative people are everywhere - the benefit that cities offer is that for every unit of space you have a greater number of people, thus you're likely to find a few intelligent, like-minded people condensed into a smaller area. They become easier to find an collaborate with. To use a metaphor: you have a better chance of picking up in a bar if there are 50 members of the opposite sex than 5.

<comment><USER4> But not if the number of same-sex competitors increases by the same amount.

</comment></comment></comment><comment><USER5> This type of research is interesting and valuable. However, I can't help but wonder how much has changed over the last 15 years. The fact that you and I are discussing this article on websites like HN seems to be a great example of technology overcoming some of the barriers of location. A motivated person can easily find ways to interact and form ties. Maybe the impact of geographic location is higher among those less motivated.

</comment><comment><USER6> Oh look, a fluffy article about how living in a city makes you more innovative. On a website primarily used by city dwellers that pride themselves on being innovative.

<comment><USER7> _On a website primarily used by city dwellers ...._

How do you know that?

<comment><USER6> Because San Francisco is a city.

</comment></comment></comment><comment><USER8> I have City associated mostly with high cost of living and lower life standard. In City I would probably spend 60+ hours/week in office and on commute just to break even.

Outside of City a can have big house for my family, spend 3+ hours/day on my hobbies. And even make enough savings for 1 year runway for my startup :-)

<comment><USER9> What about the environment? What about thousands of people getting killed by our government to acquire energy sources to fuel your house in the burbs?

<comment><USER8> You are barking at wrong person. I live in Ireland and drive 15 years old car. Also I doubt that large cities are powered by sunshine and rainbow.

<comment><USER9> I am 'barking' at the person who chooses to live in the burbs. I dont care where you live or what car you drive. Has nothing to do with you.

<comment><USER8> I still do not get how is large house at suburb related to environment.

<comment><USER10> Living in a large house in the suburbs has a far greater environmental impact than living in an apartment in a city by basically any metric you care to measure.

<comment><USER11> except that cities are incredible, giant islands of heat.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> i would never say that living in a city or outside a city would make someone more or less innovative.

You deal with different problems in and outside cities. I think a mix of both is the best you can get to get more Innovative!

When i Study i live in a 2+Million City but when i don't study i life in a village with 50+ people.

You really cant compare them both...

It's like people trying to say which programming language by benchmarks... yes go is faster then ruby in some stuff but does this only makes go better? nobody can say because it is a matter of problems to solve and taste of the human that will write the code.

just my 2 cents

</comment><comment><USER13> I'm a country boy at heart, was born in coal-country appalachians. But I live in Brooklyn now and it's great for my love of software. Everyone here is a go- getter and it inspires me. I have met so many others I can work with on side projects, it becomes quite impossible to ignore everyone and it drives you forward. I've seen many idle conversations lead to great things simply through circumstance.

</comment><comment><USER14> Nope. Solitude is "the #1 habit of highly creative people". [http://zenhabits.net/creative-habit/](http://zenhabits.net/creative-habit/)

Big cities are full of noise and distractions.

<comment><USER15> Attempting to refute an article about a scientific study by linking to a collection of quotes from Felicia Day and Franz Kafka doesn't seem like a very solid methodology...

</comment></comment><comment><USER16> It also depends on the type of inhabitants in the city. Pre-war Vienna, Budapest, and Berlin were particularly innovative. Today Berlin is the most innovative city in Germany.

In the US, New York City/Manhattan and parts of Brooklyn near Manhattan are particularly innovative, again because of the type of inhabitants it attracts. San Francisco, SV, LA, Austin, Seattle, are all innovative in different ways.

<comment><USER17> Do you have evidence that Berlin is the most innovative city in Germany, or did you just derive this stunning conclusion from your gut feeling?

</comment></comment><comment><USER18> Correlation does not imply causation.

Relevant XKCDs:

[http://xkcd.com/552/](http://xkcd.com/552/) [http://xkcd.com/852/](http://xkcd.com/852/) [http://xkcd.com/1138/](http://xkcd.com/1138/)

</comment><comment><USER19> Paul Graham wrote on this same subject ([http://paulgraham.com/cities.html](http://paulgraham.com/cities.html)). A bit more anecdotal, but convincing nonetheless.</comment>


Sex robots may cause psychological damage - <AUTHOR> https://www.bbc.com/news/science-environment-51330261 <comment><USER2> Yeah, and porn leads to rape, rock music leads to devil worship, violent games lead to school shootings...

This has "politicized moral panic" written all over it.

</comment><comment><USER3> DON'T DATE ROBOTS!</comment>


Ask HN: Are there any free, worldwide electronic medical records (EMR)? - <AUTHOR>

<comment><USER2> What exactly do you mean by worldwide electronic medical records?

<comment><USER3> I think the OP means EMR/EHR software. Wikipedia has a pretty comprehensive list at [http://en.wikipedia.org/wiki/List_of_open- source_healthcare_...](http://en.wikipedia.org/wiki/List_of_open- source_healthcare_software#Electronic_health_or_medical_record)

I am in the health IT space and VistA ([http://www.ehealth.va.gov/VistA.asp](http://www.ehealth.va.gov/VistA.asp)) is likely the most widely used in terms of patients stored. I hear [http://www.open-emr.org/](http://www.open-emr.org/) is the most developer friendly.</comment></comment>


All-In-one WordPress Website Solutions - <AUTHOR> http://artbees-themes.com

<comment><AUTHOR> After three months of research, brainstorming, intense working and coding, the portal we have been dreaming about since we first entered the WordPress industry has finally been born. Artbees-themes.com is an innovative all-in-one portal offering the best website solution for every niche with new templates, premium support, everything about our fabulous themes and lots more exclusive stuff only available to our users. Start exploring our innovation on artbees- themes.com!

See how Artbees Themes compares to traditional website solutions: [https://www.youtube.com/watch?v=FM4YXReMAp0](https://www.youtube.com/watch?v=FM4YXReMAp0)

We are three co-founders from Artbees Ltd. Artbees-themes.com is in beta phase now.</comment>


An experiment in porting the Android init system to GNU/Linux - vezzy-fnord http://blog.darknedgy.net/technology/2015/08/05/0-androidinit/ <comment><AUTHOR> Would love to see the Android init system replaced with a stripped down version of systemd and binder replaced by kdbus someday.

<comment><USER2> It will never happen because both are covered by the GPL. You're more likely to see Google strip out the Linux kernel and replace it with something else.

<comment><USER3> Binder is in the kernel already so it's also GPL. One of the kernel devs has written a summary as to why it's so different from kdbus, to the point where I can't see Google ever adopting kdbus:

[http://kroah.com/log/blog/2014/01/15/kdbus- details/](http://kroah.com/log/blog/2014/01/15/kdbus-details/)

</comment></comment></comment><comment><USER4> Very cool article! I love that people are motivated enough to do cool little projects (which often turn out not being that little) 'just because'.

Unfortunately I don't have the motivation to take on stuff like this (despite having the time) :/

</comment><comment><USER5> I googled Tube Snake Boogie and was not disappointed.

<comment><USER6> I googled John Stuart Mill after first listening to Tube Snake Boogie and I _was_ disappointed.</comment></comment>


What Elon Musk Should Learn from the Thailand Cave Rescue - <AUTHOR> https://www.nytimes.com/2018/07/14/opinion/sunday/elon-musk-thailand-hubris.html <comment><USER2> If he'd offered logistic support and stopped there, he'd have earned more kudos than gaming, and then complaining. I'm betting that palletized field -deployable tesla batteries would have a role if they had thought about it.

I believe a few australian old-time geeks who have ham licences double as emergency radio contact people, offer logistics and intermediary services for fitter, younger people. Works well. I'd have looked to what my company had in that skillset.

</comment><comment><USER3> Decent attempt to say what I've been saying. These Billionaires think they are John Wayne or Bruce Wayne (or worse).</comment>


The Story of Frontier - <AUTHOR> http://davewiner.userland.com/historyOfFrontier

<comment><USER3> Frontier was amazing. Outliner, language, IDE, object database, system and inter-application scripting. If I recall correctly, it was the first OSA scripting environment, even before AppleScript. Early to adapt to the web, Frontier became web server and provided the first through the web content management system I every used.

<comment><USER4> I remember the thrill of getting the 1.0b5 floppies in the mail - <USER2> stuff, indeed.</comment></comment>


Peter Thiel's Embrace of Trump Has Silicon Valley Squirming - <AUTHOR> http://www.nytimes.com/2016/07/21/technology/peter-thiels-embrace-of-trump-has-silicon-valley-squirming.html <comment><USER2> Of course it has people squirming and for good reasons but it is not surprising given Thiel's previous rhetoric.

Like Trump, Mr Thiel is in it for naked self-interest.

If the Donald gets in he has a "bat phone" to the white House. How many SV venture capitalists got one of those? I have the feeling that Thiel is one of those people who don't give a damn and are willing to win "ugly" as long as they win.

Any Rand enthusiasts... There's always something not-quite-right about them.

<comment><USER3> thiel, trump, silicon valley ... plenty to talk about, and yet, all you've got are some unfounded opinions to share with us.

<comment><USER2> Indeed, I can't fathom why anyone would be enchanted by The Donald, all I can do is guess!

Why do you think Thiel is doing this? Is it because he actually believes what comes out of the orange one's mouth? Pfft!

</comment></comment></comment><comment><USER3> "The danger, then, is that not only could Mr. Thiel's public embrace of Mr. Trump backfire on him, but it could also become another plot point in the larger story line that Silicon Valley is exclusionary and narrow-minded and that its innovations are advancing global inequality."

silicon valley "squirming" over one of their own supporting trump is PROOF of its "narrow-minded"ness.</comment>


Google to intentionally brick all Revolv home hubs May 15 - <AUTHOR> https://medium.com/@arlogilbert/the-time-that-tony-fadell-sold-me-a-container-of-hummus-cb0941c762c1#.d776lbxx7 <comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=11423411](https://news.ycombinator.com/item?id=11423411).</comment>


Show HN: A cross-platform pyQt numerical methods toolkit. (Open Source) - <AUTHOR> https://github.com/HaoZeke/pyQtNumSim/releases/tag/v0.01 <comment><AUTHOR> I'm hoping for suggestions for a name and future updates... I've got the ODE solver planned to have plots as well..</comment>


Easily Create Complex Workflows with AWS Step Functions - <AUTHOR> https://agilevision.io/blog/serverless%20architecture/2017/02/12/easily-create-complex-workflows-with-aws-step-functions.html <comment><USER2> My team has been using Step Functions for a couple of months now to orchestrate application deployments. It is way better than our old SWF-based solution - I especially love how easy it is to implement dynamic backoff between states.

Biggest gripe: updating a state machine is still not supported (you can manage state machines through CloudFormation now, but I believe it updates with replacement, meaning the state machine gets blown away and replaced by a new one with the same name.) We've had to roll our own versioning to get around this.

If you'd like to know more about how we are using Step Functions, as well as some specific benchmark comparisons against our old SWF architecture, feel free to check out this post: [https://forrestbrazeal.com/2016/12/29/serverless- workflows-o...](https://forrestbrazeal.com/2016/12/29/serverless-workflows-on- aws-my-journey-from-swf-to-step-functions/)

<comment><USER3> Step functions has pre-defined parallel states, but have you come up with a solution for dynamic parallel states?

Such as: a parent state's output will determine the size of the input to pass on to multiple copies of identical parallel state children (the number of which is determined by the parent's output). These get the same input or a specific slice of the same input from their parent.

I guess these could be created dynamically within the parent, then deleted afterwards. Not as clean as declaring this in the states markup though.

<comment><USER2> Right now, we have to coordinate our own batch processing, since dynamic parallel states aren't supported, as you note. I've actually asked the Step Functions team about this feature, and I know I'm not the only person to do so, so hopefully it's on their roadmap :)

</comment></comment></comment><comment><USER4> I am actually starting to look into creating a batch workflow, which would be very suited for this (or SWF). However, I would like to know what the alternatives are that are non-amazon specific. Are there any open source projects that cover this space of defining workflows?

</comment><comment><USER5> Step Functions is a massive improvement over SWF. As the author said, there are major differences and areas for improvement. Lifecycle management of state machines is pretty poor, especially considering that deleting state machines is hit-or-miss. You'll need to version your state machines yourself--which is still less painful than SWF versioning. Also, because there are no "domains" as in SWF, development can be more of a pain. The last SWF feature that would let me drop SWF completely would be signaling ("sleeping" a workflow until an event occurs).

<comment><USER6> I have been awaiting for the wait-for-signal feature too.

<comment><USER7> I've worked around this with Lambda tasks that write a result to a presigned S3 URL and a wait loop that polls it (like CloudFormation custom resources do) but it would be nice if this was built-in.

<comment><USER6> [http://i.imgur.com/A5QnFkO.png](http://i.imgur.com/A5QnFkO.png)

<comment><USER7> Sorry, that's what I meant.

<comment><USER6> Have you tried to handle it as an error and retry?

      Retry": [ {
        "ErrorEquals": ["S3resourceNotFound"],
        "IntervalSeconds": 1,
        "MaxAttempts": 2,
        "BackoffRate": 2.0
      },

      "ErrorEquals": ["OtherErrorName"],
        "IntervalSeconds": 1,
        "MaxAttempts": 2,
        "BackoffRate": 2.0
      }]

Simpler.

<comment><USER7> I couldn't figure out how to return a named error from a python2.7 Lambda function; as far as I could tell it would always return UnhandledError. How'd you do it?

<comment><USER2> I don't think you can set custom error names from a Lambda function:

"Important Custom Error Names, like those shown above ("ErrorA", "ErrorB", etc.) can be generated by an Activity, but not Lambda Functions. (See "FunctionError" field in the Lambda Response Syntax for more information"[0]

[0] [https://docs.aws.amazon.com/step- functions/latest/dg/concept...](https://docs.aws.amazon.com/step- functions/latest/dg/concepts-error-handling.html)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> The blog post talks about triggering the workflow off an upload to S3, but neglects to discuss the critical step around the fact that you need a Lambda function to trigger the step function state machine (if you have a look at the github it's there)

I wish step functions just supported the triggers directly tbh, i.e. have the ability to invoke a state machine on an S3 put, passing the event information to the first step in the machine.

<comment><USER2> Step Functions does integrate directly with API Gateway now. [0] I'm not sure if that helps your specific use case, though.

[0] [https://aws.amazon.com/about-aws/whats-new/2017/02/amazon- ap...](https://aws.amazon.com/about-aws/whats-new/2017/02/amazon-api-gateway- integration-with-aws-step-functions/)

</comment></comment><comment><USER9> Very much looking forward to an upcoming project with Step Functions at $DAYJOB. I suspect there are many use cases for turning complicated intersections of batch jobs and blobs of code into discrete, independent tasks like SFN requires.

Particularly interested in composing higher and lower level state machines for better separation of concerns, but haven't yet come up with a compelling use case :)</comment>


An Interview with Stanley Kubrick (1969) - <AUTHOR> http://www.visual-memory.co.uk/amk/doc/0069.html <comment><USER2> If you enjoyed this you should watch _Stanley Kubrick 's Boxes_:

[https://en.wikipedia.org/wiki/Stanley_Kubrick%27s_Boxes](https://en.wikipedia.org/wiki/Stanley_Kubrick%27s_Boxes)

<comment><USER3> this is a very recent superbly made documentary: Kubrick Remembered ([https://www.youtube.com/watch?v=Zhn- nXwpHuc](https://www.youtube.com/watch?v=Zhn-nXwpHuc))

</comment></comment><comment><USER4> "If you were nineteen and starting out again, would you go to film school?

The best education in film is to make one. I would advise any neophyte director to try to make a film by himself"

I give same advice to aspiring developers.

</comment><comment><USER5> If anyone else was wondering, the film they're talking about in the beginning of the interview, _Napoleon_ , was never made:

> _Napoleon_ was eventually canceled due to the prohibitive cost of location > filming, the Western release of Sergei Bondarchuk's epic film version of Leo > Tolstoy's novel _War and Peace_ (1968), and the commercial failure of > Bondarchuk's Napoleon-themed film _Waterloo_ (1970). > ([https://en.wikipedia.org/wiki/Stanley_Kubrick%27s_unrealized...](https://en.wikipedia.org/wiki/Stanley_Kubrick%27s_unrealized_projects#Napoleon))

<comment><USER6> By the way, if you get a chance to see Bondarchuk's 6 hour version of _War and Peace_ , don't miss it. It's epic, beautiful and highly experimental. It's worth seeing just for the aerial shots during the war scenes.

<comment><USER7> Also _Waterloo_ for that matter. No CGI in 1970.

From Wikipedia [1]:

"To recreate the battlefield authentically, the Soviets bulldozed away two hills, laid five miles of roads, transplanted 5,000 trees, sowed fields of rye, barley and wildflowers and reconstructed four historic buildings. To create the mud, more than six miles of underground irrigation piping was specially laid. [...]

The battle sequences of the film include about 15,000 Soviet foot soldiers and 2,000 cavalrymen as extras and 50 circus stunt riders were used to perform the dangerous horse falls. It has been joked that Sergei Bondarchuk was in command of the seventh-largest army in the world. [...] A selected 2,000 additional men were also taught to load and fire muskets."

[1] [https://en.wikipedia.org/wiki/Waterloo_(1970_film)](https://en.wikipedia.org/wiki/Waterloo_\(1970_film\))

</comment></comment></comment><comment><USER8> Room 237 has some compelling evidence pointing to what might have become of Stanley. Anyway, connecting with great souls through their works is one treasure this baleful world of ours can still offer. Thanks for posting this.

</comment><comment><USER9> It's disappointing to find out that _The Killing_ didn't turn a profit. It's a great film.

</comment><comment><USER10> 2001: A Space Odyssey is the greatest movie ever IMO.

<comment><USER11> +1 See it in 70mm if you can. :>

<comment><USER12> I'm hoping there will be some opportunities around the 50th anniversary of its release, April 3, 2018. I've actually been waiting for that for years. :)</comment></comment></comment>


Show HN: An API To Detect Porn Content  - <AUTHOR> https://www.mashape.com/nsure-io/porn-filter

<comment><USER2> Considering that Google had to train 10,000 computers to identify cats in pictures, Porn detection is damn near impossible to do. [[http://www.wired.co.uk/news/archive/2012-06/26/google- brain-...](http://www.wired.co.uk/news/archive/2012-06/26/google-brain- recognises-cats)]

So i tried this API:

A picture of an african lady with her legs spread wide open.

result: "score": 0, "resultcode": 0, "porn": false

second pic was 2 white couples fornicating: "score": 92, "resultcode": 1, "porn": true

third pic - african lady with breasts exposed: "score": 0, "resultcode": 0, "porn": false

Maybe it only works on light colored people.

I won't even bother with a picture where there may be some fellatio.

I used Face.com's API prior to it being shutdown to try and detect porn by measuring the % area taken up by a persons face. This sounded slightly feasible since a head shot should not be porn? But a close up of a BJ or a facial...

The only solutions for now is to manually moderate or use crowdsourced solution like <http://crowdflower.com/rtfm>

Side note: There is a free 25 API calls per day option, but you have to enter a credit card. Suck

</comment><comment><USER3> I sorta want to build a porn site with content generated by a proxy to this API while offering the API at a slightly lower price (maybe the same? not sure). The idea being, people agreeing to use my API also agree to give me license to the image, which I then use to power a porn site.

Probably too much work to bring to market.</comment>


0x7FDE623822FC16E6 : a magic constant for double float reciprocal - <AUTHOR> http://www.pvk.ca/Blog/LowLevel/software-reciprocal.html <comment><USER2> If you want to compute lots of reciprocals, don't mind some rounding errors, and have reasonable-sized values, you can compute them with one reciprocal and a few multiplications, e.g.,

      tmp = 1 / (a * b)
      oneovera = tmp * b
      oneoverb = tmp * a</comment>


Addiction: The View from the Rat Park (2010) - <AUTHOR> http://www.brucekalexander.com/articles-speeches/rat-park/148-addiction-the-view-from-rat-park <comment><USER2> Here is the same study in an easily consumable form (5 minute animated video): [https://www.youtube.com/watch?v=ao8L-0nSYzg](https://www.youtube.com/watch?v=ao8L-0nSYzg)

I'm not sure I fully buy the idea that addiction is primarily a result of social isolation as opposed to chemical properties. But if incorporating socialization into rehabilitation treatment makes it faster or more effective, then I'm all for it! We too often stigmatize drug users and place all the blame squarely on the individual instead of considering the context in which that addiction developed.</comment>