Htop 3.0 - <AUTHOR> https://github.com/htop-dev/htop/blob/master/ChangeLog <comment><USER2> The original maintainer (creator) did an excellent job for 10+ years. Here is his response: [https://github.com/hishamhm/htop/issues/992#issuecomment-683...](https://github.com/hishamhm/htop/issues/992#issuecomment-683286672)

<comment><USER3> Didn't realize he'd taken a break. Guess that allowed him to develope tl[1].

[1] - [https://github.com/teal-language/tl](https://github.com/teal- language/tl)

<comment><USER4> And userland[1], and finish a phd.

1\. [https://github.com/hishamhm/userland](https://github.com/hishamhm/userland)

</comment></comment></comment><comment><USER5> For those who like htop-style system monitoring tools, you should also keep these commands handy:

\- atop (great for finding out what's causing system-wide slowness when you're not sure whether it's CPU/disk/network/temperature/etc.)

\- iotop/iftop/sar (top equivalents for disk IO, network traffic, and sysstat counters)

\- glances/nmon/dstat/iptraf-ng (pretty monitoring CLI-GUI utils with more colors)

\- systemd-analyze blame (track down cause of slow boot times)

\- docker stats (htop equivalent for docker containers)

\- zpool iostat -v <poolname> 1 (iotop equivalent for ZFS pools)

<comment><USER5> I have a list of many more here too (including all the ones in the comments next to this one):

[https://docs.monadical.com/s/system-monitoring- tools](https://docs.monadical.com/s/system-monitoring-tools)

<comment><USER6> I'm not sure if it's intentional or what but most of the sections are duplicated 3 times with some overlap of the tools. Pretty hard to consume.

<comment><USER5> I was actively editing something, it should be fixed now.

</comment></comment></comment></comment><comment><USER7> I learned more about htop, and frankly even Linux I'm general, from this amazing in-depth explanation of what htop is displaying.

[https://peteris.rocks/blog/htop/](https://peteris.rocks/blog/htop/)

<comment><USER8> The ads are substantial, invasive (hard to follow the text) and for me were borderline NSFW.

Definitely a situation for reader mode.

<comment><USER9> On Android, I don't see any ads with Firefox, but I do with Chrome.

Edit: No, actually that is because I have uBlock Origin enabled on Firefox.

<comment><USER10> I looked with FF both with and without ublock, and I don't see any ads. I don't understand people who gripe about ads when the solutions are ubiquitous and friction-free these days.

<comment><USER9> Ads only showed on mobile. On desktop, with FF and uBlock disabled, I didn't see any. I had Tracking Protection enabled though.

</comment></comment></comment></comment></comment><comment><USER11> Reading this changelog I discovered that htop has a config file and a config menu. I started using it years ago as a drop-in replacement for top and I never went beyond the default but there are some very nifty things hidden in the option, such as being able to display process trees and custom thread names among many other things.

If like me you never bothered to look into it just hit F2 in a running htop and start browsing the options.

<comment><USER12> Upvoted, this took me years to do myself. However, the config file annoys me now because every time I do something like toggling tree view with T or changing sort between CPU and memory with P and U it pops up in my dotfile repo's list of modified files. I wish it only stored the stuff that's buried down in the setup menu like what meters are at the top.

<comment><USER11> Agreed, I feel like there should be a way to mark changes as temporary instead of commiting to file every time.

I found a workaround that seems to work though, once you're happy with your defaults you can do:

      chmod a-w ~/.config/htop/htoprc

This way you make the file read-only and prevent htop from changing it.

Also I had to add "vim_mode=1" directly in the rc file because I couldn't find the option in the menus.

Unfortunately it seems that git only stores the eXecutable bit of the files in the index, so you can't really commit a file as read-only, so you have to remember to do it one every one of your machines (or script it in a git hook I suppose).

<comment><USER13> I have an /etc/htoprc so I can maintain it with the same tool that maintains my other /etc config files. Unfortunately htop also copies this over to ~/.config/htop/htoprc on every startup even if I don't change any configs, and then it gets out of sync if I ever update /etc/htoprc.

So I have a /usr/local/bin/htop that does

        #!/bin/bash

        rm -rf ~/.config/htop
        /usr/bin/htop

</comment></comment></comment></comment><comment><USER14> htop has been on my list of applications I must install immediately on every system for at least 14 years now. I am always a bit shocked when I am reminded about how young of a project it is. I think the only younger tool that I always install is jq.

<comment><USER15> I love jq. Since I just learned this today, I'll mention that python comes with a JSON pretty-printing utility that can be used on the CLI:

      echo '{"some_json": "value"}' | python -m json.tool

<comment><USER16> Probably worth mentioning in this context that the pygments[1] module adds syntax coloring, as well,

      ... | python -m json.tool | python -m pygments -l json

or, path permitting,

      ... | python -m json.tool | pygmentize -l json

[1] [https://pygments.org](https://pygments.org)

<comment><USER16> Oh, and

      python -m http.server 12345

serves files in the current directory over HTTP on port 12345.

I'll stop now, but I love how Python module developers add these "hidden" command-line features.

P.S.: You can — and, at this point in history, probably should — _s /python/python3/_ in all these examples.

</comment></comment></comment></comment><comment><USER17> There are few things more satisfying programming than firing up htop on a high core count machine and watching cpu usage light up.

<comment><USER18> Or, even better, fix that performance problem and watch the cores quiet down... :)

</comment></comment><comment><USER19> I can't express how many times htop has made my life easy by giving me this nice interactive UX. There is a reason it's part of every docker image I create.

<comment><USER20> > There is a reason it's part of every docker image I create.

You really shouldn't put troubleshooting tools in your container images. You can join a "toolbox" container to a running container's namespace to get your tools there when you need them. That avoids unnecessarily large images, extra build time, and extra dependencies in your image.

<comment><USER21> sorry for being ignorant to learn myself, but how do I do this?

<comment><USER20> No need to apologize, this stuff isn't always easy to find. In docker, it's done by passing --pid=container:$TARGETCONTAINER to docker run

Here's the docs on it: [https://docs.docker.com/engine/reference/run/#pid- settings--...](https://docs.docker.com/engine/reference/run/#pid-settings--- pid)

</comment></comment></comment></comment><comment><USER22> htop is a really awesome tool, lots of hidden goodies in it. Thankful for the people that stepped up to maintain this in a kind way without being rude to the original maintainer and creator.

</comment><comment><USER23> Good to see that the original maintainer is on board with this and package maintainers for the distros are changing to the new release.

Today I noticed that Arch is already on this release. Albeit with this[0] patch applied.

[0]: [https://github.com/htop-dev/htop/issues/15](https://github.com/htop- dev/htop/issues/15)

</comment><comment> phoe-krk Related Reddit discussion: [https://www.reddit.com/r/linux/comments/iiowpn/htop_forked_t...](https://www.reddit.com/r/linux/comments/iiowpn/htop_forked_to_htopdev_and_version_300_released/)

<comment><USER24> Old-Reddit link: [https://old.reddit.com/r/linux/comments/iiowpn/htop_forked_t...](https://old.reddit.com/r/linux/comments/iiowpn/htop_forked_to_htopdev_and_version_300_released/)

<comment> phoe-krk Using the old Reddit site as the default: [https://www.reddit.com/r/help/comments/8f2n7d/how_do_i_perma...](https://www.reddit.com/r/help/comments/8f2n7d/how_do_i_permanently_go_back_to_old_reddit/)

<comment><USER25> I don't know if things have changed, but preferences settings weren't enough, reddit would randomly switch to the new theme. After that I changed all my bookmarks to old reddit.

<comment><USER26> [https://addons.mozilla.org/en- US/firefox/addon/redirector/](https://addons.mozilla.org/en- US/firefox/addon/redirector/)

<comment><USER27> > _Not available on Firefox for Android. You can use this add-on with Firefox > for Desktop. Learn more about add-ons for Android._

</comment></comment></comment></comment></comment></comment><comment><USER28> Is there a changelog? Because I can't find what's new in this release on the site or in the repository (without reading the git commit messages)

<comment><USER29> The posted link _is_ the change log?

[https://github.com/htop- dev/htop/blob/master/ChangeLog](https://github.com/htop- dev/htop/blob/master/ChangeLog)

Perhaps it originally linked to their site, which is:

[https://htop.dev/](https://htop.dev/)

</comment></comment><comment><USER30> How does it handle many CPUs? In 2.2 it has a line for each CPU, as that number grows it will take over the screen.

<comment><USER31> If you press "S", you will get a layout editor where you can change the CPUs from 2 per line to 4 per line. The exact options you're looking for are "CPUs (1&2/4): first half in 2 shorter columns" and "CPUs (3&4/4): second half in 2 shorter columns".

</comment></comment><comment><USER32> One of the first packages I install

</comment><comment><USER33> Man have I been hanging out for this. 2.x was sorely lacking in so many ways.

</comment><comment><USER34> does this work on mac now?

</comment><comment><USER35> now all that's missing is multisystem support

<comment><USER36> you mean it should show cpu/process statuses inside of virtual machines like Xenserver tools?

<comment><USER35> across multiple VMs, physical machines, whatever. Host/server mode, data collection, etc, etc

</comment></comment></comment><comment><USER37> htop is by far the most important linux utility</comment>


Is Chomsky's Theory of Language Wrong? Pinker Weighs in on Debate - <AUTHOR> https://blogs.scientificamerican.com/cross-check/is-chomskys-theory-of-language-wrong-pinker-weighs-in-on-debate/?wt.mc=SA_Twitter-Share <comment><AUTHOR> _It's all too easy to claim that children don't need any innate priors or assumptions or representations, only to sneak them back in when it comes to get serious and implement a model. That was the trick in a lot of the neural- network models of language that were popular in the 80s and 90s – when the rubber met the road, they always built in innate structure without calling attention to it._

From the outside, seems like there are still similarities wrt ML and current AI.

</comment><comment><USER2> Saying Chomsky is wrong is like saying Newton is wrong. Or Freud is wrong.

A good theory is valuable because it provides a way of making sense of the world.

There are some theories where it CAN actually be proven wrong (like the old theory that the earth is flat, etc.), but it's stupid to say something is "wrong" when it cannot be proven wrong by definition, nor is it meant to be right or wrong.

No one understands how human beings work. Unless if you're a God.

<comment><USER3> But the thing about Chomsky is that pretended to "know" how a certain function of the brain worked (and on a level much more complex than F = ma, and much more specific than anything offered by Freud), well ahead of any available evidence.</comment></comment>


Passenger (mod_rails for Apache) launches - <AUTHOR> http://weblog.rubyonrails.com/2008/4/11/passenger-mod_rails-for-apache-launches <comment><USER2> Note this is a dupe of an existing thread: <http://news.ycombinator.com/item?id=161163>

</comment><comment> meat-eater I think the rails guys are promoting this themselves because it solves the shared hosting criticism for them. Hope this really works :)</comment>


Kolonya: Turkey's unique hand-sanitizing method - <AUTHOR> http://www.bbc.com/travel/story/20200407-turkeys-unique-hand-sanitiser <comment><USER2> I live in Turkey and I can tell Kolonya's effectiveness mainly comes from the behavioral cues it sends me.

Traditionally, you would offer some as you welcome your guests to your home. It is also a great refresher, I always have a bottle in my house and not only you would use it for your hands but also you can put some on your face and neck. (Like an after shave, but less aromatic) So I have one bottle on my desk and unconsciously keep disinfecting myself.

I can't imagine doing that easily with a commercial sanitizer when somebody arrives in your home :)

<comment><USER3> > I can't imagine doing that easily with a commercial sanitizer when somebody > arrives in your home :)

Currently here in Ontario when you go to the liquor store (LCBO), they ask a series of questions and then spray your hands with commercial hand sanitizer before letting you in. It is... weird.

<comment><USER4> Everything about right now is weird.

The hand sanitizer on entry requirement is also in Ontario hospitals, although they just watch you use the dispenser yourself at the screening station in my experience.

</comment></comment></comment><comment><USER5> French guy living in the US now. I miss "Eau de Cologne" deeply. We've used it with fevers, headaches, indigestion... and my 95 y/o grandpa still uses it daily.

My understanding is the custom is probably more widespread than it being endemic to Turkey.

</comment><comment><USER6> It is not 80% alcohol, it is 80 proof which is 40%. Article is wrong about effectiveness.

<comment><USER7> Could you elaborate? According to Wikipedia it is 70%-90% alcohol.

"In a base of dilute ethanol (70–90%), eau de cologne contains a mixture of citrus oils"

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

<comment><USER6> Well I did a better research and yea, you are right. Traditionally, all bottles have something like "80 proof" on them. Apparently, it is not English proof but French proof which is same as ABV.</comment></comment></comment>


What Bitcoin Fans Are Missing - <AUTHOR> http://nayefcopty.com/blog/bitcoin-fans-missing/

<comment><USER2> Why would anybody care about fans? They are by definition not rational, I'll quote wikipedia "[a fan] is a person who is enthusiastically devoted to something, such as a band, a sports team or entertainer".

So if you write about bitcoin focus on something worthwhile.

I do have coins. I'm not a fan.

<comment><USER3> Replace fans with users. The point of this article doesn't change.

<comment><USER2> Sure, but the article still doesn't have a point.

</comment></comment></comment><comment><USER4> I think what is missing or lost in all of these Bitcoin articles is they are reaction to a fatally flawed central banking system. Of course, anyone who says things like that is immediately labelled a gold bug or belonging to the tin-foil hat club.</comment>


Mark Zuckerberg, the Warren Buffett of technology? - <AUTHOR> http://blogs.reuters.com/felix-salmon/2014/03/26/mark-zuckerberg-the-warren-buffett-of-technology

<comment><USER2> Woah!! Way too premature to compare Zuckerberg and his singular 10 year old successful company to Buffett, who's been above and beyond in successfully running dozens of businesses for 50+ years. For the sports comparison, it'd be like comparing Kevin Durant to Michael Jordan (or Neymar to Pele for the European readers). Potential is there - yes. Too early to make a good comparison - yes.

<comment><USER3> Warren Buffet runs an office with about 24 people, managing over $182B in revenue, $480B+ in assets, and filing 900+ page tax return annually. That is efficiency beyond anything I've seen anyone do, period.

Mark Z is certainly leveraging his position and wealth, but I wouldn't call him a Buffet yet.

<comment><USER4> Wouldn't they use some external accounting firm to do the taxes?

</comment></comment></comment><comment><AUTHOR> I don't necessarily think the comparison with Warren Bueffett is the most interesting thing. More that Facebook is going to become a tech conglomerate with many companies, rather than an engineering company like Google or Microsoft or Amazon.

I think that lines up with a lot of things about the situation; not least that I find it impossible to imagine "Facebook the website" dominant in, say, a decade in the way it is now.

</comment><comment><USER5> Facebook's behavior reminds me more of AOL scooping up Time Warner to survive the inevitable mainstream enlightenment and migration to the open web.

<comment><USER3> >>>"to survive the inevitable mainstream enlightenment"

Well said! It dawned on me yesterday that we are in the Middle Ages of technologies. Hear me out — what I mean by this is we are in a point in human civilization where a LOT of people use technology, the Internet, computers, computer software...

...and MOST of those people have No.Clue.What.It.Is.

This to me sounds like when the Church dominated people's lives, making everyone live by a book called "The Bible".....

....that only a few monks in their "lofty ivory towers" knew how to read, and everyone else to get it from them.

They (the clergy) were the ones who had the power/privilege to disseminate and translate "the word of God" for the rest, and most people had to just....believe them.

....until the Englightenment

</comment></comment><comment><USER6> Warren Buffett has always preached valuing stocks and investing for the longer term based on what the market capital SHOULD be worth.

If Zuckerberg bought this company because he wanted it to earn him money in the long run because it is currently undervalued at 2B, then yes, I guess he is.

Edit: This disappoints me because technology shouldn't be treated like a commodity.

</comment><comment><USER7> Betteridge.</comment>


Ask HN: Any advice on finding a copyeditor? - <AUTHOR>

I'm currently working on a one-man project. The company blog is the main marketing mechanism, as well as the closest thing to a technical writeup. A few posts in it's become clear that I'm spending way too much time on polishing the writing after I have the basic ideas down. Plus it's easy enough to offload, so I really should be delegating it.<p>I'm looking for contractors on google, and there are bajillions of them. They all sound the same. Does anyone have a recommendation or just what to look for? <comment><USER2> E-mailed you - I'm certainly interested. I wouldn't go off of a google search for "copyeditor" to find someone.

<comment><USER3> Max - we might need some help soon, too. Shoot me a note if you are interested.

<comment><USER2> Sure, always interested in chatting about an opportunity. You are strangely difficult to find contact info for though - let me know how to reach you or feel free to get in touch with me at maxbrown .at. umich.edu</comment></comment></comment>


Detecting Bots with JavaScript for Better A/B Test Results (2010) - <AUTHOR> https://www.kalzumeus.com/2010/06/07/detecting-bots-in-javascrip/ <comment><USER2> old article; is this method still effective?</comment>


Many Southwest Airlines flights grounded by computer issues - <AUTHOR> http://www.bloomberg.com/news/articles/2016-07-20/southwest-says-technology-failures-disrupt-flights-check-ins <comment><AUTHOR> Southwest Airlines experienced issues with "multiple technology systems" today. It left flights grounded and the website inoperable.

It's amazing that their business can grind to a halt because their IT systems failed. Does anyone have details on what exactly failed?

<comment><USER2> It sounds like it included a ticketing/reservation system (may have been more, but most of the problems reported except the main website -- well, unless some poorly-designed tight coupling was in place -- seem to be explainable by that.) If you can't validate printed tickets, generate boarding passes, know who has a ticket (or how many people have tickets) for a flight, etc., your business -- as an airline -- is kind of in a bad place.</comment></comment>


New Public APIs in Ice Cream Sandwich - <AUTHOR> http://android-developers.blogspot.com/2011/10/ics-and-non-public-apis.html

<comment><USER2> Yay, _finally_ , there is a supported API for the Calendar. It's always been such a strange omission and has really hurt the emergence of quality calendar apps and third party calendar integration. I've personally omitted otherwise handy features from apps ("Add this to my calendar") because the calendar APIs were missing and I _really_ didn't want to go the unsupported route.

</comment><comment><USER3> Correlation is not causation, but if the Android team knew Siri was a threat early on, they were smart to make the Text-to-speech APIs public.

</comment><comment><USER4> does that mean less of these in source?

/ hide /</comment>


Adobe AIR review - <AUTHOR> http://arstechnica.com/news.ars/post/20080303-first-look-breathe-in-the-air.html

<comment><USER2> From the AIR tools page (<http://www.adobe.com/products/air/tools/>)

"Download the software, SDKs, extensions, and frameworks you need to build, package, and deploy Adobe AIR applications in your preferred development environment."

Well, that would be Kubuntu.

So let's go ...

<http://get.adobe.com/air/>

"Download the latest version of Adobe AIR

A version of Adobe AIR is not available for this configuration."

At least actual Web apps are really multi-platform.

</comment><comment><USER3> I went to a conference recently about AIR and it looks quite interesting. Adobe understands that there is a divide between programmers who make web- based software and programmers who make desktop software and their idea is to bring web-programming techniques to the desktop. For example, you could download an AIR program that gives you a more fluid and responsive front-end to Amazon.com which pre-caches the parts of the catalogue most interesting to you. Could be interesting once the runtime is more widely installed.

<comment><USER3> Plus Adobe can't be faulted for the adoption of ECMAScript in AIR and Flex/Flash.</comment></comment>


Few Small Businesses Take Advantage of Mini-IPOs - <AUTHOR> http://www.wsj.com/articles/few-small-businesses-take-advantage-of-mini-ipos-1467834213 <comment><USER2> Glad to see more attention being paid to mini IPO's on the domestic market. I'm working with Hackers/Founders ([http://hf.cx](http://hf.cx)), a group that has begun helping organizations IPO on foreign exchanges.

It's a good option for founders who have built companies that haven't had big revenue and can't attract domestic investment. It gives them a liquidity event without searching for a suitor.

I'm lc (at) hf (dot) cx if anyone wants to better understand the process.

</comment><comment><USER3> "The new rule "very definitely is something that would work well for somebody who doesn't need it, a company with a really big brand name," said ralliBox founder David Kneusel. "But it is not something that is startup-oriented.""

Actually I think it is startup friendly. It allows a startup with a strong balance sheet to get funding from average people (non-accredited investors) without the burden of being fully public.

Think consumer facing or businesses specific to a locale, especially ones that have a fan base that may want to invest. Not the sexiest to VCs, and not wanting to deal with going fully Public, but still could have a mutually beneficial relationship with investors.

It just so happens that it's not that friendly to the traditional "tech startup" that we think of, one that takes the capital and guidance of a VC to launch into profitably.

That being said, there still is a fair deal of work that goes into compliance, audits, and finding investors for Reg A+. Gven how rigged a standard IPO seems between the investing bank's cut and Friends and Family rounds, I'd say Reg A+ is a welcomed addition to funding options.</comment>


Amazon wins '.amazon' domain name, aggravating South American region - <AUTHOR> https://theconversation.com/amazon-wins-amazon-domain-name-aggravating-south-american-region-and-undermining-digital-commons-118186 <comment><USER2> I continue to be against this and similar transactions as it is antithetical to the hierarchical design of DNS.

We are approaching a model akin to AOL keywords. Instead of a business directly controlling the namespace, we have a quasi-public institution that likely will continue to act at the behest of corporate interests.

For those who say the ship has sailed: I say this is only another chipping away at the democratic nature of the net. We must push back, or the beatings will continue.

<comment><USER3> When has DNS ever been democratic? Since day one e.g. the .GOV and .EDU TLDs have been used only for educational institutions in the US, whose portion of the word population is on the order of 5%.

There's surely a lot of sucky things about the new arrangement where big companies can buy TLDs, but it's much more democratic for the rest of the 95% of humanity than when the US had de-facto control of the system. Just look at how many new TLDs are e.g. owned by Chinese companies.

<comment><USER4> To be historical, the US had this system running inside the US for a very long time before it was deployed worldwide.

It's a quirk of a home grown system having outgrown its original purpose.

<comment><USER5> The requirement for .edu domains to be US-based was added in 2001.

<comment><USER2> I hadn't realized this. So, we can pack .edu full of for-profit degree mills, but myriad respectable research universities the world over are forbidden. Mind boggling.

</comment></comment></comment></comment></comment><comment><USER6> I'm Brazilian, and I'm not sure .amazon would be useful for us. Here, we don't call Amazon rainforest, well, amazon. We call "Amazônia" and in Spanish "Amazonia".

I don't see how Brazil or Peru would use .amazon for public interests, unless it's targeted for international purposes (read: tourism).

But let's be honest, the "protection and awareness" is needed here on South America, where they are destroying it.

<comment><USER7> A lot of country top levels aren't based on the local language's name, but the English one.

For example, Zhongguo, the country sometimes known as China, uses .cn instead of .zg.

And yeah, regarding tourism, most people traveling there from outside of Brazil will probably be searching for the English name. I can see why they'd prefer .amazon for that purpose, even if the uses are limited.

But then again, how many domains does Amazon (the company) really need?

<comment><USER8> Zhongguo also has .中国 and .中國 as top-level domains which would presumably be more intelligible to Chinese speakers.

<comment><USER7> That is true, but non-ascii TLDs are also relatively recent.

<comment><USER9> I didn't realize there even were non-ascii TLDs. I thought non-ascii domain name components were restricted to everything but the TLD.

<comment><USER10> Domain names are ascii; there's just an encoding for unicode: [https://en.wikipedia.org/wiki/Punycode](https://en.wikipedia.org/wiki/Punycode)

<comment><USER9> Right, but those weren't originally allowed for TLDs. It looks like internationalized ccTLDs were finally approved in 2009.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> >The company had previously proposed providing USD$5,000,000 worth of Amazon products and services as compensation to the states, but this offer was not included in the latest proposal.

Thats rather close to being comedic. 5m in Amazon gift cards.

<comment><USER12> "But this offer was not included in the latest proposal" is also brutal.

<comment><USER13> As a Brazilian, I'm pretty happy with this.

1\. Corrupt states haven't gained control over an important TLD.

2\. Corrupt states aren't getting gift cards that would be used for making the lives of corrupt officials better.

3\. Corrupt states trying to surf in Amazon.com's success lost.

<comment><USER14> Corrupt Corporate Executives won over Corrupt Governments. Should we celebrate this?

The corrupt governments can lose elections, but Bezos is a tyrant for life.

<comment><USER13> Is this a joke? If you disagree with Amazon (that is doing nothing corrupt in this matter) just stop using it and you're good.

Good luck getting rid of your corrupt government, if you live in the middle of the forest.

Bezos is no tyrant. He is where he is because he satisfied people who willingly made his company a lot of money.

You can vote to put Bezos out of business by stopping to use his services.

Good luck voting once every four years to get rid of corrupt government officials. Good luck believing elections aren't arranged (especially if you live in the middle of the jungle in a highly violent place).

Let's stop drinking the Kool-Aid... shall we?

<comment><USER14> > You can vote to put Bezos out of business by stopping to use his services.

He already has more money than almost anyone else, it's not like he needs my scraps.

As the stock classes shenanigans show, it's easier to overthrow a government that to remove a rogue CEO with preferred voting stocks.

</comment></comment></comment></comment></comment></comment><comment><AUTHOR> Full article title is _Amazon wins '.amazon' domain name, aggravating South American region and undermining digital commons_

I had to cut it down as it wouldn't fit otherwise (26 too long).

</comment><comment><USER15> Lots of angry people in here which I am a bit surprised at.

Have you all forgotten what it was like before all these new TLDs became available? You couldn't find a decent domain due to squatters. This affected everyone from the layman to startups.

What is the _entire region_ of the geographical Amazon going to do with a whole TLD? How is that going to possibly improve their situation? With this new TLD expansion, they have _so many more_ options to work with now: Amazon.whatever.

If they really cared about TLDs so much, why not get .forest? .amazonia?

<comment><USER16> >> What is the entire region of the geographical Amazon going to do with a whole TLD?

'Therefore we decide, that you don't need whole TLD. This company (whoa, with money!) will use it better'

<comment><USER17> How would you like it to be decided? I'm not going to say I love the slow ICANN process, but it was designed to allow all stakeholders to have their say while trying to prevent endless deadlock. This application has been in the works for 7 years. There have been many appeals of various kinds. The process is, as far as I can tell, extremely transparent.

At the core of the debate is whether Amazon is a brand or a location. It's clearly both. Then the question is how to structure the shared governance of the TLD.

According to the Amazon.com proposal email [1], ACTO is objecting to the current proposal. Several ACTO member states have submitted proposals individually, but there is no joint proposal (according to the email from Amazon.com). I couldn't find any ACTO joint proposal - they only seem to agree on blocking or delaying Amazon.com's proposal [2][3][4]. ICANN has a responsibility to make a decision at some point.

Call me crazy, but I have very low confidence in ACTO's ability to run the TLD given that seven years into this process, we don't have a joint ACTO proposal

[1] [https://www.icann.org/en/system/files/correspondence/huseman...](https://www.icann.org/en/system/files/correspondence/huseman- to-chalaby-17apr19-en.pdf)

[2] [https://www.icann.org/resources/board- material/resolutions-2...](https://www.icann.org/resources/board- material/resolutions-2019-05-15-en#1.c)

[3] [https://www.icann.org/en/system/files/correspondence/mendoza...](https://www.icann.org/en/system/files/correspondence/mendoza- to-chalaby-marby-05nov18-en.pdf)

[4] [https://www.icann.org/en/system/files/correspondence/mena- to...](https://www.icann.org/en/system/files/correspondence/mena-to- ismail-05mar19-en.pdf)

<comment><USER18> Tell me, what's the worst that could happen?

If you can't trust the TLD then just block *.amazon from your system services.

</comment></comment></comment></comment><comment><USER19> Did Amazon (the company) really need this? I don't get it. It feels like bullying for no real purpose.

<comment><USER20> If only to prevent someone from creating a site with the name _dontshopat.amazon_ , _fuck.amazon_ , _betterthan.amazon_ , etc.

It could be a defensive thing.

<comment><USER21> They would have been able to object to ICANN when the other application for .amazon was put in.

</comment></comment></comment><comment><USER22> This is awful, but I'm much more angry that they own the .book TLD.

<comment><USER23> Yeah! They're depriving it from Facebook!

<comment><USER22> Or, you know, the IFLA[1] or some organization which at least makes a passable pretense of have the best interests of people in mind.

[1] [https://en.wikipedia.org/wiki/International_Federation_of_Li...](https://en.wikipedia.org/wiki/International_Federation_of_Library_Associations_and_Institutions)

</comment></comment></comment><comment><USER24> Somewhat tangential, but how many internet users(except us old-timers) really make use of domain names in their use/workflow these days?

I wonder if there's some research on this. I'd assume that most of the internet population have their smartphones/app ecosystems for getting to Amazon or even looking up hypothetical Brazilian tourist info through Google.

I understand why both sides want the TLD but I'm not sure what significant usefulness it has other than property rights regarding domain names and the future of how these cases will be settled.

<comment><USER25> More clear to write " go to brazil.amazon" than "please Google 'Brazil Amazon official tourism board"

<comment><USER26> The Amazon and its tributaries flow through the countries of Peru, Bolivia, Venezuela, Colombia, Ecuador, and Brazil before emptying into the Atlantic Ocean 6, 437 kilometers (4,000 miles) from the Amazon's headwaters high in the Andes mountains of Peru.

So, no it's not the exclusive property of Brazil.

<comment><USER27> Having it as a tld makes it clear, since you could easily have brazil.amazon, bolivia.amazon, peru.amazon, etc. That's more hierarchically correct than amazon.com.br, amazon.bo, amazon.pe.

For most people though I don't think it makes a difference, as I don't think DNS hierarchy is well understood by most internet users.

<comment><USER28> I get what you are saying, however, Brazil(br) "hosts"-has it in- The Amazon; as do the other countries. I would expect a resolver to go to a top level namespace- i.e. a country that has people to run the infrastructure and not a river- and all those places scope out certain features contained with in them.

In my mind: .(root server) > (global feature/country/company) > (feature/host) e.g.

. > .br > amazon

makes more sense than

. > amazon > ccTLD.

I think a better example for your point would be `.ocean` as the logical way to divided it would be pacific.ocean, atlantic.ocean, etc. however no one entity "owns" the whole or said parts of the ocean and dolphins do not want to administer DNS servers. That said, naming things is hard.

</comment></comment></comment></comment></comment><comment><USER29> Alternate title: Corporation wins '.amazon' domain name, aggravating the Amazon.

</comment><comment><USER30> Amazon did the same thing to the '.book' top level domain name. Like they own the business vertical of books for the world now.

IMO it is critical to split the company and take away these public properties from them.

<comment><USER31> Who ever owns .wedding owns the business vertical for weddings? This just doesn't add up. There might be good reasons to split Amazon up, but this isn't one of them.

<comment><USER32> No, the argument is that Amazon is not the only organisation with a rightful interest in the ".book" top level domain and so should not have been granted exclusive control over it.

I guess the second argument is that the arrogance displayed in saying things like "no, there shouldn't be any commons on the internet" (which is what closing such a generic tld does) is evidence that they have grown beyond what is healthy for society.

</comment></comment></comment><comment><USER33> Amazon can rent the domain name from the governments of South America.

<comment><USER34> If that would be the end result of the domain being awarded to the governments then the domain should be awarded to Amazon.

</comment></comment><comment><USER35> The article states that the rules changed in 2011 that allowed Amazon to purchase the domain. Which they attempted to do in 2012. At what point in time would the Amazon region have been able to purchase it? Having a hard time looking up what the rules might have been, but I would think they could have gotten it issued before then, under old rules could they not have? Seems like there wasn't interest in the domain until someone else proposed it, or were they also working on it too?

</comment><comment><USER36> Shouldn't that domain name go to Greece?

<comment><USER37> Nah.

But that reminds me of the SMBC comic from 2012 (when SOPA was being discussed), about how India invented the number zero and so by ad absurdum of 'IP belongs to content creators', "owns" half of all digital data. [https://www.smbc-comics.com/comic/2012-08-29](https://www.smbc- comics.com/comic/2012-08-29)

<comment><USER38> Maybe zero the figure was invented in India but the notion of zero was known before that without putting a name for it.

</comment></comment></comment><comment><USER39> The first computer graphics program I used in the early 80s on Cromemco hardware running their "ix" flavor os was called Amazon.

</comment><comment><USER40> I kinda wish the Amazon region companies would band together to block the domain nationally, but I guess that won't happen.

</comment><comment><USER41> Is there a chance of getting the following chances now? www.shopping.amazon, www.webservices.amazon etc.?

<comment> marvin-83 Probably aws.amazon rather than webservices. They've invested a lot of time branding the acronym AWS, I don't see them rolling that back now.

As for whether they make those the new generic addresses... I'm not sure. I think they are more likely to use the new tld for internal dns and keep their existing public names.

</comment></comment><comment><USER42> If they can get .amazon, it stands to reason we all deserve our own TLD. I'm actually for this.

<comment><USER43> It's called a gTLD and anyone can apply for one.

<comment><USER42> But only the rich can pull strings and get their own? Sort of like the "public comment" part of city planning: there to distract from a committee stacked with real estate developers.

<comment><USER44> It's not a question of pulling strings, it's a question of being able and willing to maintain a complex piece of software and hardware after you get the terminaison.

<comment><USER42> Sounds like capital to me.

<comment><USER45> Do you suggest someone else should pay for you to maintain the hardware for your tld? If enough people are interested in your tld, you already will get the capital to maintain it, if not, what's the point of having it?

</comment></comment></comment></comment></comment></comment><comment><USER26> The company representing that which is destroying the river-basins ecosystem. (unfettered capitalism with-regards-to what are effectively planetary lungs.)

200,000 acres of Amazonian rainforest are burned every day circa 2019, but hey: next day delivery, frappucinos, netflix, and my comfort zone...

<comment><USER46> > The company representing that which is destroying the river-basins > ecosystem.

If any organization represents the destruction of Amazon's river basin ecosystem, those organizations are exclusively the state institutions of the 9 countries that cover that area. They are the sole responsible entities that decide which activities are and are not allowed, and how to enforce their rules to punish those who break them.

<comment><USER47> Technically true, though the history of corporations like United Fruit and East India Company suggest those governments do not operate in a vacuum.

</comment></comment></comment><comment><USER48> [https://icannwiki.org/ICANN_Board](https://icannwiki.org/ICANN_Board)

Note that they have one Mexican, one El Salvadorean, but no South Americans. Also note that the only African is a Tunisian ex-Google employee. And the only east or south-east Asian appears to be Japanese. Why are we letting this group of business people make decisions about global internet? Why not, for example, scientists from the different countries?

<comment><USER46> > Why are we letting this group of business people make decisions about global > internet?

Whether you like it or not, those "global businesses" do have an internet presence that's unquestionably more extensive than some countries. It would not be fair if organizations or countries that clearly are not interested in having a say on any issue regarding the global internet would have more of a say in these issues than those whose livelihood is the internet.

<comment><USER47> Hopefully the Internet is more than just about jobs and business.

FWIW, it's said that .int (international) never gained momentum for these globe-spanning organisations.

<comment><USER49> What's wrong with .com/.net/.org?

<comment><USER43> IIRC Those are governed by the US; they aren't truly international

<comment><USER49> Valid point, thank you. I wonder who would govern a truly international TLD then. UN? New body?

</comment></comment></comment></comment></comment></comment><comment><USER50> This is pretty astonishing.

Clearly, _.amazon_ was intended to refer to the geographical region, given that no other corporations have their name as a top-level domain.

<comment><USER51> If you have a million dollars a year (rough estimate) burning a hole in your pocket, you too can own a TLD under a liberalized ICANN policy that has existed for many years now. Amazon was only different because there was a conflict about who should own it.

Some of the new TLDs created are actually useful, Russia got a TLD for the IDN value that native Russians would recognise more easily than .ru -- .рф and it's been pretty successful for locals.

Some of them were land grab attempts, people see .com makes a lot of money and imagine that some of that could be theirs, but alas mostly they're wrong. .horse, .aero, .london and so on. Their only value to the wider community is that they allow jokes like [http://my.lovely.horse/](http://my.lovely.horse/) or [http://ibless.therains.downin.africa/](http://ibless.therains.downin.africa/)

A few of them are straight up vanity, but whereas your vanity domain might be costing you $25 pa from an expensive vendor with a crappy web site thrown in, operators of TLDs are spending many orders of magnitude more to obey rules

.kerrylogistics .kerryproperties and .kerryhotels all exist for example, and obviously those are completely useless, anybody looking for those outfits will either Google or knows their much shorter "real" domain name - but I guess probably they get a bulk deal on some of the technology needed, maybe the whole lot costs them only $2M per year to maintain.

<comment><USER52> IDN ccTLD (country code) is not the same as new gTLD, although new gTLD may also be IDN. IDN ccTLD are usually granted to the existing operator of the ccTLD and is a completely different process than sponsored TLD (usually involving government to support the delegation). ccTLD operator may choose to make it available for public use or not once it's granted e.g. Japan's JPRS has both .jp and .日本 (but .日本 is not available to public)</comment></comment></comment>


Analytics for Git - <AUTHOR> https://gitential.com/ <comment><USER2> Measure and visualize the productivity and efficiency of your software development based on your Git activity.</comment>


You Might Have Gotten An Email From Twitter About Your Account Being Compromised - <AUTHOR> http://techcrunch.com/2012/11/08/you-might-have-gotten-an-email-from-twitter-about-your-account-being-compromised/

<comment><USER2> Unless Twitter has made the ludicrous mistake of not hashing passwords, a bulk compromise probably means one or more (hosting providers, some weird API middleware) third parties were compromised and leaked access tokens. A password changes invalidates all the old ones for an account.

Also, if you look it's mostly journalists, etc. complaining rather than normal people, so it seems more concentrated among those more likely to use third party services.</comment>


GNU Guix and GuixSD 0.14.0 released - Ruud-v-A https://www.gnu.org/software/guix/blog/2017/gnu-guix-and-guixsd-0.14.0-released/ <comment><AUTHOR> I really wish Guix and NixOS had more usage in the industry.

I am not sure if these are the projects that are going to drive the innovation, if they are only showing the way for the 2nd-generation functional package managers, or if this will just remain a niche forever.

<comment><USER2> There are still, unfortunately, some rough edges with Nix.

Nix does not use versions for packages, instead relying on channels and pinning, which can be confusing at best.

There is a manual, but not a good wiki. While you can learn to _read_ the syntax, there isn't any good introduction to _write_ it. Nix derivations are _very_ unique, and difficult to approach without examples and guidance.

<comment><USER3> Out of curiosity, were you already knowledgeable about lisp/scheme/fp before using nix ?

<comment><USER2> Yes.

It's not the functional nature of Nix that is hard to deal with. Nix's functional nature is actually its saving grace.

My difficulty with Nix is that there are important subjects that aren't taught.

I _figured out_ how to create a usable `default.nix` and `shell.nix`, but that takes a lot of effort, and there really aren't many resources to reference.

Nix expressions use a _lot_ of predefined functions, and I have no idea where their documentation exists, if it does at all.

Even if there _is_ some explanation for all of the functions that I need to use, there isn't documentation for _how to fit them together_.

Instead of being in dependency hell on the outset (like most package managers), I find myself in dependency hell _when I want to do something different_. The Nix community has an irrational hatred of version numbers, meaning you have to scour the web for a derivation that gets the right _version_ of a dependency, and "pin" it, or hope that the channel you are using has the correct version. Even when channels _do_ have the version you want, sometimes that channel provides _multiple_ package versions, some with the version _in the name_.

Names are a mess. Since every package must exist in the same namespace, but its derivation is helpfully sorted into a directory tree, the same packages will often have different names. There isn't a good way to search or browse for them either. I end up digging through github quite often, which is a lot more often than the never that I should find myself doing so.

Nix is wonderful. NixOS is by far my favorite OS, and that is why I deal with all of the rough edges, but they certainly _are_ rough.

<comment><USER3> I see, lots of work to be done. My question was mostly about the derivation idea (much like a lambda) that would be confusing for people not used to this style.

Also, this popped on twitter [https://github.com/Gabriel439/slides/blob/master/nix- interna...](https://github.com/Gabriel439/slides/blob/master/nix- internals/slides.md)

<comment><USER2> The derivation idea isn't too difficult to understand, because it is rather elegant.

The problem with derivations is that they are like a library without a reference

The functions that are to be used in derivations aren't documented clearly, at all, or in an obvious place.

</comment></comment></comment></comment></comment></comment><comment><USER4> I guess I should use this time to shamelessly plug one of my side projects, farch: [https://github.com/shawndellysse/farch](https://github.com/shawndellysse/farch)

It's an attempt to bring the functional system paradigm to Arch linux, giving you the "my system is a function of my configuration" approach combined with not having to relearn how to administer a linux system like GuixSD and NixOS require.

</comment><comment><USER5> > Hackable. It provides Guile Scheme APIs, including high-level embedded > domain-specific languages (EDSLs) to define packages and whole-system > configurations.

What is the benefit of directly using Scheme for the package declarations over using NixOS's DSL? Specifically, what technical features does Scheme make possible which are not possible in NixOS?

<comment><USER6> I'm a complete beginner but, for example, comparing Nix's Firefox and Guix's IceCat you can see that with Nix you have to fallback to shell scripting for some tasks while with Guile you can perform those operations with Scheme.

Nix's Firefox: [https://github.com/NixOS/nixpkgs/blob/master/pkgs/applicatio...](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/networking/browsers/firefox- bin/default.nix)

Guix IceCat: [https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages...](https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/gnuzilla.scm?id=v0.14.0-95-g5a2f019c7#n402)

<comment><USER7> Are those really the same package definitions? The guix one contains build instructions and the nix one is for binary packages.

<comment><USER6> No they aren't. I was pointing to the fact that in Guile you don't need shell scripting where you can use functions like 'mkdir', 'symlink', 'copy-file', 'file-system-tree', etc..., so you can use scheme with all the support Emacs, Geiser and guix.el give you.

</comment></comment></comment></comment><comment><USER8> Is this Linux?

The site should be more direct about whether or not it is Linux.

I don't have time to wade through reams of words to work out what something is. Just tell me.

It's not clear at all why this matters or is better than other operating systems. If this is a competitor to Linux then the first thing they need to address is "why should you care?", if it is Linux, then the first thing it should adress is "Why you should use this over other distros"

<comment><USER9> They ought to have said Gnu/Linux, as per their own propaganda!

I'm guessing if the word "Hurd" doesn't appear anywhere on the page, it's still Linux.

<comment><USER10> Linux is just the kernel. GNU as a name for the system is okay, while Linux is arguably not. GNU/Linux is just a compromise for those who insist on naming Linux. Also, from the projects website, we have

"GuixSD is a distribution of the GNU operating system centered on the GNU Guix package manager. It uses the Linux-libre kernel, and support for the Hurd is being worked on."

[https://www.gnu.org/software/guix/about/](https://www.gnu.org/software/guix/about/)</comment></comment></comment>


Show HN: Buttr – Creative, customizable site templates and assets - <AUTHOR> https://buttr.xyz <comment><USER2> Navigating the site on desktop is really hard. There should really be a horizontal scrollbar because I accidentally keep clicking when I'm trying to scroll. Or just don't use horizontal scrolling on desktop, which would be my preference...

Besides the scrolling issue, it looks really good.

<comment><AUTHOR> Hey,

Thanks for the feedback. I had that issue myself a couple of times and will look into fixing it.

Glad you like the design.</comment></comment>


Convicted German murderer won right to have crime scrubbed from search results - <AUTHOR> https://www.businessinsider.com/murderer-right-to-be-forgotten-internet-search-german-court-2019-11 <comment><USER2> The article doesn't mention his name, nor does it link to any articles on the original incident. Is this related to the ruling?</comment>


John Carmack: Script Interpreters Considered Harmful - <AUTHOR> http://www.codingthewheel.com/game-dev/john-carmack-script-interpreters-considered-harmful <comment><USER2> _scripting languages weren't really designed for large-scale development efforts involving millions of lines of code_

Neither was C.

There are languages developed afterwards with large-scale development in mind, but you have to ask, what did they add? True type safety? Nope. True encapsulation? Nope. Automatic resource management? Nope. C++ is C with several times more ways to write horrifyingly unmaintainable code. All big C++ shops have a very long lists of constructs that must never be used and very rigorous code reviews to ensure that you don't use any of those features by accident.

At this point, we see that C++ has one advantage over C, and that's namespaces. Helpful, but not helpful enough for "large-scale software development". The major innovation that C++ brought was waking people up to the reality that a maintainable codebase must be curated with extensive automatic testing and manual code reviews. Anything else leads to epic failure.

But wait, that's easy to fix! Let's invent a new programming language! This time we'll call it Java. It will be like C++ but with all the ways to write bad code removed. No operator overloading! No multiple inheritance.

And it's true that Java helped in a number of ways. But it didn't solve the real problems. There is still no type safety; null is an instance of every class in Java, but you can't call any methods on it, for example. So instead of a segfault, you get a NullPointerException, but all that means is that the source of the error is easier to determine. But you still have to write a lot of tests to make sure that your code handles nulls properly. (This is compounded by laziness in design like writing "loggedInUser = null" instead of writing a subclass of User that indicates it's not logged in.)

Multiple inheritance in C++ was a mess, but Java's solution isn't much better. What's the conceptual difference between abstract classes and interfaces? Abstract classes are non-composable class-parts that contain API, implementation, and state. Interfaces are composable class-parts that contain API. Why are these two separate concepts? Why not have a generic "traits" feature? (The answer is because Java is mostly a copy of C++, and C++ focuses on irrelevant OO features like 4 different levels of member visibility rather than semantic annotations like "if you compose this method into another class, it should run after the method from the class it's being composed into". Of course, when you have these annotations, multiple-inheritance or multiple- trait-application works perfectly -- see CLOS or Moose. But all C++ had was public/protected/private/friend, and so that's all Java has.)

This is getting ramble-y so I'll get to the point. No modern programming language helps you write huge codebases. If you want to be able to maintain millions of lines of code, you are going to need very rigorous standards and millions of lines of automatic tests. It's the only way we know of. All more modern languages did was push us from "we're leaking memory because we forgot to call free()" to "we're leaking memory because it's pretty convenient to keep all these huge objects around".

They certainly haven't helped us write more maintainable large projects. If anything, a dynamic scripting language embedded in your game means that you'll have fewer lines of code and clearer separation between components. But it's not such a win that you won't have to review code or write tests anymore.

<comment><USER3> "No modern programming language helps you write huge codebases."

Have you used Go? This is one of our design goals. Go is a really simple language. Its features are easy to understand and predictable in use. Go code is also very readable in that you don't need a lot of context to understand a piece of code. There aren't any colossal Go codebases yet, but so far things are looking promising.

<comment><USER2> I haven't used Go for anything huge, but it does feel like good progress for the future. (In a comment a few pages down in this thread, I say as much.)

In the end though, bad code is mostly due to bad programming and bad process. Go is obscure enough that the bad programmers haven't heard about it yet. Start offering high-paying Go jobs to anyone with a pulse and you'll start seeing why people hate C++ and Java so much. It's not that the language sucks, it's that the programmers using it do.

It always surprised me to hear that Google "got by" on C++ and Java but I lightened up a bit when I was reading some of Android. Normally you open up Java and are immediately stunned by the smell it's emitting, but when I started reading the Android code, this didn't happen. Classes did one thing and delegated to other classes when they needed something done. The methods were small and made sense. Line of code inside methods were in "paragraphs". There were no comments like "// hack around bug in SomeOtherClassIWroteButAmTooLazyToFix". It was clear that it was the work of someone who knew what she was doing.

I guess I knew it was possible, but was never convinced of it by any concrete code. The standard library, for example, is horrifyingly bad.

Ultimately languages can lead you in the right direction or the wrong direction, but which path you take depends on the programmer. Google requires code reviews for nearly every commit, and they get to hire the top 0.01% of programmers. Imagine what the rest of the world is like, without code reviews, testing, or good programmers.

Go isn't going to fix that little problem :)

<comment><USER3> "Google requires code reviews for nearly every commit, and they get to hire the top 0.01% of programmers. Imagine what the rest of the world is like, without code reviews, testing, or good programmers."

Yet even with our quality of code we are still struggling with our massive code bases. C++ build times alone are reason to find an alternative. We hope that Go will work at scale while having many of the productivity advantages of scripting languages.

</comment></comment></comment></comment><comment><USER4> Gaming "toy user interfaces" like the one pictured lower in the article generally take so much code because, very often, art directed animation which drives those UIs is often actually assembled entirely in script. Comparing it to an early Unix kernel I guess paints a nice visual image, but is probably not a fair comparison.

In game, in-world "toy UI" like that is intended to look like the sort of sci- fi UI you see in movies, but also be interactive. The stuff in movies is made by a motion graphics designer with a copy of Adobe After Effects. Replicating that movie like look, with all the animations and visual effects you see on the big screen, but ALSO making it work as a fully user-aware, state-aware computer interface, isn't cheap, either on an artist man-hours standpoint, or from a lines of code standpoint.

I imagine its expense could be reduced if a lot of the stuff up on screen was boiled down to some kind of binary data - a lot of work is put into optimizing performance of engine-native animation files and effects which are played on the characters and environments of a video game world - but usually UI (including fictional in world "toy UI") isn't considered part of the main tool chain or process, so it ends up either being highly special cased by hand, or very highly interpreted (sometimes running interpreted code through middleware which reinterprets the code again) requiring quite a lot of bloat to look and behave in a way that is presentable and on par with the rest of the game. (Usually at this point in the games industry, people build their UIs in flash, and then run them through middleware like Scaleform, which reinterprets their flash based bitmap and vector artwork as polygonal art, and reinterprets their action script into an engine-savvy language... not efficient for the game, but efficient for a former marketing guy who now wants to do game graphic and UI design, I guess.)

(For what its worth, I agree with Carmack's assessment. Making highly authorable and also highly efficient at runtime, "AAA visual quality" game UI is just a hard problem to solve, and it's a problem which few studios deem worth solving because after so many years of the current system, the benefits of a change have almost become an intangible.)

<comment><USER5> UI is a solved-problem from my point of view with middleware like Scaleform.

<comment><USER6> You would also have to find flash-experienced people willing to work the way console game developers work. They actually might feel a little bit under appreciated for the stuff they do, and not feel very rewarding at work, especially when they have to constraint themselves with memory, cpu, gpu, i/o issues that might not be visible on the desktop.

Also at some point certain integration between the engine and scaleform is needed, and you would have to lose a programmer there supporting it.

We tried it, and the consensus was it's not of use to us. I wasn't the one evaluating it, so I can't tell for sure. But resource budgeting (memory, cpu, video memory (ps3)) is very debated thing in the console game development, and everyone wants more budget for his need (audio, animation, builders, ui, etc.)

We also gave a try of an early flash middleware for Dreamcast for NHL2K2 (2000) - there were only 16mb of RAM, and flash was taking significant amount (no scaleform relation). We actually got some pretty good menus, and for a video sports game you need very detailed UI for rosters, trades, etc. We also got people to do it back then.

But then the problem was during gameplay. While in the main menu we had the memory to pull it off with flash, during gameplay all memory was for vertex buffers, textures, game data, sound, animations, etc. We were thinking of swapping out game data (and reloading later) when the PAUSE button is hit (and the menu appears), so flash would have enough memory - but it turned out to have some bad latency - few to couple of seconds. Ideally PAUSE ON/OFF should take no time (otherwise it's annoying).

Another thing was that we still had to render the rest of the HUD (scores, replays, etc.) not using flash - so we had to support TWO technologies for UI.

Hence we turned our backs on it. It was nice, but not for our game.

<comment><USER5> How does Scaleform compare to a junior programmer writing UI C++?

Rolling your own UI has always been time consuming, and a breeding ground for bugs.

Any middleware recommendation?

<comment><USER6> That's a tough question, to be answered in one post. I'm senior software engineer, and there are probably hundredth of thousands junior programmers that are better than me. I would go with the junior programmer - especially if he came on internship position, if nothing else he can integrate scaleform (you still need programmer there).

</comment></comment></comment></comment></comment><comment><USER7> _scripting languages weren't really designed for large-scale development efforts involving millions of lines of code. They typically lack the code- reuse abstractions and development toolsets_

I find that dynamic languages with first class functions provide much better abstractions and opportunities for code-reuse than languages like C and C++.

<comment><USER3> That paragraph jumped out at me, too.

I agree with the point, but not its reasoning. The reason why scripting (read: dynamic) languages fall apart at scale is largely because they're _too_ flexible. Abstractions that are convenient in the small can create unmanageable complexity in the large (unless you are extremely disciplined).

</comment></comment><comment><USER8> Despite the author's characterization, Carmack's quote doesn't say that script interpreters are harmful or evil, but "bad" in the sense that they're not performant enough for Rage.

Lua was certainly fine for, say, Angry Birds, and has clearly been a huge win for Rovio in rapidly porting the game.

<comment><USER9> That's interesting. Do you have any links on how Angry Birds uses Lua?

<comment><USER6> You can actually see the lua usage by peeking into the .ipa iPhone packages (they are just .zip files). Maybe android and other systems are not much different.

I've seen at least the lua levels described there.

</comment></comment></comment><comment><USER10> The real question is: why do people keep writing interpreters, when writing compilers is not hard.

It's not "interpreters vs C++" as Carmack supposedly said, but crappy slow badly implemented user languages vs efficiently implemented user languages vs a guru writing C++. The middle option is the one to go for.

Especially with LLVM which makes compiling your code very easy, and it's got a BSD-ish license, so no problem linking it with your awesome proprietary game.

<comment><USER11> With an interpreter you sort of get an automatic sandbox because your badly implemented user language is handled by a buch of switch-case or if-else statements. Not literally, but the 'user language' is entirely limited within the interpreter and doesn't mingle with the real game code unless you code up that specific interface.

Enter compiled code. Now we have the opportunity to run unknown binary code right within the game's address space. Bad News in many ways. To get the Happy Medium (compile code within the game engine, load and run the resulting executable safely) requires implementing operating system concepts. It's a Big Job.

This leads my thoughts on a slight tangent: why isn't there a Super Awesome Open Source Game Engine that's the heart of all 3D games? SAOSGE could even provide the extensibility framework (compiling, loading), ready for you to expose parts of your games to player programmers.

<comment><USER12> If you control the compiler and the language is memory-safe, you get the same guarantees with JIT-compilation that you do with interpretation. All execution runs within the memory boundaries specifically allocated by the runtime system, and any other interaction with the machine must go through the runtime libraries, where you can perform any checks you want.

<comment><USER13> I don't see this kind of sandboxing as likely to help. Whether your scripting language is compiled or interpreted, if _any_ accessible portion of your system is written in a memory-unsafe language like C, that is where crackers will find the most damaging exploits. E.g., [http://stackoverflow.com/questions/381171/help-me- understand...](http://stackoverflow.com/questions/381171/help-me-understand- this-javascript-exploit) which attacks a native XML toolset (some "data binding" IE feature I don't understand) without breaking any javascript rules.

</comment></comment></comment></comment><comment><USER14> I'm surprised no one picked up on this gem, yet.

>". . . but you know one of the big lessons of a big project is you don't want people that aren't really programmers programming, you'll suffer for it!"

Edit: Fixed formatting of quote.

<comment><USER15> A lot of other companies' games integrate scripting engines to ease level/mod design, because they don't want to ship a compiler toolchain along with the game. Carmack's games, on the other hand, are just eventually open-sourced, and modded "natively."

</comment></comment><comment><USER16> Why should it be surprising that performance still is of primary concern to Carmack? If you're pushing the state of the art forward then I think that will always be the case.

</comment><comment><USER17> As far back as Quake 1 (in fact, before Quake needed version numbers), there was <https://secure.wikimedia.org/wikipedia/en/wiki/QuakeC> which was an interpreted language, although later on it got a compiler to turn it into a native dll.

<comment><USER18> I am clueless about this stuff but:

It was interpreted but it was compiled. QuakeC was not a scripting language as one would say. You had/have to compile it. The engine has a VM to handle it.

<comment><USER17> yeah, you're right. I grabbed the first line of the WP article and missed the part about bytecode and progs.dat.

Quite embarrassing, since quakeC was one of the first languages I played around with, and I don't remember the compile step. Then again, I was working from tutorials so it's possible there was just a 'compile & run' batch file or something.

</comment></comment></comment><comment><USER19> It's refreshing to see such a great communicator. He spoke, off-the-cuff, for over an hour, at a level that seemed pitched to appeal widely.

The best thing, though, was the obvious love and enthusiasm he has for his team and their software.

</comment><comment><USER20> Google's cached version (site was down for me): [http://webcache.googleusercontent.com/search?q=cache:veFy_mx...](http://webcache.googleusercontent.com/search?q=cache:veFy_mxlZeIJ:www.codingthewheel.com/game- dev/john-carmack-script-interpreters-considered- harmful+http://www.codingthewheel.com/game-dev/john-carmack-script- interpreters-considered- harmful&cd=1&hl=en&ct=clnk&gl=us&client=firefox-a&source=www.google.com)

</comment><comment><USER21> Makes me wondering with all those WoW-Addons which are Lua, it certainly can't be _that_ bad..

<comment><USER22> Sure it can. When I play WoW years ago there were addons that could take up over a gig of ram. The mods that were item database related could often obliterate performance. I had a beefy PC at the time and there were still a few popular mods I couldn't run.

The perceived advantage of something like Lua is that it's easy to write, allows for fast iteration, and designers/artists can use it. The issue is that designers/artists really shouldn't be using it. To write fast code it requires a programmer and if you have a programmer why not just do it in C++ where it will be several times faster?

A common game development pattern is to write the bulk of gameplay code in a scripting language and at the 11th hour in a desperate panic start moving as much of it as possible to C++ until you fit in 360/PS3 memory and are fast enough.

<comment><USER23>
      To write fast code it requires a programmer and if you have
      a programmer why not just do it in C++ where it will be
      several times faster?

Why should I as a programmer not profit from extremely fast design/implement/test/fix/repeat iterations? I'm not saying scripting/high level languages like Lua, Python or Ruby should always be preferred. But it's equally wrong to assert that C-oid languages are _always_ the superior choice. It's much more a question of knowing when to use what and why, which in my opinion makes an important part of being a good programmer.

<comment><USER24> I've never seen the effort involved in making a nice quick-feedback REPL-style affair pay off. Perhaps for certain types of game it would be worth it, and perhaps amortized over a long enough period the result would become value for money. My experience has been that making a script system work that way, and work reliably, and provide a nice interface, just takes up more time than you end up saving.

Anyway, all the programmers I've known would want good debugging facilities as well, like the ones you get in Visual Studio/ProDG/Code Warrior/Xcode/gdb/etc. - oops, only kidding about gdb! This thing really needs a GUI. This all just expands the time-suck further.

That's not to say it can't be made to work, of course! People can do anything, if they set their mind to it hard enough, and if they wait for long enough, maybe it will even become value for money.

<comment><USER15> Where it really does work is in explicitly actor-modeled games, like MMOs with thousands of NPCs. You don't want to have to compile a new shopkeeper and dlopen() him on the client; you just want to stream his source and eval() it, then toss it away.

<comment><USER24> My bet would be that most experienced programmers actually would prefer to compile a new NPC, and then load it in as a shared library. This arrangement stands at least some chance of working neatly with whatever debugger you are using, and should provide pretty decent iteration times.

I would certainly win this bet if it involved all the experienced programmers of my acquaintance.

<comment><USER15> Perhaps I wasn't specific enough with "MMOs." I'm talking about the kinds of games where players can create their own maps, with their own scripted NPCs, and push them onto the server, where other players will then pull them down and execute them in real-time. Second Life, MOOs, etc.

This is basically an equivalent model to web-browsing. You don't load compiled Javascript into your web browser's process address space and jump into it; you put an interpreter between you and it, both for the sake of the code (JS has its own debugger, which treats the browser as a black box that scripters rarely have to think about, and never see backtraces from) and for the sake of the web browser (which doesn't have to deal with any consequences of bad scripting affecting the validity of the browser's own data structures.)

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> > but you know one of the big lessons of a big project is you don't want > people that aren't really programmers programming, you'll suffer for it!

Take that and shove it up your cross-functional agile team :-D</comment>


A paper about Emacs Org-Mode in the Journal of Statistical Software - <AUTHOR> http://www.jstatsoft.org/v46/i03

<comment><USER2> org-babel is absolutely wonderful for writing documents that involve source code, particularly technical papers or API documentation. It allows you to mix arbitrary code in multiple languages with structured HTML or Latex markup, and to pipe variables and data from these languages together.

Check out the code discussed by the paper here:

<http://orgmode.org/worg/org-contrib/babel/>

</comment><comment><USER3> Nice paper. Here's some related research:

* Active Documents with Org-Mode: <http://www.cs.unm.edu/~eschulte/data/CISE-13-3-SciProg.pdf>

* The Emacs Org-mode - Reproducible Research and Beyond: [http://www.warwick.ac.uk/statsdept/user-2011/TalkSlides/Cont...](http://www.warwick.ac.uk/statsdept/user-2011/TalkSlides/Contributed/16Aug_1115_FocusI_4-ReportingWorkflows_3-Leha.pdf)

</comment><comment><USER4> I tried to use org mode for this. I honestly found it really difficult to work with. The amount of verbosity required makes the code rather unreadable, and I think that, for truly 'literate' code, babel org mode just doesn't provide great solutions.

I need to write up more about this, but I think it is an area that would be fruitful for research.

<comment><USER5> I wonder if you got things fully figured out. What "verbosity" are you talking about: (1) words in non-source sections or (2) code in source blocks? The code in source blocks is basically identical to code you would have in a normal source file. As far as words outside source blocks, I think org-mode is cleaner than other software that tries to do similar things, e.g., most LaTeX markup is not present in the org document itself, instead it's added automatically when exported. Also, various parts of the document can be entirely collapsed from view, expanded only when needed.

In any case, the idea is not to "read" the org file itself, the "literate" part of things comes about from (1) "tangling" embedded source blocks to compilable format, and (2) exporting the org document to pdf, html or some other format that is nicely formatted for reading (or publishing, like the document that was referenced in this post).</comment></comment>


Military Orders Less Dependence on Fossil Fuels - <AUTHOR> http://www.nytimes.com/2010/10/05/science/earth/05fossil.html?hp=&pagewanted=all <comment><USER2> The important thing here is the US military is big enough to create a market. They've got lots of money and they don't care if the solution is more expensive than fossil fuels.

<comment><USER3> Yup. The involvement of the military or other arms of the Government has spurred latter penetration of those technologies or sciences into the civilian market in so many cases.

Arpanet, lasers, operations research, low weight ceramics and materials, robotics, aviation..... I guess its probably a never ending list, if one digs deep enough.

(Edit: I am really excited in seeing what technologies will get commercialized in the future, because of this. We so badly need to move forward on the energy sector, if we need to save ourselves)

<comment><USER4> We can't. That what everyone ignores. The ONLY technology that can replace our current power sources is nuclear power.

Hydrocarbons are the _ideal_ type of chemical to store and transport energy - nothing else even comes close.

So we have to make hydrocarbons, or mine them.

The goal of the military to reduce the supply line is impossible - they can move away from fossil fuels, but they can't move away from hydrocarbons.

Unless they wish to setup local nuclear reactors.

Solar power simply can not provide enough power while simultaneously being portable. It's also a huge target since solar power uses such a large area.

Generating biofuel locally is a joke. I can just see soldiers driving combines to harvest a crop. Just like solar, biofuels also require a large area. And once you'ved used all the local plants then what?

Next thing you know all local war zones will look like the moon as the army strips every plant for hundreds of miles.

<comment><USER3> I agree with almost every word you have written.

And I would like to add a qualifier to what you have written: What you say, is the present.

The present is not the future.

<comment><USER5> You can't bend the laws of physics though. There isn't enough stored energy in local sunlight, plants, wind or anything else to meet the needs of the airforce, army or whatever. Unless you're splitting atoms locally.

No amount of technological progress is going to change the fact that sunlight, plants and other local sources do not posses enough energy _unless you split apart their atoms_.

You have to transport energy in large quantities to undertake warfare. The only possible way around this is with stored electricity, except that stored electricity doesn't power most of the machines of war.

<comment><USER3> _You can't bend the laws of physics though._ Absolutely true.

So is the fact, that the laws of physics have been there since big-bang. The question would be, have we realized all the potential of all the laws of physics out there, yet? Have we even discovered all the laws of physics, yet?

 _No amount of technological progress_ hmmm, I wouldn't be so confident of using those words. All one has to do is look at the history of the last few centuries, or the rate of scientific progress over the last few millenium. It has been exponential.

I think the convergence of easy availability of knowledge to the masses, availability of massive and cheap computational power and the massive inflow from developing countries into the engineering and scientific workforce , will probably make the word 'exponential' obsolete. But then as they say, proof of the pudding is in eating. We should repeat this conversation 20 years from now and see how it went, just for the fun.

Yes, splitting the atoms locally is a good alternative (at least in theory, for now). Watching the progress of battery technology, from the old mercury types, to NICD, then lithium and then A123, that's a promising area.

Caterpillar is now selling a hybrid bulldozer, who knows, them making a plug- in hybrid bulldozer coupled with A123 or more dense battery tech. will inspire the military to build electric machines.

</comment></comment></comment></comment></comment></comment><comment><USER6> About time. Wonder why it took them this long? Fuel supply caravans have been a weak point since the internal combustion engine became important to warfare!

<comment><USER4> Not only did it take them this long, it's also _going_ to take them this long because this goal is impossible.

This garbage article confused hydrocarbon fuel and fossil fuel, and it makes totally impossible claims.

There ARE no alternatives to hydrocarbon fuel for these purposes. It doesn't matter if you make them from renewable sources you still need to ship them.

Solar power will require such a large area that it will become a target of it's own, and the suggestion to make biofuel from local plants is laughable.

</comment></comment><comment><USER7> a lot also depends on the future military strategy. A Predator uses less fuel than a Raptor (and the fuel consumption by the machine itself is just a tip of the pyramid consisting of all the support, service and maintenance personnel and equipment that machine requires). It is also much easier from the supply logistics point of view to strike using a couple of Hellfire from a drone [or using other precision-strike-from-a-distance weapons] sent from a far away base than to send helicopters with people or to send [even light] armoured ground assault from a close-by base ("Black Hawk down" - compare with modern day strikes in Pakistan). So the military becomes greener. I.e. by minimizing amount of people and heavy equipment involved at the "last mile" there is much savings to be realized.

<comment><USER8> You don't win a war with just an air campaign. You still need boots on the ground to go after people. Hellfire's work great when the enemy is out in a field with no civilians around. But that is not the case. The enemy is walking around amongst civilians in places like an open market, a row of houses. These are poor places for hellfires because using one there means that now you've got a bunch of people that were neutral on the subject before pissed off at you.

<comment><USER7> placing boots on the ground causes a lot of collateral civilian casualties (look at, for example, Iraq civilian casualties) and make the people hate invaders and leads to insurgency. The "Black Hawk down" i mentioned is a real story of the Battle of Mogadishu in 1993

<http://en.wikipedia.org/wiki/Battle_of_Mogadishu_%281993%29>

where USA had 19 KIA and 83 WIA, and Somalis - anywhere between 300 and 2000. A precision hit to the building which was the original target in the Battle of Mogadishu would cause much less casualties on the both sides (and much less fossil fuel burned).

>You don't win a war with just an air campaign. You still need boots on the ground to go after people.

that is just a generic slogan.

<comment><USER8> Which building would they elect as the target. It's not like the enemy is walking around in broad daylight under view of the eye n the sky.

And it's not just an expression it's how every successful campaign has been one. If it was possible to wage an air only war. Don't you think the US, with he largest airforce in the world would be fully invested?

</comment></comment></comment></comment><comment><USER9> They better draw up plans to invade Houston then.

</comment><comment><USER10> 399 to 1 ratio in transport to fuel costs? Is this for real or hyperbole?

<comment><USER11> Well, they did say this was for the "forward bases" (read, bases located inside enemy controlled or sympathetic areas). Keep in mind that they also said that for every 24 convoys, they lost on average 1 person. There were probably at least 1 injured for each killed (maybe many injured for each killed). Ignoring any death benefits, how much do you think it costs to keep a marine in a hospital (after airlifting them back to the states or elsewhere in the western world) for a few months and pay for lifetime visits to the VA? 399 to 1 sounds conservative.

<comment><USER12> I wonder what sort of riots we would have over here if it costed hundreds of dollars for a gallon of gas. Not a valid comparison, but still fun to think about.

<comment><USER13> Are you talking about overnight increase or gradual?

<comment><USER12> Well if you want riots, of course it needs to be overnight. Wasn't there some adage with regards to boiling a frog concerning this?</comment></comment></comment></comment></comment>


A free video streaming service that runs on a ESP32 - <AUTHOR> https://github.com/rossumur/espflix <comment><USER2> A minor plug, if you're doing ESP8266/ESP32 development, you can use the following code snippet and server I wrote to do automatic, secure updates over pinned HTTPS:

[https://www.pastery.net/vmympk/](https://www.pastery.net/vmympk/)

This is the server, a single binary (written in Rust):

[https://gitlab.com/stavros/espota-server](https://gitlab.com/stavros/espota- server)

The device will connect to the server (whenever you call doHttpUpdate(), I usually do it on startup), ask for a new version, get the latest version, flash itself with it and then boot.

Very handy, as it's faster than USB/UART, and you don't have to disconnect from the serial console to use it.

<comment><USER3> Wooha, was looking for exactly something like this. Thank you.

This is why I love hacker news.

<comment><USER4> And we love you.

</comment></comment></comment><comment><USER5> Very nice project, may be can try this at home.

ESP32 is a little processor that could. The latest version ESP32-S2 is cheaper (unit cost 99 cents), and amongst other capabilities also supports LCD interface and USB OTG!

[https://maker.pro/esp8266/tutorial/a-comparison-of-the- new-e...](https://maker.pro/esp8266/tutorial/a-comparison-of-the-new- esp32-s2-to-the-esp32)

<comment><USER6> Since the S2 has USB OTG, I wonder whether anyone's working on porting the QMK keyboard-firmware project to it. QMK on ESP32 could make for one heck of an overpowered mechanical keyboard.

Too bad there's no Bluetooth.

<comment><USER7> USB-OTG on a small microcontroller like the ESP32S also presents significant opportunities for malicious 'anti-security' devices pretending to be other devices, while up to no good. (See 'Malduino')

With its single-core and no Bluetooth, I see the ESP32-S as more of an upgrade to the ESP8266, or 'ESP32-'lite'.

</comment></comment></comment><comment><USER7> Since getting (back) into electronics and writing firmware for microcontrollers a few years ago, and having been through various projects with the 8266 (which blew my mind at the time), I now use the ESP32 for most ideas and project that I have.

It's been a complete game-changer, hobby-wise.

Having Wifi and BluetoothLE on-board has been great. And as a long time web and mobile app developer, it's been the perfect way to turn 'things I write' into 'things I can touch'. (And that can 'talk').

The 'intangibility' of all the code I've written over years has always been a little saddening to me.

I've also tried a few of the ESP32-CAM boards and they're very impressive. I have a little LiPo powered pocket project in a 3D printed flat case, containing one of them, which, aftter connnecting to WiFi, then sends MJPEG (no audio) to a Node.js script on one of my servers which shows a 'live' feed. (I sometimes stick it to my front door 'peep-hole' too.

I'll certainly be taking a look at this 'ESPFLIX' project over the weekend.

Thanks!

</comment><comment><USER8> Check also the ESP32-Cam which does this, along with face recognition.

[https://www.youtube.com/watch?v=MicAM_A0_lU](https://www.youtube.com/watch?v=MicAM_A0_lU) [https://www.youtube.com/watch?v=DnXI- MO1qck](https://www.youtube.com/watch?v=DnXI-MO1qck)

</comment><comment><USER9> This is so Cool! A 99 cents Chip can do so many things. I am using it currently for Automatic Garden Monitoring system[1]. I never realized this small chip can do big things. Very Impressive.

[1][https://iot- playground.com/blog/2-uncategorised/94-esp8266-s...](https://iot- playground.com/blog/2-uncategorised/94-esp8266-smart-plant-irrigation-system)

<comment><USER10> You might want to grab a capacitive soil moisture sensor btw because those two pin ones almost always corrode after some time, especially with more power going through them

<comment><USER9> Thank you for the suggestions. I have noticed some corrosion. I will look into getting the capacitive moisture sensor .

</comment></comment></comment><comment><USER11> I had a chuckle at the loading screen.

Shameless plug, my father made a (free) ESP8266 & ESP32 wifi webradio project that seems popular and may interest some people in this thread [https://github.com/karawin/Ka-Radio](https://github.com/karawin/Ka-Radio)

<comment><USER7> Your father made Ka-Radio?

It's an incredibly impressive project, that one.

Please pass on my thanks.

<comment><USER11> I just did, thanks!

</comment></comment></comment><comment><USER12> Rossum: You're crazy. I love it. Amazing! Can't wait to try it.

Especially considering the cost, this would be a wonderful addition to any standard definition TVs still in use.

</comment><comment><USER13> I think the most interesting part of this is ESP_8_BIT driving composite video from software using 1 output pin.

<comment><USER14> For me it's the actually fluid MPEG1 decoder

</comment></comment><comment><USER15> The Esp32 is such an amazing device. If I had more time I would love to learn more about it. I've just ordered a few more sensors for it.

I'm pretty excited about it.

</comment><comment><USER16> This is really impressive, streaming video + audio on a what is essentially a beefy microcontroller.

<comment><USER17> That's what does my head in, this $1 "microcontroller" is essentially an entire late-90s computer (although far more powerful in some ways) in a 10mm square package. It's amazing what 20 years of progress will do.

(Don't even get me started on all the on-chip peripherals, it's the hobby roboticist's dream!)

<comment><USER18> It is, you can do a ton with that "amount" of processing power.

a table to compare specs [https://maker.pro/esp8266/tutorial/a-comparison-of- the-new-e...](https://maker.pro/esp8266/tutorial/a-comparison-of-the-new- esp32-s2-to-the-esp32)

riscv 240MHz ulp 5 microamp in deep sleep I suppose

cut

</comment></comment></comment><comment><USER19> Very impressive. Masterful hacking. Nice to know how much can still be done with less than a megabyte of memory!

</comment><comment><USER20> Instead of using cloud aws, could an sd card be used?

Might be cool to have harry potter picture frames for the cost of the sscard and esp (assuming free flatscreen vga with component-in).

</comment><comment><USER21> Does anyone know how they are able to produce such a powerful chip so cheaply? Do they use Chinese fabs?

<comment><USER22> Moore's Law is incredibly powerful. It's a 400MHz microprocessor that's roughly equivalent to a late-nineties desktop PC, the sort that could (with a suitably fast CDROM drive) just about manage to decode to 320x200 VGA resolution. This is still a really impressive feat of coding.

Fab appears to be TSMC. So, the Republic of China?

</comment></comment><comment><USER23> Cool! Can you give an overview of the "Amazing AWS Stack" you have implemented?

</comment><comment><USER24> It seems really fun to develop hardware skills like this. Or for example being able to order an eink display and build my own ereader from basic principles.

But every time I start learning, it feels like there's so much you have to learn to do so little, and I'm not fundamentally motivated by the physics of hardware.

Meanwhile, software, being so high level, is extremely actionable early on without a hard dep on knowing how the underlying stack is working. One of the first things I built was a Ruby on Rails web app that my friends and I used to chat in high school before I even could tell you what http headers were, I would learn those later once the initial taste was so actionable and motivating.

With hardware, in the same amount of time I learned to build a web app that my friends and I used, I probably would have learned to make an LED blink.

Oh well, it's like playing the piano: I wish my younger self put in the time so that my older self could benefit for free.</comment>