Ask HN: accessing my deceased relative's iPhone - <AUTHOR>

I'm looking for advice/suggestions on how to retrieve the contact list from a (distant) relative's iphone. Tragically, this person died without letting the rest of the family know who their friends and associates were, and the iPhone is literally the best the family has to work with. Of course, the phone is password protected, or there would be no problem.
Is this something Apple will do if they are provided with the right documentation?  Do they have a service mode for the iphone or a special cable or something?
Is this something the police are able to handle?
Finally, is this something I can do?  My thought is to use iTunes to create a backup of the phone, then dive into the backup using strings.  Once I locate some promising strings, I would use a hexeditor to find the offset, and look for plaintext contact information.
Any thoughts or references are much appreciated.  Thanks, HN! <comment><USER2> By using a recent distribution of Linux you can actually mount the phone as a removable device and browse the filesystem.

An article that talks about it: [http://www.zdnet.com/blog/hardware/ubuntu- lucid-lynx-1004-ca...](http://www.zdnet.com/blog/hardware/ubuntu-lucid- lynx-1004-can-read-your-iphones-secrets/8424)

It doesn't specifically mention contact data, but it's probably stored in some unencrypted database which should be easy to look up if you can get in. IIRC, the stock Apple messaging app was back-ended with SQLLite so you might just be in luck!

EDIT: In fact, I'm going to try this on my iPod Touch (3rd Gen) when I get home. I'll let you know how I get on :)

<comment><USER2> Mounted the iPod, grepped around some semi-promising looking files and couldn't find anything really :\

Perhaps you could try making a dummy Google account and setting up the iPhone contacts sync in iTunes - then view the contacts within GMail. IIRC, that didn't require me to use the pin code but it may have required that the phone be synced with it's "parent" copy of iTunes.

Best of luck, sorry I couldn't be of more help.

<comment><AUTHOR> Thanks - this works for accessing lots of other data on the device, however, so it's really neat!

</comment></comment></comment><comment><USER3> This may help: <http://oreilly.com/catalog/9780596153595>

It requires that the phone had at one point been jailbroken, for the most part, unfortunately. If you're in the NJ area, I have a copy laying around somewhere...

</comment><comment><USER4> Trying all the combinations 10000 shouldn't take all that long.

<comment><USER3> The device locks you out after a certain number of attempts.

<comment><USER5> More importantly, it will delete _all_ data on the device after 10 attempts if the user was paranoid enough to set this option. I am.

</comment></comment></comment><comment><AUTHOR> Thanks to everyone. I actually didn't get in to the phone, and I'm kindof perplexed. I have returned the phone to my relatives, but it's still a mystery what is on it.</comment>


They Write the Right Stuff (1996) - <AUTHOR> http://fastcompany.com/28121/they-write-right-stuff/

<comment><USER2> The road to hell is paved with good intentions. The context in which the space shuttle program is developed has almost no relation to what most developers face in the software world at large, a fact that the article admits toward the end.

Lets see:

* 35 million dollar budget a year.

* developing software that only has "one job", regardless of how hard that job is.

* In other words, no evolving software to meet the demands of an evolving world. Fixed requirements 'forever' (as much as forever can be in software terms). No one at NASA is going "hey, I know we developed this for earth orbit but lets alter the design and try use 90% of the same code to go to the moon as well earth orbit. We'll save time and money." (Unlike SpaceX to some extent)

* irreversible decisions. safety critical etc.

* Due to lavish budget and safety critical risks, reduced schedule pressure. No one wants to be on the other end of a independent report concluding that long hours resulted in sloppy code that got astronauts killed.

The above often even doesn't apply to most relatively expensive (in the millions) non-safety critical military and government software. Watch the Pentagon Wars for a hilarious illustration that comes closer to the reality that software engineers face in those environments.

Its a scandal that space shuttle software is being used to push pseudo- scientific process ideology. Its often claimed that SEI developed CMMI process using the space shutte software process as a blueprint. CGI Federal was CMMI Level 5 on paper and QSSI was CMMI Level 3. Meaning that the companies responsible for the most public software scandal in recent US history that is healthcare.gov wasted something like $300 mil at t0 writing the "wrong stuff" while claiming to do it "the right way".

Enforcing abstract processes instead of dealing with case-to-case facts reminds me of this quote:

"We are all capable of believing things which we know to be untrue, and then, when we are finally proved wrong, impudently twisting the facts so as to show that we were right. Intellectually, it is possible to carry on this process for an indefinite time: the only check on it is that sooner or later a false belief bumps up against solid reality, usually on a battlefield." \--George Orwell

Contrast all this with Elon Musk's thoughts on Process:

"Now I have to tell you something, and I mean this in the best and most inoffensive way possible: I don't believe in process. In fact, when I interview a potential employee and he or she says that "it's all about the process," I see that as a bad sign.The problem is that at a lot of big companies, process becomes a substitute for thinking. You're encouraged to behave like a little gear in a complex machine. Frankly, it allows you to keep people who aren't that smart, who aren't that creative."

>when agile developers/hackers/programmers grow up they end up doing design up front.

er, what? The agile push came people who were reacting against creating pages of useless design up front documentation that was Dead On Arrival as soon as it was written. People in general become more capable in design up front as their knowledge of the domain grows, but that too depends on context. I'm not sure how valuable design up front would be to even an experienced software engineer who is faced with a project in a programming language he hasn't worked with and a customer domain and platform he doesn't know....

related, SpaceX Lessons Learned: [http://lwn.net/Articles/540368/](http://lwn.net/Articles/540368/)

<comment><USER3> " _The agile push came people who were reacting against creating pages of useless design up front documentation_ "

er, what? The agile push came from people who saw an opportunity to make money [1]. To understand that you need to understand both the advantages of waterfall, it's disadvantages, and how those disadvantages were mitigated. Documentation is but a single (and pretty minor) aspect of it.

The biggest single issue with waterfall is also is biggest advantage - segmentation (what Barry Boehm called segments or stages of a project). Stages follow each other sequentially. Requirements analysis follows inception, design follows requirements analysis, development follows design, test development, and so forth.

The advantage is that it is predictable (ironically, agile's biggest _dis_ advantage). It's disadvantage is that it's crazy expensive to reverse the sequence, i.e. go from test back to dev, from dev back to design, and so on.

The mitigations back in the early 80's were to prototype (fail fast) and to turn a single protracted release into many smaller releases (what became known as the spiral model) - aka fail often. In amongst all of that TDD happened, and someone decided to turf documentation because everyone hates doing it anyway.

eXtreme programming came along and gave protyping and iterative releases a shiny new badge. Pair programming wasn't for everyone, so someone removed that, added daily standups and gave it a shiny old name (scrum was first applied to product development in the early 80's and formally documented in '86[2] - it was nothing like what it is today).

Oh, and modern agile processes contract release cycles even more.

Note that there are other intrinsic (requirements almost always missing/incomplete, stages produce communication gaps, and as you mention, documentation) and extrinsic issues (it's a pm methodology, not a dev methodology) with waterfall.

[1] [http://www.infoq.com/articles/agile-teenage- crisis](http://www.infoq.com/articles/agile-teenage-crisis)

[2] [https://www.wittenburg.co.uk/Entry.aspx?id=dce9dde8-d770-47c...](https://www.wittenburg.co.uk/Entry.aspx?id=dce9dde8-d770-47c2-ad66-937cfabadb59)

<comment><USER2> _" The agile push came people who were reacting against creating pages of useless design up front documentation"

er, what? The agile push came from people who saw an opportunity to make money [1]._

There are only four items in the Agile Manifesto. The second item specifically highlights documentation cost overhead of traditional methods as a major grievance: "Working software _over comprehensive documentation_ " (see also [1]). I don't think money is a differentiating factor, we're talking about the software _business_ in the end after all. If you're referring to process snakeoil marketing, I'm against that no matter which side is doing it. I was responding to your assertion that software developers go from "agile" to "design up front" as they "grow up". My view is that the people that began popularizing the agile term were in fact "grown up" programmers. Are we talking about different things when we talk about design? What is the output of "design up front" in the traditional sense if not documentation and diagrams? (for example, see the military standards and ISO standards for what's required for detailed design)

I don't see anything objectionable in the descriptions you give, although I don't view the waterfall process as being predictable in any meaningful sense. Its only predictable in so far as its underlying assumptions hold. And in the software world at large such assumptions (fixed unchanging requirements for example) rarely hold. My claim is that circumstances for the space shuttle software is the exception, not the rule.

[1] [http://davidfrico.com/rico08e.pdf](http://davidfrico.com/rico08e.pdf)

<comment><USER3> Seems we're not really disagreeing about the reality. We do seem to have different... interpretations, maybe?

" _The second item specifically highlights documentation cost overhead of traditional methods as a major grievance_ "

Comprehensive documentation may be a major grievance, but it is pales in actual impact on the organisation, team or project when compared with the extortionate cost of discovering a design error during the test phase.

" _Are we talking about different things when we talk about design?_ "

Two answers. First one is yes, I think we're talking about the same thing. Design in the sense that I use it is system design, or architecture. And yes, in a waterfall world that output typically is documentation + diagrams.

Second answer? Design how I do it doesn't involve documentation at epic war- and-peace proportions. A diagram can be _very_ useful when communicating complex designs to external (to the team) stakeholders. A one-pager with VLAN descriptions and IP addresses can be helpful to a pen tester. However, in my world it's about a plan -

\- What's the availability target, and how will it be met?

\- Is the database relational, document-based, or are we using a lambda architecture? Justification?

\- What's the dev plan? I.e. what feature dependencies exist, and how will they be prioritised? Consider for example a client app that communicates with a USB device. Initially a simple web site might be enough, but ultimately you need to choose between a native app; a daemon that bridges USB and browser via HTML websocks, or a daemon that bridges USB and browser via web site.

" _although I don 't view the waterfall process as being predictable_"

It is extremely predictable in that phases are sequential, and you know exactly which skills are required for each phase. You'd use a business analyst to elicit requirements, and you'd not use a tester to write code. That means you can schedule resources across projects horizontally, instead of leaving them on one project until complete.

You mention "in any meaningful sense", and you're very, very correct to include that. The point is that waterfall is _just as efficient_ at delivering quality code quickly as any modern agile methodology is. What's required is an experienced team.

Consider that an inexperienced team will screw up on an agile project just as much as they would on a waterfall project. Here's an analogy (taken from a blog post I'm still working on):

\--

Karate is a martial art. It is also a competitive sport, and has strict rules. Krav Maga is street fighting. Anything goes - no rules, no competitions. I've been doing Krav Maga for over four years, and think it's the best self defence system known to man.

Saying that Krav Maga is the best is interesting. Not because it really is the best, but because that statement demonstrates two important things:

\- It demonstrates consistency - my desire to be (and appear to be) consistent with what I have already done. Once we've made a choice, we encounter personal and interpersonal pressures to behave consistently with that commitment.

\- It ignores reality - my girlfriend, a 3rd Dan black belt, has been doing Karate for over 18 years. Whether Krav Maga is better than Karate on not is immaterial - she'd kick my arse from here into next week. The reality is that she's simply more experienced. No matter how brutal a counter attack in Krav Maga is, she's so fast that there's no way I can even block her attack (I know because we spar).

\--

It's that concept of experience that I refer to when talking about devs/hackers/programmers growing up.

As devs/hackers/programmers I think it serves us well to understand both extremes (waterfall and agile), and move the slider between the two as required. The mix should be appropriate for the team's experience. Enough prescriptiveness from waterfall to coach where coaching is needed, and enough agile to ensure that mistakes don't become expensive. Common sense should not be ignored when dealing with documentation, TDD, pair programming and the like, and nobody should ever be elected scrum master just because they paid someone for a piece of paper saying they can do it.

</comment></comment></comment></comment><comment><USER3> " _1\. The product is only as good as the plan for the product._ "

Right up there with Steven Covey's "Begin with the end in mind". I've witnessed it again and again - when agile developers/hackers/programmers grow up they end up doing design up front. Fail fast and often has it's place, but that place is finite.

</comment><comment><USER4> I work in a heavily-regulated safety-critical industry (medical devices) and occasionally re-read this article for inspiration.

For anyone wanting to dig a bit deeper, check out the NASA Software Safety Guidebook [[http://www.hq.nasa.gov/office/codeq/doctree/871913.pdf](http://www.hq.nasa.gov/office/codeq/doctree/871913.pdf)]

</comment><comment><USER5> Whenever a customer complains about bugs and the price I let them read this article before discussing it.

</comment><comment><USER6> >The group writes software this good because that's how good it has to be.

No, they write software this good because they have enough time (e.g. money) to write quality software.

<comment><USER7> There's probably more to it than that. Most other teams of developers, given the same amount of time and money, could probably not write such complex software with so few bugs in it.

<comment><USER6> I agree, having more time / money is not enough, but it's a prerequisite.</comment></comment></comment>


10 US Navy sailors missing after destroyer collides with merchant ship - <AUTHOR> http://www.cnn.com/2017/08/20/asia/us-navy-destroyer-collision-singapore/index.html <comment><AUTHOR> 1 point by jrs235 6 minutes ago | edit [-] [-]

Is it possible that someone is in fact utilizing GPS "hacking" that is assisting in the likelihood of these collisions? There was a story ([https://news.ycombinator.com/item?id=15003333](https://news.ycombinator.com/item?id=15003333)) here on hckrnews about GPS "hacking" last week, although most people said the issue was known and not that big of a deal.

<comment><USER2> Both of these ships would have radar to detect each other, so I'm not sure how effectively you could attack them with GPS spoofing. Even if they go off course, they can still avoid obstacles with radar.

I'd also guess that a destroyer wouldn't have to rely on GPS - it would probably have an old-fashioned inertial navigation system (gyroscope) as a backup. In a war against a major power like Russia or China, you should expect that they'd be able to knock out your GPS satellites.

<comment><USER3> Exactly. Whatever happened to the powerful radars these war ships carry?

</comment></comment></comment><comment><USER4> This article [1] was published when the USS Fitzgerald had its collision. It describes how hard it can be to manage the position of the ship relative to other vessels.

[1] [http://taskandpurpose.com/fitzgeralds-watch-team- mine/](http://taskandpurpose.com/fitzgeralds-watch-team-mine/)

</comment><comment><USER5> I don't get it. Aircraft carrier and a Tanker.. perhaps, but it's a destroyer.. intercept and agility is it's entire design concept...

Tanker: 30k ton, 10 knots

Destroyer: 9k ton, 30+ knots

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

At 7:27, look how short of a distance it needs to make a 90 degree turn.

I don't see any scenario where they can't evade it, even for hollywood standards it's quite unrealistic.

It takes miles too change course on a tanker (as stated in the article), which means you can anticipate your course miles ahead. Even a child with basic math can figure this equation out.

I don't know, secret US stalking off ships gone wrong, Korean infiltration, GPS spoofing, corrupt crew, lazy crew, crash on purpose..

What do we really know, it's military in the end, which means a potential for classified info being held back. If it's a fatal technical flaw, they would not tell that to public media I figure, for political reasons.

</comment><comment><USER6> How do the sailors go missing? They're either on the boat, in which case they're not missing because that's where they should be, or they're in the water in which case they'll be very close by.

Am I missing something here? Surely it's normal for at least one person to look overboard and check for floaters after you prang your boat?

<comment><USER7> Pretty simple answer really - these things usually happen at night. There's a much higher chance of spotting a tanker during daylight.

It's surprisingly difficult to see someone in the water during the day - there's less body sticking out of the water, than there are waves to hide it. At night? No-one wants to admit it, but you're a lost cause before you hit the water.

The other half of your problem is that missing doesn't mean MOB. In the relatively recent Fitzgerald incident, those lost were found in a sealed compartment. Pretty much damage-control 101 to seal any compartment you can, and especially those breached. While locking people in a flooded compartment has to be a gutwrenching decision to make, the alternative is to allow a compartmentalized breach to take the whole crew.</comment></comment>


James Shore: The Decline and Fall of Agile - <AUTHOR> http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html <comment><USER2> I love the way this guy explains the failure of "Agile" by simply saying, "you're not doing it right - you need to be _more_ agile - do it harder!!"

For a counterpoint: [http://www.yosefk.com/blog/extreme-programming- explained.htm...](http://www.yosefk.com/blog/extreme-programming- explained.html)

<comment><USER3> That's not what I was trying to say, but I can understand why you'd think that. The deeper point was this: "Agile" started out as a grassroots movement among programmers. As a grassroots movement, it got enough people excited, and experienced enough success, that it moved into the mainstream.

Now that Agile is in the mainstream, it's attracting attention from people who aren't willing or able to put in the effort required to really understand or do it well. That kind of shallowness has always existed--not just for Agile-- but it used to be that the worst those people would do is publish a blowhard essay like the "counterpoint" you linked, then go away.

Mainstream Agile isn't so lucky. Now the shallow people don't just flame and go away. They want Agile, but they don't want to work at it. A particularly poisonous subset sees dollar signs and starts offering highly dubious training, certification, and consulting services. Both groups put in something that says "Agile" on the tin but doesn't actually work.

And, sadly, there are more people interested in quick-and-easy than there are people who are interested in slow-thoughtful-and-rigorous. They outnumber, and outshout, the rest of us. As a result, the quick-and-easy (and non-functional) approach to Agile is taking over, and the original Agile that I got so excited about is going away. The interesting, motivated, exciting programmers I like to work with are moving on to other things.

I wrote that essay three years ago. It's even easier now to see a future in which Agile is just another bloated excuse for managers to treat their staff badly. That makes me sad, but I'll live, and I'll keep fighting the good fight.

<comment><USER4> _"Agile" started out as a grassroots movement among programmers._

That's not true. "Agile" started out as a meeting of methodologists:

<http://agilemanifesto.org/>

Most people there weren't making a living as programmers and they certainly weren't at the meeting _qua_ programmers. As far as I can tell, only one person on that list (Ward Cunningham) made a name for himself as a hacker.

It's true that the Agile people wanted to make corporate software projects less completely hostile to programmers, but it's also true that they were process-oriented from the beginning, i.e. theorizing about how software should be built and convincing others to follow their theories. These are people who make their living writing, consulting, and training, not by writing code or by being personally responsible for particular projects. This gap between theory (often dressed as expertise) and practice is IMO one of the curses of the software industry. Agile may have had some marginal benefit but it also introduced a whole bunch of new ideology. Certainly this was evident as early as 2003-2004 when I was spending time in that crowd.

An example of a _real_ grassroots movement among programmers is open-source software.

<comment><USER5> XP, the real catalyst to agile, was born out of the Smalltalk hacker community with Kent Beck and Ward Cunningham in particular. They're the furthest from methodologists I could imagine.

The only professional methodologists on the agile manifesto, for that matter, were Alistair Cockburn and maybe Jim Highsmith. And even they were all about preaching for less paperwork & process. The rest were in the trenches software team leads or (at worst) software consultants like Martin Fowler.

<comment><USER4> I'm talking about people who prescribe rules for others about how to make software. In this sense, XP is thoroughly methodological. I know something about the Smalltalk history. It doesn't change the point: there is a gulf between people who live by selling prescriptions about how to make software (writing, consulting, training, and so on) and people who live by making software. This is the fundamental problem with Agile, not dilution-by- becoming-mainstream as the OP and others say.

Why does the gulf arise in the first place? I think it's because in the dysfunctional corporate software economy, programmers are low-status and there is a ceiling on how much money and status can be accrued in that role. One way to break the ceiling is by becoming a high-end consultant, writing and speaking and so on. If you pull this transition off, you can charge thousands of dollars a day and be esteemed. The trouble is that now you are no longer making software for a living. You are in the world of hype and ideology. Your customers are people inside corporations who write cheques, a constituency that has nothing to do with the culture or practice of software. This has consequences: it casts you adrift, it dulls the mind, it encourages bullshit. Then the rationalizations begin: I'm trying to make the system a little better, etc., I can have leverage by reaching more people this way, etc. This path may lead to billable hours but it puts one at risk of creative rot.

The fundamental mistake of Agile was trying to improve the broken world of corporate software by selling to it rather than competing with it.

<comment><USER5> Ahh, I see the disconnect, based on your last sentence. I basically don't think it's a mistake to improve corporate software from within. It's not going away. And there are many decent programmers who will work in that environment because of a lifestyle choice.

I also think you have an incorrect interpretation of history: the folks who did XP were contractors on a _project_, and actually writing _code_. Yes, they published books afterwards, but continued running _projects_ and writing _code_ afterwards.

Finally, I think the culture and practice of software has a lot to do with those who write cheques, since that's in the end what funds it, like any engineering endeavour. Unless you're speaking of software-as-a-hobby.

<comment><USER4> It's not a _mistake_ except insofar as it's impossible to any significant degree. It's only self-deception (encouraged by consulting cheques and/or ideological blinders) that says otherwise. At least that's been my experience through careful observation.

I'm not speaking of software (only) as a hobby but of the startup community of hackers building and running their own companies. Look around you here. There are many people practicing what the word "agile" actually means, as opposed to these process doctrines. If the Agile processes are really a better way to build software, why don't most startups bother with them?

<comment><USER3> How do you know they don't? Mojang Specifications, this year's hottest new game studio, uses Scrum. The Lean Startup movement combines customer discovery with Agile practices.

That said, my experience is that development practices have little to do with startup success (unless they're overly rigid or formal, in which case they get in the way of success). They affect organizational scalability and long-term maintenance costs, which fall in the category of "nice problems to have" for a new startup.

I do see ideological blinders here, but not the ones you meant.</comment></comment></comment></comment></comment></comment></comment></comment>


NASA raised thousands of jellyfish in space that were unfit for life on Earth - <AUTHOR> http://www.theatlantic.com/technology/archive/2013/10/i-dont-think-youre-ready-for-this-jelly/280674/

<comment><USER2> I will always remember watching the first moon landing on TV as a young boy. Very special.

</comment><comment><USER3> Metroid.</comment>


JavaScript Prototyping for Zen Masters - <AUTHOR> http://jacksongariety.com/journals/javascript-prototyping-for-zen-masters

<comment><USER2> In my opinion, a zen master should be able to declare classes, extend them, do mixins, construct one off instances and synthetic classes, access super class' methods the old school way, etc without helper functions like the ones listed in the article. Be able to use and master the tools the language gives you.

Don't be afraid of the language; but do acknowledge that it is a toy language with lots of invisible death traps. Establish a coding convention that lets your team build and test large scale applications effectively. If that includes helpers and tools, (I like Resig's class.js myself, [http://ejohn.org/blog/simple-javascript- inheritance/](http://ejohn.org/blog/simple-javascript-inheritance/)) then great! Just please make sure the team can do it all without the helpers so that they understand all that is possible.</comment>


Check the weather before you leave - <AUTHOR> http://canileave.com/

<comment><USER2> This reminds me of goingtorain.com which went offline when Google cut off their weather API access surrounding the iGoogle planned shutdown. I don't know why the developer of that service didn't just switch to Yahoo's API, though I suspect it was because that was a hassle.

<comment><USER3> There was also <http://www.doineedajacket.com/>, but that seems to have gone ad-crazy to the point where I can't find the result.

</comment></comment><comment><USER4> I noticed an oddity when switching between metric and Imperial/US measurements. Metric gave me 94% humidity and 23 kph while imperial gave me 88% and 9 mph.

</comment><comment><USER5> Whearther. Check

Location. Fail

<comment><AUTHOR> The geo-location isn't 100% accurate, but you can type your location manually or choose one from the suggestions list below.

<comment><USER5> I didn't type because I'm on an iPad, and we all know how good is to type on screens. Maybe the app should acknowledge the fact that it isn't very good pinpointing the user location, and based on what it already knows, suggest neighboring places.</comment></comment></comment>


Facebook Will Use Profiles To Target Ads, Predict Future - <AUTHOR> http://www.techcrunch.com/2007/08/22/facebook-will-use-profiles-to-target-ads-predict-future/ <comment><USER2> Well duh, what did everybody think Facebook was going to do with all that personal data?

<comment><USER3> > it's not unreasonable to consider that Facebook could easily become the next > Adwords as well; not even Google can currently predict the future.

lol</comment></comment>


How to keep your real name and face out of Google's ads? - <AUTHOR> http://www.pcworld.com/article/2053357/how-to-keep-your-real-name-and-face-out-of-googles-ads.html

<comment><AUTHOR> New Google TOS. From 11th November onwards, Google might use your photo in some of their Google products. : [https://www.google.com/intl/en/policies/terms/changes/](https://www.google.com/intl/en/policies/terms/changes/)</comment>


Google's indoor maps arrive in India - <AUTHOR> http://thenextweb.com/google/2014/03/05/googles-indoor-maps-arrive-in-india-so-you-dont-get-lost-in-shopping-malls/#!ywa5w

<comment><USER2> There seems to be a large team of Google Maps based in Bangalore. Probably one of the reasons why India went first, for the Indoor Maps.

<comment><USER3> I'm not sure where was actually first; I think at this point they exist in a lot of cities. I noticed them in Copenhagen some months ago, e.g. [https://www.google.com/maps/place/Fisketorvet+Shopping+Cente...](https://firstname.lastname@example.com,12.5617723,18z)

</comment></comment><comment><USER4> Not sure if there was a beta but these have been around at least for a couple of months. I was able to tour the inside of several restaurants near my apartment in Pune.</comment>


The Comic Strip That Accidentally Created a Branch of Feminist Critical Theory - <AUTHOR> http://priceonomics.com/the-most-important-comic-strip-in-feminist/ <comment><USER2> Hey, I'd like to see a further filter: movies that pass the test, _and said dialog is propelling the plot_. So often movies that pass, do so with extraneous characters or even comic sidekicks. And the dialog in question is still about things peripheral to men - appearance, social behavior etc that pertain to appealing to men.</comment>


Ask HN: What happened to the soundcloud API? - <AUTHOR> https://soundcloud.com/you/apps/new They don't seem to be accepting new applications. I couldn't find much information other than this tweet. https://twitter.com/SCsupport/status/1053216471818665984 <comment><USER2> Just guessing here but I think it's due to the financial troubles SoundCloud had in summer 2017. They had to lay off half of their staff and closed some offices in SF & London. Wouldn't be too far fetched to assume they scrapped their API to save some money.</comment>


The Mystery Behind Anesthesia - <AUTHOR> http://www.technologyreview.com/article/39289/ <comment><USER2> The worst part is when the anesthesia only _seems_ to work: [http://lesswrong.com/lw/8wi/inverse_pzombies_the_other_direc...](http://lesswrong.com/lw/8wi/inverse_pzombies_the_other_direction_in_the_hard/)</comment>


Write to a Google Spreadsheet from a Python script (2009) - <AUTHOR> http://www.mattcutts.com/blog/write-google-spreadsheet-from-python/

<comment><USER2> This video helped me out greatly with accessing google spreadsheets through python. [https://www.youtube.com/watch?v=rWCLROPKug0](https://www.youtube.com/watch?v=rWCLROPKug0)</comment>


FOVE – The World's First Eye Tracking Virtual Reality Headset - <AUTHOR> https://www.kickstarter.com/projects/fove/fove-the-worlds-first-eye-tracking-virtual-reality

<comment><USER2> WOW, I wonder if they could counter act 'jiggly eyes' ... this with some external cameras and BOOM stable vision?!

[http://www.allaboutvision.com/conditions/nystagmus.htm](http://www.allaboutvision.com/conditions/nystagmus.htm)

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

</comment><comment><USER3> I tried FOVE during one of their demo events here in San Francisco. Simply amazing.</comment>


Show HN: Owwly.com – Top digital products and trends in design - <AUTHOR> https://owwly.com <comment><USER2> I'm lost. What is this site about? What is the feed page showing me and what am I supposed to do?

I couldn't find the "about us" page, which normally helps me understand what the site is about, and what I should look for. It may be helpful to include that (and a menu button / menu bar at the bottom..?)

It's probably me, but this is too minimalist and context-free for me to actually get anything out of it. Maybe I'm not part of the target audience?

<comment><USER3> Not just you. All I see is mostly a Dribbble feed, so I can't really connect these random shots to the alleged purpose of the site: "top digital products and trends in design"

</comment></comment><comment><AUTHOR> Hi @moh_maya and @eswat - so glad to hear your feedback :)

mom_maya - you can read about us and about vision on main page on the left panel

@eswat - you are totally right. Currently most of works come from Dribbble. But if you change the main tab to "Products" you can browse through digital products from different categories.

We have a plan to empower users to add also their personal works to build digital portfolio.

<comment><USER2> Hey, thanks for the reply. I'm browsing on my smartphone (android 8 / chrome), and all I see are 3 navigation cues on the screen: 1) feed 2) products 3) an "up" arrow floating at the bottom right to take me up.

Clicking on the logo takes me to the feed page. So I can't seem to find the left panel at all..or get to the main page (unless the main page is the feed page)?

Appreciate your reply! :)

<comment><AUTHOR> And now everything is clear - this section is available only on desktop ;) You know, less space on the phone lead us to focus on the most important thing - The Content.

Have a nice day!

</comment></comment></comment><comment><USER4> Nothing wrong with curating good quality design work and posting it for others to see; I'll probably come back to check out more of the feed.

But why on earth is this listed on Product Hunt? This is a website with links to other people's content. A million sites with URLS like something.blogspot.com have done the exact same thing you have. What makes this a "product"?

<comment><AUTHOR> Hi @rchaud, good question :) Owwly vision is pretty define - build tool for Product Designers who want to present their digital products in one place. What you see now is, let say, MVP version :) My goal is to measure users engagement and check how they use Owwly.

Once we are convinced users like our product, it will be an indicator to start new phase. This Phase should include possibility to log in and add work to Owwly.

</comment></comment><comment><USER5> So this is like ProductHunt for UI/UX related products with a dribble feed?

<comment><AUTHOR> Hi @aminmemon Let me rephrase it - "It looks like Product Hunt for UI/UX related products with feed from design industry(Behance, Medium, Dribbble)" ;)</comment></comment>


How to generate waveform images from audio files - <AUTHOR> http://cloudinary.com/blog/how_to_generate_waveform_images_from_audio_files <comment><AUTHOR> What image do you display when you need to uniquely and visually represent an audio file, in a similar way to using thumbnails for photos and videos? Learn how to generate waveform images on-the-fly from uploaded audio files using dynamic URLs. Sample code included for Javascript, PHP, Rails, Node.js and more.</comment>


Ask HN: Are "freemium microservices" a thing? - <AUTHOR>

Not for wrapping open source code, but an alternative to selling a library - a business model pretty much obsolete.
With AWS Lambda, and their API Gateway easing authentication etc, it seems they're gearing up to support it. Latency would be minimal in the same (AWS) cloud.
Will there be a "SerStore"? <comment><USER2> What's the difference from what you are thinking of to random SaaS offerings?

<comment><AUTHOR> SaaS could do it, but tend not to be small, library-like things (pure functions, that process information and return the result), but more connected to a real-world service, that you are just accessing through an API...

Though maybe I'm wrong - are there random SaaS offerings like that?

 _EDIT_ Thanks for requesting clarification! Made me realize I do know of some: google's data-to-graph-image service (now closed) and various conversions (e.g. text-to-pdf).

But these don't make money - unique value propositions for libraries is difficult, because of open source alternatives. That's a business problem; not solvable by a new access technology.

Perhaps charging for pure software was a historical abberation.</comment></comment>


Show HN: ssh and cd get married - <AUTHOR> https://github.com/christianbundy/sshcd <comment><USER2> Alternatively, you could keep a tmux session open on the server and just attach it on connect. That way you can have everything arranged just the way you left it on disconnect. Same applications running, multiple windows, splits, etc. And you don't even need to start a new shell on connect.

        ssh user@host -t tmux attach

You can add an alias for it.

        alias backtowork='ssh -t user@host tmux attach -t worksession'

The last argument allows you to attach a chosen session if you have more than one running.

<comment><USER3> I use screen and it works well. The first thought when I saw this post was of screen and tmux. Anyone spending any kind of serious time in remote server through ssh should use screen/tmux.

<comment><USER4> I totally agree, a lot more of my work life is spent on our Linux platform. tmux is a godsend due to my sometimes flaky VPN connection.

</comment></comment></comment><comment><USER5> TL;DR: a 3 line exercise in bash argument munging.

      t="${!#}"
      c=("ssh" "-t" "${@:1:$(($#-1))}" "${t%:*}" "cd ${t##*:}; \$SHELL -l")
      "${c[@]}"

That's literally the whole repo.

<comment><AUTHOR> Literally.

We both know that it would've been easier to write this in Python, Ruby, Javascript, etc., but at the cost of using an "uncool" language I was able to solve the problem in three lines with only bash as a dependency. Pull requests welcome.

<comment><USER6> I am thankful you didn't.

Congratulations on getting the *NIX philosophy right.

<comment><USER7> If that's the ★nix philosophy I don't want to be a ★nix person any more. Seriously, even my VMS machines have python installed, and a script I can read is a lot better than one I can't, even if the one I can read has an extra dependency.

<comment><USER6> Python isn't too bad (unless you're calling the script in a lot of separate instances), but python is fairly neat compared to ruby/javascript/whatever trendy language of the week as it doesn't need a huge pile of worthless dependencies itself.

</comment></comment></comment></comment></comment><comment><USER8> I hate little extensions like this because if I make them part of my workflow, I am completely hindered when I find myself on a machine that doesn't have this. (Every other machine in the world.)

<comment><USER9> In this particular instance, the command is saving you a total of two keystrokes. "You could probably get by in a pinch."

</comment></comment><comment><USER10> I'm trying really hard to see the utility in this, as somebody who almost obsessively aliases commands to save keystrokes. But it's almost the same number of keys, at the expense of having to mix them together.

This feels less like a marriage and more like trying to tie two very different animals together.

I'd much prefer if this was some kind of host-alias based magic, where "ssh my_server_web" took my to "my_server:/srv/http/my_site", "ssh my_server_db" took me to my_server and opened mysql, etc.

</comment><comment><USER11> I like to take advantage of temporal locality. My zshrc is configured to take me to the most recent place that I have been whenever I open a new shell:

      autoload -U add-zsh-hook
      record_pwd() { pwd > ~/.cwd }
      add-zsh-hook chpwd record_pwd
      touch ~/.cwd
      cd `cat ~/.cwd`

</comment><comment><USER12> If you are an Emacs user, Tramp does this, e.g. you can open a file like:

/firstname.lastname@example.com:/some/remote/path/file.dat

Directory navigation (dired) works too, you can also open a shell in the remote directory (M-x shell)

<comment><USER13> Enabling ido-mode makes it a lot more easier to use. Also, you can open local files as _sudo_ in a similar way.

/sudo:localhost:/etc/hosts

</comment></comment><comment><USER14> There are two things I find odd about this solution.

You still have to type the path you want to cd to. See previous discussion at [https://news.ycombinator.com/item?id=6229001](https://news.ycombinator.com/item?id=6229001) for possible solutions.

The github example specifies the username to ssh to. Assuming you ssh to the host more than once see man ssh_config and the User parameter.

And screen/tmux, obviously.

</comment><comment><USER15> Any benefits with this over running something like this? Other than it being shorter and easier for someone not familiar with console commands?

      ssh -t yourserver.com 'cd /some/dir/;exec /bin/sh'

<comment><AUTHOR> Nope, that's actually very close to what it does.

I didn't develop this because the keystrokes were difficult, I just know that both git and SCP support this syntax and couldn't think of any good reason why SSH shouldn't.

</comment></comment><comment><USER16> For what it's worth, this is broken when the target directory contains spaces/wildcard characters, etc. I would suggest you consider using something like the following to generate the command line you pass to ssh:

      printf -v cmd 'cd %q && $SHELL -l' "$target_dir"

Also, dropping the ':' and just having an additional argument would make your life a bit simpler. What's with the array assignment just to invoke the command? Seems a bit unnecessary. The microoptimizer in me tells me you should use 'exec' as well :).

</comment><comment><USER17> echo "cd /your/favorite/folder" >> ~/.bashrc

<comment><USER18> This is by far is the best option, its still user based so it will take me where I want.

<comment><AUTHOR> Absolutely – I'd definitely recommend that this is used in favor of my utility if you're always going to the same directory.

I originally wrote a util that outputs your current username, hostname, and path ([https://github.com/christianbundy/whereami](https://github.com/christianbundy/whereami)) so that you can either share or save it somewhere, but since SSH doesn't handle file paths by default I made a utility that does. :)

<comment><USER19> I think you've done an excellent job of pointing out that ssh should just be capable of doing this by default. Like many such things, it's obvious with hindsight. But somehow I never thought of it before.

</comment></comment></comment></comment><comment><USER20> Even better: make the script work with local paths as well.

Then you can put

        alias cd='sshcd'

in your .bashrc, and you won't have to distinguish between local and remote paths ever again.

<comment><AUTHOR> I was thinking about aliasing cd like that and instead having psuedo- directories that you can cd into to SSH into another box. The biggest problem though would be moving around in the box, as `cd ..` wouldn't take you back to your local machine.

What do you think?

<comment><USER21> Take a look at [https://github.com/spencertipping/cd](https://github.com/spencertipping/cd). It will let you cd to local or remote machines the same way, and will take you back to your local machine on "cd ..". (It mounts the remote fs instead of SSHing there.)

</comment></comment></comment><comment><USER22> A pretty cool improvement. And you can easily add remote directory autocompletion if you simply steal the autocompletion function of `scp`: complete|sed -n 's/ scp$/ sshcd/p'

</comment><comment><USER23> It would be much more useful if you can make an scp with autocomplete by pressing tab in the terminal.

scp root@host:/long(tab)_file_name .

<comment><AUTHOR> Funny you mention it, I actually have this working! ([http://i.imgur.com/8VBYDd4.png](http://i.imgur.com/8VBYDd4.png))

You can check out my dotfiles ([https://github.com/christianbundy/dotfiles](https://github.com/christianbundy/dotfiles)), but I'm pretty sure that the functionality came standard with one of my Zsh submodules, Prezto ([https://github.com/sorin- ionescu/prezto](https://github.com/sorin-ionescu/prezto)).

</comment></comment><comment><USER24> Using tmux on the server and attaching sessions on the client is a better option.

</comment><comment><USER25> a version that works inside your zsh scripts. there may be a better way to do it

t=${@[$#]}

c=("ssh" "-t" "${@:1:$(( $# -1 ))}" "${t%: _} " "cd ${t##_:}; \$SHELL -l")

"${c[@]}"

</comment><comment><USER26> plus if you're going for bash instead of python to avoid dependencies, just go for sh. It's not like it would be hard to code or anything in sh.

</comment><comment><USER27> I think it's a cool exploration. Thanks for sharing.

<comment><AUTHOR> Thanks for the sincere comment! I hope you have a kickass Wednesday.

</comment></comment><comment><USER28> What shell and theme is he using?

<comment><AUTHOR> I'm using Zsh with Prezto ([https://github.com/sorin- ionescu/prezto](https://github.com/sorin-ionescu/prezto)), a fork of oh-my- zsh.</comment></comment>


Google Now Embraces "Paid Inclusion" (2012) - <AUTHOR> http://marketingland.com/once-deemed-evil-google-now-embraces-paid-inclusion-13138 <comment><USER2> Definitely note that this is from 2012.

Google recently updated their webmaster guidelines, I am assuming that this also included an internal review, as well.

>> "Inclusion in Google's search results is free and easy; you don't even need to submit your site to Google." This is directly from: [https://support.google.com/webmasters/answer/34397?hl=en](https://support.google.com/webmasters/answer/34397?hl=en)

Keep in mind that this article does reference Froogle, which has been discontinued. Merchants were able to submit a shopping feed, but, in fact, now have to pay for that.

Local businesses are able to get a Google My Business listing for free, which means free traffic to their site, but I expect that to be a paid-for-play option soon, as well.

</comment><comment><USER3> what kind of data was it they couldn't get by crawling, I didn't pick it up from the article. I just noticed there was certain kinds of data?

<comment><USER4> The article is talking about the paid inclusion model for the widgets that Google returns when you perform certain kinds of searches, like:

\- flights from NYC to Los Angeles

\- compare credit cards

\- hotel near los angeles

You'll notice that in each of those cases, there are no organic results above the fold. Also, if you want to see what happens when you don't pay to play, search for:

\- flights from dallas to houston

Look for Southwest Airlines in the widget...they won't pay Google.

<comment><USER5> > Look for Southwest Airlines in the widget...they won't pay Google.

Southwest is notable as an airline that won't submit their pricing and inventory to third-party aggregators. This has nothing to do with Google, and is also the reason why Kayak doesn't show Southwest prices.

<comment><USER4> >>This has nothing to do with Google

Yes, SWA does avoid pay-to-play in other situations. However, Southwest specifically asked Google to remove prices from the flight widget.

There were there at first. There's a reddit AMA from the Google Flights team where they talk about it.

</comment></comment></comment></comment><comment><USER6> This is from 2012.

<comment><USER7> Thanks, missed that one.</comment></comment>


Swift Education - <AUTHOR> http://swifteducation.github.io/

<comment><USER2> Newbie here. The ? operator is the same of Swift?. Any difference?</comment>


RustBelt: securing the foundations of the Rust programming language - <AUTHOR> https://dl.acm.org/citation.cfm?doid=3177123.3158154 <comment><USER2> My favourite part:

> our verification work resulted in uncovering and fixing a bug in Rust's > standard library, demonstrating that our model of Rust is realistic enough > to be useful.

The bug was [https://github.com/rust- lang/rust/issues/41622](https://github.com/rust-lang/rust/issues/41622).

<comment><USER3> One thing about formal verification, and a lesser extent automated testing, is that you often end up spending the majority of the time adapting the program or language to work with verification rather than actually solving a real- world problem or fixing a real bug.

His third comment fits this category well. The problem set he describes was that the code is designed in a way that's ill suited for formal verification. But he never mentions any other benefits or justification for changing how it works.

So I'm not sure it's necessarily a 'bug' in a traditional sense that supports the use of formal verification, except in some self-serving way.

That said, I'm very much in support of formal verification in these types of languages.

<comment><USER4> > But he never mentions any other benefits or justification for changing how > it works.

I read "it lets me write a program that has a data race", accompanied by a program that has a data race, as saying that the bug is that a language feature meant to provide mutual exclusion does not provide mutual exclusion. In a language one of whose main selling points is "you always get mutual exclusion". How is this not a bug?

The benefit of changing this bug is that the guarantees Rusts makes to programmers are actually guaranteed.

<comment><USER3> I was specifically referring to the 3rd comment on the Github issues page, not the first comment which mention a race condition which the eventual commit addressed

> His third comment fits this category well.

And even then I was only talking about the language he used, aka the justifications and rationale he proposed, which seemed entirely around being difficult to verify formally, rather than mentioning any real hypothetical 'bug', security flaw, or architectural downside.

<comment><USER4> Fair enough about the particular Github comment, but even there I think you are wrong.

The architectural downside is being unable to understand a program you have written: "However, if the type does not have an explicit impl for Send/Sync, I don't know how to even figure this out -- I would have to chase all types (including safe ones, and across all abstractions) of all fields recursively and then check when they are Send/Sync... that's way too error-prone."

This doesn't just talk about his particular proof tool being unable to understand this. It's about any Rust developer being unable to easily understand the types used by their programs, using only standard library constructs. (If anything, this should be _easier_ for tools than for humans.)

</comment></comment></comment></comment></comment><comment><USER5> Adrian Colyer did a good write up of this paper recently on The Morning Paper : [https://blog.acolyer.org/2018/01/18/rustbelt-securing-the- fo...](https://blog.acolyer.org/2018/01/18/rustbelt-securing-the-foundations- of-the-rust-programming-language/)

<comment><USER6> From the Adrian Colyer's review, we find the title might be misleading depending on what ownership model entails for a given developer's use of the language:

"We had to make some concessions in our modelling: we do not model…

1\. more relaxed forms of atomic accesses, which Rust uses for efficiency in libraries like Arc

2\. Rust's trait objects, which can pose safety issues due to their interactions with lifetimes

3\. stack unwinding when a panic occurs, which can cause similar issues to exception safety in C++

4\. automatic destruction, "which has already caused problems for which the Rust community still does not have a modular solution."

5\. a few details unrelated to ownership, such as type-polymorphic functions and "unsized" types."

Also shows why it's good to have a semantics in the beginning covering the whole language like with ML or later SPARK Ada. It forces language developers to spot and address these corner cases early on. Good news is that, like with SPARK, one might just subset their use of Rust to exclusively what has been proven with no use of anything else. Is anything on the list common enough in most Rust development where it can't be avoided and must be verified later? I've obviously seen many people mention traits. Arc and automatic destruction safety not being proven is a bit ironic given they're presumably there to boost safety versus raw pointers and manual destruction.

EDIT: Thanks for quick, clarifying replies about these. It's looking like a subsetting approach can work.

<comment><USER7> You can avoid 1 if you do no multithreading, or if you accept a slower implementation of Arc.

Embedded code in Rust almost always avoids 1, 2, 3, and 4. Arc is used for freeing dynamically allocated memory when all references, including across threads, are dropped, but if you're running without dynamic memory allocation, you don't need that. Trait objects also require allocation. Embedded targets also generally don't implement stack unwinding, and stack unwinding can be disabled on other targets as well; it's really only most useful in larger applications in which you want some threads to be able to continue running even if another thread panics. Automatic destruction can be fairly easily avoided if you're running without an allocator, as it is mostly used for freeing such allocated memory, as well as a few things like file handles and the like.

The things covered in 5 might be harder to avoid, but also more likely to be amenable to being covered by further versions of the RustBelt work.

So yes, using a subset of Rust without these features is quite feasible, and often done when working in embedded (aka no_std) code.

I don't know SPARK Ada that well, but I believe it has similar constraints of no dynamic allocation. If you can do without dynamic allocation in Rust, many of the problematic features wouldn't be used.

<comment><USER8> Nit: IIRC one can receive a trait object through a stack based reference.

fn trait_obj(foo: &Trait)...

<comment><USER7> Sorry, you are right about that. You can have trait objects without an allocator.

I'm not sure how common a pattern that is. Many people like to avoid trait objects and just parameterize the function on a type bounded by the trait in that case. And impl Trait is replacing some of the other cases in which you had to return an allocated trait object.

Anyhow, you're right, I was wrong that people couldn't be using trait objects in an embedded context with no allocator, but I also think it's perfectly reasonable to write in a subset of Rust in which you don't use trait objects at all.

<comment><USER9> Taking a trait object by reference is a pretty common pattern.

Box<Trait> is so pervasive because it's currently the easiest way to get type erasure in return position.

</comment></comment></comment></comment></comment></comment><comment><USER10> I think I can understand and appreciate many different aspects of Computer science, but programming language theory truly is a bit too arcane and formal for me. I still try to follow it somewhat though (like when the Morning Paper had its nice writeup about RustBelt) and I enjoy learning Rust (which exposes you to the theory underlying its design more than other languages). Maybe it's good that the results of formal methods now find more practical application, so it's easier to get people (who aren't hardcore logicians) interested in the whole topic.

<comment><USER11> I find Rust's RFC/design discussions fascinating. They're a mix of serious Programming Language Theory and practice. The same feature in Rust is seen by some as "algebraic data types" and _" oh cool, I can add data to enums"_ by others.

Some feature proposals starting with "wouldn't it be nice to have…" end up designed with input from people who literally have a PhD in this feature (and are bikesheded until people without PhDs can use the feature).

</comment></comment><comment><USER12> Does this prove that the current borrowck rules are sufficient to catch all possible mistakes? For example, does it catch stuff like [https://github.com/rust-lang/rust/issues/31287](https://github.com/rust- lang/rust/issues/31287) or [https://github.com/rust- lang/rust/issues/38899](https://github.com/rust-lang/rust/issues/38899)?

<comment><USER7> What the paper demonstrates is that if you have a correct borrow checker, and you have the ability to create types using `unsafe` which can extend the semantics of the language to cover things that the borrow checker cannot cover, you can write proofs that demonstrate that the language is still sound given the addition of those types.

This helps demonstrate that one of the fundamental design goals of Rust, have a simple but limited system of borrowing built into the language, and allow more complex forms of managing reference types safely built on top of it as library features using `unsafe`, is a fundamentally sound design. In other words, you don't have to treat the language and all libraries using `unsafe` as one large system that you need to prove soundness of, but you can do modular proofs of the core language, and each library that adds a new type of memory and reference management, independently.

Those bugs you reference are simply bugs in Rust's borrow checker. The language used for the RustBelt paper, LambdaRust, is a language that is much simpler than Rust itself, making the borrow checking much easier but the language not as convenient to use (it is not intended to be used at all, just to act as a model of Rust).

The things you reference are simply bugs, but because of the fairly expressive syntax that Rust offers actually getting the borrow checker right can be be difficult in some cases.

I don't think that there are any theoretical concerns about the ability to write a correct borrow checker, just practical issues with the current implementation not correctly handling certain cases.

<comment><USER12> > I don't think that there are any theoretical concerns about the ability to > write a correct borrow checker, just practical issues with the current > implementation not correctly handling certain cases.

Is it really that trivial? When looking through [https://github.com/rust- lang/rust/blob/master/src/librustc_b...](https://github.com/rust- lang/rust/blob/master/src/librustc_borrowck/borrowck/README.md), it is not at all clear that these rules cover everything to me. There are some complex side conditions, isn't it easy to miss something there?

<comment><USER7> There is a large amount of room between "trivial" and "serious concerns that it will be impossible without fundamentally altering the language." All I was saying is that there aren't such serious concerns about the borrow checker; there are some known holes, but most people think it's just a matter of doing the work to fix those holes (which could be a lot of work, and involve significant refactoring), not that needs to be an entire change in the fundamental way the borrow checker works, or that borrow checking itself is theoretically unsound, or that some features of the language are fundamentally incompatible with sound borrow checking.

The RustBelt work addressed one of the big open questions; is it possible to treat `unsafe` code in a modular fashion, or does all analysis of unsafe code have to consider all possible interactions with all other modules which use `unsafe` code as well?

That was in many ways quite a big question about the design of Rust; can you prove or very each module which uses `unsafe` independently?

The borrow checker, on the other hand, is an entirely local analysis. It can get quite complex, especially as you allow for more fine-grained borrow checking to make it convenient to use compound objects, and introduce non- lexical lifetimes which help reduce the number of restrictions on what you can do, but since it's entirely local, it's a much more tractable problem.

I think that it would be good to eventually formalize the full Rust borrow checker, and of course it's always good to fix these soundness bugs, but there are some more important open questions right now like fully specifying Rust's memory model ([https://github.com/nikomatsakis/rust-memory- model](https://github.com/nikomatsakis/rust-memory-model)) so it's possible to know what kinds of aliasing you can actually do in `unsafe` code, and which will be safe even under future versions of the compiler.

The RustBelt work so far is just a nice foundation getting Rust to be more formally analyzed and specified. There's a lot of work left to be done.

</comment></comment></comment></comment><comment><USER13> Every post in this thread slightly criticizing Rust is greyed. This is an unfortunate part of being an overhyped language: no one is allowed to emit discordant opinions.

<comment><USER14> Rust can be criticized ([https://news.ycombinator.com/item?id=16305437](https://news.ycombinator.com/item?id=16305437)), but flaws will be spotted. I'll concede nonsense on other topics might have more leeway.

</comment></comment><comment><USER15> adding security features to a language itself seems a bit silly. it just adds complexity and bloat to the code (which has been and still is mostly unverified..) which gives people a sense of security that's most likely false (as people imagine hyped things to be bigger than they actually are). I'd say a good coder could write more seucre and sound code in C, though someone who isn't conscious of the nature of the language would write 'safer' code in rust or so. In the end it's better to learn to do things without these training wheels >.> all this hand holding is just making people weak like anything else in life.

<comment><USER16> There's nothing false about the sense of security. In fact, after I started using Rust, my C/C++ has become more disciplined as well. The idea that memory safety is "training wheels" is silly.

</comment></comment><comment><USER17> By the way, this is a project funded by the European Union. It got 2 Million EUR by the European Research Council ([https://cordis.europa.eu/project/rcn/200802_en.html](https://cordis.europa.eu/project/rcn/200802_en.html)). It is only one of the many projects which give back a lot to the open source community. Thank you, EU!

<comment><USER18> I'm not quite as enthusiastic about their choice of funding target. There are plenty of other worthy languages and tools out there that could use that money better in my mind. It's the C++/Java thing all over again, but stepped up several notches; to the point where it's creeping me out since I can't even mention C online without being attacked by the Rust Brigade; and they just don't give up, it's like one of those shitty zombie movies where you have squirting body fluids and jaws chopping at you from every angle. I don't think they need any more money; more like therapy, chill pills and rooms with soft walls/locked doors for a while.

<comment><USER19> This funding was for verification work, which was applied to Rust. Rust is a relatively new language, and hasn't been the focus of much research yet. C and C++, in contrast, has already been the subject of _tons_ of research and tooling. For example, Wikipedia lists 28 static analysis tools for C, and none for Rust:

[https://en.wikipedia.org/wiki/List_of_tools_for_static_code_...](https://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#C,_C++)

Is there a particular project for a particular language you think is promising and just needs some funding? Or does it just irk you when other people are happy?

EDIT: I'm also not sure why you assume that none of this EU funding is going to your language(s) of choice; have you checked?

<comment><USER17> From my knowledge, the ERC funds fundamental science. In my personal area (theoretical physics), people tend to move from Fortran to C++ nowadays. As an effect, mostly readability decreases (without linear algebra libraries) or the compiler doesn't help anymore with compile-time bound checks (so people use run-time bound checks with assertions instead). Not even to mention the years of wasted time for people finding bugs in their parallel codes. And all codes with the "HPC" badge are parallel nowadays. I think supporting a modern ecosystem is a good decision if people move away from C++ towards Rust or Julia (another ERC... [http://opendreamkit.org/](http://opendreamkit.org/)).

(Note: Please don't feed the trolls. Nobody has time for language rants)

<comment><USER18> How is questioning the choice of project to fund feeding trolls? I was under the impression that diversity was mostly considered a good thing, that has to go for perspectives as well. I just don't get why Rust desperately needs a lot more money than any other tool that's equally useful, they were already pretty well funded by other organizations.

<comment><USER14> This is _one_ research grant on Rust among tons of grants on other projects. And it funds _research_. When somebody has equally valid research project on C, rest assured it'll be funded as well, as it has already happened (EDIT) with research on abstract interpretation, separation logic and so on.

</comment></comment></comment></comment></comment></comment><comment><USER20> Do this at the LLVM level and you get way more languages for free.

<comment><USER21> You can't prove safety properties of something that isn't safe. LLVM IR sure isn't.

<comment><USER22> This raises an interesting question of whether Rust would make sense as a code generation target for other languages or runtimes. It is conceivable that you could compile and run untrusted Rust (with no unsafe blocks and restricted imports) the same way web browsers run untrusted JavaScript? It could be the only GC-less IR that you can run with a reasonable defense against memory corruption.

Looks like people have had this idea before: [https://internals.rust- lang.org/t/safe-rust-sandboxing-untru...](https://internals.rust- lang.org/t/safe-rust-sandboxing-untrusted-modules-at-api-level/1505/9)

On the other hand, maybe this role is better served by WebAssembly.

<comment><USER23> I'm not sure I understand your idea, how can code generation benefit from memory safe abstractions of target languages? The whole point of code generation or rather compilation is to fit one representation into something else, doesn't matter what it is, but it has to satisfy its constraints no matter what, even if you have to use a giant global array to emulate pointers via indexes. In other words, the goal is to work around any constraints of the target language to fit yours, but not to design your language to fit any constraints of the target.

Safety guarantees can only work if you carefully choose and rely on appropriate abstractions for your problem.

</comment></comment></comment></comment><comment><USER24> > Rust is a new systems programming language that promises to overcome the > seemingly fundamental tradeoff between high-level safety guarantees and low- > level control over resource management. Unfortunately, none of Rust's safety > claims have been formally proven, and there is good reason to question > whether they actually hold.

Aw, c'mon!?

Rust is Sudoku for super-smarties.

\- - - -

I'm going to "double-down" on that: Rust-lang is a toy, a beautiful bauble for minds addicted to a certain kind of complexity. Rust isn't about producing production code, Rust is about producing Rust. Scratching that itch.

My point is that I feel like the time and energy spent on Rust won't ever be justified in terms of productive bug-free software, when compared against some other simpler language (Hopgood's Noether comes to mind) or approach.

<comment><USER25> I work for a company with a massive rust codebase. Rust is very much about building production code.

What is 'good production code' ?

* Few errors * Readable, well documented * Testable, has tests, has testing tools like quickcheck, fuzzing, etc * Meets performance constraints

Rust hits those better than any language I've used. The downside is, oh gosh, you'll have to actually learn a programming language that isn't just another variation of the ones you learned in school.

<comment><USER24> > I work for a company with a massive rust codebase. Rust is very much about > building production code.

Okay, thank you, I feel a little better hearing that.

</comment></comment></comment><comment><USER26> I have recently performed a relatively simple development by using programming languages on which I had low-to-to-no experience: Perl (low), Ruby (no), Rust (no) and Go (no). Note that I am quite adaptable on the programming language front and that this small experiment was precisely meant to showcase these adaptability skills. Rust was, by far, the most difficult-to-learn, difficult- to-research, counter-intuitive, unfriendly, constrained, unappealing, etc. of all of them. Warnings and errors appeared systematically and, despite their verbosity, were rarely helpful.

The most ironic part is that so many restrictions and problems are likely to provoke people to rely on whatever option happens to work, which might not be the best/safest one. Being so concerned about making sure that the generated code is extremely safe no matter what by sacrificing flexibility and user friendliness is far from ideal. Restrictions and prohibitions have always to be seen as an in-the-worst-case-scenario resource, not as a primary solution; much less when dealing with something as complex as programming, a very powerful tool supposed to be managed by knowledgeable individuals. The higher the freedom, the better the results delivered by a sensible/knowledgeable person. Unless Rust changes a lot, I don't see it going anywhere. It might get some support from theoretical/academical/inside-whatever-bubble circles, but seriously doubt that developers with real-world experience can like or even accept most of what this language represents.

<comment><USER27> You have successfuly uncovered that Rust is a fundamentally different programming language, instead of a variation of the same. I feel that having learned Rust, any new language similar to Rust would have way lower learning curve. It is quite similar to the jump required from imperative to a funtional language. We may be missing a good name for a paradigm the Rust falls into.

<comment><USER6> Achieving Rust's safety in C took separation logic with the best tool probably being VCC from Microsoft. I encourage anyone that thinks the borrow checker is unnecessarily hard or alternative languages would be easy to try doing an existing Rust library or app in VCC with separation logic. Also, if applicable, ensure it passes soubd, static analysis to be free of any defects Rust's design would stop in that library that C doesnt.

Then you'll appreciate the work languages like Cyclone and then Rust save you. There's other models published and in development that might make the next one a bit easier. Yet, separation logic is the proper comparison to borrow checker and most programmers didnt try to learn it.</comment></comment></comment>


Command Line Args Done Correctly - <AUTHOR> http://perl6maven.com/parsing-command-line-arguments-perl6 <comment><AUTHOR> Every couple months I get sucked into trying to find a good reason to use perl6 (6lang/slang ??). I finally decided to just start using it for day to day utility scripts and was hooked when I saw how easy it was to set up command line args.</comment>


All in one Social Launchpad Contact App - <AUTHOR> https://play.google.com/store/apps/details?id=com.spydy

<comment><AUTHOR> Check it out fellow Hackers! Made by a Stanford-bound 17 year old.</comment>


Army of 100k Chinese ducks ready to combat locust swarms in Pakistan - <AUTHOR> https://www.thestar.com.my/news/regional/2020/02/27/army-of-100000-chinese-ducks-ready-to-combat-locust-swarms-in-pakistan <comment><USER2> >A troop of special Chinese ducks is waiting to be deployed

I can't wait for Pixar movie based on that

</comment><comment><USER3> What could possibly go wrong?

<comment><USER4> There will be a plague of ducks.

Well then need 100,000 of whatever preys on ducks to eat them.

Etc etc</comment></comment>


New discovery throws light on mystery of pyramids' construction - <AUTHOR> https://www.theguardian.com/world/2018/nov/06/new-discovery-throws-light-on-mystery-of-pyramids-construction <comment><USER2> I always like seeing discoveries about the pyramids, but I don't get the feeling this tells us as much as the article wants the reader to believe.

 _the job of hauling into place the huge blocks of stone used to build the monuments may have been completed more quickly than previously thought_

There is no current timeline for how the great pyramid was built. The only frame of reference that we have is the assumption that the pyramid was built in Kufu's lifetime and all other estimates are derived from that.

We really have no idea how long it took the original builders to move those stones.

Each stone weighs an average of 2.5T (up to 10T) .. and the stones were quarried from hundreds of kilometers away..

With a total of 2.5 million giant stones coming from such extreme distances, I don't get the feeling we're much closer to coming up with an actual timeline for how long this took.

<comment><USER3> > With a total of 2.5 million giant stones coming from such extreme distances

Afaik most of the stones were quaried very near the pyramids. Most of the stones aren't the "quality stones" and didn't have to travel distances:

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

"The Great Pyramid consists of an estimated 2.3 million blocks which most believe to have been transported from nearby quarries."

<comment><USER4> If we assume 40 years (350400) to build the pyramids they had to quarry, deliver and setup 6.5 blocks every hour of every day.

Seems doable, especially in a country with population probably below 1mln at that time. /s

<comment><USER5> distance to quarry would only affect stone latency, not stone throughput, anyway :D

<comment><USER6> Not really true. In networking throughput vs latency rely on two different things. When it comes to moving huge stone blocks they rely on the same limited resource (humans).

<comment><USER7> They would have used boats on the Nile to carry stones long ways. They probably only did that for the finish blocks (the polished limestone most of which is gone).

</comment></comment></comment></comment></comment></comment><comment><USER8> I'm 90% sure I remember watching a documentary from 10+ years ago about a French egyptologist postulating the same mechanism and finding evidence for these ramps on site. I remember specifically how it solved a major puzzle pertaining to the transportation of such heavy blocks within the upper levels of the pyramid as it was being constructed.

<comment><USER9> I watched a Nova about it, where the did experiments. Had to be 5+ years ago.

</comment></comment><comment> matt-attack I wasn't expecting a photo, so I wasn't disappointed.

<comment><USER2> here is a photo i came across while researching this more:

[https://news.sky.com/story/great-pyramids-discovery-sheds- li...](https://news.sky.com/story/great-pyramids-discovery-sheds-light-on- construction-in-ancient-egypt-11546095)

<comment><USER10> I can't tell if you're joking. Is the second photo showing something important?

<comment><USER11> The second photo shows the ramp that they discovered.

<comment><USER10> Yes, but it's not exactly an informative image.

<comment><USER7> The angle isn't great, yeah, but you can see a) steps, b) one post hole. That's what's described in TFA.

</comment></comment></comment></comment></comment></comment><comment><USER12> 'Egyptologists stumble across ramp' given the incredible amount of research, mapping and unanswered questions about the 'mystery' this seems pretty flimsy stuff to me.

<comment><USER13> they didn't stumble across the ramp, they stumbled across the post holes in the ramp.

</comment></comment><comment><USER14> Interesting that they discuss pulling via human labor but not with bullocks, which the pharaonic Egyptians did have. Could it be there are no such pictures of animals pulling stones?

<comment><USER15> Nothing beats a human for long distance travel ability on land. Birds go farther, but they fly. Many animals can sprint faster, but on the timescale of a few days all land animals would drop dead trying to keep up with a human walking. Sure the pace is slow, and the amount a single human can do is less than other animals. However for long distances humans do better than any other animal.

The bullock might have been useful for hauling a short hard distance (out of the quarry for example). However if the quarry is a long ways away (this might or might not be true) humans are the best labor choice.

<comment><USER16> Can you give some references to back up that claim? What about horses, camels, elephants, to name just a few obvious examples? Thanks.

<comment><USER17> [https://www.youtube.com/watch?v=826HMLoiE_o](https://www.youtube.com/watch?v=826HMLoiE_o)

Persistence hunt in the Kalahari.

<comment><USER18> That's a very different workload than pulling a heavy weight for long distances though.

<comment><USER15> It is important to point out that heavy is relative. Heavy to a human is light to a bullock.

</comment></comment></comment></comment></comment></comment><comment><USER19> If I'm reading this correctly, they found post holes and a steeper ramp than expected, which leads them to believe that they both pushed the blocks up the slope and pulled them, through a "pulley system".

I'm not so sure. I remember from high school that the pulley was one of the five simple machines noted by Hero of Alexandria, but he lived over 2000 years after the Great Pyramid was built. I have no idea if the pulley was possessed by the ancient Egyptians - absent additional evidence, I would assume that they likely just wrapped ropes around the vertical posts. That wouldn't qualify as a pulley (which is by definition a wheel and axle) but would explain the holes and the steeper slope, but wouldn't require a drastic change in how we understand that the pyramids were built.

<comment><USER20> People have proposed a pulley that the Egyptians could have had. Not sure if there is any evidence that they did have it beyond what's mentioned in the article.

[https://egyptianpulley.com](https://egyptianpulley.com)

</comment></comment><comment><USER21> how about a drawing or two. 3d even better. Maybe my sinuses are making my head explode but reading about how...just not doing it.

</comment><comment><USER22> But why do we insist to think that the the pyramids were built with such primitive tools?

It's not only the weight of the stone blocks and the distance but also the mathematical precision, the perfectly round holes drilled in some stones, the puzzle shaped carved stones to stand earthquakes and the perfectly chiseled pharaoh stone statues and all the amazing things there that it makes me wonder why do we insist they used chisels and ropes and all that things that we associate with primitives?

Why is so hard to admit that they had some kind of advanced technology that for some reason has been lost?

Is this so scary to admit for a culture that wants to think is the pinnacle of human history? The same thinking that we are the center of the universe type of mentality.

<comment><USER5> >but also the mathematical precision

How precise exactly? What are you talking about exactly? You can do incredibly precise things without "advanced" tools.

> perfectly round holes

A perfectly round anything isn't even possible. What exactly do you mean? Round is one of the easier things to accomplish. A very precise square hole or ellipse would be more interesting!

<comment><USER7> Precision was easy. The great pyramid's east and west sides are very well aligned with the meridians they lie on. Impressive? Not really. They surveyed well and they used the two near-polar circumpolar start available to them at the time. The would wait until those two stars were aligned vertically to the horizon and then they laid down ropes/strings/markers along the sides and at the corners, then they built within those constraints and the north side necessarily came out shorter than the south side. They might not even have noticed that the north and south sides came out to be different lengths, who knows.

There were simple, primitive, and basic astronomic techniques trivially available to the ancient Egyptians for precise layout of large objects like the pyramids. This may seem surprising to us now, but if you think about it, it becomes obvious.</comment></comment></comment>


ResourceX – Wrapping global variables into observables at ease - <AUTHOR> https://github.com/xch91/resourcex <comment><AUTHOR> It's at an early stage but we've used these util functions in our production projects without significant issues.

The code is pretty short, so not too hard to grok if with Angular experience or used rxjs before :)</comment>


Take a 10-min survey on app development - prizes up for grabs - <AUTHOR> http://www.visionmobile.com/DS13devsurvey

<comment><USER2> great survey! cannot wait for the results</comment>


Microsoft.Data, because the 90s were so good, we want to do them again - <AUTHOR> http://ayende.com/Blog/archive/2010/08/03/microsoft.data-because-the-90s-were-so-good-we-want-to.aspx

<comment><USER2> In their defense, you could write that code much better with a slightly more nuanced understanding of the language. The platform as a whole is pretty good, and the 'dynamic' feature does help this simplify this case. But I don't know why they insist on making their example code so consistently crappy.

</comment><comment><USER3> Wow, damn, so much Microsoft innovation... and it's MS SQL and MS language specific.

(YAWN) You could have written that code in most languages with most databases years ago!

What's next Microsoft?</comment>


China stocks hit hard, rest of world shrugs - <AUTHOR> http://www.reuters.com/article/2015/11/27/us-global-markets-idUSKBN0TG02420151127#2Ha5wPmaTAoitcaP.97 <comment><USER2> Calling a 5% change in the Shanghai Composite index a "hard hit" is an overstatement, given what has been happening there over the last months (particularly April-September).

<comment><USER3> Well it is the biggest drop single day drop since the larger losses in June/July so I think that it is justified in calling it a hard hit.

</comment></comment><comment><USER4> Well, the American holiday might have something to do with the lack of response in U.S. markets. I suspect that this also indicates a lack of "reality" in the Chinese stock markets. The Chinese economy is fairly strongly integrated with the rest of the world, but the Chinese markets don't reflect the economy as well as they could. Which is to say, the economic decline has been visible for a while and only now are the Chinese markets catching up.</comment>


To peer or not to peer - <AUTHOR> https://www.peeringdb.com <comment><AUTHOR> Try searching for Google, Apple, Facebook, Netflix, Amazon, Akamai, Microsoft, Twitch...</comment>


Does Your Website Fit on a Floppy? - <AUTHOR> https://fitonafloppy.website/ <comment><USER2> > 3G HSPA (~1.5Mbit/s): 8 seconds

1.5Mbit/sec is the theoretical maximum output of HSPA. That means people will perceive _much_ less then that. And 3G is something which is still used by people. My mobile phone falls back to 3G whenever there is no better broadcasting signal. Many websites become unusable with slow mobile uplink. That's a terrible state for the web.

<comment><USER3> The theoretical maximum of HSPA is 7.2Mbit/sec not 1.5Mbit/sec.[0]

[0]: [https://kenstechtips.com/index.php/download- speeds-2g-3g-and...](https://kenstechtips.com/index.php/download- speeds-2g-3g-and-4g-actual-meaning)

</comment></comment><comment><USER4> [https://fitonafloppy.website/?website=fccid.io&https=true](https://fitonafloppy.website/?website=fccid.io&https=true)

</comment><comment><USER5> I thought it meant the whole website at first. Looks like by website they mean a single webpage and all of the files needed to display it though. (images, css, scripts)

<comment><USER6> Yes and it ignores deferred/async files.

</comment></comment><comment><USER7> This site crashes my iOS 13 Safari browser. When I enter a URL and tap "Go," it says "please enter a URL" once or twice, and then, crashes.

<comment><USER6> I can't seem to replicate it on iOS 13 Safari, does it fully crash your browser or just the page stops working? Did you specify the protocol in the URL?

I currently use HTML5's URL input, one bit of feedback I get is that it shouldn't require protocol. I will look at changing it.

<comment><USER7> I didn't specify the protocol. It did fully crash the app.

I'll play with it a little more.

<comment><USER6> If you have a chance can you test again? Also do you have the exact version of iOS?

<comment><USER7> It's iOS 13.1.3 on an iPhone SE.

As of this posting, no longer crashing for me when I input the same domain and choose HTTPS.

Thanks!

Edit: Also working for HTTP.

</comment></comment></comment></comment></comment><comment><USER8> Of course not, I used gatsby.</comment>


Downloading All of Hacker News Posts and Comments - <AUTHOR> http://shitalshah.com/?p=1424 <comment><USER2> I uploaded it to Internet Archive: [https://archive.org/details/HackerNewsStoriesAndCommentsDump](https://archive.org/details/HackerNewsStoriesAndCommentsDump)

Not sure two giant JSON files is the best format for this, but I used jp: [http://www.paulhammond.org/jp/](http://www.paulhammond.org/jp/) to browse through it.

<comment><AUTHOR> Thank you! I was trying to do that but couldn't find information on their policy about accepting and hosting such data. I've added links to this as well as Torrent links other folks had sent.

</comment></comment><comment><AUTHOR> Just wanted to start a thread on some project ideas for this data:

* Discover geek friendly WordPress themes and plugins by analyzing CSS in stories posted on HN.

* My pet EVIL project: Extract self identifying statements from comments and create profile for HN users :).

* Find out abandonment rate of veteran users.

* Find out undiscovered great stories that didn't got in to frontpage because algorithm deficiency in HN (for example, get links posted by people with 10K+ karma but without upvotes.

<comment><USER3> Construct phrases like Yoda, shall I. Unmask this Identity, never you shall.

<comment><USER4> Oh come on George, stop it.

</comment></comment></comment><comment><USER5> Awesome, this will be super useful for running ML experiments on the HN stories.

Previously, Max Woolf worked on this [http://minimaxir.com/2014/02/hacking- hacker-news/](http://minimaxir.com/2014/02/hacking-hacker-news/) via [https://news.ycombinator.com/item?id=7291531](https://news.ycombinator.com/item?id=7291531)

<comment><USER6> I did, and with that, I had also included that Python code in GitHub, which uses the same implementation as the OP: [https://github.com/minimaxir/hacker- news-download-all-storie...](https://github.com/minimaxir/hacker-news- download-all-stories)

Fun fact: At 10,000 calls/hour and 1,000 objects per request, you can download all stories AND comments in less than an hour.

As an aside: I tried to use ML on Hacker News stories and have had exactly zero success. (i.e. the predictive models are not statistically significantly better than the NIR)

<comment><USER7> If you prefer the Python approach, I have forked minimaxir's code to work for comments:

[https://github.com/jaredsohn/hacker-news-download-all- commen...](https://github.com/jaredsohn/hacker-news-download-all-comments)

I have a few other things in the works related to the hnsearch API (had them almost ready for release a few months ago but then I got distracted); this post is persuading me to finish them up soon. :)

</comment></comment></comment><comment><USER8> Have you considered sharing the data as a torrent? The current FileDropper speed is quite low (~200KB/s)

P.S. Thanks for the data, you saved a good amount of our time.

<comment><USER9> magnet:? xt=urn:btih:A3E2200A9A99906476E2E88CA002477219A3C2C3&dn=HN&tr= udp%3a%2f%2ftracker.openbittorrent.com%3a80%2fannounce&tr=udp% 3a%2f%2ftracker.publicbt.com%3a80%2fannounce&tr=udp%3a%2f%2ftr acker.ccc.de%3a80%2fannounce

<comment><USER10> PLEASE add four spaces before very long unbroken strings.

</comment></comment></comment><comment><USER11> Danke...on my 1,000th day (which was quite a few days ago), I wanted to do an analysis of how my upvoting/submission habits changed...that is, over the 3+ years I've been on HN, did my interests in hacking and languages diversify? But in terms of what I upvoted, it's hard to tell without the entire post set whether _my_ interests changed, or the composition of HN's submissions.

Also, it's great to be able to filter through and find all of the highly- upvoted stories that I've missed out, and programmatically push them to Pinboard. Thanks for this.

</comment><comment><USER12> Your "Stories Download URL" is the same as the "Comments Download URL".

<comment><USER13> Easy fix, just change comments in the url to stories.

<comment><USER7> I imagine the point of that comment was to suggest that the OP fixes it to make it easier for others.

</comment></comment></comment><comment><USER14> > Content Blocked (content_filter_denied)

> Content Category: "Suspicious"

Which is an odd catch-all category. It may be a keyword match from the domain. That sucks. Anyone got the github link?

<comment><USER8> [https://github.com/sytelus/HackerNewsData](https://github.com/sytelus/HackerNewsData)

</comment></comment><comment><USER13> It's strange to see 1.3m stories and only 5.8m comments. I look forward to examining the data to see how many stories have 0 comments.

<comment><USER15> Lots and lots of stories never make it anywhere near the front page. Mostly spam.

<comment><USER13> But I think the spam is caught and doesn't register through the api...

<comment><USER6> Stories which are dead will not show in the API, that's correct. But the proportion of _submissions_ that make it to the front page / get any comments is very low. (<10%)

</comment></comment></comment></comment><comment><USER16> Thanks for the dataset! I've been wanting this corpus for a while. I have a few ideas I want to run with this.

</comment><comment><USER17> What licence is the HN content made available under? I'm trying to find some T & C's that I might have agreed to but I haven't them yet. I don't think you can assume that comments made here are free to copy, reuse, manipulate and republish elsewhere

</comment><comment><USER18> Great work! Does anyone know if there is anything similar for Slashdot?

<comment><USER19> The /. comments with its tags "Interesting", "Funny", "Insightful", "Informative", "Flamebait" can be very helpful for machine learning purposes.

</comment></comment><comment><USER20> Very helpful. I was looking for dataset like this recently. Now there it is. Great work.

</comment><comment><USER21> Your "Fork me on Github" banner covers your hamburger menu icon.

</comment><comment><USER22> would be nice if there was something similar for reddit.</comment>


HTML5 Canvas Performance in deviantART muro - <AUTHOR> http://dt.deviantart.com/blog/38471599/

<comment><USER2> The author states, "Javascript array lookups are not particularly fast, so applying a filter to a large canvas can be painfully slow."

I would be interested to see what using typed arrays does to performance: <https://developer.mozilla.org/en/JavaScript_typed_arrays>

</comment><comment><USER2> Best performance can only be had on Windows. Firefox 4 can only accelerate so much on the Mac platform. Firefox 4 and IE9 on windows will be significantly better.

</comment><comment><USER3> Is there any HTML5 solution to generate pretty charts like these in the article?</comment>


Tezos and Ocaml: A self-amending cryptographic ledger - <AUTHOR> https://github.com/tezos/tezos <comment><USER2> Can somebody explain with layman terms how this works?

<comment><USER3> It means hard forks (afaik) are not required when features are added. Protocol can grow organically. Interesting tech but not sure about the use case. Blockchain is all cart-before-the-horse.

</comment></comment><comment><USER4> An article providing more background to the project and the open-sourcing. Perhaps they should consider moving to GitLab

[https://www.coindesk.com/tezos-launch-story-whats- left-232-m...](https://www.coindesk.com/tezos-launch-story-whats- left-232-million-tech-goes-live/)

<comment><USER5> [https://gitlab.com/tezos/tezos](https://gitlab.com/tezos/tezos)

(betanet branch has the launch release)

</comment></comment><comment><USER6> Can't find any information anywhere about how it self amends.

Thought about this myself a few times.

One way would be to have transactions that contain code and an address. send money to the address and after a certain freshold the code goes live. Node restarts with new code in place.

Kind of dangerous and funny at the same time.

<comment><USER7> The way they self amend is that they literally will just vote to replace a particular file in their implementation with a new one.

</comment></comment><comment><USER8> As noted in the README, all of the devlopment now occurs in gitlab [0], and github is a mirror.

[0] [https://gitlab.com/tezos/tezos](https://gitlab.com/tezos/tezos)

</comment><comment><USER9> Too bad the whole thing was/is shadowed by the split of founders and foundation. As always with pretty much any cryptocurrency over-promises that fell short (launch was supposedly scheduled for end of last year) and greed.

Cherry on-top they are now demanding passports (KYC) for those that fell for their ICO while nothing was mentioned when they are actually collecting the money.

Hopefully at least their software will be of some value and not a total scam like their rest practices.

<comment><USER10> I don't think there was a "scam." I think they learned that in order to issue tokens and get exchange listings, they needed KYC in the new environment by the time they were done. There was a definite screw up in the initial governance when the picked a bad apple for the foundation.

The foundation and founders are reunited once again, so if the tech is solid, and so far it has been, then all signs are positive.

</comment></comment><comment><USER11> Happy to take any questions from here to the devs/founders. (The 30 June launch date was hard to hit, but I think everyone has recovered by now.)

<comment><USER12> Considering the close ties of OCaml and Coq, has anyone done some sort of formal verification for Tezos ?

<comment><USER11> The main focus has been on the formal verifiability of smart contracts written in Michelson -- [https://www.michelson-lang.com/](https://www.michelson- lang.com/) I'm checking on Tezos itself.

</comment></comment></comment><comment><USER7> Worth pointing out: these guys worked for a long time off a very large capital-raise round to implement and run a test net, only to just replace it at the very last moment with a completely new main net.

<comment><USER13> Could you expand on that a bit? My understanding is that a test net is launched before main net. Or they are run in parallel.

<comment><USER7> If properly designed, the main net should really just be the test net. Any small issues should have been ratified on the test, and the chain should move to production without any issues. However, Tezos basically released a whole new product, without proper prior testing.</comment></comment></comment>


After 8 months, the seed for Minecraft's pack.png has been found - <AUTHOR> https://packpng.com/ <comment><USER2> But why?</comment>


Framework/lib for user centered webapp - <AUTHOR> I'm searching for a library or framework (php or python) for experimenting a new app that permits user login and content submission, I developed in the past something similar with django but I remember having spent a lot of time on user login/password reset/confirmation email/profile customization, because the default was not good enough even for basic needs.<p>Is there something around that has best practices in mind and can be used easily? <comment><USER2> If I understood you correctly then for Flask you have something like this: [https://flask-security-too.readthedocs.io/en/stable/](https://flask-security- too.readthedocs.io/en/stable/)</comment>


GBD 2010: understanding disease, injury, and risk : The Lancet - <AUTHOR> http://www.thelancet.com/journals/lancet/article/PIIS0140-6736%2812%2962133-3/fulltext <comment><AUTHOR> link to article on article [http://io9.com/5969254/chart-reveals-the-diseases- that-are-m...](http://io9.com/5969254/chart-reveals-the-diseases-that-are- most-likely-to-kill-you)</comment>


Aatmanirbhar India - <AUTHOR> https://medium.com/@ananyadhoundiyal4558/aatmanirbhar-bharat-through-one-india-prosperous-india-c7d8254dbd83 <comment><USER2> GDP is $2.9 trillion; 87% Indians are Poor; And Modi regime gave just $21 as Pandemic Relief to the Poor; Hope 220 million who voted for Modi are regretting now; [https://archive.is/DjiL7](https://archive.is/DjiL7)</comment>