Four Earth-sized planets detected orbiting the nearest sun-like star - <AUTHOR> https://news.ucsc.edu/2017/08/tau-ceti-planets.html <comment><USER2> I am flabbergasted that as a society we aren't rushing to build a 100 metre wide telescope mirror large enough for us to directly image the spectra of the potentially habitable exoplanets around us.

A telescope this large could tell us whether any of these potentially habitable planets contain oxygen, and thus, biological processes.

Yet thanks to funding cuts in science the biggest telescope we have in the pipeline right now is one with a 30 metre mirror. This telescope won't be big enough, and as a result, our failure to push now for bigger sizes is almost certainly going to push back for decades humanity's ability to answer one of the most important questions we face:

Why are we here, and are we alone.

<comment><USER3> >I am flabbergasted that as a society we aren't rushing to build a 100 metre wide telescope mirror large enough for us to directly image the spectra of the potentially habitable exoplanets around us.

This is because most of society is still struggling with day-to-day tasks like getting housing, clean water, reliable food, healthcare and dealing with physical conflicts.

Even people rich enough to not be stuck in the short term future have to be concerned with near term risks like political destabilization countries and climate change.

So it's hard to rush to do something like this as a society when we are already rushing to solve acute issues.

<comment><USER4> The world had less reliable housing, less clean water, less reliable food, worse healthcare, and more physical conflicts in the 60s, and we still had the Apollo program put people on the moon.

Only the most pathetic hacks would argue that we are the worse for having invested that money to push the bounds of exploration.

At a point, there are 6 billion people on the earth, and there will always be _some_ problems unsolved, whether that is because a few countries are trying to collapse, or because we have found new first-world problems to agonize about in the US.

It's a question of whether we will spend 10x the cost to solve the last 10% of those problems, or spend that money moving forward as a civilization.

<comment><USER5> The Apollo program did result in significant advances in science and technology.

Had we put the same resources into solving other more earthbound problems would we be better off? Maybe we could have developed a better, standard, safer nuclear power plant design and could have left coal and oil behind 30 years ago. And we would not be discussing climate change or at least not the idea that it was man-made.

<comment><USER6> We have designs. The problem is they aren't also capable of creating nuclear weapons so they are irrelevant to NATO. IIRC.

</comment></comment></comment></comment></comment><comment><USER7> This title is a bit imprecise. They detected four planets with lower bound on their masses to be down to 1.7 Earth masses. Because these planets don't transit, there are no direct measurements from their radius. They can use mass-radius relations to infer the radius of these planets, but the key finding is their masses (actually lower bounds on their masses).

<comment><USER8> Can you say they _don't_ transit? They say the planets were detected by analyzing star wobbles, which doesn't necessarily mean that the planets don't transit, just that it's not how they were detected.

<comment><USER9> Yeah, but the Kepler observatory has looked for exoplanet transits for many years now and found over 1000.

You have to assume it has examined this close neighbor thoroughly.

<comment><USER7> Actually this star is not in the Kepler Field, and it is also too bright for Kepler. Even most ground based telescopes looking for transits probably haven't bothered looking at it, due to its brightness.

<comment><USER9> Thanks, I had no idea Kepler was under these constraints.

I'd expect it's easier to measure at the brighter stars. Maybe calibrating the instrument for the weaker stars makes it "overload" for a really bright ones?

<comment><USER10> You're in for a treat, "Kepler 2.0" launches next year: [https://tess.gsfc.nasa.gov/overview.html](https://tess.gsfc.nasa.gov/overview.html)

</comment></comment></comment></comment></comment></comment><comment><USER11> I really really want project Starshot to become a reality. I think this is our best bet for scoping out these near by star systems. At least within our lifetime.

If we could hit 50% speed of light we could do a fly-by mission in ~25 years. Then another 12 years waiting for the data. Honestly, ~37-40 years isn't bad for an interstellar mission. Remember the Voyager program has been going on for that long! So we already have experience with long space missions.

[https://breakthroughinitiatives.org/Initiative/3](https://breakthroughinitiatives.org/Initiative/3) [https://en.wikipedia.org/wiki/Breakthrough_Initiatives#Break...](https://en.wikipedia.org/wiki/Breakthrough_Initiatives#Breakthrough_Starshot)

<comment><USER12> I hope Elon Musk reads your inquiry

<comment><USER13> I would incredibly surprised if he hasn't already thought about similar things. I remember in an interview last year he stated that the Interplanetary Transport System SpaceX is building for whisking humans to mars and other celestial objects in the solar system will be tiny in comparison to the spaceships that humanity will build in the latter half of this century. Bear in mind, the ITS has more than 3x the lift-off thrust of the Saturn V, which is the largest rocket ever built.

<comment><USER14> Actually, it does not. Musk announced recently that the ITS would be a lot smaller, actually being slightly smaller than the Saturn V, as he couldn't get as many subsidies as he expected to.

</comment></comment></comment></comment><comment><USER15> Ok, let's assume we find a warm, watery planet like Earth's within ~20 light years, and we figure out a way to travel >= 50% the speed of light, making it somewhat reasonable to get there. If the planet's gravity is greater than 10% different from Earth's, or its Day/Night cycle is much different from Earth's, wouldn't it still be a nightmare to live on.

Anatomically modern humans have lived on Earth for 200,000 years, and the creatures we descended from have lived on Earth for 541 million years. Stuff as dumb as the moon cycles affect us. How are we going to live somewhere that isn't exactly Earth?

<comment><USER16> I'm going to show my nerd colors here but having a thought like this has almost ruined Star Trek for me. For me I often think about atmospheric pressure. There's no way that beings from so many different planets could exist on a single star ship set at 1 Earth atmosphere.

Maybe someone knowledgeable in this space can tell me, but is a planet's atmospheric pressure reliably proportional to its mass?

<comment><USER17> Venus is 90 bar, Mars is 6 mbar. Maybe not from N=3 in our solar system.

I feel you on Star Trek. It always kills me that 90% of species in the quadrant is a bipedal humanoid, although they did address this in "The Chase" (TNG:S6E20). But I digress.

<comment><USER18> Non bi-symmetric&quadrupedal animals usually make b-movies or enemies in horror genre. I am also interested in life forms in other quark/lepton/ muon sorts in the current universe if possible.

I m a firm believer that non-natural, non-random life forms will dominate the space exploration including robots, augmented humans, bio-robo hybrids and Supra and sub swarms of those.

</comment></comment></comment></comment><comment><USER19> Key line to mitigate disappointment:

"The outer two planets around tau Ceti are likely to be candidate habitable worlds, although a massive debris disc around the star probably reduces their habitability due to intensive bombardment by asteroids and comets."

<comment><USER20> We'll just wear helmets!

<comment><USER21> Today's forecast is a 50% chance of iron magma precipitation with a light sulfur fog.

</comment></comment></comment><comment><USER22> Unlike more common smaller stars, such as the red dwarf stars Proxima Centauri and Trappist-1, they are not so faint that planets would be tidally locked, showing the same side to the star at all times.

In such planets, the most habitable zone is around an equator like region where the light and dark regions kind of merge to produce a reddish sunset like hue all through the day. I think one of the planets that Kepler discovered is like that. Life would evolve to absorb these light wavelengths. So for instance plants would all look black. Nova has a great episode on these exoplanets. [https://www.youtube.com/watch?v=5HZsFMqqGJo&t=793s](https://www.youtube.com/watch?v=5HZsFMqqGJo&t=793s)

</comment><comment><USER23> The fastest spacecraft ever built would take 4000 years to travel one light year.

<comment><USER24> If we wanted it badly enough, we could get to tau Ceti with current technology. The Orion designs are sound, and could carry a population capable of sustaining itself for the 100-odd years it would take to get there.

<comment><USER25> Orion designs really only work if you're evacuating the planet. Massive fallout and radiation would be caused by each launch.

<comment><USER26> Orion isn't a launch drive, it's a transit drive.

<comment><USER27> "Early versions of this vehicle were proposed to take off from the ground with significant associated nuclear fallout; later versions were presented for use only in space."

</comment></comment></comment></comment></comment><comment><USER28> I wonder if an observer 12 light-years away with similar technology to us would be able to tell the difference between Venus and Earth in terms of whether they are potentially habitable.

</comment><comment><USER29> Is there any benefit to the planets being earth-sized? I would think the important part is that they're in the habitable zone.

<comment><USER30> Gravity. A rocky planet, roughly Earth-sized, will have about the same gravity as we have on Earth. Both larger and smaller planets will have a deleterious effect on human health, at least until we (our descendants) adapt (if it's even possible.)

<comment><USER29> Ah silly me, how could I forget about that? <floats slowly away>

</comment></comment></comment><comment><USER31> Would there be any value in putting a telescope on the moon? You wouldn't have the atmosphere problem, and i'd expect servicing it would be mildly easier than have it out at L2 or something.?

I suppose the fact that the moon was tidally locked would be something of a problem for full sky observation. Is that the main issue?

</comment><comment><USER32> "This required techniques sensitive enough to detect variations in the movement of the star as small as 30 centimeters per second."

This kind of precision sounds insane. It sounds like far more of an achievement than having found Earth-sized planets. Is there any layman explanation of how they do such a thing?

</comment><comment><USER33> I feel like something similar to this is announced every year, and nothing ever comes of it.

<comment><USER2> No, something has come from it. We now have a growing massive list of habitable planets. What's lacking now is the extra tooling to study them more extensively.

</comment></comment><comment><USER34> Hearing distances like 12 light years makes you think if it is ever possible to travel there. However, when you start to think about it, nihilist thoughts start to kick in.

</comment><comment><USER35> I wonder if the Mormons will be starting their ship construction now?

<comment><USER36> They should be careful to hire someone they can trust, and they should probably hold onto the ignition keys...

</comment></comment><comment><USER37> We need to send bacteria to those planets. That'd make life multi-planet. Maybe, that's how life arrived on Earth.

</comment><comment><USER38> Let's go! Who's with me? How much stronger do my bones need to be to live on the 1.7x gravity NeoEarths?

</comment><comment><USER39> I feel like something similar to this is announced every year, and nothing ever comes of it.

<comment><USER40> What do you expect to come of it? Finding more planets is helping understand the universe and give a rough idea of how common Earth-sized planets are.

</comment></comment><comment><USER41> Isn't nearest sun-like star... the Sun?

<comment><USER42> I mean the implication we exclude the object we are searching for when we say like. If I was looking for a table row "like" the value of row 34, row 34 wouldn't be a match.

</comment></comment><comment><USER43> why are we becoming borg?

</comment><comment><USER44> Ggggggggrrrrreeeaaaatttt

</comment><comment><USER45> Hearing distances like 12 light years makes you think if it is ever possible to travel there.

However, when you start to think about it, nihilist thoughts start to kick in.

<comment><USER46> 12 light years is actually very close as interstellar distances go. Such a mission could probably be launched in our lifetimes if the whole world got together behind it (which they won't but still...)

<comment><USER47> From a practical standpoint though (assuming that every nation decided to work together) how would such a mission work?

We'd most likely need a generation ship, given that current estimates of max velocity is in the range of 0.5 to 0.8c.

That means spending trillions of dollars and putting thousands of people in a ship in orbit, sending them off and most likely never seeing them again.

But before that we'd want to send unmanned probes to:

a) test out the propulsion and other systems b) scout the planets themselves, identify a good candidate

But the probe itself would take 20-30 years to reach + 12 more to report back.

Otherwise you're asking thousands to be explorers and guinea pigs for all this technology, with no guarantees about finding a habitable planet or coming back home. With something like the Mars mission you'd probably get volunteers without any family. People would be far more reluctant if it's a generation ship.

<comment><USER14> > Otherwise you're asking thousands to be explorers and guinea pigs for all > this technology, with no guarantees about finding a habitable planet or > coming back home.

That sounds like Mass Effect: Andromeda. Which is basically about that, humanity sending a sleeper ark to another galaxy (due to a perceived threat that might wipe out humanity in our galaxy), with no guarantee that there will be something there (although they did do some telescope measurements of the potential planets there).</comment></comment></comment></comment>


Trails of Wind: Data Visualization of the Architecture of Airport Runways - <AUTHOR> https://trailsofwind.figures.cc/ <comment><USER2> Cool visualization! One thing that isn't mentioned is the difference between true and magnetic compass directions. The runway illustration shows a runway 05 with a heading of 50°. The illustration makes it look like these are true degrees, since 0° is at the top as it would be in a typical map aligned with true north.

But runways are not named by their true heading, they are named by their magnetic heading. It's generally not a huge difference, for example true and magnetic north are about 12° apart at JFK in New York. But it's something that one would want to take into account in any simulation or visualization like this.

<comment><USER3> Good point. For purposes over a quite-small space, it's not a huge difference. However, I was quite surprised the first time I saw a magnetic declination map. Before flying I had never really considered the difference at all.

</comment></comment><comment><USER4> Very cool, might use it in my aero eng lectures! Regarding this topic, in 2011 I did a quick Mathematica script to calculate the historical wind rose for any given airport and display it together with the airport map: [https://wechoosethemoon.es/2011/11/08/mathematica-rosa-de- lo...](https://wechoosethemoon.es/2011/11/08/mathematica-rosa-de-los-vientos/) Sorry, it's in Spanish, the notebook itself is available here: [http://wechoosethemoon.es/assets/files/RosaVientos.nb](http://wechoosethemoon.es/assets/files/RosaVientos.nb)

</comment><comment><USER5> Pretty cool. I am just wondering why they choose to color the runways from yellow to blue while using blue for mountains too...

</comment><comment><USER6> Link is broken from the parent figures.cc site too.

EDIT: Google DNS 126.96.36.199 or 220.127.116.11 doesn't resolve, but Cloudflare DNS servers do. Interesting.

</comment><comment><USER7> One thing that sticks out is how many airports the US and Canada have and how few China has.

Does anyone know if the data is incomplete for China, or is this accurate?

<comment><USER8> Heres a list of Airports in China vs the US. Looks to me that America has a lot more smaller airports, vs china which mostly has bigger airports for airliners and such.

[https://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code:...](https://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code:_Z) [https://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code:...](https://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code:_K)

<comment><USER9> I can't speak for China, but after a quick glance, I can name two actively used airports in the US that I can find on this map that are nothing more than flat stretches of dirt.

[Edit] They're generally used for hobbyists. Although, I once watched a V-22 Osprey practicing touch-and-goes at [1] below -- kicked up _all kinds_ of desert dust. I've never felt more like being in Half-Life than at that time.

[1] Ocotillo Wells Airport [https://email@example.com,-116.1300329,587m/da...](https://email@example.com,-116.1300329,587m/data=!3m1!1e3)

[2] Salton Sea Airport [https://email@example.com,-115.9513012,1246m/d...](https://email@example.com,-115.9513012,1246m/data=!3m1!1e3)

</comment></comment></comment><comment><USER10> Is there a way to search airport codes? Would be interesting to pull up a specific airport with relevant runway analysis.

I think AeroData does this also.

<comment><USER11> Im on mobile and dont have the link but you can easily get the list of airport codes - just google about.

—-

Whats interesting about the airport codes (the three letter designation) is that they are commonly derrived from the plot of land or field they were created on. Sometimes even the name of the land owner.

Oh here you go:

[https://abcnews.go.com/Travel/history-airport-codes-logic- le...](https://abcnews.go.com/Travel/history-airport-codes-logic-letter- codes/story?id=11684406)

</comment></comment><comment><USER12> Not only does the domain not resolve for me (Google DNS), but looking up the IP and connecting directly gives me an nginx 404. ([http://188.8.131.52](http://126.96.36.199)).

In case the creator is here... a large part of the internet can't access it right now.

<comment><USER13> it's disheartening to think that so many (technically-minded) people _actively configure_ their networks & devices to give google even more of their data for free.

fwiw, i use adguard dns[0] which i initially learned about right here on hn (edit: and figures.cc resolves just fine with it).

[0] [https://adguard.com/en/adguard- dns/overview.html](https://adguard.com/en/adguard-dns/overview.html)

</comment></comment><comment><USER14> it'd be fun to drop this vector field on a graph (maybe a sphere's surface), interpolate between points, and then drop in particles and watch their streamlines.

</comment><comment><USER15> [Edit: I am wrong. Ignore this]

>"Runways generally point in the wind direction, as aircraft take off and land more easily upwind. The designation of these is based on their respective alignment angles."

NO!!

This is exactly 180º wrong -- what generates lift on a wing is _relative_ airflow and thus pilots preferentially prefer to take off or land into a headwind -- which mimics speed "for free".

Likewise, tailwind landings are downright dangerous for the same reason, and each aircraft has strict (and low) limits for the maximum permitted tailwind. The illustration is exactly the other way around.

<comment><USER16> "Upwind" means "into the wind", right? This seems to be written correctly to me.

<comment><USER15> I'm an idiot -- you're right. Apologies. The graphic vectors looked like the wind was blowing the wrong direction and I missed this.

<comment><USER16> Haha no problem, you're not an idiot! You still explained why this is relevant to pilots, which is helpful to know.

</comment></comment></comment></comment><comment><USER17> Very cool. Why does Florida have so many airports?

<comment><USER18> \- It has a bunch of popular vacation destinations (beaches on the Gulf Coast, beaches on the Atlantic, theme parks at Orlando, cruise ship ports, and the Florida Keys)

\- It's both really large (it would take ~10 hours to drive from Pensacola to Miami) and pretty dense (8th densest state as of 2015[1])

\- It has a lot of military bases: 5 active Air Force bases and 4 Naval Air Stations, along with a bunch of other installations that also have airfields.

More broadly: It has good weather most of the year, it's the closest point in the continental US to a lot of places (the Carribean, Central and South America), and it had a ton of empty land during the period that the US started building a lot of airfields.

[1] [https://en.wikipedia.org/wiki/List_of_states_and_territories...](https://en.wikipedia.org/wiki/List_of_states_and_territories_of_the_United_States_by_population_density)

</comment></comment><comment><USER19> Scroll broken in Firefox on Mac.

Why does the Southern US seem to contain the highest concentration of North- South runways in the world?

<comment><USER20> Broken on Windows too.

<comment><USER21> Works for me in Firefox on Windows</comment></comment></comment>


Look Out Tab Bar: Get Ready for Path's UI to be Everywhere - <AUTHOR> http://thenextweb.com/dd/2011/12/04/look-out-tab-bar-get-ready-for-paths-sharing-ui-to-be-everywhere/?awesm=tnw.to_1C6DE&utm_campaign=social%20media&utm_medium=Spreadus&utm_source=Facebook&utm_content=Look%20out%20tab%20bar:%20Get%20ready%20for%20Paths%20sharing%20UI%20to%20be%20everywhere

<comment><USER2> Ugh.

Please, no. It's terrible UI.

<comment><USER3> I find it hard to use too - for once, it gets easily mixed up woth the content (it took me some good seconds to actually find the button at first). Plus the fact that it's icons only makes it unnatural to do stuff (I had to click on each action to make sure what each one did)</comment></comment>


Ask HN: What is a good React stack? - <AUTHOR> I've been trying to do this for a while, but can't find anything 'official' for this. My goal is to have a React front-end with a RESTful-style backend, with user auth.<p>What do you recommend using? React + auth is my biggest issue <comment><USER2> In terms of front-end, definitely go Redux. If I can toot my own horn, I suggest React/Redux/Radical ([http://www.nathan- rice.net/projects/radical/](http://www.nathan-rice.net/projects/radical/) ); it greatly simplifies working with Redux. I also suggest Typescript, you're already going to be on the hook with Webpack, you might as well take the small extra step and get a much better development experience.

As for a back-end, Postgrest is absolutely amazing. There are examples of how to implement auth with Postgrest on the official site. If you implement your application logic as stored procedures in the database, you don't need Flask/Django/etc at all.

<comment><USER3> How would you send an email when an event occurs (e.g. user registration) if your only backend logic is stored procedures?

<comment><USER4> The basic idea is that in db you generate events (lots of ways) and a custom script listens and reacts (sends the email) This page can give you an idea [http://postgrest.com/examples/users/](http://postgrest.com/examples/users/) (somewhere in the middle of the article)

But also note that there are tons of ways to extend the functionality of PostgreSQL. Here is a stackoverflow answer about this also [http://stackoverflow.com/questions/12002662/how-can-i- send-e...](http://stackoverflow.com/questions/12002662/how-can-i-send-email- from-postgresql-trigger)

it is even possible to do it directly in the db (but not recommended) [http://brandolabs.com/pgmail](http://brandolabs.com/pgmail)

<comment><USER3> Right, then you still need a script listening to the event omitted from Posgrest. And if the scripts you are building are anything less than trivial it seems to me you are right back to Flask/Django/etc at all.

<comment><USER4> are you saying you need a framework to send an email or that somehow that script is not trivial?

Maybe you are saying that it's not just email, you have to interact with some other services ... ok so it's a bit more complex and you go for a framework to handle that but your problem/task has just been reduced from building a complete REST api to reacting to a handful of events and taking appropriate actions. Postgrest is an executable that you start and you have an api right that second, it's not like it's another framework that you need to code against.

</comment></comment></comment></comment></comment><comment><USER4> If you are going with React I suggest you go all in, i.e. React + Relay + GraphQL. In FB words "While each of these technologies — React, Relay, and GraphQL — are powerful on their own, the combination is a UI platform that allows us to move fast and ship high-quality apps at scale"

The tricky part is the GraphQL/backend server. You can roll your sleeves and do it yourself starting form this [https://github.com/graphql/graphql- js](https://github.com/graphql/graphql-js) Might also try [https://github.com/calebmer/postgraphql](https://github.com/calebmer/postgraphql) (PostgREST inspired, open source but no auth and has N+1 problem)

I am also working on a tool/platform that you might be interested for the backend (in beta). It is based on OpenResty/PostgREST/PostgreSQL and it will give you a REST and GraphQL (Relay compatible) backend with very little work. [http://graphqlapi.com/](http://graphqlapi.com/) [https://github.com/ruslantalpa/sub0_sample_app](https://github.com/ruslantalpa/sub0_sample_app)

</comment><comment><USER5> Well fullstack Javascript is pretty common, you can use express or Koa, and passport works well for auth. Really you could use any backend and be just fine, whether it's Python, Ruby, Go, Elixir, etc. Burger (BGR) stack is popping up lately too [http://go- talks.appspot.com/github.com/gophercon/2016-talks/...](http://go- talks.appspot.com/github.com/gophercon/2016-talks/BenJohnson- TheBurgerStack/main.slide#1). Additionally things like Redux and Relay make it very nice to communicate between React and your backend. Otherwise, just speaking ajax to the backend works.

<comment><AUTHOR> To get started on all of this, is there any boiler plates with auth built-in to take a look instead of reimplementing everything from the base up?

<comment><USER6> You could use something like Django as an API for React to hit. It has user auth, and if you use django-rest-framework it works flawlessly with React/webpack

</comment></comment></comment><comment><USER7> I use container components at the appropriate levels in the hierarchy in a similar way to Flux stores, managing their state using React's own state management, exposing the state via context (to avoid excessive property passing). I implement actions as functions in the container components which I also expose via context. So far, I've found it to be simple and effective. I use page.js for routing and superagent for web service calls.

</comment><comment><USER8> I used this starter kit (v2.0.0-alpha3): [https://github.com/davezuko/react- redux-starter-kit](https://github.com/davezuko/react-redux-starter-kit)

I paired it with a Rails API backend.

Auth handled by Auth0 and use JWT to communicate between back and front (soon to be fronts as I will be adding in an app).

</comment><comment><USER9> [https://github.com/sahat/hackathon- starter](https://github.com/sahat/hackathon-starter) [https://github.com/jaredpalmer/react-production- starter](https://github.com/jaredpalmer/react-production-starter)

</comment><comment><USER10> Read this article for your answer [https://blog.designveloper.comhttps://blog.designveloper.com...](https://blog.designveloper.comhttps://blog.designveloper.com/2016/06/21/react- structure-container-component-in-meteor/)

</comment><comment><USER11> Anyone here used MobX ([https://github.com/mobxjs/mobx](https://github.com/mobxjs/mobx)) ? Would like to know about pros and cons compared to redux .

I haven't used any of those but would like to know about them before I start using any of those.

<comment><USER12> Mobx makes many tasks much easier and pragmatic. Redux is more on rhe immutable no side-effects site but will need more boilerplate for even small things.

</comment></comment><comment><USER13> Just going to put this here, [https://medium.com/javascript- scene/passwordless-authenticat...](https://medium.com/javascript- scene/passwordless-authentication-with-react-and- auth0-c4cb003c7cde#.o92147ko1)

</comment><comment><USER12> I found here the best combination. I am not using redux.

[https://github.com/coryhouse/react- slingshot](https://github.com/coryhouse/react-slingshot)</comment>


Santa Tracker in USA will have fighter jet escort this year - <AUTHOR> http://blogs.wsj.com/washwire/2013/12/06/defense-official-defends-santas-fighter-jet-escort/

<comment><AUTHOR> I really do not understand who the heck thought this was acceptable.

Brainwash those kids early and get them desensitized to war?

Why not have Santa go through a TSA checkpoint and require a grope check?

 _" military escorts for Santa are necessary given "the proliferation of air defense identification zones."_

Are the freaking serious? Injecting politics into Santa for kids?

<comment><USER2> It also conflicts with the other statement: _While we track Santa around the world, NORAD only provides escorts while he is in North American aerospace_. Santa wouldn't have to worry about those zones over the USA and Canada.</comment></comment>


Introducing Cornucopia, the food printer - <AUTHOR> http://phys.org/news199080001.html <comment><USER2> One of the concepts:

"Digital Chocolatier Prototype

The Digital Chocolatier is a prototype for a machine that allows users to quickly design, assemble and taste different chocolate candies. This machine is composed of three primary elements: a carousel of ingredients, a thermoelectric deposition cup and a user interface. Through a graphical user interface, users can select and combine the ingredients housed in the different carousel containers to create customized candies. The carousel rotates to extrude these ingredients into the thermoelectric cup that rapidly cools and hardens the chocolate, making it ready for consumption. The interface also makes it possible to save and rate favorite recipes for later use." \-- [http://www.cmarcelo.com/cornucopia](http://www.cmarcelo.com/cornucopia)

I can actually see how that could work.

</comment><comment><USER3> This is just a concept.

However, the "burrito bot" exists:

[http://www.nbcnews.com/technology/burritobot-precision- torti...](http://www.nbcnews.com/technology/burritobot-precision-tortilla- filling-machine-835952)

And its inventor says that the results are kind of nasty. There's a lot more to food than just nutritive compounds.

</comment><comment><USER4> Sorry, call me old fashioned (and I love my Star Trek Replicator), but I really like my food unprocessed, before cooking.

I really love to mix ingredients as building blocks of a great, nourishing meal. Not industrially manufactured so called food.

<comment><USER5> Let me add in Lexx, the sci-fi show, and their food printer thingy as well.

<comment><USER6> On Futurama they had a robot that prepared cocktails. It's the same basic premise.

</comment></comment></comment><comment><USER7> NASA just funded a Texas company to investigate feasibility of 3D printing food for space missions:

[http://www.nasa.gov/directorates/spacetech/home/feature_3d_f...](http://www.nasa.gov/directorates/spacetech/home/feature_3d_food.html)

</comment><comment><USER8> Reminds me of "Cloudy with a Chance of Meatballs" [1]

[1] [http://www.imdb.com/title/tt0844471/](http://www.imdb.com/title/tt0844471/)

</comment><comment><USER9> The article is from 2010. Is there any sort of follow up?

<comment><USER10> This one appears to have lived and died as a prototype. Any mention of it after this article has only referenced what original information and images are available on the prototyper's 2010 site. [1]

Fab@Home seems to be closer to digitally printing food, though it doesn't seem like any time soon: _" Lipton thinks that fabricating a dish of steak and potatoes from scratch is still 15 to 20 years or more in the future."_ [2]

[1] [http://www.cmarcelo.com/cornucopia/](http://www.cmarcelo.com/cornucopia/)

[2] [http://www.spacesafetymagazine.com/2013/03/19/3d-printing- ta...](http://www.spacesafetymagazine.com/2013/03/19/3d-printing-takes-final- frontier-food/)

</comment></comment><comment><USER11> Tea. Earl Grey. Hot.

<comment><USER12> "Coffee, Jamaican blend, double-strong, double-sweet."

</comment></comment><comment><USER13> TL;DR; It's just an idea.

Which any good entrepreneur knows is as valuable as leaves on a tree.

Implementation is whats important.</comment>


Couchio - Because we just couldn't not do it. - <AUTHOR> http://blog.couch.io/post/913607366/because-we-just-couldnt-not-do-it <comment><USER2> Cool idea, but awful realization.</comment>


Questions Devs Should Ask Interviewers to Discern Culture - <AUTHOR> https://hackernoon.com/6-questions-devs-should-ask-interviewers-to-discern-culture-iy1y93wo7 <comment><AUTHOR> what questions you ask during the interview?</comment>


Abe: Tokyo lockdown would damage Japan economy - <AUTHOR> https://www3.nhk.or.jp/nhkworld/en/news/20200327_24/ <comment><USER2> RIP.

> Economic Revitalization Minister Yasutoshi Nishimura is in charge of the > nation's coronavirus-response law. He said it was unnecessary to declare a > state of emergency at this stage.

They are ever more reluctant than the USA.</comment>


Semantic Web: What Is The Killer App? - <AUTHOR> http://www.readwriteweb.com/archives/semantic_web_what_is_the_killer_app.php

<comment><USER2> "Semantic Web" - like we need another buzzword.

<comment><USER3> "new" ? I think the term has been around as long as the web. It was pretty much Berners-Lee's idea.

<comment><USER2> Maybe it's just recently been hyped up to buzzword status.</comment></comment></comment>


Heritage Foundation leaks email archive - <AUTHOR> http://thf_media.s3.amazonaws.com/Debuhr/backup.zip <comment><AUTHOR> Greetings,

The Heritage Foundation, a conservative think tank, was kind enough to upload an assistant director's email archive to a public Amazon bucket.

[http://thf_media.s3.amazonaws.com/Debuhr/backup.zip](http://thf_media.s3.amazonaws.com/Debuhr/backup.zip)

What fools they be.

You want donor lists? Check. You want embarrassing insider comments? Check. You want plenty of "confidential" pdf xls and doc files? Check.

It's a zipped .pst file, so grab a pst viewer or import to Outlook.

<comment><USER2> Do you still have a copy of this?

<comment><USER3> [https://thepiratebay.gd/torrent/12313760/Heritage_Foundation...](https://thepiratebay.gd/torrent/12313760/Heritage_Foundation_leaked_email_archive._Steve_Debuhr)</comment></comment></comment>


Ask HN: Who is looking for a cofounder? - <AUTHOR> I'm a developer looking for a cofounder and I couldn't find a relevant thread so I'm posting this.<p>Feel free to use the comments to post about what ideas you have, what you're building, and what kind of partner you're looking for. I'll start! <comment><AUTHOR> Hey there! As the post says, I'm a developer looking for someone to partner up with and work on cool things.

I'm looking for either other developers or people with business or marketing experience, as that's mostly what I'm lacking.

I also don't have a lot of great startup ideas, so I'm going to need some help finding problems to solve!

You can learn more about me by checking out my toptal resume ([https://www.toptal.com/resume/marcos- pereira](https://www.toptal.com/resume/marcos-pereira)). You can also check my github profile ([https://github.com/marcospgp](https://github.com/marcospgp)).

Thanks!</comment>


Why should I have written ZeroMQ in C, not C++ (2012) - <AUTHOR> http://250bpm.com/blog:4 <comment><USER2> This actually sounds like an argument for why he should've used a smaller subset (or different) of C++.

For example: make all constructors private and empty and use public static factory methods for manufacturing new instances. Now the factory _can_ fail, and return an error to boot.

Similarly, ditch C++ exceptions and introduce the notion of a status object that methods return. You always have the option of C-style semantics without dumping the genuine advantages C++ brings.

In terms of some of what is brought up in part II, a C++ engineer can (and would) implement linked-lists C-style. See: [http://www.boost.org/doc/libs/1_55_0/doc/html/intrusive/list...](http://www.boost.org/doc/libs/1_55_0/doc/html/intrusive/list.html)

<comment><USER3> And so I will continue to avoid C++ because I'm not a master and will not avoid the many pitfals, and I want to get things done, not become a master of C++.

<comment><USER4> Actually avoiding C++ pitfalls is not that difficult as most of them come from C: manual memory management, macros, varargs, unsafe casts. In fact C++ provides safe alternatives to many of the unsafe C constructs, so if you stick to them you are fine.

<comment><USER5> C++ not only fails to hide the above-mentioned C pitfalls but adds entire classes of pitfalls of its own. Just a few examples:

* undecidable grammar: [http://yosefk.com/c++fqa/defective.html#defect-2](http://yosefk.com/c++fqa/defective.html#defect-2)

* const inside containers: [http://yosefk.com/c++fqa/const.html#fqa-18.1](http://yosefk.com/c++fqa/const.html#fqa-18.1)

* template error messages [http://yosefk.com/c++fqa/templates.html#fqa-35.17](http://yosefk.com/c++fqa/templates.html#fqa-35.17)

C is often nicer than C++ because it's simpler: it only has the C pitfalls not the combination of C & C++ pitfalls that plague C++.

<comment><USER4> These are trivial issues compared to major safety and usability flaws inherited from C that I mentioned. BTW the C grammar is not context-free either. The compilation speed is mostly due to header system which is again a C heritage, not because the C++ grammar is undecidable. And template error messages are much better now in modern compilers such as Clang. As for the const, its semantics is the same as in C.

<comment><USER6> The super-slow compilation speed is mostly because C++ encourages massive all- inline template libraries like the standard C++ library and boost, which need to be parsed and have the used templates instantiated for every compilation unit.

Here's idiomatic hello world, with <iostream> vs. <stdio.h>

> g++ -E hello.cc | wc -l

17906

> gcc -E hello.c | wc -l

842

</comment></comment></comment></comment></comment></comment><comment><USER7> This seems to be a failure to understand when exceptions and when error codes are to be used. I'm just starting a big infrastructure project that needs to be high uptime and distributed across a large number of machines, and I'm doing it in C++ because I know I'd never get it working in anything else.

Let's take one specific example -- connecting to a remote host. The loop that goes through the DNS returned IP numbers uses local error codes to try each in turn until one is accepted. If none are accepted it throws an exception so that the higher level application code can decide what to do about the connect failure. The exception ensures that all resources are properly cleaned on the way through.

The exception is used to guarantee that resources are properly de-allocated on the way back up to where the error needs to handled as it cannot be handled locally, probably not in the function that kicked off the connect attempt either, but there's no local exceptions to handle the case where the error is handled locally.

The use of the exception is more like a ROLLBACK on a database transaction together with error reporting -- it helps ensure correctness by backing out properly changes in state that were kicked off by the connect attempt. When the exception is caught the program state is exactly as it was when the connect attempt was first tried so we know we have good clean state to make another attempt or to move on and do something else. Backing out all of these other state changes is really hard when an error code needs to be handled non- locally -- and it's this non-local handling of errors that's so hard and error prone without exceptions.

So if you're only ever using error codes you'll far too easily make mistakes when the error needs to be handled non-locally, and if you're only ever using exceptions then it's going to be real ugly when the error is handled locally.

You need to use both if you want clean code that is going to work reliably (or you need massive engineering resources to fix all of the bugs you'll end up with).

<comment><USER8> I think you are right about the author not understanding exception handling very well. But your handling of exceptions is also incorrect. In a fault- tolerant system, dns lookup failures or repeated connection attempt failures is something you design for -- they are not exceptional events.

E.g you have function called connect() then it should return something like a state object with a connection instance or an error indicator such as {err:dns_fail, dns_servers:[..],hostname:".."}

Otoh, if you were writing a one-of script for scraping a web site then you don't care about fault tolerance and then connection failures are exceptional events so throwing on them becomes ok.

<comment><USER7> I disagree -- the determinant is about state management and locality of error handling and this is all about how your code is structured, not whether the error is expected or not in some nebulous sense.

If you can handle the connect failure locally (i.e. probably no further away then caller of the connect function) then by all means do so. If you find another structure in your code makes other things simpler, but no longer allows you locality of error handling you should use an exception.

Well designed libraries allow you to choose. Check out Boost.ASIO for an example of this. Every API has both an exception and error handling version and you're free to use whichever is most appropriate for what you're trying to achieve.

This whole thing about 'expected' and 'unexpected' errors is a red herring that leads people down the wrong path.

The exception backs you out of the transaction that your code is performing -- this is the way to think about it. An error code allows you to try something else whilst keeping the transaction alive. Which you use depends not at all on whether you think the error is "normal" or not.

<comment><USER8> Well, the reason exceptions should be reserved for exceptional cases is because they _are_ gotos. There is no way around that, a function that both returns values and throws exceptions is more complex than one that doesn't because you are jumping through call frames.

I once worked with a billing system that threw a BillingException when a charge didn't go through. It works ok, as long as your only response to such an error is to spew an error message to the user. But the more you need to handle it, the less an exception makes sense. The code that tried to handle the BillingException was a tangled mess of try and catch statemetns mixed with retry loops. For example, if there was a temporary error at the payment provider, you would just retry a few times, a permanent error, try with another account, if the customers remaining funds were to low show an error message or if they were just a few dollars of, charge them that and be happy we got something from them.

On the other hand, the billing system could also throw a DbException in case there was something wrong with the database connection. That's a different kind of problem and fatal for a database-backed website. Nothing to do, except log the error and crash.

The point of exceptions is not so much that you can catch and handle them, but that it separates exceptional situations from in-band normal error handling. Now what is in-band and what is exceptional depends on the circumstances which is why, as you say, Boost.ASIO provides both variants. If your system is supposed to handle the errors, use the one without exceptions. If not then use the one with exceptions.

<comment><USER7> > separates exceptional situations from in-band normal error handling

Of course if you redefine "exceptional" to mean out of band error handling then we're in perfect agreement :)

I've also written billing systems and the worst possible thing that happens is that you get stuck on a single customer due to some unforeseen circumstances and can't go on to bill others. The ability to abort the in-code transaction for that customer and move on to the next is exactly what you want from the system, and the exception there makes that a far simpler thing to do (together with RAII for clean up).

> function that both returns values and throws exceptions is more complex

Indeed, but it doesn't really matter because the clean up you get from exceptions with RAII means that the correctness of the function is easier to reason about and that's what you really care about.

</comment></comment></comment></comment></comment><comment><USER4> From my experience, if you need to write many exception handlers then you have a problem in your design as you are using exceptions where you should have used explicit control flow. There is nothing fundamentally wrong with the exceptions and they are used in most modern languages, not only C++.

<comment><USER9> I completely agree; the entire time I'm reading this I couldn't help but feel this was misunderstanding the use of exceptions.

The stated design goal is that the project "never fail and never exhibit undefined behaviour" yet exceptions are exactly for undefined behavior. If you can't allocate memory, if your function is called with arguments that it cannot possibly interpret, or that a fully expected network connection has failed and cannot recover. Those are exceptions. For all your defined behaviors, you can control just as described in the article without exceptions.

There is clearly too many exceptions (and handlers) in the first case and way too few in the second case.

</comment></comment><comment><USER10> Earlier comments:

[https://news.ycombinator.com/item?id=6220049](https://news.ycombinator.com/item?id=6220049)

[https://news.ycombinator.com/item?id=3953434](https://news.ycombinator.com/item?id=3953434)

<comment><USER11> And comments to part II ([http://www.250bpm.com/blog:8](http://www.250bpm.com/blog:8)):

[https://news.ycombinator.com/item?id=4455225](https://news.ycombinator.com/item?id=4455225)

</comment></comment><comment><USER12> These and many other pitfalls are all discussed in detail in the C++ FQA Lite:

[http://yosefk.com/c++fqa/exceptions.html#fqa-17.1](http://yosefk.com/c++fqa/exceptions.html#fqa-17.1)

[http://yosefk.com/c++fqa/ctors.html#fqa-10.17](http://yosefk.com/c++fqa/ctors.html#fqa-10.17)

[http://yosefk.com/c++fqa/exceptions.html#fqa-17.3](http://yosefk.com/c++fqa/exceptions.html#fqa-17.3)

The FQA helped my crystallize a lot of the reasons I hated C++. Even if you like C++, it's a good idea to understand the FQA's arguments, for the same reason people play devil's advocate.

<comment><USER13> And even so, a lot of very senior C++ users will disagree with the FQA's recommendations.

<comment><USER14> Even though I disagree with many of the FQA's recommendations, at least it describes their rationale. Providing the arguments behind the alternative viewpoint allows for an informed choice.

</comment></comment></comment><comment><USER15> The reason why the charm of C++ wore off on me early on and why C is like my wife who I love more and more each year is that there's a lot of hidden "knowledge" in C++. The language is always playing a game of its own and a lot of your level of expertise depends on how well you've bothered to learn the rules of that game.

For example, exceptions, as decribed in the article. Exceptions themselves make sense in some scope: they model some cases of error handling and controlled longjmping really well while are totally unsuited for other cases where a more fine-grained control of failure is necessary. Thus, exceptions themselves are applicable to an extent in a certain scope.

However, in C++, the scope where exceptions actually do work is even more narrow than the scope where exceptions would generally fit. Like explained in the article, the FQA, and this thread, there are numerous pitfalls where exceptions totally break and a number of assumptions you have to make but can't guarantee. This reduces down to a few "known almost safe ways" of using them with a lot of "ifs" bundled in, and you need to explicitly know those ways.

Unlike in C, in C++ you can't deduce what works and what doesn't out of merely reading or writing code: you have to have enough experience to know these pitfalls first hand so that you know how to avoid them and why. There's basically a line drawn in sand of what is known to work and what is not, like medical remedies in ancient cultures.

And further, all this effort is only really needed to deal with the language itself. It's not required to solve the programming challenge at hand. It's something that is not needed with C because you can reason with C on a "what I see is what I have" basis.

<comment><USER16> > "what I see is what I have"

I guess you have not yet seen too much UB or compiler specific semantics then.

</comment></comment><comment><USER17> Author of the article here. Everything said in the article still applies IMO but, to be fair, C misses some useful modern features, most importantly a decent concurrency support. I've recently tried to remedy the problem by implementing Go-style concurrency in C: [http://libmill.org](http://libmill.org)

</comment><comment><USER18> This might be unrelated, but after reading this 3 years after publication I think that Go approach to error handling i so much better because of exactly the same simplicyty as C.

( If you dont't understand why, dont't worry it will be obvious to you in 3 years :-)

<comment><USER19> >I think that Go approach to error handling i so much better because of exactly the same simplicyty as C.

Not to mention Go having multiple return values IMHO also takes away the major pain point of returning errors in C; using up your only return value and having to take pointer arguments when you would rather not.

<comment><USER20> Multiple return values is now handled in C++ with tuples and std::tie.

<comment><USER21> While it works, it would be better if multiple return types were supported natively by the C++ language precisely because of this:

        #ifdef _WIN32
        #    ifdef EXPORTING
        #        define DECL __declspec(dllexport)
        #        define STORAGE
        #    else
        #        define DECL __declspec(dllimport)
        #        define STORAGE extern
        #    endif
        #else
        #    define DECL
        #    define STORAGE
        #endif

        // For every return tuple type actually used:
        STORAGE template class DECL std::tuple<error_type, return_type1>;
        STORAGE template class DECL std::tuple<error_type, return_type2>;
        STORAGE template class DECL std::tuple<error_type, return_type3, return_type4>;
        // etc.

Even without the above, exposing STL across shared objects leads to the games of "which side of the shared object did this get created" and "which STL did this shared object link against". Losing these games leads to sizeable butt pain.

<comment><USER22> That's not a C++ issue, it's a Windows issue (which is why DECL and STORAGE are defined to nothing on anything other than Windows).

<comment><USER21> It's precisely a C++ issue because if multiple return types were natively supported by the C++ language, none of this would be needed since no one would be trying to export a STL object across shared object (or DLL) boundaries.

It's only the workaround (tuples) of this C++ issue that platform-specific issues are allowed to arise, like Windows as you observed, which is why I view the platform-specific issues as symptoms of a deeper problem.

<comment><USER22> I may have misunderstood your terms, so I apologize if my response doesn't cover what you're talking about.

> if multiple return types were natively supported by the C++ language, none > of this would be needed since no one would be trying to export a STL object > across shared object (or DLL) boundaries.

I believe you're talking about C++ export. Everybody will say that export was too complicated to implement; although (1) the full sentence should be "too complicated to implement, using current linkers," and (2) both CFront and EDG implemented _did_ implement export using current linkers CFront implemented it in the early '90s), so the argument that it can't be implemented is simply wrong. It is accurate to say "using current linkers, refusing to use nonportable linker features, and _following the Borland template instantiation model_ ( [https://gcc.gnu.org/onlinedocs/gcc/Template- Instantiation.ht...](https://gcc.gnu.org/onlinedocs/gcc/Template- Instantiation.html) ), it is hard to implement export; only EDG ever paid the price to do so."

But the C macros to #declare dllimport/dllexport (which is what I thought your original complaint was) are meant to solve a Windows linking issue that plagues C as much as it plagues C++. And, to be honest, it's a link time optimization that non-Microsoft linkers don't appear to have trouble with.

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> Exception throwing is the goto of 21st century. The article's examples aren't the worst, it's common seeing exceptions for business rules in Java/.NET land.

<comment><USER24> Wat? I thought callbacks are the goto of 21st century.

<comment><USER25> I thought plain threads are the goto of the 21st century?

</comment></comment></comment><comment><USER26> I like Google's guidelines for writing C++. I've worked in a number of groups that independently came up with just about the same subset of C++ (and same set of styles), so those guidelines aren't totally off the wall.

<comment><USER27> The Google guidelines are... somewhat out of sync... with the intended use of language features as described in the Standard and the recommendations of people associated with it. They seem to take as a starting assumption that the language is misdesigned and major parts of it should simply be avoided or used in unintended ways. If you agree, it's a perfectly fine guide. Otherwise, I'd recommend reading any of Scott Meyers' or Herb Sutter's books and following their advice.

<comment><USER26> I've read those books. I have a lot of respect for the authors, and they have a lot of good advice.

But _Exceptional C++_ made me not want to deal with C++ exceptions, ever. If getting C++ code correct in the face of exceptions is that bloody hard, then the language _is_ broken. I'm convinced that cobbling up an "int" equivalent type that is exception safe is a pyrrhic endeavor that will be a continual source of fragility in production code.

Alexandrescu's _Modern C++ Design_ made me want to forget that templates ever existed. The entire second half of that book I kept saying to myself, "If I'm on a project with someone actually checking stuff like that in, one of us is going to have to leave." Fortunately I've yet to run into those kinds of template metaprogramming games in the wild. Good programmers seem to abhor them.

[Edit: Actually, I remember a bunch of stuff in Modern COM that used templates very heavily. Essentially impervious to debugging; that stuff sucked hard]

More recent C++ design decisions are better than the ones the committees made in the 90s and early 2000s. But the successful teams I've seen all practice restraint and keep things debuggable by limiting the amount of magic going on under the hood, regardless of what the committees have been pushing.

The Google C++ standards (and others that were independently created and haven't been seen much outside their own development cultures) may be "dated", but they remain an indictment of the design of C++.

<comment><USER16> > If getting C++ code correct in the face of exceptions is that bloody hard, > then the language is broken.

Blame C, as they are that way to keep C++ exception behaviors compatible with C semantics.

</comment></comment></comment></comment><comment><USER28> As usual, this guy doesn't understand how to use C++. Nobody with any significant C++ experience puts error generating code in constructors. Once I saw that I stopped reading.

<comment><USER29> How does a proper C++ constructor report errors?

<comment><USER30> Several solutions.

First I can think of: don't create situations where error can happen. Compile with exceptions turned off. Out of memory? Terminate the process/thread.

Another: create your objects using some factory, make constructor empty and initialize class by said factory once instance is already created (perhaps recursively instantiating its members). This way all error generating code will be moved outside of constructor.

See how Google approach it: [https://google- styleguide.googlecode.com/svn/trunk/cppguide....](https://google- styleguide.googlecode.com/svn/trunk/cppguide.html#Doing_Work_in_Constructors)

<comment><USER27> Compiling with exceptions turned off is highly unusual. If you do that, you're not really writing C++ anymore, as it's a fundamental part of the language. Exceptions are the mechanism provided for indicating that it was impossible to construct an object, and to trigger appropriate cleanup actions.

<comment><USER31> > Compiling with exceptions turned off is highly unusual.

I thought it was routine. Until C++11 made smart pointers standard, it was unreasonably difficult to write exception-safe code, so my understanding was that a lot of C++03 code didn't even try. Game developers would routinely use -fno-exceptions and -fno-rtti for reliability and performance reasons.

</comment></comment></comment></comment></comment><comment><USER32> I'm a professional, C++ dev and my greatest quibble with C++ is its deranged system of numerical types, implicit conversions between them, and that signed arithmetic can produce UB just about anytime: [http://www.boost.org/doc/libs/1_55_0/libs/numeric/conversion...](http://www.boost.org/doc/libs/1_55_0/libs/numeric/conversion/doc/html/boost_numericconversion/definitions.html)

<comment><USER16> Mostly inherited from C, actually.

<comment><USER32> Well, "defect by design" is still a defect and I have to work around it on almost daily basis. Besides, being able to do (bool+int) could not come from C since C didn't have bool at the time.

EDIT: actually, there are two defects here. One are the implicit numeric conversions. The other one, which causes me most grievance in this context, is that size() on containers returns an unsigned type.

<comment><USER16> > Besides, being able to do (bool+int) could not come from C since C didn't > have bool at the time.

Except that

        typedef int bool; /* or BOOL */
        #define FALSE 0
        #define TRUE (!(FALSE))

used to be quite common back then. So C++ only adopted an existing idiom in the C community.

<comment><USER32> Is there any production-level C code which relies on (int+bool, and other semantically meaningless arithmetic) working?

Besides, C++ broke nevertheless broke C compatibility because ++bool will never increment the value past 1, and bool=int will coerce int to 0 or 1. C will preserve the original values.

<comment><USER16> > Is there any production-level C code which relies on (int+bool, and other > semantically meaningless arithmetic) working?

Yes. I have seen enterprise code making interesting tricks to covert handle values into pointers, back in the late 90's.

<comment><USER6> Code that switches over a variable nominally declared to be of type BOOL and handles more than 2 distinct value cases is always such a joy to read; every enterprise grade code base should have at least one of these for entertainment purposes.

</comment></comment></comment></comment></comment></comment></comment><comment><USER33> Interesting article. So, more confirmation C++ is inferior for writing predictable or high performance applications. I actually see an opportunity for a C-compatible or C-competitive systems language here to beat C++ at its own game. Zero-cost abstractions plus solving C++'s specific problems, painless C FFI, and compilation to C (or LLVM) to leverage their compilers. Might make a nice combo. I doubt we'll see much takeup, though, as the technical merits rarely dictate that.

On a related note, I'd like to see the results of it being coded in a modern Ada or SPARK with one of the best compilers. I'd be interested in seeing it with full runtime checks on and off with conservative optimization. ZeroMQ with strong implementation assurance could lay the foundation for all kinds of secure networking and middleware schemes. Heck, I'd like to see a team formally verify a version of it with an executable for common architectures. I'd have fun with that. :)

<comment><USER34> Objective-C: "You messaged?"

I believe that Objective C is a pretty good (yes, it's getting old) combination of C compatibility with object oriented features as well. The 2 big downsides IMO are: (1) essentially restricted to Apple ecosystem and (2) the syntax keeps a lot of developers away.

<comment><USER33> My quick perusal of online links show that Objective-C is slower than C++, maybe due to its dynamic typing. It has the C compatibility and basic OOP. Yet, my idea was a language like this which is _faster_ than C++. Maybe a statically typed version of Objective-C would do?

<comment><USER34> The OO parts of Objective-C will likely be slower than the OO parts of C++ in many cases. There are a few places where ObjC can help even the score on performance. Typically ObjC objects are not copied (cloned). Normal usage (within a collection, ivars, etc.) is with reference counting. Prior to C++11 (shared_ptr, unique_ptr, etc.), there wasn't a good way within the language itself to track object ownership without having to make object copies.

Since C++ and ObjC are both (essentially) supersets of C, you can always mix however much (or little) of plain C that you want. Everything about OO in ObjC is very dynamic. It allows you to do some very cool/flexible/unsafe/unwise things.

In my opinion, that where the tradeoffs start showing up. Flexibility, runtime speed, nice abstractions, development speed, code complexity, etc. Really difficult, if not impossible, to have them all at once.

Despite the unusual looking OO syntax of ObjC, overall it's a pretty simple language given the power it provides. Once you get acclimated to looking at its syntax, I'll even dare say that it's much easier to read and understand than many other languages.

<comment><USER33> I appreciate the detailed reply. It seems like it's not a fit for my zero- overhead strategy but an interesting alternative to C++ for app development.

</comment></comment></comment></comment></comment><comment><USER35> I used to think the same way. In fact, I would reference this article to reinforce my beliefs. But then I actually took the time to relearn C++14 the right way using Stroustrup's Programming Principles book. A project that was horrific in C became ridiculously easy in C++. And I didn't use a single malloc.

</comment><comment><USER36> Sometime in the future:

"Why I should have written nanomsg in Rust, not C".

<comment><USER37> If you read part II (the link to it is near the end of the post), you see that one of the things he wanted was intrusive linked lists.

From what I have read so far, implementing intrusive lists is not easy in Rust. (If you know of a working intrusive doubly linked list implementation in Rust 1.0 that does not invoke undefined behavior, please tell me; I'd like to know how it should be done.)

<comment><USER38> I have one here: [https://github.com/dschatzberg/intrusive](https://github.com/dschatzberg/intrusive)

It can be used in a freestanding (nostd) environment such as a kernel. It uses unsafe code but provides a safe interface. The primary technique is to embed the type that is iterated over in a larger struct which contains the links. This way I can give out references to the inner type without fear of invalidating the iterator.

<comment><USER39> How is it possible to write a no-allocation intrusive linked list without move constructors ? When you move one of the nodes (or sentinel if you use one) it would invalidate the links in other nodes.

<comment><USER38> The list takes an OwningPointer to the object to be inserted. One of the requirements of this trait (which is unsafe to implement) is "the object cannot be moved while in the `LinkedList`." So Box would work, or a mutable reference would as well (the library implements the trait for these types already). The list itself doesn't do the allocation though.

</comment></comment></comment></comment></comment><comment><USER40> C++ is bad choice for ZeroMQ? Only after he rewrite the code in pure C and run it for years, his conclusion will be persuasive, isn't it?

</comment><comment><USER41> He means rust</comment>


These 3 Federal Government Jobs Might Actually Just Change Everything - <AUTHOR> http://www.jasonshen.com/2013/these-3-federal-government-jobs-might-actually-just-change-everything/

<comment><USER2> Here's my post about the same positions: [http://www.ultrasaurus.com/sarahblog/2013/12/work-in- governm...](http://www.ultrasaurus.com/sarahblog/2013/12/work-in-government- save-the-world/)

</comment><comment><USER3> > These 3 Federal Government Jobs Might Actually Just Change Everything

That's the worst kind of link bait title. A type lambasted and ridiculed here, xkcd and everywhere else. HN should have some kind of smart filter to just auto flag these kinds of submissions.

Edit: And it's flagged off the home page. Good riddance. Maybe be a little bit less silly with your headline next time jason.

<comment><AUTHOR> I appreciate your thoughts but I have to disagree with your concern - headlines have evolved over the years because writers have figured out what is more effective. Users have limited attention and especially with something as important as these roles, it is my responsibility to make the article as enticing as possible to read.

Headlines offer a promise to the reader and it is the writers job to then deliver on that promise. I believe I do so in the post itself. If you disagree, that's fine, but I don't consider the title link bait, because that suggests that the actual content failed to deliver on the promise.

<comment><USER4> > Headlines offer a promise to the reader and it is the writers job to then > deliver on that promise. I believe I do so in the post itself.

You don't. You don't have anything in the post that really addresses how the jobs, individually or collectively, might change _anything_ , much less _everything_. Heck, you don't, in the body of the post, even discuss what it is that the programs these positions involve leading _are_.

</comment></comment></comment><comment><USER5> Seems like they didn't even bother to proof read the job listings. The job listing says the positions "promotion potential" is for a GS-15 and lists the salary range as 123k - 155k. But then down in the "Qualification Required" section it talks about GS-14. The GS-14 salary range goes from 105k - 133k. So either the repeated GS-14 use is a typo or they are listing the wrong potential starting salary number.

You might be thinking hey, minor issue. It's not here is why. This is emblematic of the kinds of things you can expect as a matter of routine if you were to take this job. A million minor issues from typos and comical misunderstandings in important communications to your email frequently breaking for unexplained reasons to being forced to use shitty government software to do tasks like filling in your time card that waste hours of your life each month. Just because the word presidential is in the job title isn't going to change the reality of how the government works.

<comment><AUTHOR> I believe that is not a typo. What they are saying is that this job is a GS-15 job with a salary of 123k-155k, and that in order to be qualified to apply for this job, you must demonstrate that you have at least one year of experience working at a level equivalent to GS-14.

No bones about it, this job requires wading through A LOT of crap. But so does being a successful startup founder, or senior executive at a big company. It may be different kinds of crap, but no important job is every easy. I do believe doing this job well could in fact change the reality (to some small degree) of how government works.

The only chance we have of making the system better is to have capable, good people trying to make it so.

<comment><USER5> I understand that, there is a defiantly a typo in this listing though...

[https://www.usajobs.gov/GetJob/ViewDetails/356185700](https://www.usajobs.gov/GetJob/ViewDetails/356185700)

"The GS-14 salary range starts at $123,758.00 per year"

Either they meant to say GS-15 or the salary number there should be 105k.

</comment></comment></comment><comment><USER6> >> The way government jobs are evaluated require them to map the requirements of the job against things that they can find on your resume. So while you might be used to the one-page resume for industry, it is not unheard of to have 15 page resumes in government.

Just curious - does "require" here really many they are legally required to evaluate your resume in this way? Wow.

<comment><AUTHOR> There used to be a different process called KSA (knowledge, skills and abilities) that was even worse (from what I hear). I think this application would approach hiring more progressively, but they still need to do things like create written evaluations of candidates explaining why they wanted to move forward (or reject) each candidate. A lot of laws were created to avoid any chance of discrimination (or unfair preference), which leads to a much longer and slower process.

This article might be of help, though I am not at all an expert in this area. [http://www.fedsmith.com/2011/10/10/creating-federal- resume-p...](http://www.fedsmith.com/2011/10/10/creating-federal-resume- postksa-era/)

</comment></comment><comment><AUTHOR> Blah, HN-ed. Here's a cached version [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.jasonshen.com/2013/these-3-federal- government-jobs-might-actually-just-change-everything/)

Edit - looks like it might be back? Leaving cached version just in case.

</comment><comment><USER7> Nothing changes everything. Or maybe any title that indicates something will change everything means it will change nothing.

<comment><USER8> I disagree, Industrialization, Electricity and Computer Science are all relatively newer concepts that really have changed everything in the last 200 years. Timescale changes everything!</comment></comment>


Cool Cell Phone [PIC] It is called "ring-cellphone" and designed by Tao Ma - <AUTHOR> http://moatweb.com/index.php/2008/10/sony-ericsson/

<comment><USER2> This is just a design, right?</comment>


Psychological safety in the InfoSec industry - <AUTHOR> https://jacobian.org/writing/psychological-safety-in-infosec/ <comment><USER2> I think this is a super important topic, that doesn't get a lot of discussion in the infosec community.</comment>


The tyranny of structureless (1972) - <AUTHOR> http://www.jofreeman.com/joreen/tyranny.htm

<comment><USER2> This essay has been pretty popular over the last year, as one can see from [https://hn.algolia.com/?q=%09The+tyranny+of+structureless#!/...](https://hn.algolia.com/?q=%09The+tyranny+of+structureless#!/story/sort_by_date/prefix/0/The%20tyranny%20of%20structureless) . It's definitely influenced my thinking on the topic.

I'll me a guess that the submitter saw it mentioned in [http://third- bit.com/2015/01/05/cathedrals-bazaars-and-in-be...](http://third- bit.com/2015/01/05/cathedrals-bazaars-and-in-between.html) , which was linked to from HN about 11 hours ago, at [https://news.ycombinator.com/item?id=8839338](https://news.ycombinator.com/item?id=8839338) .</comment>


Show HN: Very basic and simple indexed key/value service - <AUTHOR> http://redeye-project.github.io/

<comment><AUTHOR> OP here: This is my weekend side project, main goal is learning. So I'd appreciate any comment about the design, implementation, code, documentation, what you would do differently, etc.

Thanks a lot!

</comment><comment><USER2> Looks great to be just a weekend pet project :)

<comment><AUTHOR> Thanks. There are some nights too. The name of the project was to not forget about how I went to bed some days :-)</comment></comment>


Ask HN: Who leaks exit prices? - <AUTHOR>

It seems that when a well known company is bought ought in the tech space reporters very often find out the purchase price.
Both the purchaser and the company getting acquired publicly state that they won't disclose the price, but we usually get it nonetheless.
If we take Wufoo for example, they have a handful of people on their leadership team, and although Survey Monkey has 60 ppl, I'd bet that only a handful of people were involved in the details of the transaction.
I have a suspicion that it is usually the company being acquired that leaks this info to a reporter with an understanding of source confidentiality.  Or is this info coming to reporters from third parties that were involved in the deal? <comment><USER2> Keeping your mouth shut after a cool deal is almost impossible.</comment>


Apple uses water damaged boards in Apple refurbished devices? [video] - <AUTHOR> https://www.youtube.com/watch?v=4TZ_ZGCLaiA <comment><USER2> Ok, first I am always in awe of people who have the skill to disassemble, fix at the component level, and reassemble modern electronics. I am also not surprised that both the independent repair folks get told they aren't as good as Apple, and that Apple isn't doing anything more or less magical in their repairs.

I do however take a bit of issue with generalizing from one or two instances. Just as there are "bad" independent repair techs, there are no doubt "bad" Apple repair techs. And bad techs make sloppy repairs, period. The reality is that the "best" your electronic device will be, is likely just after it comes off the assembly line and passes QA, that entire assembly process and the components used are tightly controlled so you get the best possible outcome. Rework inevitably it hard on components, traces, and often has to use materials that differ from the ones usable in the original manufacture.

<comment><USER3> Apple should maintain a standard of quality control. If this is representative of that control, then what she is saying is correct in that their work is not representative of what they espouse.

</comment></comment><comment><USER4> Can someone tell me what the big deal is here? Apple's refurb devices are guaranteed. Isn't it binary whether or not the water damage kills the device? I.e. if they're able to sell a water damaged board with a few replaced chips on it, then the water damage by definition isn't an issue because the board is working.

<comment><USER5> The biggest issue I see is that the original tech didn't replace the underfill. As a result the PMIC would not have the same drop resistance as a factory installed chip.

I would expect anything sold as refurbished to meet the same spec as a new device, and this one absolutely doesn't. This includes mechanical specs, which would not be fully tested when smoke-testing a rework.

<comment><USER6> I'm not saying anything about this example, but why would you expect a refurbished unit, _sold at a lower price than a new device_ to meet the same specs as that new device?

Surely, something must be different about it?

<comment><USER7> Yes, it is different because it's used. It's also supposed to be have been brought back to new condition on the inside where damaged and faulty parts have been replaced by as-new parts, not by replacement parts that are also damaged.

<comment><USER5> This is what is meant by refurbished, as opposed to repaired.

</comment></comment></comment></comment></comment><comment><USER8> This is an interesting case because dropping a phone is the customer's fault (and thus that action voids the Apple warranty) but based upon the videos claims, the refurbish process did appear to alter the overall durability of the phone.

I suppose there is a risk involved with buying anything refurbished... whether from the manufacturer or not.

For anyone that is interested, Apple has published a few QA and inspection processes involved with refurbishment. Would be surprising if 1. it slipped through this process 2. Apple doesn't actually perform these inspections 3. this device was deemed fit for resale under Apple's standards

[http://www.apple.com/shop/browse/home/specialdeals/refurbfaq...](http://www.apple.com/shop/browse/home/specialdeals/refurbfaq_popup)

I'm still not completely convinced this was an unaltered Apple refurbished phone though (and I'm not sure we will ever know)...

<comment><USER9> I did repairs at an authorized store for about 5 years. It's unlikely that her customer both knew the repair history of that iPad and reported it truthfully. It's also extremely unlikely they they knew and reported truthfully whether the iPad had every been exposed to liquid while in their possession. People just usually aren't honest about these things (and who can blame them when it means the difference between a free iPad replacement and a repair that costs almost as much as buying a new one?).

And no matter how clear we tried to be at my shop, we could not seem to convince customers that we were not owned and run by Apple. I can't even get my friends and co-workers to stop saying that I worked for Apple, so the fact that her customer reported to her that this iPad was replaced by a corporate Apple Store means just about nothing. Funnily enough, if her shop was an authorized repair center, it would have been trivial for her to verify the repair/purchase history.

It's also really frustrating that the video is blurry when she's trying to point out the water damage. All I could make out of flux from the solder job. I also suspect, but can't say authoritatively, that the "heat damage" she pointed out was just an artifact of after-factor solder work on the board, not from the board shorting or overheating. Unless a chip is visibly burned or blown out, you really need to test it to know whether it's been damaged.

</comment></comment><comment><USER10> In addition to what other commenters have said: Maybe I missed something (it is a 10 minute video), but how do we know whoever brought in the water-damaged iPad in for repair hadn't caused the water damage themselves? They could have gotten it a bit wet, but not enough to kill anything.

I also find the evidence for the iPad never having been worked on before fairly tenuous - I've done repairs using swapped Apple parts in the past (ie Apple original digitizers), and I doubt _everybody_ who does aftermarket repairs uses the same adhesive.

Also, this is really a n of 1. So Apple maybe shipped a single crappy refurb. I'm not sure that's cause for huge alarm, or enough to make broad claims about their entire refurb program.

I guess what I'm saying is while the allegation might be true, the evidence here seems fairly shaky IMHO.

<comment><USER11> It is at least n=2. I have seen the exact same thing once before. Keep in mind that I will only see an iPad that was from a user who went to Apple for a refurb after a problem with their original, and then went to independent repair rather than back to Apple for a subsequent problem. That is less common than someone going straight to independent repair with a problem on the original or sticking with Apple for a problem with a refurb

</comment></comment><comment><USER12> I've seen something worse! Once had a 5C come in for repair. Still under warranty, so sent it to and Apple Store in the USA for replacement. We don't have an Apple Store in my country. Got back a unit that upon reception didn't start. Lifted the screen to inspect it out of curiosity, because it looked somewhat used from the outside, before proceeding to send back to Apple (and waiting another 3 week for the trip back and forth) and saw a device missing plates, screws, with a sticker inside with some Chinese words, and the red LCI (water indicators) were tripped (meaning the unit was water damaged prior). We sent it back and they declined to replace it again because... it had liquid damage and was tempered with!! After much aggravation, they accepted to replace it OOW (they usually don't replace devices that had been tempered with even OOW). Since then Apple Certified Service Providers in my country were allowed to replace iOS devices under warranty, and we did receive defective units on a few occasions that were fortunately replaced. But the second worse "incident" was my 15" 2011 laptop that had the logic board replaced 3 times under the Apple logic board program, before I got back a working unit! The ACSP told me that it happened many times over, but only (?) twice did they have to replace the same board 3 times in row! They're all refurbished boards of course (nothing wrong with that), but their QA after refurbishing seems to let a lot of bad Apples (pun intended) through!!

</comment><comment><USER13> What worries me more than the evidence for water-damaged components is what seems to be a substantial amount of hair on that 'refurbished' board. It did not notice any hair on the 'factory-stock' board, so I assume that the source of the hair is not this repair shop. If this is the (lack of) quality of work Apple refurbishments get, Apple has some serious issues wrt. quality control. The other option is that this device was in fact repaired by a third party which used the proper adhesive procedure (which seems to be to apply more than one layer of adhesive).

</comment><comment><USER14> Outside of a warranty, this should be a concern.

In warranty, it's important to remember you are not buying a computer, as much as a guaranteed computer.

Apple has decent warranty for replacements if a machine has multiple issues in a short amount of time.

I would never buy any laptop I can spend 8-10 hours a day on most days without a laptop. In fact, the replacements that Apple has ended up fairly replacing if my machines have misbehaved too often have been priceless.

Jas

</comment><comment><USER15> TL;DR there was no underfill injected after a chip was replaced in an iPad mini that was repaired/refurbished by Apple or an authorised repair shop.

That's all. We don't know if that was an oversight or not. We don't know if Apple requires underfill to be applied. So this is all just speculation AFAICS.

</comment><comment><USER16> I can definitely say that the quality of Apple refurbs has gone downhill.

I lost radio access randomly in Europe while traveling with a Genius Bar replaced iPhone 6. No cellular service whatsoever. Awful. Kept cutting in and out for days and then stopped working completely.

Had to buy a new phone for cash.

</comment><comment><USER17> Can someone explain how those two capacitors exhibit "clearly water damage"? (about 6:25 onwards)

Is it the dull grey (not shiny silver) solder?

</comment><comment><USER18> Misleading title... Of course they use damaged boards in the refurbished devices. Otherwise it'd be "new."

The woman here makes a great point about repairability though, a quality shop should can do just as good (or better in this particular case) of a job as Apple. Apple wants you to throw away expensive devices at a whim...

<comment><USER19> I agree -- by definition a "refurbished" device is one that was returned and repaired. That's why they are cheaper. You can expect it is not quite as good or reliable as a new one -- though Apple does warranty them so that's the tradeoff for the lower price.

<comment><USER11> The point to add is that if you pay for a new device, and you notice anything faulty about it and take it back, you will be handed a refurb like this one as your in warranty replacement if it has been 15 days or more since the purchase.

</comment></comment></comment><comment><USER20> I kind of find this video to be disingenuous. She claims that the device was direct from Apple and only proof is by the parts they used and the craftsmanship, in the comments she does mention receipt, but no timeframe so could've been replaced by Apple the later repaired by someone else, also she implies 3rd party vendors parts and craftsmanship is just as good. So wouldn't it stand to reason that it's equally possible they got the repair done somewhere else and not mention it?

I've worked as a tech long enough to know customers often forget to mention all damage, issues & past repairs. Sometimes out of malice, but generally simply because they forgot, they don't know better or they weren't privy to all the info (bringing it in for some other family member, so on).

Also, bad boards happen regardless if they're refurbished or new. With Apple supplied boards I find that to be the exception rather then the rule. Wish I could say the same about 3rd party vendors, I understand it's a cut throat business and Apple getting into the business a decade and a half ago didn't help, but this video really seems to want to make Apple out as the villain trying to pass off crap products/repairs as ok.

<comment><USER11> After opening thousands of iPads, there is no question whether you are opening an iPad sealed by Apple, or if has had a prior repair and been resealed.

Independent repair screen swaps can be very good, especially when 100% of the old adhesive is removed, the frame cleaned, and the aftermarket adhesive is of original quality. But even with this, the pressure required to remove the sealed screen is less than an original screen. The dust seal between the LCD and digitizer can't be replicated (or isn't replicated) by independent repair. The dust seal in this mini was intact.

There is no question, from experience, that this mini was an Apple refurb. Also, I don't know of any other shop that would replace the iPad mini PMIC. We only do it under duress since the effort required to CNC drill out the old chip, combined with the cost of the new chip is not amenable to profitable board repair compared the market value of a used iPad mini first gen.

There is no question that this board was an Apple refurb, and it's not the first one that I've seen that is like it. In reality, it is a very good refurb. Those damaged caps are not likely to cause any practical problems, and replacing the PMIC underfill was probably deemed not that important--which I would agree with.

I have no problem with Apple putting out refurbs like this, it is a great environmental move. But own it. It is what it is. I'd like to see Apple say "You betcha, that's our work and we're damn proud of it."

<comment><USER20> Thank you for the explanation, I left the repair industry just as iOS devices started to take the forefront and there wasn't much left to "repair" w/o getting out (de)soldering and reflow equipment.

Pretty sure they do "own it", that's what the whole warranty, either original or 90 days from last repair is all about. ;) I just think a single digit # of boards, that should've possibly failed QA, making it out to the public compared to the thousands you've seen is a pretty good testament to them being damn proud of their work.

Re-reading the description for your video, I think the issue is for non-AASP repair centers, much like any 3rd party repair location (whether it be Apple, or some other name brand electronic, appliance, or vehicle) is guaranteeing the quality of parts and labor one gets from the plethora of independents out there. I think the real issue to rail against is the plethora of poor 3rd party repairs that aren't certified or backed by any sort of warranty vs these outliers, as they're the ones that really cast a bad light on the independent.

<comment><USER11> I agree that poor third party repair shops are an incredible nuisance to the independent repair industry. But on par with that is how entrenched the opposite viewpoint seems to be among Apple fans--that "only Apple is qualified to repair Apple devices" The reason I made this video is to shine a light on what Apple refurbishment really means. I don't believe this case is an outlier. I have only ever seen two iPads that I knew for sure were Apple refurb and both were like this. More strikingly, is the iPhone 6/6+ touch ic epidemic. There is widespread failure of the touch ic(s) leading to a characteristic gray flashing bar at the top of the screen and loss of touch function. What stinks is that many people turning in their in-warranty new iPhones for this defect are leaving with Apple refurb phones that contain boards that once had another life in someone else's hands. The problem is exacerbated by drop, so these refurb boards that made their way back to Apple have a high percentage of having sustained a drop severe enough to warrant trading in the phone for out of warranty replacement. When Apple puts these boards straight into new housings with a new screen and battery, the refurb is set up for touch ic failure---and we are seeing tons of reports of touch failures in refurb phones.

Compare that to independent repair where a new touch ic is soldered on the board to replace the weak original chip--that is a much more robust solution, and carries a longer warranty.

I was prompted to make this video to just float the idea that "Apple always has superior repair because only they are 'authorized' to fix their products" is not true.

My motivation largely came from aggressive bullying and harassment, by some of the regulars at the Apple Support Community forum at any mention of independent repair as a viable option. I was banned from the forum for continuing to suggest that some problems could best be served by independent repair (such as data recovery after water damage) I did another video on my experience there. [http://youtu.be/3VqYui3piV8](http://youtu.be/3VqYui3piV8)</comment></comment></comment></comment>


The most annoying things coming back to Java after some days of Scala - <AUTHOR> http://blog.jooq.org/2014/08/01/the-10-most-annoying-things-coming-back-to-java-after-some-days-of-scala/

<comment><USER2> The one feature I want from Scala is transitive static imports.

<comment><AUTHOR> What are those? Can you provide an example?</comment></comment>


Chrome will no longer autoplay content with sound in January 2018 - <AUTHOR> https://venturebeat.com/2017/09/14/chrome-will-no-longer-autoplay-content-with-sound-in-january-2018/amp/ <comment><USER2> [https://news.ycombinator.com/item?id=15257541](https://news.ycombinator.com/item?id=15257541)</comment>


Taking Legal Action Against Those Who Abuse Our Platform - <AUTHOR> https://about.fb.com/news/2020/08/taking-legal-action-against-those-who-abuse-our-platform/ <comment><USER2> > MobiBurn collected user data from Facebook and other social media companies > by paying app developers to install a malicious Software Development Kit > (SDK) in their apps.

Can I take legal action too for Facebook's malicious SDK being embedded in pretty much any mainstream app?</comment>


The 100 Rules for Being a Successful Entrepreneur - <AUTHOR> http://www.jamesaltucher.com/?p=1810

<comment><USER2> Altucher doesn't get a lot of love on HN b/c he embodies the worst of the excesses of the dot-com bubble, and his continual "Follow me on Twitter" exhortations in this piece are annoying, but most of his points in this article are actually good.

<comment><AUTHOR> why do i embody the worst of the excesses of the dot-com bubble? I try to help people as much as I can with my posts and ask nothing for it.

<comment><USER2> " _I needed to make one hundred million dollars pretty fast._ " [http://www.jamesaltucher.com/2011/01/how-i-screwed-yasser- ar...](http://www.jamesaltucher.com/2011/01/how-i-screwed-yasser-arafat-out- of-2mm-and-lost-100mm-in-the-process/)

<comment><USER3> Dude, it's written to be humorous and he's sharing the experience of the time.

Aside, I enjoyed this blog post of yours, good reminder. <http://denis.papathanasiou.org/?p=438>

<comment><USER2> Hmmm... maybe, but take a look at the comments: <http://news.ycombinator.com/item?id=2134720> I tend to agree with Colin Percival and others.

<comment><USER3> Just looked at the comments, still like the post. There's sharing of experience, what he did wrong and why, humor, and lessons learned.

<comment><USER2> We agree to disagree. Despite his occasional sensible points, I can't say I respect him.</comment></comment></comment></comment></comment></comment></comment>