Total Recall: LeBron's mighty mind (2014) - <AUTHOR> http://www.espn.com/nba/story/_/id/11067098/lebron-james-greatest-weapon-brain <comment><USER2> Impressive, no doubt. This type of memory happens more often than people realize to athletes and coaches.

Pattern recognition in competitive sports is extremely valuable.

Lebron is one of the all time greats because he combines such unique gifts, his memory, his work ethic, his physicality, size and quickness.

He is just a freak all the way around.

His basketball IQ has some interesting affects on teams he plays though. He has problems submitting and listening to his coaches. Often because he thinks he is right, which he often is.

Still, there can be only one person making decisions and Lebron does not like to give up his power.

This is ultimately what caused him to leave Miami. He was the 4th most important person in the organization behind the owner, the GM Pat Riley, the head coach and the homegrown star (Dwayne Wade).

When he went back to Cleveland, he went to an organization that he could dominate from top to bottom.

I think his desire for influence and power has hurt his career to a certain extent.

If he had gone to San Antonio, for example, he might have had several more titles by now.

I don't see the Lakers winning one in the few years, so Lebron will probably end his career with 3.

<comment><USER3> Winning a title _in Cleveland_ is one of the singular greatest achievements in NBA history, and in American sports history.

In a lot of ways, it transcends the quantitative metrics we generally use to measure athletes' success.

LeBron will not control the Lakers from top to bottom, especially with an even more charismatic leader like Magic around. I think it's generally understood he went to LA in part to kick start his post playing career.

Both of which are to say, LeBron has his own goals, desires, and motivations for his decisions, which may sometimes go beyond just counting rings.

(Also, I'm still not ruling out Magic, LeBron, and the pull of LA leading to another title before LeBron retires.)

<comment><USER4>
      I think it's generally understood he went to LA in part to kick start his post playing career.

I'm curious about this, do you know of any good reading?

<comment><USER3> Random example:

[https://247sports.com/nba/cleveland- cavaliers/Article/David-...](https://247sports.com/nba/cleveland- cavaliers/Article/David-Griffin-believes-LeBron-James-signed-with-Los-Angeles- Lakers-to-set-up-post-NBA-career-121150229/)

</comment></comment></comment></comment><comment><USER5> His memory has always been laughably impressive: [https://www.youtube.com/watch?v=eNVJFRl6f6s](https://www.youtube.com/watch?v=eNVJFRl6f6s)

<comment><USER6> I have heard the same about the top Formula One Drivers. After the race they can recall almost every turn of the race in detail with their engineers. It takes hours to get all the information across. It makes sense that a good memory is big asset for an athlete. It allows them to replay a situation and learn from it. When I did martial arts my memory of a fight was pretty vague so I couldn't analyze and learn much.

<comment><USER7> I've noticed this ability as well in other fields: it seems those at the very top (chess grandmasters, piano virtuosos, etc) have an incredible ability to remember the details of performances in their field. The question is: is it their existing recall abilities that (in part) helps them to get to the top, or is it the process of becoming that good that greatly enhances their memory?

<comment><USER8> In Peak: Secrets from the New Science of Expertise, Ericsson had chess grandmasters look chess boards of real games, and they could recreate the board in a pretty short fashion.

But when they took chess boards of randomly placed pieces, they could not remember the placement of pieces any better than a random group of people.

The idea is that through practice, you develop the ability pattern match and chunk together the data into more cohesive blocks, and memory fewer of these blocks.

The rough analogy in software is to take a quick look at some code and recognize the design patterns, and remember the design patterns used rather each individual character.

In fact, words are a form of chunking -- we don't remember hundreds of character sequences, but we remember the words instead.

<comment><USER6> It's probably like boxing a beginner. They do all kinds of weird stuff you never have seen and don't know how to categorize.

<comment><USER9> If you want to see what pterhx was referring to in action, National Geographic did a documentary featuring Susan Polgar a few years back. The relevant clip and timestamp are here: [https://youtu.be/LdKHrxcpxrY?t=238](https://youtu.be/LdKHrxcpxrY?t=238).

The difficulty in recalling nonsensical positions is not that it's like "boxing a beginner", it's that the pieces are literally placed in a way that the positions could not have been reached with legal moves.

Analogously, remembering famous quotes or memorable phrases in a certain language is quite easy. If instead, you had to memorize a string of randomly placed words that did not follow established rules of grammar or sentence structure, it'd be a much harder task.

Chunking is context and experience dependent.

</comment></comment></comment></comment></comment></comment><comment><USER10> It's cool to watch alongside the game action he's describing: [https://www.reddit.com/r/nba/comments/8jajbd/lebrons_photogr...](https://www.reddit.com/r/nba/comments/8jajbd/lebrons_photographic_memory_overlayed_over_video/)

</comment><comment><USER11> As others suggested, this is common in sports. I believe the reason is epinephrine release. Epinephrine (also known as adrenaline) greatly improves attention to details and vivid memories by enhancing the brain, facilitating long-term memory recording.

From wikipedia:

\---

Epinephrine acts by binding to a variety of adrenergic receptors [...]. Its actions are to increase peripheral resistance via α1 receptor-dependent vasoconstriction and to increase cardiac output via its binding to β1 receptors. The goal of reducing peripheral circulation is to increase coronary and cerebral perfusion pressures and therefore increase oxygen exchange at the cellular level.[64] While epinephrine does increase aortic, cerebral, and carotid circulation pressure, it lowers carotid blood flow and end-tidal CO2 or ETCO2 levels. It appears that epinephrine may be improving macrocirculation at the expense of the capillary beds where actual perfusion is taking place.

\---

I would argue that adrenaline can turn seconds in to years, the world suddenly starts going in slow motion, especially when your body is trained by having adrenaline rushes frequently.

One of the reasons many newly hired SREs learn many things about their stack quickly over incidents is adrenaline rushes... Of course, in the case of incident response, it might have negative connotations as a recent talk at SRECon by a DO employee showed: nearly 70% of SREs had trouble sleeping because of anxiety after am incident.

</comment><comment><USER12> The better you are at something, the more efficient your mind is at encoding the memory. It's like the brain has a Huffman codes table for all the various abstract ideas, so one may encode information efficiently and therefore have more elaborate recall

</comment><comment><USER13> First-off, I think this is interesting because athletes have hit the point of diminishing returns on physical abilities, and now the games are turning mental in every sport. The NBA has done a great job at turning strategy into a spectator sport. In the NFL, the possibly single worst athlete in the quarterback position is the best ever. They are changing too. I'm not sure MLB can adapt. I wonder whether this doesn't just pave the way for eSports to take over.

<comment><USER14> I don't follow football but I'm curious. Who is the bad athlete/best player you're referring to?

<comment><USER15> Tom Brady is notorious for how unathletic he was during the NFL combine before the draft (in which he was picked in the 6th round, #199). Here is a picture just to give you an idea: [https://sports.cbsimg.net/images/blogs/Tom-Brady- shirtless-0...](https://sports.cbsimg.net/images/blogs/Tom-Brady- shirtless-02-15-15.jpg)

Now I don't think there is much argument that he is the greatest player to ever play the game.

</comment></comment></comment><comment><AUTHOR> LeBron James is arguably the greatest player of his modern era (Wilt Chamberlain did not have as much competition), if not all time.

Yes, he has tremendous physical gifts and dexterity.

What most people don't know is he has an almost uncanny eidetic memory that allows him to truly know how the other players on a team have played against him or his team in the past _without_ studying game video ipso facto... and also whup them at Madden.

> "When I was a kid my coaches started to say to me that I remembered things > that happened in games from a few tournaments back -- and that surprised > them," James says. "I started to realize how important that could be years > later, probably when I was in high school. And then, eventually, I realized > that it can get me into trouble."

<comment><USER16> Besides his physical and mental talents, he's also an incredibly dedicated worker and has also embraced a lot of innovative playing, training and recovery ideas that has helped him extend his peak physical years beyond where they normally are.

One of the surprising things I heard about last year was that the newer basketball cameras that record all aspects of play rated him as one of (maybe even the) slowest players in the game. Of course, if you've ever watched him run, especially on a chase-down block (such as the one he did in the 2016 NBA Finals game 7), you'd know he's one of the fastest players in the league. However, he's figured out ways to be effective without moving that much so he preserves energy.

At age 33 last season, he played every single game of the regular season, plus 22 playoff games. He's made the NBA finals eight years in a row, which would be roughly the equivalent of 2 additional regular seasons, though playoff basketball is substantially more physically demanding, so the physical strain would be more than just 2 additional seasons.

I think ultimately, the longevity of his dominance, coupled with how talented the rest of the league has been during his tenure, will be the factor that makes him the best player of all time.

<comment><USER17> LeBron also has very healthy body mechanics, which is an underrated part of durability. The difference between more durable and less durable players isn't only down to conditioning and training and genetics; an NBA player jumps and lands, cuts and stops, and generally subjects his body to the limits of what it can withstand. Constantly and repeatedly doing that in biomechanically vulnerable ways (bracing the knees inward, trying to stick one-footed landings, landing on the heels, letting the knees translate in front of the toes) will absolutely wear down and break any player.

<comment><USER18> I wouldn't discount him just being more durable as a result of his build. He's 6'8" and 250lbs, which is on the more muscular side for the NBA.

I'm 6'6" and have been anywhere from 180-320lbs as an adult (currently about 290lbs), with the range being due to adding significant muscle mass as a result of weight lifting. I can tell you that I am much more durable at my current weight than I was at 180lbs. Bumps and falls that woulda hurt a lot in past just aren't a big deal any more.

<comment><USER17> LeBron's size and body composition helps a hell of a lot, but good body mechanics—especially landing mechanics—get more important, not less, as a player gets bigger and stronger, because the amount of landing energy he has to dissipate grows in proportion to those factors.

<comment><USER18> Agree 100% that mechanics are important for things like landing jumps. Body composition is probably more important for most other sources of injury, though. After all, it's hard to have proper mechanics when you collide with somebody unexpectedly, or when you land on your side because somebody knocked your legs out from under you.

</comment></comment></comment></comment></comment></comment><comment><USER19> I've been thinking a lot lately about how intertwined memory and the brain's capacity for pattern matching are. I'm really curious how they interplay, neurologically/chemically

</comment><comment><USER20> I'm really curious on those who do have these kind of usable high memory capacity. I seem to be able to remember random facts in my head but for other, more important subjects (such as basic numbers about the company I'm working for, my emotions and feelings on a certain point in life, lessons and experiences that I've gone through in life) seem to pass me by and I feel like I just have these holes in my memory that I can't patch. I remember my friends sometimes ask me why I date my Instax pictures and I just realised that I cannot recall my memories easily without aids and/or concrete data (one of the reasons why it's hard for me to turn off my location history on Google). This is especially a hindrance in my personal/social life as I often forget significant life events for myself or others and come across as uncaring to others.

How to improve my memory in general, basically, is my question. I've read 'Moonwalking with Einstein' that describes techniques used in memory competitions (such as recalling thousands of digits of pi) but I don't feel that is applicable in real life. Maybe someone here could chime in on that.

</comment><comment><USER21> Lebron is also a genuinely good human being and as a Clevelander, I wish him the best of luck in LA.

</comment><comment><USER22> I have a similar sort of eidetic memory and I do find it often more hassle than help.

Most people seem to remember about as much as they need to remember, so remembering more is often not about having extra access to information you need, but rather remembering minutiae that are discarded as irrelevant by others.

<comment><USER23> Could you elaborate on how you find it to be a hassle? I find it interesting that the imperfection of most people's memory could be a feature.

<comment><USER22> Suddenly being highly distracted by relevant, compelling, irresistible memory cascades at inopportune moments. Remembering every mistake and embarrassement from your entire life, age 4 to 35. There's some evidence that eidetic memory is tied to anxiety disorders and anecdotally I can believe it.

</comment></comment></comment><comment><USER24> Wow I would want to clone his brain to help me maintain legacy code systems.

<comment><USER25> Seriously, I can't even remember the code I wrote last week.

</comment></comment><comment><USER26> This isn't really surprising at all for anyone that competes at a high strategic level. However it is interesting how vivid and persistent these memories are compared to many other things.

</comment><comment><USER27> 60 Minutes did a story on this condition four years ago or so. They called it "Super Memory". Actress Marilu Henner was one of the people that possess this super recall ability.

Part 1: [https://www.youtube.com/watch?v=oHeEQ85m79I](https://www.youtube.com/watch?v=oHeEQ85m79I)

Part 2: [https://www.youtube.com/watch?v=en23bCvp- Fw](https://www.youtube.com/watch?v=en23bCvp-Fw)

<comment><USER28> They called it superior autobiographical memory.

</comment></comment><comment><USER29> Sean McVay (NFL's LA Rams coach) has something similar going on: [https://www.businessinsider.com/sean-mcvay-memory-hbo- real-s...](https://www.businessinsider.com/sean-mcvay-memory-hbo-real-sports- lebron-james-2018-7)

<comment><USER30> When Lane Kiffin was the offensive coordinator at Alabama in 2015, he interviewed a recent college grad who had done his undergraduate work at Florida and Kansas. Charlie Weis Jr., the son of the former Notre Dame and Kansas coach, sought an analyst job with the Crimson Tide, and Kiffin had been told the kid had a photographic memory.

So during the interview, Kiffin handed Weis his driver's license and his credit card. You can have these for three minutes, Kiffin recalled telling Weis. Then I'll take them back and start asking questions. After the allotted time ended, Kiffin took back the cards and started the test.

What street do I live on?

Weis answered correctly. He correctly recited various facts gleaned from the two cards. The next day, Kiffin decided to test the job candidate's retention.

What's the expiration date on my credit card?

Weis answered correctly. If he didn't already have the job, that cinched it.

Weis and Kiffin spent two seasons together in Tuscaloosa. Well, most of two seasons. Kiffin jokes that they were 28–1 together and 0–1 apart. This year, they're back together with different job titles. Kiffin is the second-year head coach at Florida Atlantic, leading a team that went 11–3 and won Conference USA last season. Weis, who turned 25 in April, is the offensive coordinator. "Sometimes it's crazy to think about," Weis said Sunday.

Weis doesn't think about it too often, though. He's too busy for introspection. A night earlier, Kiffin and Weis had led the FAU offense through its most important scrimmage of the preseason. They're trying to winnow down a quarterback race that features three transfer quarterbacks competing to take the job abdicated by 2017 starter Jason Driskel, who opted to retire from football in January and who obtained a civil engineering degree in May. In less than two weeks, the Owls will open the season at Oklahoma. They haven't trailed in a game since October, but they haven't been challenged the way they will by the three-time defending Big 12 champ.

Whether former Sooner Chris Robison, former Florida State Seminole DeAndre Johnson or former Arkansas Razorback/SMU Mustang Rafe Peavey will win the job is a hot topic on campus, but an even more intriguing question is this: Which son of a famous football coach will call the plays? Will it be Kiffin—the son of legendary NFL defensive coordinator Monte—or Weis? Weis, asked what percentage of plays he called in Saturday's scrimmage, deferred. "That's up to coach Kiffin to talk about," he said. "It's not my place." Kiffin didn't give a direct answer either, and both men discussed a collaborative effort.

Their collaboration at Alabama worked beautifully for the Crimson Tide. Kiffin designed the game plans with help from Weis, whose memory and attention to detail allowed him to find vulnerabilities in defenses that Kiffin could exploit on gameday. If the Owls can now combine Kiffin's ability to spot potential huge plays in-game with Weis's thorough prep and instant recall, the offense should be as good or better than the one that put up 6.8 yards a play and 40.6 points a game last season. That recall, Kiffin believes, will give FAU the equivalent of the photos that we see NFL quarterbacks thumbing through on the sidelines during games. Such photos aren't allowed in college football, but there is no rule against a coach taking one in his head. Kiffin had an idea Weis could do that when, during his Alabama interview, Weis rattled off all 11 jersey numbers for the starting defense of a team he'd scouted earlier. After working so closely with Weis in '15 and '16, Kiffin is sure of it.

[https://www.si.com/college-football/2018/08/20/charlie- weis-...](https://www.si.com/college-football/2018/08/20/charlie-weis-jr-age- florida-atlantic-lane-kiffin)

</comment></comment><comment><USER31> I think you must be a good listener, have sharp focus and dedication to be able to remember\store things for long term

</comment><comment><USER32> He isn't smart enough to adjust his offensive game.

His go to move is to lower his shoulder. The best defensive players and teams give way and then he is off balance and he tends to miss the shot. He has done that his entire career. See Durant and Iguodala's defense.

Also his straight line drives are completely negated by a good shot blocker(s). See Tyson Chandler and the Mavericks.

A more adaptable player would have developed a runner, a low post game, and a stop and pop. He consistently hasn't shown the adaptability or foresight to do that... other than to form new super teams.

<comment><USER33> What's interesting about this form of criticism is that his ability to do any basketball task is judged not by the ability that the median NBA player has at that task but against the bar he's set in other areas. His jumpshot isn't as great as his rebounding, playmaking, dribbling, or defense, so he's lazy or lacks foresight? No matter how good you become, you will always have a "weakest" area to your craft. He clearly has made tremendous strides in shooting (did you see him play in high school?), and in fact, he is well above average when judged against a median NBA player, which is itself remarkable since he possesses the ability to score an efficient 25+ ppg without taking any jumpshots at all.

<comment><USER33> In fact, 55% of his shots last season were jumpshots, which he converted with a 47.2 eFG%.

[http://www.82games.com/1718/17CLE15.HTM](http://www.82games.com/1718/17CLE15.HTM)</comment></comment></comment>


Journey - <AUTHOR> http://www.filfre.net/2016/07/journey/ <comment><USER2> I absolutely love these "weird" games that mark the growth of certain genres. So much of contemporary game design feels like the final distillation of a form that's just repeatedly reskinned with varying levels of success.

<comment><USER3> then you might love Journey on PS3/PS4

no relation to OP

</comment></comment><comment><USER4> I mucked around with tappable nouns and verbs in a mobile friendly "port" of Zork (not my z machine though). Screen grabs included at [https://github.com/DanielChilcott/tap- zork](https://github.com/DanielChilcott/tap-zork)

</comment><comment><USER5> This sounds remarkably like it was trying to be something more along the lines of Fallen London. Pity it failed.

But hey, this is still far from the worst game Marc Blank ever worked on. That prize still goes to Bubsy 3D.</comment>


Yahoo Launches Web Analytics - <AUTHOR> http://web.analytics.yahoo.com/

<comment><USER2> Real time? I might ditch Google Analytics and Statcounter (using both, mainly because statcounter is near real time, you just have to know when you're linked by Slashdot or Digg!) for Yahoo if it works great. Will give it a try for sure!

<comment><USER3> Any reason you don't use Mint (haveamint.com)?

<comment><USER4> It can easily kill your server. The last thing you want to do while having high traffic is kill your stats. You can think ahead and cache your pages, but you can't cache your self-hosted real time stats.

</comment></comment></comment><comment><USER5> Good. Some of the most useful reports in Google Analytics ("Recency", "Loyalty") are also the most opaque. This could be refreshing if it makes it easier to get at stickiness and returning visitors out of the box.

Also:

 _Drill down on branches to follow visitor movements down to a single visit._

GA doesn't show you individual user visits. This would be stupendous, as right now we are forced to write our own middleware to capture this granularity.

</comment><comment><USER6> If they can offer a decent API to their analytics, I'll jump on board right away. It's so frustrating that Google does not provide anything other than a web interface and manually generated exports to interface with their data. And as far as I can decipher, making that data available to your site users is against the TOS anyway. Maybe Yahoo can do better.

<comment><USER7> hi,

We do in fact have a YWA API - and a bunch of clients using it. It is not open for the public as of today, but stay tuned! :-)

it has recently been enhanced alot, because of the integration to the Y!OS developer community that we are doing..

Dennis R. Mortensen, Director of Data Insights at Yahoo!

Blog: <http://visualrevenue.com/blog>

Book: <http://visualrevenue.com/blog/yahoo-analytics-book>

</comment></comment><comment><USER8> Nice to see. This was predicted some time ago in the analytics world.

I've never used IndexTools but from a sophistication / power standpoint, it's been compared to OMTR's SiteCatalyst.

Combine that with real time capabilities and you have a very powerful combination.

</comment><comment><USER9> Looks cool. Google has been top notch for me for a few years now, but this looks even better!

Though, you can be sure Google will make it near real-time and have an API soon! If/When that happens, I may just return to Google. So try to impress me Yahoo! :)

</comment><comment><USER10> Isn't Google real time? The default calendar doesn't include today when you look at stats, but you can just change it. I don't know what the lag is exactly, but I don't think it's all that far off.

</comment><comment><USER11> I'd be curious to see how this compares to Woopra and GetClicky -- both of these I'm a big fan of.

</comment><comment><USER12> I have been using Woopra for real time stats, I actually liked it. Will check this out.

</comment><comment><USER13> Why didn't they do this years ago?

</comment><comment><USER14> they're just now getting into this? what took them so long?

<comment><USER15> Well, taking a look at how long it took the new delicious to get out, I'd say Yahoo doesn't mess around when it comes to building large scale services like this. I quickly warmed up to the new delicious, but fwiw, it's been rock solid ever since it (finally) came out.

I'll give them the benefit of the doubt.

</comment></comment><comment><USER16> NICE! If only that would help our stock... :\</comment>


Fed cuts key rate in its first reduction in more than decade - <AUTHOR> https://apnews.com/cc6576e22974489ba9ac8e7a10a65937 <comment><USER2> I'm still left with a weird feeling about whether the Fed should really be trying to "sustain the expansion"...

<comment><USER3> Sustaining the expansion is questionable but the Fed's more specific goal has been to maintain inflation at around 2%, which it has done surprisingly well over the last 20 years. Of course, we have no way of knowing if the Fed's actions were actually causal.

[https://fred.stlouisfed.org/graph/?g=1ED0](https://fred.stlouisfed.org/graph/?g=1ED0)</comment></comment>


Ask HN: What's the fastest tool for basic CRUD? - <AUTHOR> I like to throw together small tools to automate things. Most involve Crud screens. Simple Crud screens are all very similar but seem to take a lot of time to throw together. Are there good tools that allow you to throw these up quickly? <comment><USER2> I have been working on this from some time. Checkout

[https://github.com/daptin/daptin](https://github.com/daptin/daptin)

I have been deferring another show hn since the last one, since I am always in the middle of adding one more feature :p

my overall goal in daptin is to build something reliable which can run for years without needing any maintenance. Some things to show this is that its written in golang and I build static targets for all target hosts, the thing is open-sourced and licensed to be used without fear.

As for the features, I will try to list some here:

\- YAML/JSON based data declaration

\- CRUD api implementing [https://jsonapi.org/](https://jsonapi.org/)

\- GraphQL api

\- Definable actions, for custom apis

\- Integration to any 3rd party api based on swagger/openapi spec

\- Runs on mysql/postgres/sqlite

For more advance features:

\- SMTP server, IMAP server

\- Self generated cert/ Acme TLS generation support

\- Encrypted columns

\- Asset columns (file/image/binary store)

\- Asset columns backed by cloud storage (like ftp/disk/gdrive/s3/bb and many)

\- Native OAuth/3rd party login support

\- Exposing cloud store folders as static websites

I have built a lot of apps on daptin over some time now and I love that it has become what I envisioned it to be.

<comment><USER3> That's a great set of features! I'll try it on my next prototype.

Especially the OpenAPI export is great; I had always problems with automatically generating it (in go/node.js/.net core).

<comment><USER2> Not only openapi export, but you can import openapi/swagger specs and use them in actions. Effectively third party integrations.

And I forgot to mention table and row level user authentication permissions and groups.

</comment></comment></comment><comment><USER4> React Admin is awesome for simple low code CRUD applications.

[https://marmelab.com/react-admin](https://marmelab.com/react-admin)

Combine React Admin with Hasura (automatic GraphQL on top of PostgreSQL) and you can build an entire back office admin suite (API endpoints and admin front end) in a matter of hours.

[https://hasura.io](https://hasura.io)

This adaptor connects react-admin with Hasura:

[https://github.com/Steams/ra-data-hasura- graphql](https://github.com/Steams/ra-data-hasura-graphql)

Here's a reference application I put together:

[https://github.com/cpursley/react-admin-low- code](https://github.com/cpursley/react-admin-low-code)

<comment><USER5> _blinks eyes_

Wow Hasura + react admin look incredible. Thanks for this.

<comment><USER6> It's a great combo. Been fortunate to be able to use React + Hasura + Clojure(Script) + Re-Frame at my job; great stack to work with.

</comment></comment></comment><comment><USER7> If you want No Code solution, AirTable and Coda. On one hand I sort of wish more business knew about it as it would likely simplify most of their work load. On the other hand I dont want that to happen as it gives current businesses advantage.

For Coding Solution, ( Incoming Unpopular opinion ) if you dont mind _modern_ PHP, ( which is a lot better than old PHP) Laravel [1] is to my mind undoubtedly the king of CRUD framework. The whole ecosystem is, and continue to be outpacing and growing faster than Rails ecosystem. Which makes me very envy.

If you dont like PHP, then Ruby Rails.

[1] [https://laravel.com](https://laravel.com)

<comment><USER8> I think the hate has gone too far on PHP. I work in Laravel for work, and it continues to impress me. Such a pleasure!

Also, Laravel collections are amazing. They make working with arrays and transforming data a breeze.

<comment><USER9> >I think the hate has gone too far on PHP

It was very well deserved back in the pre-7.0 days, when it was common to have horrific spaghetti projects with zero structure, global variables/functions everywhere, and all kinds of logic (including database calls) mixed into view templates. Modern PHP is a whole different world, but most people will simply choose something else now because that stigma is impossible to lose, and finding dedicated PHP developers is increasingly uncommon.

<comment><USER10> I disagree. You can't slap on features on a bad language and make it good language. You can only make it more palatable.

Good languages start good because the people who designed and built them had good idea of what they wanted to achieve and did not have existing users to compromise with.

<comment><USER11> > You can slap on features on a bad language and make it good language.

I believe you meant to say "you _can't_ ..."

<comment><USER10> Yes. That is what happens when you edit your post and then skip proofreading.

</comment></comment></comment></comment></comment></comment><comment><USER12> If you want a database-backed CRUD with extra business logic then it's hard to beat the Django admin. You get support for common cases out of the box and extending/overriding the normal behaviour is fairly straightforward.

It looks fairly presentable and has a non-awful UI. Certainly not state of the art but good enough for non-public facing stuff.

<comment><USER13> For Django, the trick is to implement an MVC pattern: let a class sit in- between a model and its set of views and pilot the views from there, like the admin, drf and others.

However, the admin does not leverage the Django ecosystem, django-tables2, django-filter, and so on. Also, it's kind of moving slowly because they must try to respect backward compatibility.

I maintain CRUDLFA+ and I love it:

\- lets each view define its own url generation method: the controller will use that to generate the urls for a model \- each controller defines a get_queryset method which has a request parameter, allowing you to define what objects a user may see

\- each view defines a has_perm method, as such a user may see a bunch of objects, but not necessarily execute all views on it,

\- the default list view wraps django-tables2, django-filter, django-search, and generates a per-object menu, by iterating over each view of the controller and testing it with has_perm, as such a user will see an object menu with each view it can execute on an object, with no overhead

\- allows you to override views in many ways

\- works with non-managed models (models that are not backed with a database table)

\- can be used for frontend pages too (admin is really limited to being a back-office),

Clearly, CRUDLFA+ goes beyond "basic crud", but I would never code a Django view without it ever again though.

However, so far I make it for my personal use and even though it's been in use on governmental production for a couple of years now, I wouldn't recommend it for beginners. If you're a Django expert and get your kicks out of trying new patterns then you might spend some good times with it.

[https://yourlabs.io/oss/yourlabs](https://yourlabs.io/oss/yourlabs) [https://gitpitch.com/yourlabs/crudlfap](https://gitpitch.com/yourlabs/crudlfap)

We're in the (slow) process of replacing Jinja2 in it with Ryzom ( [https://yourlabs.io/oss/ryzom](https://yourlabs.io/oss/ryzom) ) , a component-based HTML renderer which supports data-binding and that we are looking forward to integrate or isomorphic research (from [https://yourlabs.io/oss/chp](https://yourlabs.io/oss/chp) ) into. When that's over we will release v1.

<comment><USER14> This is really interesting. Will take a look on how this works for me!

</comment></comment></comment><comment><USER15> To me it's still surprising that nobody has done something like MS Access or VB6 for the web. They were easy to learn but had enough power to create really complex solutions. The only downside were scaling and multiple user support. These problems shouldn't be that hard to solve.

<comment><USER16> I love access, and pushed it at many jobs that I have been at. Many times you have small teams who just are not worth the investment of enterprise systems while they are still growing that part of the business. Access allowed them to solution their needs while the requirements are still in flux. Once a department becomes big enough the access solution serves as a working prototype to generate requirements to build a proper system. It is a shame that Access has fallen out of favor and there really are no web tools that compare to how well it enabled users.

<comment><USER17> One could argue that Microsoft PowerApps (Dynamics 365 CDS model apps) is the enterprise equivalent of Access. It's extremely easy to build a CRUD app without writing any code.

<comment><USER18> Access has always been relatively easy to build an app with close "to no code". The problem is that you still need to understand the principles of a relational database to use it properly and that is usually taught after basic coding.

</comment></comment></comment></comment><comment><USER19> Django admin, with Django rest if you want to easily add APIs.

<comment><USER19> Also, pro-tip: host it on Heroku for ease if you're not anticipating a ton of traffic. Literally minutes to set up and almost no maintenance overhead going forward.

</comment></comment><comment><USER20> Ruby on Rails without a doubt. You can even take it a step further and use ActiveAdmin.

<comment><USER21> I think it is a matter of taste or experience language wise but I would say Django with the admin.

<comment><USER22> Have used both extensively. I like the Django ORM better than ActiveRecord but love the conventions and magic you get with rails + ActiveAdmin!

<comment><USER21> I have used both for years as well and I cannot stand the 'magic' ;) Hence my comment about taste.

</comment></comment></comment></comment><comment><USER23> I think the meta-answer is to pick the CRUD framework for the language that you already know well; e.g. if you know Python, use Django. But if you know PHP already, just use Laravel or whatever, rather than learning Python to get access to Django.

While there are features in some of these frameworks that will give you a productivity boost in certain use cases, none of them are worth taking the productivity hit of learning a new language.

</comment><comment><USER24> For non-web, give the Red programming language a try. Java is also another good one. I am afraid there just isn't a good, robust, free and open source system when it comes to client-server stuff. Rapid development tools also tend to be less mature on Linux, compared to OS X and Windows (Mac and Windows have a rich tradition of business/enterprise rapid prototyping e.g. FileMaker, HyperCard, Visual FoxPro). If you are on the Microsoft stack (and don't need gimmicks like multiple screen size support, Material-style shadows and animations), the standard WinForms system is also quite productive. I heard that the new SwiftUI system is starting to bring back the spirit of rapid development too though I have no tried it myself. These days "no-code" systems are also making a comeback with half a dozen new SaaSes showing up on HN every other week.

<comment><USER25> Red is cross-platform and works pretty well on distros that support 32-bit libraries, GTK backend is also fully functional [1], so I don't get why Linux is excluded from your list.

Red author also plans to port Cheyenne web server at some point after 0.7.0 release. [2]

[1]: [https://github.com/red/red/tree/GTK](https://github.com/red/red/tree/GTK)

[2]: [https://www.cheyenne-server.org/](https://www.cheyenne-server.org/)

</comment></comment><comment><USER26> Hasura and React Admin with Hasura RA data-adapter

[https://github.com/hasura/graphql-engine](https://github.com/hasura/graphql- engine)

[https://github.com/marmelab/react-admin](https://github.com/marmelab/react- admin)

[https://github.com/Steams/ra-data-hasura- graphql](https://github.com/Steams/ra-data-hasura-graphql)

</comment><comment><USER27> Haven't tried it myself, but what about postgrest? [https://postgrest.org](https://postgrest.org)

</comment><comment><USER28> There is also [https://github.com/strapi/strapi](https://github.com/strapi/strapi) which is a CMS for rest api. You only have to write a frontend.

<comment><USER29> Have you actually used it in production? I would love to try it but I'm hesitating in case it's still not ready for a more complicated project.

</comment></comment><comment><USER30> I've found success using Google Sheets as a backing datastore for some automation projects of mine. Google Sheets has a rest API that you can use.

</comment><comment><USER31> Remake - a server-rendered framework for building CRUD web apps [0]

This is an open-source framework I've been working on for the past year to try and solve this problem. I was tired of building the same back-end over and over again and wanted to be able to define my data all in one place.

It works kind of like Vapid[1], in that it allows you to define back-end logic with front-end syntax. But it goes a step further and has more built-in web app capabilities like support for each user owning their own application, nested elements and pages, sorting elements, and inline edit areas.

I just posted a Show HN[2] in another thread. I love for you to read more about it there. You can also see some code examples and a simple demo application here: [https://docs.remaketheweb.com/](https://docs.remaketheweb.com/)

Reach out to me with any questions. I'm always available to talk: firstname.lastname@example.com

[0] [https://remaketheweb.com/](https://remaketheweb.com/)

[1] [https://www.vapid.com/](https://www.vapid.com/)

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

<comment><USER26> Interesting idea, I checked out the site.

One piece of feedback, I had to go into the docs, under (A Simple Example App) to get a sense for what it was/how exactly it worked.

In place of the video that is the first piece of media content on the landing page, I would have much preferred some snippet of code and a visualization of its result. That way as soon as I come to the site, I get a feel for what exactly it is.

I think this would markedly improve your ability to communicate what Remake is. As the old adage goes:

 _' Show, don't tell.'_

<comment><USER32> either this or a 90 second demo of building something (e.g. how you made the cards in the demo app)

<comment><USER31> It's a little longer than 90 seconds, but you can find the full ~40 minute tutorial for that here: [https://docs.remaketheweb.com/introducing- remake/](https://docs.remaketheweb.com/introducing-remake/)

I agree, however, something short and sweet showing off the code and how to build something is sorely needed on the home page. I'll brainstorm about it and update the page soon.

<comment><USER32> you could probably cover most of the todo example in 90 seconds

</comment></comment></comment></comment></comment><comment><USER33> Jhipster if you want to do it in Java. Do check it out if you want a lot of options. For example angular or react frontend, SQL or nosql, monolith or microservices. Warning: it relies heavily on spring framework. So that may be an entry barrier too.

<comment><USER34> I believe jhipster works with kotlin as well.

</comment></comment><comment><USER35> OpenXava ([https://openxava.org](https://openxava.org)) is an platform that is open source and automatically generates user interface based on CRUD operations (+ much more). Even for one-to-many or many-to-one associations, it creates look up lists and master-detail user interfaces. It also creates interface for searching, for printing reports, for custom queries, for group- by and similar aggregate queries and much more. All automatically.

How? It uses information that you provide which Java class corresponds to which table, Hibernate style JPA ORM annotated classes, either in XML or as plain java classes with annotations (one class per table).

If you have a large database, with multitude of tables, you can use the Hibernate / JBoss reverse engineering tool to generate the mapping classes directly from the database structure. See this: [https://eugencovaciq.wordpress.com/2016/02/01/hibernate- tool...](https://eugencovaciq.wordpress.com/2016/02/01/hibernate-tools- reverse-engineering-using-maven/)

There are other tools that could help. Why OpenXava? Because it is very easy to customize the generated user interface and it is very flexible. You just add @view annotations to the classes that modify how the interface is generated. For example, when you need to drop out some attributes, or not show a link to another table, or when the table is used as a lookup for the foreign key in another table, you can configure how the lookup will look like in one situation, and how in another. You can reconfigure the layout of complicated forms for tables with many attributes, also using view annotations.

I am not involved with OpenXava, but have used it to make an administration interface for several apps. I have a maven script that can be run from the command line, that uses hibernate reverse engineering library to generate the mapping classes and i have the initial app in minutes.

</comment><comment><USER36> We've been using Anvil for internal employee tools for the last year or so with much success.

[https://anvil.works/](https://anvil.works/)

</comment><comment><USER37> For those like me who never heard the term "CRUD screen":

[https://wiki.c2.com/?CrudScreen](https://wiki.c2.com/?CrudScreen)

</comment><comment><USER38> Are you looking for a framework or a more complete tool? Django or Ruby are good for putting together CRUD tools very quickly. If you make use of their ecosystem of libraries you'll be able to put a Bootstrap CRUD app together in no time (assuming you have webdev experience).

</comment><comment><USER39> [https://tryretool.com](https://tryretool.com) (YC W17) is great for this use case.

</comment><comment><USER21> There are a lot of nocode/lowcode tools with batteries included if you do not mind paying a monthly fee (although some do not even require that; only a one- off fee). Airtable, Bubble and many others make it really easy to create CRUD apps. There are also open source solutions (I did not try so no idea how good they are) like [0].

[0] [https://garrylachman.github.io/ElectroCRUD/](https://garrylachman.github.io/ElectroCRUD/)

</comment><comment><USER40> Low-code solutions are great for this. I worked at Mendix in the past, which I still really like. Competitors are outsystems, Google appmaker, Microsoft powerapps and more.

</comment><comment><USER41> I wonder if there is something for CRUD as easy as Delphi used to be for rapid prototyping.

</comment><comment><USER42> The tool you are already the most familiar with will most likely be the fastest. Every new tool has a non-zero upfront learning cost.

<comment><USER18> Counterpoint, I started using SQLite with Python and after less than a day of writing SQL manually I decided just to learn SQLAlchemy. Its cut the amount of code down a lot and the learning time has paid itself back quite quickly.

</comment></comment><comment><USER43> If you're confortable with Laravel PHP, check out [https://backpackforlaravel.com/](https://backpackforlaravel.com/).

I've used it for a couple of projects over the last few years.

The OSS project has really gone a long way since the earlier days (it was actually called Dick).

Seems to be quite popular too:

500.000+ downloads

14.000+ developers use Backpack every month

</comment><comment><USER44> Grocery CRUD is a CodeIgniter/PHP library that lets you quickly create a CRUD with views. Officially it only supports MySQL but some third-party patches let you use it with other databases.

[https://www.grocerycrud.com/](https://www.grocerycrud.com/)

</comment><comment><USER45> Postgraphile [https://github.com/graphile/postgraphile](https://github.com/graphile/postgraphile)

It's like Hasura but written in a language you can understand.

Using it with great success on two projects, both > 3 months into development on.

<comment><USER46> If such long projects, I guess the benefit must be a pretty high quality system to earn your praise. Can you describe the benefits?

</comment></comment><comment><USER47> We just released our visual code-generator: [https://www.generato.com/](https://www.generato.com/) or [https://app.generato.com/](https://app.generato.com/)

We have built a technological graph to set up your applications in seconds instead of hours, days or even months. You could than apply text-based templates (with placeholders) and generate (and update) out of the browser or our desktop-applications. Individual added code stays where it is!

Currently we support CRUD, Authentication for Java, PostgreSQL and Angular for free, but we are expanding our template-stack and even you as our user are free to integrate your own technology.

We are in a free beta-stage now, so give it a try!

</comment><comment><USER48> Try Xojo for a cross-platform modern VB equivalent.

They can compile to a webapp now too that presents the UI in a browser.

[http://www.xojo.com/](http://www.xojo.com/)

Disclaimer: I worked on Xojo's earlier incarnation REALbasic waaaaay back.

</comment><comment><USER49> API-Platform is a OpenAPI-based project that helps you focus on the business logic of your project, because the CRUD will be easily generated:

[https://api-platform.com/](https://api-platform.com/)

</comment><comment><USER50> Look for api platform ( [https://github.com/api-platform/api- platform](https://github.com/api-platform/api-platform) ) otherwise flask rest api is another great option

</comment><comment><USER51> You shouldn't overlook Orbeon Forms, it has history going back to 2007 (it seems quite mature). I believe it can just be used like a robust black box to do both CRUD and HTTP web front ends.

<comment><USER52> Yes, Form Builder, in Orbeon Forms, allows you to create a page with form fields, use the provided values to call a REST/CRUD API, and show the result on that page. You can try that out for yourself on demo.orbeon.com, or download the software and run it locally.

There is an open source (LGPL) Community Edition, but the services & actions feature you need for this is only available in the Professional Edition. This being said, if you just need this for your own local testing, you can get a trial license (automatic process, valid 3 months, no limit on number of licenses you get), and have fun with it.

Bias: I'm one of the Orbeon Forms developers ;). ‑Alex

</comment></comment><comment><USER53> DaDaBIK ([https://dadabik.com](https://dadabik.com)) is a no-code low-code platform that can generate a Web CRUD app in minutes starting from your existing DB (but you can also design the DB in DaDaBIK itself).

It has been around since 2001, CRUD generation has been its main aim since the beginning, with the last versions you can also generate very complex applications injecting some custom code (php, javascript) to implement your business logic.

Disclaimer: I am the founder.

</comment><comment><USER54> If you are looking for something proven I would use django. It is easy to add new models and generate crud-UIs with django-admin. Django has many useful modules for extension.

<comment><USER18> Django's migrations are a nice way to take care of database changes. The NoSQL crowd should try this out before ranting about the benefits of "schemaless".

</comment></comment><comment><USER55> Try CakePHP. The `bake` tool allows you to create CRUD functionality quickly. Just create your database and run `bin/cake bake all` and it creates everything from models, controllers, views (templates) and even tests!

I have been using it since 1.3.x days and it's just got better over the years - migration between versions was relatively painless.

[https://cakephp.org](https://cakephp.org)

</comment><comment><USER56> PouchDB.js.

PouchDB is, in my opinion, an overlooked gem that deserves more attention.

For small tools you don't even need a backend. It uses your web browser's built-in DB

<comment><USER46> What are the limits (per app, per user, per browser install) for amount of data, number of rows, etc in browser built-in DB's nowadays?

<comment><USER56> I really don't know the answers to that, but I did do a bit of testing on my old Mac Mini (late 2009, 8GB ram).

I wrote a script that created 1000 documents that were pretty small just a few k at most.

The app I wrote using pouchdb to use find and edit them started choking when Safari had about 5000 documents stored in it.

If you install CouchDB on your local box, or a remote server, and configure PouchDB to use your CouchDB to store and access those docs you can probably have 10s of 1000s and I know you can scale that up to millions of documents with the right hardware.

You can get industrial strength remote CouchDBs from IBM and CouchBase for a pretty reasonable fee too. And you can run PouchDB with Node,js on a server and store your docs on it. So there are a lot of ways to use it.

</comment></comment></comment><comment><USER57> I've liked using Parse.

[https://parseplatform.org/](https://parseplatform.org/)

</comment><comment><USER58> ruby on rails?

</comment><comment><USER18> If its for internal use then Django's admin interface is pretty good. It's limited in some aspects (you will need to login to use it) so better suited to internal use than public facing websites, but for many tasks it's amazing.

</comment><comment><USER59> This meta-tool was posted 2 days ago, JSON w/ queries -> admin pages.

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

</comment><comment><USER60> There is always swagger codegen, which I have not used in a while. I believe you just give it your json swagger spec and it can generate server stubs of about 20 or so different languages/frameworks.

</comment><comment><USER61> Ruby on Rails' Active Admin is my favorite [https://activeadmin.info](https://activeadmin.info)

</comment><comment><USER62> Just do an AWS API Gateway to DynamoDB serverless integration, free CRUD, no need to implement the individual operations manually.

<comment><USER63> But then you're stuck with DynamoDB. DDB is only suitable if you have a well defined access pattern.

I'm all in on AWS, but I wouldn't recommend APIGW/DDB as a general purpose solution.

</comment></comment><comment><USER64> [https://postgrest.org/](https://postgrest.org/)

</comment><comment><USER65> On the server check Hasura. You get a GraphQL CRUD over Postgres in almost one click.

</comment><comment><USER66> rails and activeadmin. define models, include a gem and you got basic crud admin interface.

</comment><comment><USER67> Pencil and paper

<comment><USER68> Care to elaborate?</comment></comment>


Ask HN: No-FAANG-like-Perks, is it worth it? - <AUTHOR> Hi,
I interned in a Bangalore based cashflow-positive startup last year, and later on got a Pre-Placement-Offer (PPO) from them right after my internship ended. Things were fine until the placement season came and most of my friends ended up joining MNCs. Although my startup offered me a salary compeititive to Microsoft / Amazon at that time, Now I feel like I'm missing out on a lot.
I see them getting better Macbooks, with lots of perks (monetary & non-monetary), and to some level this bothers me. The work that I do at this startup, I like it, I get to make my impact faster, code ships to production fast enough (as I'm the one deploying the code to the server), it does feel like I am a step back from everyone, I get almost no perks as compared to what other get. Also, the work isn't structured much, there is not much focus on code reviews here, since projects get handled by single developers here most of the time. So for eg, right now I handle the entire backend code of the project I've been assigned to, so I can obviously make things better by me, by following code quality practices, but that isn't the point here.
People have been telling me continuously that WORK > PERKS, but I cannot make up my mind around that, I still feel a little bit like a loser. My question is, Is it all worth it in the end ? Will this work be beneficial for me ? <comment><USER2> What is "I see them getting better Macbooks"? What do you actually do on your Macbook?

I haven't ever thought about this because I use work hardware explicitly for work due to the sheer amount of remote management and spyware on it.

<comment><AUTHOR> Basically it means they get Pros and I get a Air. I know this may sound crazy to you but if you read the question this is more of a psychological-related question rather than fact based.

</comment></comment><comment> mongo-db-hater Looks like you have a good job without fancy perks. i would say that is very well worth it. i know some people working in FANNG and feeling miserable because of manager/project etc.

<comment><AUTHOR> So I should be satisfied here ?

<comment> mongo-db-hater I think yes - because you are only dissatisfied with perks not in the work/company/team itself.

Having worked in FANNG & Non-FANNG in long run, you will be happier/successful in where you are than in some fancy FANNG.

<comment><AUTHOR> Thank you for your perspective... hope so !

</comment></comment></comment></comment><comment><USER3> Stay at your startup for now. You presumably make enough money to buy your own MacBook if you care that much. Ultimately it doesn't matter, it's just hardware.

Focus on the advantages you have in your situation - likely you'll be able to work on a broader part of the business than them and be able to leverage that into a more senior position elsewhere later.

Obviously (or not) you need to evaluate your progress over time. This early in your career it may not be advantageous to stay at one company too long, especially in a fast-paced environment as I understand Bangalore to be.

Re: The psychology of it, over time you'll realize that the perks, while nice, don't actually _cost_ that much. Free snacks at work? Laundry service? Do the math yourself to understand the approximate cost, which will help you value them and help you realize that you're overly concerned about minimal things. Trying to keep up with your friends is just a trap that will make you unhappy.

tl;dr - You have plenty of time to join an MNC later. Learn what you can from your current startup.

<comment><AUTHOR> Thank you for the reply.... this is the kind of reply I was hoping for, something to bring a little clarity to things and perspective. I guess it's true that it's just a hardware, and anyways I'm just going to use it for office work so it shouldn't matter.

Could you suggest any article/pointers to what I should be evaluating myself on as well as a something of a roadmap for a early stage Software Engineer ?

</comment></comment><comment><USER4> My take.

I told a friend that I wasn't creating enough value at a job I was at to pay my salary and he thought that was great: I wasn't getting ripped off the way Karl Marx said workers get ripped off (e.g. I make $1 of value, get paid $0.80, capitalist pockets $0.20)

I told him that no, that I was either going to lose that job, the firm was going to go out of business, I was going to face unbearable stress, somehow it would be end in tears.

If you get perks for a few years but don't pull your own weight, don't develop your skills, and don't have the confidence that you can pull your weight, you will pay the price someday, that's certain.

<comment><AUTHOR> So what would you have me do given my current situation ?</comment></comment>


What happens if you try to disable access to Google IPs - <AUTHOR> https://www.forbes.com/sites/jasonevangelho/2019/04/09/heres-the-shocking-reality-of-completely-blocking-google-from-your-life/ <comment><USER2> It's a bad example imo, there is a difference between using Google products vs using other products that run on Google CIDR.

<comment><USER3> Most of the discussed items had to do with Google services though. Only the Spotify example had to do with what you are referring to.

<comment><USER4> And Dropbox. And AirBnB. And NYT. There were plenty of examples.</comment></comment></comment>


Good Perl code is the best form of evangelism - <AUTHOR> http://perlbuzz.com/2008/03/good-perl-code-is-the-best-form-of-evangelism.html

<comment><USER2> From the article: The solution that Microsoft posted, however, was effectively a VBScript script translated to a Perl program (by their own admission). ... Hungarian notation prefixes of variables, in addition to the Perl sigils

That's vile. @arrFoo and $intBar is completely redundant.</comment>


How bad is IPv4 address exhaustion? - <AUTHOR> https://blog.apnic.net/2018/02/15/bad-ipv4-address-exhaustion/ <comment><USER2> Hypothesis: Mass adoption of IPv6 is blocked by the ugliness/inconvenience of the IPv6 address format, hence "end-users" (developers) don't like adopting IPv6. As long as this UX issue does not get solved, IPv6 adoption is only going to happen on an individual level when any given business' significant income stream is at immediate risk of being disrupted. Depending on how many of these individually affected businesses represent major infrastructure providers (such as public clouds), the individual moves to IPv6 might together bring about a globally noticeable effect.

\---

Who here actually feels any sort of pain, as an internet technologist, or as business owner, from "still" being on IPv4? I know that I do not.

<comment><USER3> I don't know. IPv6 is ugly, yeah, but not any more ugly than other long random strings that we just copy-paste all the time, like API keys. For me, not adopting IPv6 has these reasons:

* My home and small business Internet provider does not support IPv6, despite them talking about deploying it for about 10 years now. Actually here in the Netherlands I have never encountered a mainstream consumer ISP that supports IPv6.

* I don't have any users that are on exclusively on IPv6. All my users have access to IPv4.

* IPv6 does not bring me any visible benefits, like faster performance.

<comment><USER4> You go ahead, and try relaying an IPv6 address over the phone from one of your end users.

<comment><USER5> That's why you need a solid solution for DNS, though from my experience, mDNS does a decent enough job to solve it.

Instead of the numbers you type in the hostname of a device. IPv6 encourages to improve on the current lackluster DNS solutions some routers have.

<comment><USER6> Here, the linux routers are way ahead of you. Odhcpd used to handle ipv6 delegations for normal users can coordinate with dnsmasq (often used for ipv4 assignments and dns proxying) or unbound - to assign nice local names.

Three trouble begins at internet scale where mDNS just does not work due to collisions. And ISPs do not want to give you free domain names and especially free dynamic subdomain delegation.

<comment><USER5> I use Pfsense which communicates DHCPv6 leases to Dnsmasq/Unbound fairly easily.

>And ISPs do not want to give you free domain names and especially free dynamic subdomain delegation.

Probably not but for internal resolution a .local or similar TLD is sufficient.

<comment><USER6> Yes. The thing is, this would be super easy for the ISPs as they already have to maintain reverse DNS for dynamic IPv4 most of the time, so modifying it to also allow delegating to an authenticated DNS secret should be trivial. Eslecially now that ISPs are so fond of giving you big routers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I don't see an answer to 'how bad' in the article. I thought I'll get some recent numbers but instead i got... some generic text that was valid even 3 years ago?

<comment><USER8> Offtopic tangential forum rant:

There has been an answer to your question in this thread for 14 minutes. However only users with showdead on can see it, because Arc has erroneously flagged it as evil. Screenshot/proof of what I currently see: [https://i.imgur.com/Y7iM30E.png](https://i.imgur.com/Y7iM30E.png)

HN does get spam, but the text and links don't look like the currently-buried comment does. I can't see it being /that/ hard to train an RNN, what with this being a comp-sci discussion forum...

\--

Oh, about the bar being brown/black in my screenshot - I set the bar color to that of the upvote/karma text, as I don't care to see that information (I start commenting for points, not to contribute meaningfully - it's true). Unfortunately Arc doesn't realize it should make the color of the links lighter so I can see them, so I've had to work hard to learn where the "threads" link is sitting so I can access comment replies.

Bit inconsistent letting me change the background color but not the text color. I can understand it, but still. Getting to the root cause, it would be nice to have an option to completely disable karma score display.

</Irritated but ultimately harmless 1:30AM rant>

<comment><USER9> Don't you have enough karma to vouch/favorite that comment? I just did. Usually there's a reason why the comment is automatically flagged so don't agree with your assessment.

<comment><USER8> I did immediately. _It stayed dead!!_ , which is what prompted the rant.

</comment></comment></comment></comment><comment><USER10> In the organisation I work for we had IPv4/IPv6 dual stack. Due to IPv4 exhaustion my whole department was shoved behind an NAT, which given the circumstances I find it normal as there is no need for 400+ workstations to have public IPs. The weird thing is that after the switch to NAT IPv6 connectivity was lost. When asking why IPv6 was lost I was told "what do you need it for?".

In the meantime I have residential IPv6 since 2011. I really believe corporate networks are one of the main causes of delay in massive IPv6 adoption. And given the inertia I'm not really expecting them to change soon.

</comment><comment><USER11> My ISP doesn't support IPv6 and it's been complicated to get IPv6 running properly at my hosting providers too. My hosting provider uses DHCP to propagate routing information, and I had a lot of issue with it going down, thus losing IPv6 connectivity. In the end I just disabled IPv6 on all the node I manage, it has no benefit except increased complexity.

The problem is the lack of insensitive to do the conversion.

<comment><USER12> This sounds more like poor DHCP configuration on your side? DHCP going down doesn't remove anything unless your client decides to time out it's current address configuration - of which there's no incentive to do on a server.

Moreover if routing was being propagated by DHCP, why was that not the case for IPv4 as well which would presumably be using it ?

<comment><USER13> DHCPv4 and DHCPv6 are different (they even run on different ports) and probably they have more experience with monitoring and operating DHCPv4.

Honestly I think the fundamental mistake of IPv6 was trying to fix everything else along the way. Certainly there are things that can be fixed in DHCPv4. But there isn't a way to put off that operational work until you're ready to get good at it; there is no way to _just_ get more addresses and not also sign up to run a new version of DHCP, to decide if you even want DHCPv6 or you want RAs and SLAAC, to give up ARP, etc. It's a big lesson in the second system effect.

<comment><USER14> What was the problem with ARP anyway? Why Neighbor Discovery is better?

<comment><USER13> As I understand it, ARP is abstraction-breaking and hard-codes that IP is running on top of Ethernet or something Ethernet-compatible - you're sending Ethernet packets (with a non-IP EtherType) that reference IP and an IP address, initially over Ethernet broadcast. NDP runs over ICMPv6, which is an IP protocol, and the way it works is that it's sent to well-known IPv6 multicast addresses, ff02::1 for all nodes or ff02::2 for all routers. If you're a node and/or a router, you join those multicast groups. So there's no assumption of Ethernet; that just depends on _some_ link layer with a working multicast. (And broadcast is a perfectly legal implementation of multicast, although if your layer 2 protocol makes it easy to do a better implementation, great.)

Also, there's some multicast fanciness so you join a multicast group based on some hash of your IP address so that NDP packets don't even go to all machines, but just some hash bucket that contains that IP address.

(I think these are good reasons to make a successor to ARP, but I don't think these are good reasons to require that you use the successor protocol if you don't want to NAT, especially given the extent to which deployed networking gear does ARP snooping and IGMP snooping - and does not expect a pile of multicast groups.)

</comment></comment></comment></comment></comment><comment><USER15> > The ultimate solution to IPv4 exhaustion is, of course, the complete > transition of the Internet to IPv6, however, this will take time and until > then there will be (by definition) networks and sites which only support > IPv4. This requires other networks and sites, even if they support IPv6, to > maintain IPv4 connectivity, which in turn requires some number of IPv4 > addresses. For that reason, IPv4 exhaustion certainly is an issue to be > understood and dealt with, especially by those who are building new networks > and services.

That's what I heard in college in 1999.

</comment><comment><USER16> IPv4 exhaustion is going to get really bad if we don't move to IPv6 soon.

IPv4 exhaustion means no more personal server boxes at home. The US has huge chunks of IPv4 allocation. In Vietnam, it's not as fun. IPv4 addresses have really exhausted. I just learned by accident that the ISP there they do a thing called the "carrier grade NAT" to get around that.

I was baffled I couldn't open a port on my router to seed some Linux images despite setting up the NAT correctly (remotely). After scratching my head for a while I noticed the IP address that the router reported was not the public IP when I Googled "what is my IP address." Then I sent an email to FPT, the ISP - one of the biggest ISPs in Vietnam saying "Hey guys - I believe I'm behind a NAT... I can't open a port to do stuff. Can you assist me?" To my surprise, after 15 minutes they sent an email back, saying "Oh yeah, we know that, we have given you a public IP. Thanks for trusting our service." I was double baffled by their service. Then because of that, I also asked for IPv6. 10 minutes later - "IPv6 has been enabled on your account. Thanks for using our service." What the hell?

While my ISP in the US (Spectrum/TW) has just given me a hell of a hard time because they sent me a buggy modem that would restart 3+ times a day. And in 4 months with a countless number of calls, 10 tech people sent to my house, no one knew what TF was going on. Now suddenly, it doesn't crash anymore, but they disabled IPv6 altogether, no words given. No one in their tech support knew that IPv6 was disabled because it crashes their router and they just gave me bullshit answers. I just found out about the "Puma chipset IPv6 crash" ordeal by Googling. Again, Spectrum was as helpful as a rock. I don't know how do they have so many people sending me mail spams weekly and calling and harassing me to sign up for their TV service, yet the service sucks so much.

</comment><comment><USER17> I feel like AWS and the Cloud in general have to be helping with this issue, because people no longer need to lock down individual IPs or ranges of IPs to get work done. Without the need to lock down an IP that you may or may not need to use, and with load-balancers that are able to expose boxes on a private subnet, the demand for IPv4 should be going down.

<comment><USER18> I actually disagree on this point. The rapid deployment and horizontal scaling that cloud recommends implicitly (failure domains, microservices as small isolated single purpose units et al.) also promote the consumption of IPv4 address space.

The other thing is Docker and Kubernetes are not supporting IPv6 today so that definitely locks a lot of the more modern cloud deployments to IPv4, even if it's S2S communication which could have been IPv6 only (since you would control both ends) otherwise... so that's another thing.

However, new network layer technologies like "Layer-3 all the way to the server" are allowing providers to use their entire IPv4 allocation by having BGP pushing /32 routes internally and this has been the biggest helper in my opinion, no longer do you have a static /24 allocation and a bunch of dead space that can't be freed easily.

Of course people who are new to OPs/Dev haven't really seen this much- but I would probably venture more than 50% of ipv4 space is locked into allocations that are mostly empty.

\-- I also think there is still an increasing population of internet users and VPS/Cloud providers give a cheap and easy way to be online too.. $5 for a VPS in most cases.

<comment><USER19> > I actually disagree on this point. The rapid deployment and horizontal > scaling that cloud recommends implicitly (failure domains, microservices as > small isolated single purpose units et al.) also promote the consumption of > IPv4 address space.

Nothing but the external entry points in a cloud need to be publicly accessible IPv4.

</comment></comment></comment><comment><USER20> From a corporate perspective: we are just scared shitless to implement v6 internally.

Keeping (private) v4 working is hard enough.

Even drafting a project budget for v6 makes management go balistic. \- firewall & IDS upgrades

\- firewalls rules

\- accountablity

\- dynamic DNS

\- employee education

\- toolchain updates

\- upgrades of software

\- functionality tests

Not all companies employ NY or Google level engineers who "just roll out v6" on a Sunday afternoon.

<comment><USER6> Come on. Firewall rules is one sed call. IDS are dinosaurs and junk that are generally worthless (feel free to show me otherwise).

Since all major OS support ipv6 there's nothing to educate about other than perhaps new IP address form.

Software upgrades? Like what software, OS to support NAT64? Which every major OS supports? (Including Windows 7. The holdouts are ancient telephones and tiny embedded trash.)

Toolchain updates are important... if you use IP addresses directly, bypass the OS network stack and so not support names. This likely means that software is junk that should've been replaced years ago and likely some internal cookery.

This leaves tests and dynamic DNS.

<comment><USER20> > Firewall rules is one sed call

Not so fast. With over 60.000 clients (yes with all known OSes and versions known to man), 10.000 servers (yes with all known OSes and versions known to man), 50 network firewalls, firewall on nearly all hosts (clients & servers), it might be just a little more then a sed call.

> IDS are dinosaurs and junk that are generally worthless.

They're part of the infrastructure, partly "just a compliancy thingy" but also part of the layered security model. Hell, there is even antivirus software for that exact same reason.

> [...] there's nothing to educate about other than perhaps new IP address > form.

That is a joke right? I am sure you know a little bit more about v6 then "it's just a longer address"

> Like what software

Like software that touches IP addresses. DHCP (if that's your choice for v6), monitoring tools (yes there is loads of that which does not support v6 (mainly home made crapola) etc.

You might live in a greenfield environment, homogene and clean. Loads of older organisations run everything ever invented within the last 20 years.

<comment><USER21> This guy definitely knows better

</comment></comment></comment></comment><comment><USER22> Google was incorporated in September 1998. RFC 2640 was published in December 1998. Google's IPv6 tracker [1] has ~20% of their traffic coming in as IPv6. In the time that it's taken for Google to become one of the largest companies in the world, IPv6 is still uncommon.

[1] [https://www.google.com/intl/en/ipv6/statistics.html](https://www.google.com/intl/en/ipv6/statistics.html)

</comment><comment><USER23> I think search engines are very well positioned to massively help IPv6 addoption. For example, they could limit the number of search hits to an IPv4 only site. A mom an pop page without IPv6 is fine, a top 1000 site is inexcusable in 2018 and contributing to the vicious circle.

On the user facing side, they could inform consumers when they are connecting from IPv4 only networks, to realy drive home the point that they are receiving a sub-par service. It might not be true today, but in the long run it's true for the internet as a whole, stuck in IPv4. And if people perceive IPv6 as desirable, they will prefer it given the choice even if they don't understand exactly what it is, just like they prefer a 4G service to a 3G one.

What incentive would Google and Microsoft have to do this? IPv4 exhaustion costs them too, in routing performance and manpower to manage a scarce resource. Also, reliable end to end connectivity is an enabler for the type of technologies they push, limiting telco control over their users. Massive growth markets are trumped by lack of IP space, the whole of Afrinic only has a few /8\. That means African carriers will do massive NAT.

</comment><comment><USER24> An embarrassing admission, but one that is potentially useful for this conversation: I have a Cisco CCNA cert that I got in 2009 but never used. (Got a job that didn't put most of the knowledge to use, and the cert collected dust.) IPv6 was on the exam. I've forgotten all about how to use it.

For me it is just not as intuitive. Maybe others think the same, slowing adoption? I didn't find it intuitive when studying for the exam, but I got it enough to pass.

Basic networking knowledge I still have. I can tell you how to set up a DHCP and DNS server, and how NAT works on your router. I can tell you about ARP tables, VPNs, VLANs, firewalls, and subnets. I can't begin to tell you about the equivalents on v6.

Maybe I'm just getting old. Maybe it would come to me once I started using it again. Or maybe it's just not as intuitive.

</comment><comment><USER25> Could IPv4 address exhaustion be staved by opening some of the currently unused /8 blocks? For instance, Apple has the entire 184.108.40.206/8 block. If IPv4 addresses are really becoming scarce and demand is going up, seems like Apple could dole out /24 or /16 bit blocks to RIRs and make some money - which they obviously like to do. So why aren't they doing it? Maybe someone more familiar with the economics of IP has an idea.

<comment><USER26> There's dozens of cases of this besides just Apple. Frustratingly, if you scan the legacy allocation /8 blocks (not done personally, but know someone who has), most of the ranges have no open ports on a majority of the range. So they literally are serving no justifiable (in my opinion) purpose.

<comment><USER27> I did IT support at a car dealership where some ancient line-of-business software needed a public IP for every Windows desktop it ran on to function properly.

No _justifiable_ purpose, sure, but I can only imagine the tons and tons of legacy line-of-business crap out there with assumptions like this.

<comment><USER26> You nailed why I threw in the word _justified_ intentionally. There's plenty of reasons a public IP could be _needed_ , but not _justifiably_ (to me, your example perfectly illustrates that).

</comment></comment></comment></comment><comment><USER28> I agree with people blaming whole situation on ugly format of IPv6. I also believe that increase to 128bit address was unnecessary and harmful. We could have just added another two segments, have 48 bits total and it would probably be enough. It would also be much easier for people to switch from 127.0.0.1 to 0.0.127.0.0.1 than to ::1.

<comment><USER29> The problem with changing _anything_ from 32 bit would have run into the same issues. You have a whole new stack.

</comment></comment><comment><USER30> I think some hosting providers are wasting a bit of the address space. For an example I have 15 linodes each with their own public IP, but I actually only need one or two of the IPs to be accessed publicly for the loadbalancers, the rest I actually prefer not to be routable from the public.

<comment><USER31> Yeah, this just proves how much of a non-issue ipv4 exhaustion is still

IPs are still cheap enough to "waste" \- the only real motivator is going to be ipv4 price being too high which we're quite far off of

</comment></comment><comment><USER32> > The ultimate solution to IPv4 exhaustion is, of course, the complete > transition of the Internet to IPv6, however, this will take time and until > then there will be (by definition) networks and sites which only support > IPv4.

Off-topic: I've always wondered why English speakers (or perhaps just Americans?) use "by definition" arguments so much (also just saying that things are by definition so and so).

People never seem to use "by definition" arguments and such in Finnish for example.

Definitions of mathematical objects aside, things in concept space are not eternal and can shift around. Is the usage a cultural thing? A quirk of language? Just some random trivial thing that just is and doesn't have any particular reason to it? :p

<comment><USER33> This usage seems pretty reasonable. He's saying "Before everything supports IPv6, there will (by definition) be things that only support IPv4."

He's defining a particular scenario, and then using a tautology to clarify that scenario.

</comment></comment><comment><USER34> One problem to moving to IPv6 is that most of the firewalls I've looked at either don't support it at all or the support is very weak. I know that IPFire doesn't support it and I couldn't find any information on Smoothwall IPv6 support. I think that pfSense supports it but I don't know how well.

Come on people, it's 2018 and your building a network application. I'm thinking a top priority would be IPv6 capabilities. Apparently, I'm wrong.

</comment><comment><USER35> Nothing is going to change unless there is a real issue by not having ip v6 which will force users to jump to the ISPs which do support it and abandon the ones who don't.

My understanding is that there is a real cost for ISPs to make IP v6 available, but zero need to (upgrade of thousands of pieces of hardware equipment - is that still true?). There is no consequences for not doing so.

<comment><USER36> I had read that cellular carriers were pushing to be able to just use IPv6. I know Apple has really emphasized IPv6 compatibility with App Store apps for at least a few years now.

That's one of the things I've been watching. Theoretically, the easiest switchover should be consumer iPhones on cellular data networks, because any app released in the last few years should work on them.

</comment></comment><comment><USER37> I had IPv6 setup at one point, but a lot of things using it are broken. Some sites/services/software repos will just refuse to connect- and after a few minutes of debugging I realize it's probably v6. Turning off IPv6 usually fixes the problem.

I'd like to use IPv6, but since turning it on by default breaks a lot of things- I'm leaving it off for now.

<comment><USER38> When I set up IPv6 I learned that you have to let some things through your firewall, like ICMP, because the IPv6 protocol relies on it. When I blocked everything like I did with ipv4, it eventually stopped working.

<comment><USER39> If you block everything with IPv4, things stop working too: you have to allow at least some ICMP (for "packet too big" path MTU discovery), otherwise you will have hard-to-diagnose issues.

<comment><USER26> Less an issue with IPv4 in a consumer sense because the device blocking the ICMP is also commonly doing NAT too.

</comment></comment></comment></comment><comment><USER40> I've been dreaming of a small-scale "cloud" hosting startup, and one of the biggest concerns is actually IPv4 availability.

I was hoping that this article would shed some light on the feasibility for a new company to grab a /20 or so. Does anyone around here have some insight?

</comment><comment><USER6> The most important slowdown on IPv6 adoption is vat replacement of small local services and servers in lieu of centralized ones provided by ISPs amd a few Fortune 500 companies.

</comment><comment><USER41> Couldn't read the article on the phone due to excessive amount of pop ups on the page.

<comment><USER42> This is off topic, but I make heavy use of "Reader Mode" in mobile Safari, as well as the embedded "Mercury Reader" in the "Reeder" app. These both do a great job of cutting out the junk on annoying sites, and I'd recommend investigating whether similar utilities exist for your platform of choice.

</comment></comment><comment><USER43> We should add another 4 bytes to IPv4 which is the internal IP, then AWS f.ex. would only have one public IP per region and the rest would be internal IPs.

IPv6 is too big and incompatible!

<comment><USER44> If I understand what you're suggesting, this is basically how NAT64 [0] works to provide backwards compatibility to IPv6 (tunneling IPv4 over IPv6). It uses the first 32 bytes of the IPv6 address to store the IPv4 value.

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

<comment><USER45> Pedantic comment here, but NAT64 doesn't involve any tunneling - it's pure address translation handled by an edge box, whereas tunneling involves encapsulation.

<comment><USER44> True, I should have been more precise.

Although there is technically no packet-level encapsulation, from a mathematical perspective you may consider the IPv4 bits "encapsulated" within the IPv6 bits.

</comment></comment></comment></comment><comment><USER46> I am actually not really sure if those people really believe that IPv6 will EVER replace IPv4, which in my opinion will never happen.

<comment><USER47> Can you elaborate?

IPv6's share of traffic has been increasing at about 0.5% per month for the past year. If IPv4 has 80% and IPv6 20% this month, next month it'll be 79.5 vs 20.5. So in your opinion... what? The change will stop? When? Why?

<comment><USER46> Sure, I am a RIPE member and am leasing out IPv4 (and IPv6) address space, ASN registrations, etc.

Everyone is able to sign up with RIPE and get a /22, thats around 1000 IP addresses. For years the RIRs want to tell us that IP addresses run out but I am still able, today, to pay some bucks and get IPv4 addresses without issues. The issue was that exactly those RIRs handed out IPv4 addresses years ago like there is no tomorrow and now they want us to switch to a broken protocol because they made a huge mistake. I won't deny that we are months (around 2 years) away from the RIPE actually running out of IPs.

Part of my job leasing out IPv4 space is also monitoring different sources, like Spamhaus, if my client or client of clients send spam with my IPs. What I can tell you is that with IPv4 already this is messy but if I think about IPv6 this is impossible to track or control and a complete nightmare. Also, for example if you operate a mail server that only runs IPv6 and send emails to gmail they will outright block you or just send it to the spam folder. Please note that this is only one of many examples.

Apart from that, if I look at the implementation of cloud providers like DO, Linode, OVH, Scaleway, etc. this is all a big joke. Also, IPv6 routes from some tier 1 upstream to others are down for days without anyone noticing it, because most people want IPv6, but no one is actually using it. It's like having a todo list and IPv6 is done but how it's been implemented doesn't matter at all.

You should also be careful with statistics, as a lot of scammers switched to IPv6 so I would not be surprised if a lot of the "IPv6 market share" is from scammers.

<comment><USER6> 1) Not everyone can sign up with RIPE. We have tried multiple times and been rejected despite being connected to backbone and having peering agreements and AS number.

2) Why track IP addresses instead of mandating DKIM? Gmail eats valid IPv6 sourced mail with good DKIM keys no problem.

3) Same can be said about IPv4 routes. Remember nobody really uses IP directly to route nowadays...</comment></comment></comment></comment>


Building a one-time file sharing personal service with AWS CDK and Python - <AUTHOR> https://doesntwork.me/post/building-a-one-time-file-sharing-personal-service/ <comment><AUTHOR> "once" is a personal cloud service that enables you to upload a local file of any size and get a link in return.

This link will allow one single download operation, deleting the file once it has been successfully transferred.

It has been designed to run on AWS using only serverless components.

It can be easily provisioned to a private AWS account and it has been designed to have a negligible footprint on the bill.</comment>


Steve Wozniak has a little bit of fun at Gray Powell's expense - <AUTHOR> http://www.edibleapple.com/steve-wozniak-has-a-little-bit-of-fun-at-gray-powells-expense/

<comment><USER2> I have a new theory about life that hasn't let me down yet. It's a variant on Occam's Razor that I call Zoschke's Razor:

The most boring explanation is usually the correct one.

Let me apply it here...

\--

Gray has talked to his supervisors, and his job is secure because he's the same talented engineer today as he was last week.

Gray's career options are unaffected by this because who wouldn't want to hire an iPhone engineer?

Gray was scared when his phone was lost, embarrassed when it was found, but already back to business as usual, and actually even wiser than before.

Gray isn't paying attention to any of the publicity, only to the laughs his personal friends are having at/with him.

Jobs wasn't even caught off guard by this, he's seen it all before.

Apple will not comment publicly on any of these events.

Apple will release the new iPhone at a typical keynote in a few months, and will sell tons of them.

No charges will be brought against Gizmodo.

\--

All the speculation, here and otherwise, wants this to be way more drama than these things ever are.

We aren't talking about losing the briefcase in Pulp Fiction. We're talking about boring, corporate America that we all know too well.

This is essentially the same as that one time your bug dropped an important table in the production database. Did you get shit canned? Did your company suffer insurmountable losses? Nope. Your company did damage control, you and your team fixed the problem, and everyone went back to business as usual the next day.

Real life is boring, even for the seemingly larger-than-life Apple, Steve Jobs and the iPhone.

<comment><USER3> Except for that _other_ iPhone prototype guy who lost an iPhone and either committed suicide after "intense interrogation", or was killed: [http://gizmodo.com/5319275/report-iphone-leak- interrogations...](http://gizmodo.com/5319275/report-iphone-leak- interrogations-drive-foxconn-employee-to-suicide) [http://www.fakesteve.net/2009/07/im-really-thinking- maybe-i-...](http://www.fakesteve.net/2009/07/im-really-thinking-maybe-i- shouldnt.html)

So, yeah, losing an iPhone prototype is really, like, boring.

<comment><USER4> I think the cultural differences are important here: not only the fact that the Foxconn employee had fewer options (whereas Gray Powell can be easily employed tomorrow at a competitor), but also that US companies are far less forgiving of errors by a vendor, especially a foreign vendor. I've heard people hurl abuse at Indian call center employees that they wouldn't dream of saying to a colleague in Palo Alto.

<comment><USER5> I don't think the guy was killed by Steve force-choking him, or whatever. If he was killed, it was Foxconn's doing. They would have been terrified of losing future business from Apple, so they might have wanted to set an unequivocal example for other employees who might have been thinking about mishandling Apple's IP.

Personally it seems a bit over the top to accuse Foxconn _or_ Apple of killing anyone.

<comment><USER4> I'm not sure where I accused anyone of killing anyone else... my point was that if someone screws up royally, and you yell at them and tell them they are a worthless piece of shit at a time when they need support and forgiveness, they are more likely to commit suicide.

</comment></comment></comment></comment></comment><comment><USER6> I think that it would be _stupid_ not to have him on stage as part of the introduction of the new iPhone. It's not like everybody doesn't know about it, and it would generate a lot of goodwill among developers and Apple employees.

It's like the story of the Air Force commander and the mechanic: One day, a military big-wig took off in an Air Force transport, which almost crashed, and was forced to land due to mechanical failure shortly after take-off. Upon inspection, it became obvious that the mechanic in charge of the plane's engines had screwed up and been sloppy.

Rather than berating him, the commander looked at him and said, "I trust that you won't screw up again. In fact, I trust you so much, that I'm putting you in charge of fixing it."

<comment><USER7> I've watched a lot of Steve Jobs presentations, and I can't recall any direct humor (aside from John Mayer and maybe Sam Altman rocking the popped collars).

It just doesn't seem that they'd do something like this. It's not vaudeville night, it's the Reality Distortion Field.

<comment><USER8> How about this one? <http://www.youtube.com/watch?v=TIClAanU7Os>

<comment><USER9> Or this one? <http://www.youtube.com/watch?v=Cl7xQ8i3fc0>

<comment><USER10> I actually LOLed when he did this: <http://www.youtube.com/watch?v=1p4j0CODBX8>

</comment></comment></comment></comment></comment><comment><USER11> That is a nixie tube watch on his left arm. <http://commons.wikimedia.org/wiki/File:Nixie_Wozniak.jpg>

<comment><USER12> What beautiful devices.

<comment><USER13> Yeah, nixie tubes are the perfect blend of Soviet-era impracticality and elegance. Now that I think of it, it's pretty impressive that there's circuitry to get up to 120V or whatever it is to drive those tubes right on his watch.

<comment><USER14> Soviet Era? Nixies were produced all over, it's just that the Soviet Union continued to produce them longer than the rest.

<comment><USER15> In this context, "Soviet-era excess" is a jab at the culture of the USA around the time of the cold war. Some of the time periods in US history are named for the war we were fighting around that time. Revolution era, Civil War era, WWI and WWII era, cold-war/Soviet era, Vietnam era.

</comment></comment></comment></comment></comment><comment><USER16> This seems to me rather insensitive -- more importantly, it's probably not worthy of Hacker News.

Edit: Given the downvotes, I'd be quite happy to hear any legitimate grounds for disagreement. I consider the widely disseminated mocking of someone who hasn't knowingly signed on as a public figure to be insensitive (independent of how funny or clever that mocking might be, and independent of whether being insensitive will have any effect on the target's career).

<comment><USER17> If it were anyone else, I would agree. But Steve Wozniak being who he is, I think it's a signal of 'all's well that ends well.'

<comment><USER18> I'm really picking up an undercurrent of "Steve Wozniak being who he is in relation to Apple, this joke probably means that Apple has gotten over it". I don't see the evidence to back that argument up.

<comment><USER14> I think the simple fact that Wozniak (who as far as I know is one of the nicest really rich people out there, by his deeds, not by his words) is willing to do this in a way suggests that it could have happened to anybody. Shit happens, prototypes get lost.

Stuff happens to prototypes quite frequently, especially car prototypes that suddenly and unexpectedly highlight both the existence of the prototype and the unfortunate person in possession of it, you can't have the one without the other.

Keep in mind that it wasn't Wozniak that released Grays name, effectively he's saying it could have been him, since he goes out drinking as well.

Maybe I'm giving Wozniak too much credit based on his past, but I can't imagine him doing this out of malice.

</comment></comment></comment></comment><comment><USER19> I would not be surprised if Gray Powell felt good when he saw this pic.

Hell...if it were me...I would be jumping for joy that Woz even knows I exist.

<comment><USER20> I would be thrilled and (assuming I hadn't collapsed under the stress) I'd shamelessly milk it by trying to get Woz out for a drink.

</comment></comment><comment><USER21> my god that's a neat switch panel

</comment><comment><USER22> The situation is funny, and it provides Gray Powell with an extraordinary opportunity for personal growth.

</comment><comment><USER18> Douche.

<comment><USER20> It's called having a sense of humor and it's not harming Gray at all.

<comment><USER18> Strong disagree.

<comment><USER20> Would you care to clarify why? Apple is either upset with Gray or it isn't. Woz wearing an irreverent shirt won't change it either way.

<comment><USER18> Wozniak having a "sense of humor" about someone else's misfortune doesn't help that person. Meanwhile, there's the guy's name, plastered on a rich famous guy's belly, being mocked. I stand by my original comment and believes it sums the situation up precisely.

<comment><USER20> There's clearly no malice intended, and I'd say "mocked" is far too strong a term. He's making fun of the situation, not Gray himself.

If you find this joke to be insensitive I'm having a hard time imagining what sort of humor you approve of, given practically every joke out there makes fun of someone/something.

<comment><USER18> There's nothing wrong with making fun of people. I do it incessantly. But I avoid doing it to people when they're down. And, if I ever achieve the sort of success Wozniak has, I hope I'll avoid doing it to people just starting to make their way in my field.

<comment><USER23> An iPhone baseband engineer is not "just starting to make [his] way."

<comment><USER18> He graduated in 2006. He's a kid. I'm sure he's better at his job now than I ever could be, but that's beside the point.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Can Silicon Valley be the center for robotics too? - <AUTHOR> http://www.getrobo.com/getrobo/2011/06/can-silicon-valley-be-the-center-for-robotics-too.html

<comment><AUTHOR> Where is all the hardware gone? Haven't seen a successful hardware company in a long time?</comment>


Detecting fake video needs to start with video authentication - <AUTHOR> https://hackernoon.com/detecting-fake-video-needs-to-start-with-video-authentication-224a988996ce <comment><USER2> Blockchain all the things!</comment>


Massive patent troll suit seeks to tax USB hubs at Wal-Mart, Amazon, Best Buy - <AUTHOR> http://arstechnica.com/tech-policy/2015/09/nest-ceo-and-ex-apple-star-are-inventors-in-patent-troll-suit-over-usb/ <comment><USER2> Kind of like that other massive patent troll taxing usage of FAT32 support?</comment>


Ask HN: Can you be a felon and still successful in tech? - <AUTHOR> Background: 20+ years ago, I did time for a white-collar crime. I completed parole. Restitution has long since been paid. I've gotten a pardon for my crimes. What most people don't understand is pardon != expungement.
Felonies follow you forever.
I'm curious to know if other folks in tech have been able to overcome the stigma of a criminal record.
What have your experiences been?
Have companies been forgiving?
Have you been lowballed on pay?
Please share as much you're comfortable with.
I'm very interested in others' experiences, and any advice anyone might have.
Thanks. <comment><USER2> See [https://news.ycombinator.com/item?id=16925069](https://news.ycombinator.com/item?id=16925069) for some previous discussion

</comment><comment><USER3> I would imagine it depends on the crime. Can you give us some basic details of what kind of classification it has or who the potential victims would be?

<comment><AUTHOR> It was credit card fraud.

<comment><USER3> Did you have to spend more than 2 years incarcerated?

<comment><AUTHOR> 3 years, but I'm not sure how that matters in this case.</comment></comment></comment></comment>