Godot 3.0 game engine released - <AUTHOR> https://godotengine.org/article/godot-3-0-released <comment><USER2> I can't say enough good things about this project. In particular I love GDScript. It's a lot like Python and it makes the cost of learning the engine negligible.

You can also use C++, C# and a visual scripting language to make stuff. There's also community support for python and some other languages.

It's hard to believe that it's a 20mb when Unity is 1.5gb.

<comment><USER3> My understanding was that they were going to have full support for Python 3 in the 3.0 release. Not sure if that survived the last 6 months.

[https://godotengine.org/article/beta-release-python- support](https://godotengine.org/article/beta-release-python-support)

<comment><USER4> I think the best thing for people to do is to program a simple game or two and see that the need for full python support is really not needed. In Godot you are scripting elements.

</comment></comment></comment><comment><USER5> I don't have much valuable to add here, but I'm glad to see more serious open source success stories. Godot seems like it has a lot to offer developers and it's great that it's open to everyone to play with, as opposed to being some proprietary code behind the fences of some organization. The Patreon model of developing software could have a bright future, perhaps.

</comment><comment><USER6> Not mentioned in any of the changelogs: I implemented color blending utility functions like darken and lighten from SASS/LESS for GD Script. So now ie blending your characters color based on damage received is ~1 line of code.

<comment><USER7> Neat! Got a link to some examples?

</comment></comment><comment><USER8> Happens at a perfect time for me. I was wondering about a project I want running on smartphones and web and was pondering restarting a unity project (which meant begrudgingly reboot to windows, the linux IDE is not there yet). Now I'll give godot a try.

Is the iOS support good?

<comment><USER7> > the linux IDE is not there yet

If you're a Linux person using Unity, double-check if your version of Unity has fixed the VSync bug.

99% of all Unity games max out one core for me all the time, even if they are static sprite games like Desktop Dungeons, due to that really dumb bug of theirs. Unity games are basically a no-go on my laptop, draining the battery like crazy and heating it up tremendously.

</comment></comment><comment><USER9> Now you can build games in browser using wasm.

</comment><comment><USER10> Would be awesome to get some examples up on the site, particularly WebAssembly/WebGL 2.0 ones

</comment><comment><USER11> Very interested in it for GDScript's alleged Python-ness.

Can anyone comment on how seamless the transition from Python to GDScript will be? And how performant is GDScript?

It's a shame Unity dropped Boo but I think it was due to lack of interest as much as lack of support. There is no much code in a game (or "game-like thing" \- I'm more interested in VR experiences etc) that doesn't need to be performant that two levels of code access is desirable. A fast language and a nice language...

I'm warming to C# but that's probably more down to Stockholm Syndrome than any innate pleasure in using the language. When I switch back to Python I feel all warm and fuzzy again.

<comment><USER12> I've done a few tests with GDScript.

There isn't the same depth of library support as Python for obvious reasons, which makes the experience different even though the syntax is pretty close, but it's not worse at the task of doing things with the engine, in fact it's better at that because it's more deeply integrated(which is the point of having a custom language). It's aware of engine core stuff like e.g. geometry vectors and the scenegraph, and the built-in IDE supports working with GDScript directly with no configuration step needed - edit/test/debug all done exactly like it should be.

Performance-wise, it's fine for what it's intended for - running gameplay logic for a game of small-to-midsize scope(think ~$5mm budget) that isn't trying to drive tens of thousands of entities or run parts of the rendering from script. Smaller games can get away with optimizing hotspots, and a bigger game can start to justify having someone forking the engine and poking around in the internals to optimize whatever part of the architecture starts falling over.

For the use-cases of running a specific task that's more intensive or bolting on some additional dependencies, the new GDNative support is compelling. Godot's stated aim is for convenience over optimization but the optimization is definitely present in critical elements.

</comment></comment><comment><USER13> This looks like a really cool tool based on their website -- has anyone here had any experience with it? How does the developer experience compare to, say, Unity?

<comment><USER2> I've used both for hobby projects and Godot is superior in my opinion because of the scripting language, the open sourciness and the small package size.

Why is unity 1.5gb anyways?

<comment><USER14> Because it targets all Sony, Nintendo and Microsoft consoles, OS X, iOS, tvOS, Windows desktop, UWP, Android and GNU/Linux. With binaries for every architecture being part of it.

Can target OpenGL, OpenGL ES, Metal, Vulkan, DirectX 11, DirectX 12, LibGMN, NVN.

Has graphical debuggers for shader development, a 2D GUI engine, a 3 engine with VR and AR support, asset pipelines for integration with studios workflow, and lots of features that Godot might one day have, but aren't on 3.0.

Kudos to Godot developers for what they achieved, I am also impressed with their work, but Unity devs aren't putting bloat just for fun.

In fact, any engine with similar laundry list of features has a similar size.

<comment><USER15> That's why installation options exist, no?

<comment><USER16> GameMaker Studio used to do something like that. You started off with a specific version and then could buy plugins for additional features like compiling for consoles, Linux, etc. I haven't looked at the GMS2 pricing model so I'm not sure if they still follow that though.

</comment></comment></comment></comment></comment><comment><USER17> High five to all the godot developers, I've been on the edge of my seat waiting for this one for a while now!

</comment><comment><USER16> Oh wow, this is a really cool release. I was hoping that Python 3 would be a built-in feature but I'm not complaining :)

<comment><USER18> GDScript is pythonesque enough to where that's alright. By having made their own scripting language it allows for it to flow better with their engine, at least that's my opinion.

I used GDScript and didn't have any issues with using it, I'm sure everyone wants to reuse the millions of Python libraries available but they're not built for Godot. However, using GDNative I'm pretty sure one could put Python support into Godot, as a Godot native plugin that then runs your Python code. It wouldn't be as efficient as just using GDScript though.

<comment><USER19> > By having made their own scripting language it allows for it to flow better > with their engine, at least that's my opinion.

It also locks your code into their ecosystem, albeit to a much lesser degree than, say, GameMaker and GML because Godot is open source, and allows support for other languages.

Unless anyone is going to use GDScript anywhere else as a general purpose language, it's as useless to learn in the long term as GML or Boo for Unity.

That said, Godot looks nice and I look forward to trying it out. But I do believe that, in general, game frameworks should stop rolling their own custom scripting languages.</comment></comment></comment>


Copyright enforcement and the Internet: we just haven't tried hard enough? - <AUTHOR> http://arstechnica.com/tech-policy/news/2012/02/copyright-enforcement-and-the-internet-we-just-havent-tried-hard-enough.ars

<comment><USER3> What's really helpful is considering property rights independently of whatever they're actually protecting.

And protecting is the key word, since the rights themselves are abstractions. What gives them concrete value is the institutionalized mechanisms of enforcement, from well-grounded law, to courts, to sherifs with badges and guns. It's a formidable apparatus. And what constitutes "property" is anything that society is willing and able to place within the jurisdiction of this contracting and enforcement system.

Throughout the 20th century, when the only parties in a position to seriously violate the intellectual property rights of others were major companies, the law was limited to the rules of engagement for big publishers dealing with each other, as well as their suppliers. Not having unfettered access to movie studios, broadcast networks, or commercial printing presses, the general public had no way to duplicate and distribute media on an appreciable scale. Though the scope of media has expanded enormously in the past 300 years, this fundamental assumption about limited access to its mechanisms remained valid.

The suddenly, it didn't - a change that is now irreversible fact. To say that the law is now unfit for present reality is an understatement. And to reflexively apply its terrible machinery in a heavily populated arena where is is absolutely, totally, 100% inappropriate is a recipe for catastrophe.

So we need to stop skirting the issue by talking about "outdated business models" and telling businesses that "they just need to adapt." Instead, we need to let them deal with their own problems, or retire gracefully. Our real problem is clearly and forcefully asserting that once-viable copyright law now constitutes an intolerable extension of property rights; one that is fundamentally incompatible with human autonomy in a networked civilization. While copyright laws remains a reliable tool for governing the conduct of incorporated entities (and are worth maintaining for this reason alone), they must be rolled back dramatically now that their fundamental assumptions have been falsified by the normal progress of humanity.

This is not an unprecedented development. Indeed, for most of human history the concept of "property" used to be so expansive that it even included other people. When abolishing slavery, what we were really doing is redefining the ancient scope of "property". And while we make a polite ritual of men asking fathers for their daughters hands in marriage, this tradition dates back to a time when taking a bride was an actual property transaction. When child labor laws were imposed, much of the resistance came in the form of people saying that these regulations interfered with the "property rights" they had in their own children. While that arrangement may have been uncontested at one point, society developed to a point where this idea was both fought and defeated. If anything, these episodes demonstrate that the flexibility - not the rigidity - of property's scope is what gives the institution its lasting value.

Today, we've reached a point where it's neither ethical nor practical to extend enforceable property rights into the contents of people's hard drives. Indeed, when you consider the totality of the police surveillance that an even marginally-effective system would require, the very thought is horrifying. There is no conceivable benefit offered by the current beneficiaries of expansive copyright protection that outweighs the extraordinary danger and inevitable abuse that will attend viable, non-arbitrary enforcement.

This is the point that Kevin Drum gets exactly wrong. Building an all-seeing, all-controlling IP enforcement apparatus isn't something we even want to consider, let alone try. History has demonstrated that once a society is infested with this kind of malware, it's virtually impossible to get rid of without suffering the collapse of the state itself.

No, what We the People need to focus on what we consider to be an appropriate limit to intellectual property rights in general, and persuade our legislators to act accordingly. Private companies should be free to operate within those bounds, or die trying. But they cannot displace the sovereignty of people working through elected representatives to define law appropriate to the time and place we're actually living in. As this fight plays out, the legal redefinition of "property" should be priority #1.

<comment><USER4> Redefinition of "property" is extremely important. Start with the fact that pirates don't steal - they infringe copyright.

<comment><USER5> I can't agree enough. The biggest victory of the intellectual property movement is the term "intellectual property".

[Edit/rewording] The information covered by copyright and patents is _not_ property. It literally _cannot be owned_. All that copyright law does is grant temporary control over distribution of information; all patent law does is grant temporary control over use of information to produce products.

If you're serious about this issue, don't use the terms theft, steal, or so- called "intellectual property", and don't tolerate it when others do -- call them out.

Alexqgb's post, while very insightful and interesting, is fundamentally flawed because it accepts as a premise a lie and a falsehood -- that it is even possible to "own" information as "property". This literally cannot be done. It is a broken metaphor designed to distort the issue.

<comment><USER6> _Copyright and patents are not property. They literally cannot be owned._

It may be a broken metaphor but the law says you _can_ own intangible rights without question - or at least gives you rights that equate to pretty much everything that an owner of tangible property has (the right to exclusive control, the right to sell/buy/assign/lease/license/bequeath to heirs, etc., and the right to sue to enforce these rights in a court of law - <USER2> <http://news.ycombinator.com/item?id=3463640> for elaboration). This is the bundle of rights that the law calls "ownership" and, in this sense, you certainly can "own" copyrights and patents.

You are arguing, in effect, that the law _should_ be otherwise and that is fine. I also agree that the term "theft" is a loaded term that distorts the discussion on infringement. But it is not right (in terms of law) to "call out" those who use the term "property" for using a label that accurately describes exactly how the law treats the intangible rights (copyright, patent) with which you take issue. You may disagree with this but this is what the law currently holds. It is also, in practice, exactly how every startup I have ever worked with (many thousands) regards the IP rights that it develops (i.e., something "owned" by the company).

Trade secret rights, by the way, are also treated by the law as property. Such rights extend only to information that is confidential and _proprietary_ \- "proprietary" literally comes from a Latin root that means "one's own" and refers to information (whether formulas, customer lists, confidential pricing information, or whatever) that is _owned_ by a particular company (as opposed to being public information). This too is another example of the law treating information as something capable of being "owned." Indeed, that is the essence of most intangible rights that the law protects, including contract rights. It protects them by giving them the attributes of ownership. This may be question-begging ("they are only property because an illegitimate law calls them "property") but it is reality and is very deeply ingrained in current law. It would take nothing less than a revolutionary way of looking at the concept of property to change it.

<comment><AUTHOR> As always you make enlightening points.

Yet, even under the law, there are some significant difference in the purpose and implementation between traditional property and intellectual property. IP rights are for instance limited in time. In fact, historically the original purpose of patents was to encourage inventors to disclose their information so that eventually it could be used by society at law. Patents are inherently, and meant to be, self limiting.

Also, traditional property is normal inherently exclusive. If I am using my hammer, you are not. We may manage to come to a time-sharing arrangement or something similar, but only one of us is using it at a time. On the other hand, my building a product based on a patent you hold is prevented only by the law, rather than by the mere fact of you holding it. To quote Jefferson "He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me. "

In a legal sense, IP is most certainly property, but it has significant differences from more traditional property and is not property in the same sense that a hammer is.

</comment></comment></comment></comment></comment><comment><USER7> This is the best article I have read on the subject is "What color are your bits"[1]. My feeling is that people arguing for stricter copyright enforcement online are trying to unring a bell. They just don't understand that yet.

It's going to take a new generation who have grown up with the internet to wipe this slate clean.

[1] <http://ansuz.sooke.bc.ca/lawpoli/colour/2004061001.php>

<comment><USER8> There's an important comment in that article. Tanner Swett says:

        [T]here's already a word for the concept of Colour: "provenance"

So, to enforce copyright, it would be necessary to produce the "provenance" of any artifact (e.g. USB key) in our posession at any time. And, of course, that doesn't mean having the sales receipt from the grocery store where you bought it, it means being able to produce a record of every data transfer it ever made, and then records of every data transfer those devices ever made, ad infinitum, ad absurdum.

<comment><USER9> Perhaps a short educational film is needed to communicate this more widely. I'm thinking something with a sinister-looking Gestapo-knock-off 'media agent' coming into a home asking to see their blue-rays' and computers' papers, and those papers' papers.

<comment><USER10> So, Terry Gilliam's Brazil?

<comment><USER9> Well, it is no good mandating citizens only have computers which respect the grand unified provenance management system and then allowing the gaping loophole of unauthorized computer repair. So yeah, not too far from that.

</comment></comment></comment></comment></comment><comment><USER11> Wow, this is a real eye opener. Only having heard of Napster, I didn't realize there were other services similar to Google Music back in the late 90s. Here's solid proof that in claiming to promote innovation they are quite literally stifling it and delaying it by decades. I'm also continually amazed at how long copyright terms are in the US and how much lobbying goes into it to extend terms right when they're about to expire. (<http://en.wikipedia.org/wiki/Copyright_Term_Extension_Act>)

</comment><comment><USER5> If people think there are technological solutions, they should go ahead and propose them.

But I have difficulty seeing a legitimate proposal that prevents the copying of certain sequences of bits according to the terms of their copyright license, while allowing free copying of other sequences of bits. Doesn't sound ideologically or technically feasible to me, because you're fighting an uphill battle against the nature of information.

Personal ethics has nothing to do with it.

<comment><USER12> There are NO technological solutions. It is mathematically impossible to restrict communication of certain kinds of information, while still allowing information exchanges to take place.

This is why there are no legal, political, or economic solutions to the general problem of copyright, either. The only solutions that are even theoretically possible rely almost entirely on ideology backed up by a massive coercive force.

<comment><USER13> Too true. Everything on a computer can be represented as a number. So if you try to say that someone owns a number, let's say 5, how do you enforce that technologically? If they're not allowed to transmit 5, they can transmit 2+3 or 4+1. And it shouldn't take much imagination to see that to ban people from transmitting one number requires banning them from transmitting _any_ numbers, because you can use any other number to make 5.

But mere impossibility isn't enough to make people give up. They'll keep trying and trying and just think that they didn't try hard enough, never wondering why people _always_ seem to be able to find countermeasures. Maybe they can just ban the + program, any other use of it be damned? Oh, but we have - too. Well, there aren't that many functions on a pocket calculator, are there? Maybe you can ban them all? Maybe we could get that Godel guy to help us figure this out....

<comment><USER14> Hence Cory Doctorow's recent talk, "The Coming War on General Purpose Computation":

[http://boingboing.net/2011/12/27/the-coming-war-on- general-p...](http://boingboing.net/2011/12/27/the-coming-war-on-general- purp.html)

<comment><USER12> War on General Purpose Computation == War on Consciousness. Why not just go straight to the root of the problem and outlaw certain kinds of cognitive patterns? Since "intellectual property" begins in the mind, so does "copyright infringement". Thought would be a whole lot easier to police, anyway.

Memory is theft. That's why I choose to stay ignorant - stupidity will never be outlawed.

</comment></comment></comment></comment></comment><comment><USER15> Technology can change things.

If digital printers and scanners get good enough we may need to switch from current physical currency, back to gold, silver and copper. Trying to legislate around the technology to protect the current model may simply not work. I am not trying to get into the controversy about fiat currency, I am just talking about the stuff you carry about, you can still have lots of fiat electronic promises.

</comment><comment><USER16> When I saw the title of this piece, I immediately thought it referred to the companies' lackluster ability to patrol torrent sites.

I haven't torrented in many years (no, really...I didn't see the need for it after I got a real job and after the advent of usable streaming services) but isn't it still the case that the majority of users expose their IPs when downloading/uploading? That is, most people aren't using some kind of Tor solution?

I may not have a very tech-savvy group of friends...but the few people who have said they torrent are almost always unaware of how public their downloading is (and yes, these would be the same people who would be vulnerable to Firesheeping and other such hacks) and are shocked when I tell them of the risk they're at.

But in reality, it seems like a very small minority of easily-findable torrenters face any kind of action. And yes, I'm accounting for the infamous RIAA/MPAA lawsuits in which hundreds or thousands of people are named. That's still -- AFAIK -- a very small percentage of domestic torrenters.

Which leads me to believe that the RIAA/MPAA's enforcement capabilities involve an intern using some craptastic proprietary program to copy-and-paste IP numbers and hand-enter them into a database, which is then used to hand- send out cease-and-desist letters, and all of this happens very sporadically (and with little effort/ability to verify accuracy, apparently).

<comment><USER17> Any system that is applied consistently would be much easier for torrent sites to dodge.</comment></comment>


Try GitHost free for a week. - <AUTHOR> https://githost.io/blog/posts/try-githost-free-for-a-week

<comment><USER2> Are you has any plans about GitlabCI hosting?</comment>


280 North's Atlas Bridges The Gap Between Web Apps And Native iPhone Applications - <AUTHOR> http://www.mobilecrunch.com/2009/03/04/280-norths-atlas-bridges-the-gap-between-web-apps-and-native-iphone-applications/

<comment><USER2> Atlas won't be the first iPhone app-bridging framework, though easy Cappuccino may make it the most compelling.

John Resig blogged about a few extant frameworks in November: <http://ejohn.org/blog/iphone-javascript-apps/> . PhoneGap ( <http://phonegap.com/> ) seems like the most capable (though my rating of capability is "number of times I've seen it blogged about"). For those of us with little Objective C and lots of JavaScript experience, these frameworks offer an easy vector to begin developing (basic) iPhone apps.

<comment><USER3> Thank you for this wonderful resource. I knew about phonegap but I never imagined there are so many other options!

</comment></comment><comment><USER4> While I'm wary of the performance cost of what I assume will be a web frame wrapped inside a container with hooks into the iPhone's native environment, the ease with which this might allow development is pretty exciting.

There is a mapping software company that has a similar strategy, though I forget the name.. out of England, I think. Their library is Objective-C, but if you look at the source it is apparent that most of the implementation is actually inside a WebKit window.

</comment><comment><USER5> hope they are not planning to release an iphone component for rendering/running said content... that would constitute a violation of the "you shall not build interpreters" terms!

<comment><USER6> UIWebView has a JavaScript interpreter built in...</comment></comment>


Django MVT - My recent project, looking for suggestions, criticisms, testers... - <AUTHOR> http://bitbucket.org/inerte/mvt/

<comment><AUTHOR> Hi all,

There's django-ab <http://github.com/johnboxall/django-ab> and django-lean <http://bitbucket.org/akoha/django-lean> if you're interesting in A/B tests.

I got bitten by a Not Invented Here and decide to implement my own. I have no idea in fact how the previous two projects work exactly, since I only browsed the documentation and source for a few minutes (hopefully I'm not breaking any patents or licenses with my project :)

The basic idea is to create an Experiment, create the tests on templates and enjoy the reports.

I still haven't put it live on any of my sites, so it works on my development server. But I decided to release it anyway to see if others can install the app. And if you do, if it works as you want.

Some features:

\- Experiment reports, accessible on Django's admin interface

\- "Continuous experiment" (for the lack of a better name). It's an experiment which keeps recording goal hits past the first one. I have a forum on one of my sites, and was in doubt if adding a timestamp next to a list of topics would increase the pageviews on ^forum/(.*)

And hey, admittedly I don't have a lot of experience with split testing in general. Most of the stuff on Django MVT was done based on what I imagined a split test report to be and coding only enough to get there.

I appreciate any feedback, be on the app itself or testing in general :) Are there features you look for on this type of project?</comment>


Meat is Horrible - <AUTHOR> https://www.washingtonpost.com/news/wonk/wp/2016/06/30/how-meat-is-destroying-the-planet-in-seven-charts/ <comment><USER2> On the specific issue of the carbon budget, there is a point I miss: what do we count in the carbon dioxide emission by agriculture and livestock? In both cases carbon emitted to the atmosphere is just carbon that was earlier fixated from the atmosphere, since plants and animals have no other sources of carbon (where there is a lot in the soil, but that counts as carbon that was already fixated from the atmosphere). So, while industrial activities unilaterally move carbon from oil fields to soil or atmosphere, growing plants or raising livestock just move carbon back and forth between living bodies and atmosphere/soil. In particular, it seems that having more more animals helps reducing the amount of carbon in the air (but it also requires more energy to handle them, so it increases oil usage, therefore the net effect is probably bad).

<comment><USER3> Animals release methane, which is a much worse problem than just the carbon dioxide.

<comment><USER4> Sea releases steam, which is much worse problem than carbon dioxide and methane combined, when you count atmosphere concentration to the calculation.

</comment></comment></comment><comment><USER5> I have some doubts about the usefulness of the water usage numbers given. Most of the water plants and animals take in is not retained long term or used in chemical reactions that break down the water. It mostly ends up being released by the organism back into the environment.

<comment><AUTHOR> "released back into the environment", yes, along with all of the contaminants introduced by the industrial agricultural system, and in a different place from where it started. The "water" runoff from feed lots is considered toxic waste to be managed, not a natural resource to be celebrated or conserved.

It's not a zero-sum game. There's a reason there's a (political, at leas in the US) war being waged over water in every region where water is scarce and cows are plentiful (likewise for many kinds of plant agriculture, admittedly, but the water used for the same nutritional value of plant-based foods is vastly lower).

Anyway, these are complex systems, sure. And, as with climate change science, in general, there are all sorts of variables one can debate the precision of. But, the general trend is in a dangerous direction. It's pretty widely accepted now, by folks who study the subject, that meat consumption is a large part of the equation. How much is debatable, but no one who studies the field that I'm aware of is saying it isn't a big part of the picture.

<comment><USER6> The runoff is sealed off from the environment, but water vapor isn't. This appears to be pretty well studied; for instance, just the non-waste biological activity of an indoor lot of live cows can saturate the air, which then needs to be vented.

I think 'tzs is just pointing out that the water consumption numbers here are oversimplified. They probably are, right?

<comment><AUTHOR> Yes, they probably are oversimplified, as is almost every number we talk about when discussing climate change. It's a big topic, and very few people (maybe actually nobody) understand _all_ of the facets of it in enough detail to speak with authority on how they all interact.

<comment><USER6> Sure. But sometimes the numbers are oversimplified but valid to a first approximation, and others (like, perhaps, the water numbers for California almonds) are so oversimplified as to be not helpful for discussion.

So then you're left wondering, which kind of number is this one? Does most of the water used to produce beef return to the environment in the course of raising the animals to their slaughter weight, or does most of it get retained in concrete and plastic lined manure pits?</comment></comment></comment></comment></comment>


Ask HN: Do you still code in BASIC? - <AUTHOR> Do you still write code in BASIC? If yes, which BASIC compiler or interpreter do you use? <comment><USER2> I learned to code from some indie version of basic on the internet called Liberty BASIC when I was 13. I used it for years because the people on the forums were so nice and basically held my hand through learning a lot of basic computer science and exposed me to the history of computing via recreated qbasic programs and games, etc.

I'm super grateful for little things like that. All those older people that were welcoming to me on those forums have a special place in my heart, and I've been thinking about them fondly while I build a compiler—something I wouldn't have been able to do without them answering all my questions when I got stuck.

<comment><USER3> That is why I fell in love with programming. So many smart people willing to spend time and effort on explaining me simple things. I have tried to give back by tutoring people as much as I can. The technology community is amazing.

<comment><USER2> It is wonderful. I really want to find a way to help teach kids/teenagers about programming. It can really make you feel good about yourself to build something and see it working

</comment></comment></comment><comment><USER4> No, and I don't miss it because I don't feel like was actually "simpler" than what I use today. Almost anything I could have done easily in BASIC in 1992, I can do more easily in Python now. The exception might be drawing ASCII graphic games, but I don't have any desire to make such games today, and if I did, I could just learn how to use TCell or whatever.

<comment><USER5> or PLAY "CDEFCCDEFCDEGDFG"

<comment><USER6> Is there an equivalent for Python?

<comment><USER4> [https://github.com/processing/p5.js- sound](https://github.com/processing/p5.js-sound) maybe a JS equivalent.

</comment></comment></comment></comment><comment><USER7> I understand the arguments against BASIC, e.g., ingraining impractical paradigms, but I do wonder if I would have ever gotten so deep in without exposure to it. I doubt that I would have jumped directly into asm, c, or fortran as a child. Even Pascal was a major leap ahead and probably somewhat inapproachable without help.

Maybe that was only the case in the '70s and '80s. I'm sure that if I had Python as a kid, it would have been just as easy to experiment as it was with BASIC back then.

<comment><USER8> > I understand the arguments against BASIC, e.g., ingraining impractical > paradigms,

The early interpreted BASICs did make it difficult to write good code. All source editing was line editing, every line was numbered, there weren't any structured control flow statements, composite data structures were limited to arrays and strings...

But even as early as the second half of the 80's there were mainstream implementations of BASIC that addressed all of these. Microsoft QuickBASIC 4 added a full screen editor and then completely relaxed the need for line numbering. Line numbers were still supported, but so were symbolic labels. QB4 also had support for functions/subroutines, decent control flow statements, and structured data types. There was also reasonable support for extension libraries, and the like. As long as you didn't rely on any code patterns that required any kind of callback or inversion of control, you could do a very nice job writing well factored and maintainable code.

<comment><USER9> I did a ton of good work in QuickBASIC 4.5. Wrote some shareware games, one of which was converted to a successful commercial product. Plus lots of contracting in the 80s for people who needed data (send back and forth on floppies) converted from one accounting system to another.

<comment><USER8> > Plus lots of contracting in the 80s for people who needed data (send back > and forth on floppies) converted from one accounting system to another.

When I was sixteen or seventeen, I worked as a summer intern in the IT department of a local utility company. They gave me this data conversion task that they expected me to complete manually on a timescale of roughly the entire summer.

It took about two days before I just automated the whole thing with a Turbo Pascal 6 program and had the task completed in something like a week. The biggest part of the challenge by that point was moving around a large volume of data (~100MB) on the 1.44MB floppies common at the time. (I remember ARJ helping immensely, between it's multi-disk support and the high compressibility of the data.)

My unexpectedly high output on this task served me well.

</comment></comment></comment></comment><comment><USER10> Yes. PowerBasic. Since the original developer has passed on (Bob Zale), I don't use it for new coding. However, I have an extensive existing code base. Very fast compiler, very small generated exe's, and very easy to work with. But, I don't see any progress in a 64-bit nor linux versions so I've switched to Python for such things.

<comment><USER11> I had to use some python with vs code recently and for some reason it reminded me (in a good way) of working in qbasic with the little ide/debugger. The same kind of quick simplicity.

</comment></comment><comment><USER12> I still write quite a few things in VBA. Most of this is for research or teaching purposes where I want to add a few things to Excel, but there is a surprising amount of demand from management consulting companies that want a front end or some sensitivity analysis added to a model that they have developed for a client.

</comment><comment><USER13> Yes. The one called Python. No line numbers but a funny indentation system.

<comment><USER14> ^ This. However I still take issue with Python 3's removal of the PRINT statement.

<comment><USER15> You mean making it a function instead of a statement?

</comment></comment></comment><comment><USER16> I'm a curriculum developer and lead teacher training workshops. We _still_ teach BASIC because one of the robotics platforms still in existence is the BoeBot from Parallax. It uses the BASIC Stamp. When I started, the rest of the team was only doing the BoeBot. I started learning microcontrollers with the BASIC Stamp and I forgot how restricting it is when you try to do much with it. I proposed we adopt the Parallax Shield bot which uses an Arduino as the brain instead of the BASIC Stamp. Leadership agreed.

It's actually more difficult to teach Arduino in a day or two and hope any of it sticks if the person you're training in coming in with zero programming background. BASIC is still an easy language for complete newbie to pick up in a short amount of time. The ease of learning comes at a cost later on though. I've encouraged teachers to start with BASIC if their students had no prior background or if they themselves feel overwhelmed by the wider pastures of the Arduino. I underscore that the time spent learning C++ in an Arduino context is a better investment than time spent mastering BASIC. BASIC is easy to learn for the purposes of the robot, but C++ can control the robot and allow you to branch out into countless other languages. I liken programming languages to spoken languages and learning C++ is like learning Latin. It may be obtuse and difficult at first, but once it clicks, you can easily slide into any number of other languages with ease.

I'm now not really beating the BASIC drum anymore, instead I talk up Python now that Parallax has released a bot built atop the micro:bit. It's limited in the amount of memory on board and python eats embedded memory for lunch. It's time well spent learning Python. It allows students to grow into "what's next" far easier. Kids that learn Python on something like this robot can easily write the same kind of code on a computer to have it do all sorts of things. Kids in camps that I've run (and students in my classroom years ago) love learning about the countless python libraries they can use. I casually point out "mouse" and they making "random mouse movement" scripts as a gag. I always "fall for it" each time. ("Oh no! What?! My mouse... it's jumping all over the place!!!" \- met with giggles, high fives, raucous laughter, etc)

So, yeah, I actually still teach BASIC on occasion, but I'm more and more turning teachers into Python lovers and C++ for the Arduino.

<comment><USER17> I personally think that BASIC is an excellent first language, but people really should learn several different languages and be exposed to different programming ideas and styles. In addition to the Python and C++ you mentioned, people should consider Forth, Smalltalk, JavaScript, etc.

</comment></comment><comment><USER18> In one of our solutions (about 75+ projects) we have a single VB.net project with just a few classes. Nobody has bothered to port it over because it never needed changes. So it sits there doing its thing. The funny thing is that it was converted from C# code, which was promptly lost, some ten years ago because we thought it would be easier for the dev unfamiliar with C#.

On a personal note, I collect vintage computers. I have too many and stopped counting at 50. So I do use BASIC in that sense.

<comment><USER19> Is your collection online somewhere?

<comment><USER18> No. I really need to catalog it better since it is such a fun collection. It ranges from 8 bits (Apple IIs, TRS-80s, Commodore PETs) to Sun SparcStations.

<comment><USER19> Any early UK stuff in there? Atoms and such?

<comment><USER18> Unfortunately no. My collection is almost entirely comprised of machines I had put my hands on in practice.

</comment></comment></comment></comment></comment><comment><USER20> I've been writing a toy BASIC interpreter for about the past ten years: [https://www.youtube.com/user/ZXSpin/videos](https://www.youtube.com/user/ZXSpin/videos)

</comment><comment><USER21> I am just starting to teach my young kids to code. I haven't found a better solution than old fashion BASIC for that stage when you graduate from Scratch but aren't ready to onboard lot of the complexity of a Python or Racket yet. I love Python and Racket but for an 8 year old they still have a lot of background baggage vs the immediacy of BASIC.

</comment><comment><USER22> A shocking amount of processes in the business world still depend on VBA (Visual Basic for Applications) running in Excel (and sometimes Access). It's actually a pretty nice RAD environment, as long as you're not going to scale beyond a team of one or two developers!

</comment><comment><USER23> Not the BASIC with line numbers that you may be thinking of, but VBA in Microsoft Office apps is a descendant of Visual Basic, and is definitely still out there. I use it when writing scripts to parse content out of old Word docs.

</comment><comment><USER24> Liberty BASIC. It's been around for nearly three decades, is very well documented, has excellent support, and is the closest you can get in modern times to the syntax of the original Dartmouth BASIC. So it easily appeals to the old-school crowd like me. But it also has over 300 commands or constants to keep up with modern operating systems and methods which allow for GUI design, event-driven applications, calling DLLs, playing media files, interacting with joysticks, displaying graphics, etc.

</comment><comment><USER25> Sometimes. I use Xojo, the new name for REALbasic. It's a cross platform Basic compiler, that makes desktop apps for Windows, Mac & Linux (also iOS & Raspberry Pi). Sometimes it's the fastest way to prototype an idea - it works a lot like Visual Basic & Delphi did.

I've used it to make a business dashboard for my indie software business, a schedule estimating app using "evidence based" Monte Carlo methods, and I was working on a cross platform Micro.Blog client (inspired a lot by Tweetbot).

</comment><comment><USER26> I don't but my dad does. IBM BASICA interpreter from the 80s. I setup DosBox to run it on Linux.

</comment><comment><USER27> Not really, I dont have any real need to. BASIC holds a special place in my heart as it is where I started in 1979....ish. However, I have very little reason to use it now. There are better and more powerful options today.

I teach kids to program via an after school robotics club and Python is so much easier and more powerful than BASIC ever was.

Occasionally I get nostalgic and break out a BASIC and its fun for a bit but I quickly realize how clunky the language really is.

</comment><comment><USER28> Yes, I use Liberty BASIC V4.5.1. I started programming for fun and relaxation when Sinclair Spectrums first appeared, then on to Commodore and Amstrad. Then it all died down a bit real work intervened and in the meantime BASICs got super complicated. My first reentry was to Visual BASIC uggg… Then I found Liberty, super easy BASIC control of Windows.

</comment><comment><USER29> The scripting language used for developing Roku channels is BrightScript, which is based on BASIC syntax with some bits of other languages thrown in.

</comment><comment><USER3> Beginners All Purpose Symbolic Instruction Code. What a beauty.

<comment><USER30> That's a backronym if I ever saw one.

</comment></comment><comment><USER31> Just on the Commander X16. The built-in interpreter is 100% backwards- compatible with the VIC-20 and C64.

<comment><USER18> CC65 targets it, which is fun. I want a physical one when they are released.

</comment></comment><comment><USER32> I work at a company that makes a niche ERP. The owner wrote the original in Basis International's BBX. Within the last ten years, the company ported the ERP to Java. But, we still use it as a code generator for our dao layer and half the views. Quarterly, I'll go in there to change the templates to improve our dao.

It gets the job done. Part of my reticence is ignorance. I might have a meaningful opinion if I were familiar with more than just println and single line if/else. I am glad I don't need to plan for line numbering in any other realm.

</comment><comment><USER33> Erm, sorta. Does Atari BASIC count?

</comment><comment><USER34> I ocassionaly use it, but mostly only for toy projects. All the basic code I write is pretty interpreter agnostic after moving from applebasic to msbasic in the 90s. It comes down to what is available on whatever platform I am playing with now.

</comment><comment><USER35> The last thing I did in a BASIC dialect was VB.NET circa 2007-8 and was a service in a .NET webapp backend. At the time I was a EE with limited professional programming experience outside of small personal utilities. Like a lot of people I had first encountered BASIC with the Apple II in a school computer lab around 1995 and built some small text adventure games with it.

I echo the sentiment of proxybop; the ability to type things and see something happen is a powerful motivator in learning to code. As a lot of commenters point out, Python seems to have largely replaced BASIC as the "beginner" language to help teach folks. The REPL reinforces this, imo.

</comment><comment><USER36> I seem to remember that my ZX81 Basic allowed a computed "goto" statement, which my later Amstrad BASIC didn't. I mostly used it for type-ins from magazines. I also had a little dabble in machine code (nearly forty years later I still remember the opcode for Return is "C9") but the learning curve was too steep for me to do anything much. I still wonder whether given tutelage or encouragement in programming I could have got way more out of my computer as a child.

<comment><USER30> Very few BASICs had that. Atari BASIC and the Simons' BASIC add-on for C64 BASIC (CGOTO) both had it.

</comment></comment><comment><USER37> Does Visual Basic .NET count? Because I still code in that with Visual Studio 2019.

<comment><USER38> VB was one of the most popular languages in the 90's and into early 2000's. How did it fall out of favor? Was it because of Microsoft forcing VB into "just another skin" over .NET, i.e., a variant of C# that doesn't have curly braces?

<comment><USER39> VB was basically terminated by Microsoft in favor of .net.

It would have been (maybe still would be) amazing to see what the community would pull off with VB6 if Microsoft would open source it.

VB6 IDE was so far ahead of it's time, even today (20+ years later) most languages don't have anything that comes close to what Microsoft had done there in the 90s.

It would probabaly the perfect language for UI development and data analysis (think VBNotebooks), possibly ML.

<comment><USER40> The VB6 IDE is terrible and no one should have to use it today.

It's UI tools were eventually bettered by the WinForms and WPF/UWP Designers.

Having to work in the VB6 IDE against my better judgment still, I have zero nostalgia for it left.

<comment><USER39> It was fast and slick - WinForms (and generally VS.net) was always slow in comparison with too many jobs and options - and WPF, same as WCF, is just an abstraction nightmare (and even slower compared to WinForms).

People want simple, that's why Go is so successful these days - in many ways the enthusiasm (positive and negative) around Go reminds me of VB6.

The fact that VB6 and IDE still works (didnt know that) on modern computers is by itself an amazing thing actually.

<comment><USER40> Obviously we have very different opinions.

> WinForms (and generally VS.net) was always slow in comparison

It was slower at first, sure. Performance was a huge project over multiple years for Visual Studio and the WinForms designer hasn't been considered "slow" in years.

> and WPF, same as WCF, is just an abstraction nightmare (and even slower > compared to WinForms)

Not really? XAML itself is a pretty direct representation of an object graph. More so than the hideously long Attribute blocks at the top of VB1-6 FRM files and the giant blobs of binary nonsense in FRX files.

WPF Binding can be confusing, because like Vue or half the other web frameworks, two-way data binding is _hard_. But WPF has always supported classic double-click to code behind and set properties directly on window controls models of UI code writing, just like WinForms and VB1-6. Just about no one recommends it, for the same reason people recommend two-way binding systems like Vue because it can simplify other parts of your application and can be hugely beneficial on the other side of the learning curve.

Mileage varies on the speed of the WPF designer. Again, performance is something that greatly improved over time. Most of my worst WPF performance problems, when I was using it regularly, were with third party controls I had no control over, and tried to get rid of.

Personally, I'd greatly prefer to write XAML by hand in notepad than design in a UI in VB6 ever again. I'd complain a lot without tools to help me fix basic IntelliSense mistakes in my XAML, but I'd do it. Obviously, everyone's opinion will vary.

> The fact that VB6 and IDE still works

I cannot stress enough: _it doesn 't_. The work I have to do in VB6 is pulling teeth. I have to do it in a VM that for reasons of security now has to be entirely isolated from network access. Even just scrolling code in that VM now takes what feels like subjective minutes to scroll just a few lines at a time. I'm constantly trying to use VS Code to comb through the codebase and prepare my plan of attack before ever opening the VM and it's like preparing punch cards for a Mainframe because I want to make sure I've prepared enough I spend as minimal time in that VM as possible. Navigating the VB6 in VS Code is horrible due to the aforementioned Attribute block garbage and absolutely no sense of navigation because all of the event handlers are wired in the FRX opaque whatsit from what I can tell and you can only assume that functions still do what they were named to do and that a `Form32_Load` wasn't actually repurposed to be `Button98_Click`. For the most part I'm thankful the codebase I'm working on isn't that evil, though I'm incredibly sick of VB6-era Hungarian notation at this point.

<comment><USER41> A little late but mostly in the same boat with you, curious as to what you're using for a VM (W7 here). Sounds like a relatively massive project to be that painful to navigate but for most smaller purposes, the IDE still is at least serviceable. I've had Chrome (or the last versions available to be installed on W7 anyway) drop a bunch of startup resident crap that kills VM performance/network until cleaned up, and the scrolling issue (Ulli's VBMouseWheel?) doesn't sound typical, but you did say "subjective." Installing a full-text search app helped speed up searching through our codebase via VB6 IDE or VS2008's TFS Source Control Explorer, but you've probably been through most of this song and dance already.

<comment><USER40> The VM originated as the physical machine of a previous developer and for a number of reasons is stuck at XP, hence a lot of the reasons it needs to be network isolated at this point.

Also, because it is from an ancient image I don't want to break it because I doubt we could rebuild the ecosystem from scratch, it feels like it is stuck in VirtualBox, which is I think a large part of the slowdown because VirtualBox doesn't just directly support Hyper-V-based acceleration like just about everyone else finally does. I really need to convert it directly to a Hyper-V VM, but I don't have the free hard-drive space at the moment to have multiple VM copies around, haven't had the budget time, and I'm not sure I trust some of the available tools.

I'm using the last build of Git for Windows I was able to get to install on XP, and I pray that there isn't a compatibility break as right now a shared worktree-less folder as "remote" to the VM internal repo is the only way I'm getting code in/out of the VM. I'm generally happy with VS Code outside of the VM for full text search, but VS Code can't build "Find All References" and "Go To/Peek Definition" maps, and that's the biggest itch that I miss, and VB6 IDE never had a good "Find All References" because it predates that tool in VS by like half a decade at least, and more than a decade before "Peek" sub-editors came about.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER42> I code in BASIC all day, every day, developing an application with Xojo. ([https://www.xojo.com/](https://www.xojo.com/))

It has some issues, but it's still probably the best possible tool for making cross-platform desktop applications.

I really enjoy the expressive power and/or other features of Swift, Go, and a few other languages, but if I could write code in only one language it would be an object-oriented BASIC like Xojo.

</comment><comment><USER17> Another point worth making is that there is no right or wrong language in many cases. If you enjoy programming in BASIC, or C, or SNOBOL, or bash, or Python, go knock yourself out. There's really no good excuse for language snobbery.

If you need to program in a particular language at your place of work, or you want to learn a language to compete for a job then that's a different matter. ;-)

</comment><comment><USER17> I do code in BASIC a lot, but I admit to using my own compiler called Liberty BASIC so I am biased. I do see a lot of people complaining that BASIC isn't modern but this just isn't true today. There are many versions of BASIC and a lot of them do have modern structure and scoping and some even add object oriented features. Python isn't the new BASIC. BASIC is alive and well today.

</comment><comment><USER15> Does VB.NET count? I code in that all the time but only because my employer makes me.

I still break out the QBasic once in a while. I have it in DosBox for when I get the itch. In AppleWin I toy with Applesoft Basic. I also play a bit with QB64 which is a modern QBasic clone.

Normally I write code in C# or Python though. C# is my main language and it's what puts food on my table.

</comment><comment><USER43> python is the new basic

<comment><USER14> Pretty much. Just like BASIC, Python is a gateway drug to all of computing.

BASIC was designed with a simple, algebraic syntax to enable non-experts to learn how to write simple programs in an afternoon, and Python seems to follow in that mold.

In fact, the following BASIC program runs fine in Python 2.7:

a = 2

b = 3

print "Hello, world! Let's do some math:"

print "a * b =", a * b

</comment></comment><comment><USER44> Only if something really can't be done in excel natively -- and that gets more rare every year.

</comment><comment><USER45> I wrote some on-printer programs in basic recently as it was the only thing the printers could run.

</comment><comment><USER46> Yes, but it's called Javascript now.

<comment><USER44> Javascript because it is everywhere, or Python because it is so simple?

</comment></comment><comment><USER47> Yes.

XBASIC, QB64, and various BASICs specific to old computers I still use, like MBASIC on my Osborne 1.

</comment><comment><USER48> Yes, a derivative called UniBasic (which is itself a derivative of Pick BASIC) but the system it's used with provides an additional set of extensions to the language. UniBasic + extensions results in a language referred to as Envision.

<comment><USER49> Oh man, UniBasic and DataBasic. I did that for 20 years until it fell out of favor here. I really miss it.

</comment></comment><comment><USER40> Unfortunately I still have to do maintenance on ancient VB6 code. I'd rather not, and have been working to reimplement it in more modern environments, but you go to war with the budgets you have not the budgets you wish for.

</comment><comment><USER50> We still do some development in .NET 3.5 VB (huge health care company). It rules and I love it. We do angular, node, c#, yadda yadda, also, but I will always return to my #1 (and first) love, BASIC.

</comment><comment><USER51> Nah.

      (prog ()
       10 (print "hello")
       20 (go 10))

</comment><comment><USER52> I don't call myself a programmer at all but all my environmental dataloggers are programmed using CRBasic so yes I still write code in some form of BASIC if that counts.

</comment><comment><USER53> I know there are still a lot of VB6 Apps in Small to Medium Business. And Visual FoxPro, which has a languages 99% similar to BASIC is still being used as well.

</comment><comment><USER54> No, but hard to beat Classic ASP for simple web apps. I wrote a BASIC interpreter with built-in SQL that was very useful for scripting.

</comment><comment><USER55> No, but I've jut seen kit of scientific gear (ADC module) that boasted about having examples in both fortran and basic to make integration easy.

</comment><comment><USER17> Thirty+ years ago BASIC became a modern structured programming language, but so many people seem ignorant of this.

</comment><comment><USER56> Nope!

</comment><comment><USER57> Occasionally, in tiny basic running on an Arduino powered robot when teaching classes at our local Makerspace.

</comment><comment><USER58> I have an app for my own use written in Purebasic. I occasionally recompile it to keep it up to date.

</comment><comment><USER59> vb6

<comment><USER60> Me too, but it is getting harder and harder to install.

<comment><USER59> there is a 3rd party installer that works pretty good (vs6installer) and there are dedicated\active forums for vb

</comment></comment></comment><comment><USER61> The last time I used BASIC was in 2001. QBASIC was <3

<comment><USER47> Check out QB64: [https://www.portal.qb64.org](https://www.portal.qb64.org)

</comment></comment><comment><USER62> Still? I never have

</comment><comment><USER63> I still use BASIC for writing DOS programs.

</comment><comment><USER64> The last actual BASIC I wrote was in 1985.

<comment><USER65> wow, the first line in BASIC I wrote was in 1995. (millennial here)

</comment></comment><comment><USER66> 10 CODE IN BASIC

20 ???

30 GOSUB 10

40 PROFIT!

</comment><comment><USER67> qbasic 4.5</comment>


Request's Past, Present and Future - <AUTHOR> https://github.com/request/request/issues/3142 <comment><USER2> [https://github.com/request/request/issues/3142#issuecomment-...](https://github.com/request/request/issues/3142#issuecomment-479085436)

mikeal commented 6 days ago:

> Let's just bump the major version when we deprecate. That way most people > depending on the project won't see this error until they try to upgrade to a > new major, which means they are actively developing it and really should > look for an alternative.

<comment><USER3> I don't think that's a good idea.

The problem is that most of replacements are of lower quality than request.

I just moved to request from axios about a week ago. Axios has multi-year persistent bugs around proxy support, modifying https agents, and unhandled promise exceptions. Probably due to low contributions (the code base is quite complex). You only find these out after investing into axios heavily.

To new users axios looks superficially as good as request (similar number of users, promises by design, etc)

</comment></comment><comment><USER4> _request will stop considering breaking changes._

Does the JS community seem to consider that a bad thing...? To me, this sounds more like "is becoming stable" than "is being deprecated".

<comment><USER5> As the post explains, Javascript has changed significantly since request was first created, and that left them with 3 real options:

1\. Try to make massive breaking changes to the request module to make it more easy to work with in the current javascript landscape (promises, new streams, async generators, etc...). This is a problem because then the millions of blog posts, comments, stack overflow answers, and more are all now outdated and wrong. And as the author explained, it would basically be a completely new library.

2\. ignore it and become a thorn in the side of devs everywhere (oh, i can use new streams and promises in 99% of my codebase, except for a few old modules that we still use or have to code around until they get removed as they are difficult to work with)

3\. Deprecate request, and make a new module under a new name which can adapt to the current landscape.

So if you value non-breaking changes over developer experience and complexity of integration, then it's a good thing for you. If you value tools which work with the language as it exists now rather than against it, it's also a good thing for you since the new "request by a different name" will work much better in current javsascript.

This is the opposite of what Angular did. Angular 1 vs 2+ were basically different libraries. Rather than take the angular route and just increment the number and keep the name, they are trying something different. They are throwing away the name and starting fresh.

<comment><AUTHOR> I'll start from bottom options:

3) "deprecate request and start new" \- and discard 10 years of commits, stability and tests? Wouldn't be a rational way to go.

2) "ignore it and become a thorn in the side of devs everywhere" \- it wouldn't become a thorn more than it is now, would it? It's a 10 year old package that's downloaded 14 million times a week. It doesn't feel a thorn with those numbers. You can also `util.promisify` it if a callback is a "thorn" for you as a developer. (but see [https://news.ycombinator.com/item?id=19604867](https://news.ycombinator.com/item?id=19604867))

1) "there are a lot of google results with solutions that the new breaking changes will make obsolete" \- that's what semver and major versions are for. "We'll break Stack Overflow answers" doesn't feel like a valid reason. jQuery has had its fair share of breaking changes in the last 12 years, and we know the numbers if we compare `jQuery` vs `request` questions on Google/Stack Overflow, so again, it doesn't feel like a valid reason.

<comment><USER5> As another commenter answered 3 and 2 (and I agree with them), i'll answer 1:

There's a difference between "has some breaking changes" and "will have basically an entirely new API, and will support different features and make different tradeoffs"

Like for instance AngularJs 1.x vs Angular 2+, or what seems like every major version of react-router, or various other examples of this that come back around and bite people. The only difference with those is that they don't have literally 10 years of documentation, blogs, SO answers, and more with no version numbers on them.

This isn't an instance where dogmatic application of the "rules" is a good idea. This is one where choosing to make a new library under a new name is the lesser of 2 evils. The hope is it will cause less problems, less confusion, less difficulty for both new and old devs, and be better for everyone.

I don't know about you, but i've absolutely spent ~30 minutes on multiple occasions trying to figure out why some documentation seems to be wrong, or a feature isn't working in a library only to realize that i'm not on the latest version or the docs don't have an easy way to go back through old versions, and it's a big timewaste as well as a source of bugs. This move is trying to prevent that!

<comment><USER6> > There's a difference between "has some breaking changes" and "will have > basically an entirely new API, and will support different features and make > different tradeoffs"

Doesn't this library also predate the semver spec, and wasn't just such major alterations the purpose of the major version number back then?

</comment></comment></comment></comment></comment><comment><USER7> Hmm, so there are 41K packages depending on 'request' but from now on everything that is merged into master is immediately going to be published?

Sounds like a recipe for disaster not unlike what happened with event-stream.

<comment><USER8> "Let's just bump the major version when we deprecate. That way most people depending on the project won't see this error until they try to upgrade to a new major, which means they are actively developing it and really should look for an alternative."

You won't be able to enter the "recipe for disaster" without at least seeing the warning when you update your dependencies. At that point it's your prerogative if you want to continue with a deprecated package.

</comment></comment><comment><USER9> I think a comment in this thread should be visible to highlight any alternatives to request.

I've been mentions to got ([https://www.npmjs.com/package/got](https://www.npmjs.com/package/got)), if anyone cares to point to other alternatives, that'd be nice, if only for educational purposes.

<comment><USER10> fetch() has an excellent API. It's native in browsers and it has a good Node implementation called node-fetch.

[https://developer.mozilla.org/en- US/docs/Web/API/WindowOrWor...](https://developer.mozilla.org/en- US/docs/Web/API/WindowOrWorkerGlobalScope/fetch)

<comment><USER11> How come fetch hasn't been integrated directly into node, like how its integrated directly into browsers?

<comment><USER12> it uses a lot of infrastructure that node doesn't have, like Request objects and Response objects and Body objects and mime checking etc etc list goes on.

if someone feels like adding all those things to node and feels like arguing with our core maintainers about the duplication with http then maybe it will be added.

[https://github.com/nodejs/node/issues/19393](https://github.com/nodejs/node/issues/19393)

</comment></comment></comment></comment><comment><USER13> Node really doesn't pay attention to nice API design. If all readable streams had

`Stream<T>.toBufferAsync(): Promise<Buffer>`

`Stream<T>.toStringAsync(): Promise<string>`

`Stream<T>.toArrayAsync():Promise<T[]>`

then you could quickly collect any stream you want into a promise, including the stream returned by request.

Here is how you do a Stream API properly.

[https://api.dartlang.org/stable/2.2.0/dart-async/Stream- clas...](https://api.dartlang.org/stable/2.2.0/dart-async/Stream-class.html)

Has first, last, toList(), map, reduce, filter, takeWhile, skipWhile, Stream.periodic and other great goodies that make stream usage nice and easy.

Too bad Google never invested this amazing API designer power into JS, they could've been the "apache commons" of node.

<comment><USER12> We're getting there. I made both node and web streams into async iterables, and have now proposed this for js standardisation: [https://github.com/tc39/proposal-iterator- helpers](https://github.com/tc39/proposal-iterator-helpers)

</comment></comment><comment><USER14> I use this package... which mirrors the whatwg fetch API and has support for promises baked in:

[https://www.npmjs.com/package/isomorphic- fetch](https://www.npmjs.com/package/isomorphic-fetch)

</comment><comment><USER15> What's the alternative to Request? I see Mikeal has made Bent [1], but I'm not sure if the new, alien syntax is worth it? Also found got [2], thoughts?

[1] [https://github.com/mikeal/bent](https://github.com/mikeal/bent) [2] [https://github.com/sindresorhus/got](https://github.com/sindresorhus/got)

<comment><USER16> bent seems too "bare-bones" for my daily usage. If you like that good for you, but I have been using axios[0] which is more heavy weight.

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

<comment><USER17> Problem with Axios is that it has almost 500 open issues and not enough maintainers.

We've moved to fetch, which is not as handy, but is the standard lib in the browser. Actually we use wretch which adds a more convenient API on top of fetch.

[https://github.com/elbywan/wretch](https://github.com/elbywan/wretch)

For Node we use node-fetch which mimics the fetch API using the native HTTP module in the background:

[https://github.com/bitinn/node-fetch](https://github.com/bitinn/node-fetch)

<comment><USER16> I'm using axios in production for over 2 years now. Can you point me to a certain issue you had I'd need to anticipate (or check if I already have)?

<comment><USER17> I've used it in production for 3-4 years with no issues (that I know of) but it's a ticking time bomb.

[https://github.com/axios/axios/issues/1965](https://github.com/axios/axios/issues/1965)

[https://www.reddit.com/r/javascript/comments/an94xq/axios_ne...](https://www.reddit.com/r/javascript/comments/an94xq/axios_needs_maintainers/)

<comment><USER18> How is it a ticking time bomb if all of the tests pass in that package?

</comment></comment></comment></comment></comment></comment><comment> UK-Al05 I don't know much about the javascript ecosystem, but isn't this what major version updates are for?

<comment><USER19> There's precedent for outright deprecating a package when others exist that do a better job of meeting current development needs. With Promises and node/browser cross compatibility being the biggest ecosystem shifts, there are a few newer choices that already meet those needs. Also, `request` in particular would be gross to upgrade since so many people rely on additional dependencies that add compatibility for things like Promises, retry strategies, etc., all with varying degrees of active maintenance.

</comment></comment><comment><USER20> As someone who's tried to switch off of `request` recently, I'm worried about this. I didn't find any of the alternatives to be particularly viable.

</comment><comment><USER21> Gosh. I was rather hoping the days of Javascript churn were over but reading this reminds me of why I lost interest in front-end web development.

<comment><USER18> `request` is mostly used on the server-side...

</comment></comment><comment><USER22> Is the implication that every library module with async code must be rewritten to use promises or else be obsolete?

<comment><USER12> it's not just promises. as the maintainers of request continue trying to try to fix architectural bugs they are finding it would be easier to rewrite it from scratch rather than continue modifying the current one. this is said in about as many words in the linked issue too, so make sure you read before commenting ;)

<comment><AUTHOR> "easier to rewrite from scratch" is a fallacy. [https://www.joelonsoftware.com/2000/04/06/things-you- should-...](https://www.joelonsoftware.com/2000/04/06/things-you-should-never- do-part-i/)

<comment><USER23> "Easier to fix if they allow themselves to completely break the public API" was how I interpreted the situation with request.

<comment><AUTHOR> That's what MAJOR stands for in semver - when you make incompatible/breaking API changes

</comment></comment></comment></comment></comment><comment><USER24> What's the reason for being in maintainance mode then ? I don't see it in the post though.

<comment><USER25> I because think maintenance mode is a responsible alternative to abandoning the package altogether as it has (from the post) ~41k packages that depend on it.

</comment></comment><comment><USER26> Clickbait title on HN? He said it's one of the first, not the very first one. Also just say "request". Anyone interested in an old npm package being deprecated will probably know this module. "request is being deprecated on NPM" is eye catching enough.

<comment><USER27> On top of this it's not being deprecated, although it seems they considered that option. It's just going into maintenance mode, which makes sense for a library which is essentially done (and why wouldn't it be, if it's been around for 10 years?).

<comment><USER28> [https://news.ycombinator.com/item?id=19604560](https://news.ycombinator.com/item?id=19604560) explains why it is not really going in to maintenance mode though.</comment></comment></comment>


Show HN: My Weekend Project, leftright.me - <AUTHOR>

From inception Thursday night to near-feature-complete on Sunday morning, I consider it one of my better weekend hacking projects.
http://leftright.me/
I built it with node and Redis which was particularly fun. Redis truly is the AK-47 of databases.
This project has deeply engrained my longtime hate of Internet Explorer. Everything should be kosher in Chrome and FF but I had to make some compromises for IE.
I sent the link to a few friends and the userbase grew from there. It's not much but it's definitely something for having it live for a day.
I'm really looking forward to any constructive criticism you guys can throw my way. Thanks! <comment><USER2> This is kinda similar to a site I was thinking about doing - so you may as well port it and do it instead since you already have the codebase. The concept is "Who's the bigger douche" - pit Michael A. against Jason C. and so forth. :-)

Oh, good job - especially for a weekend project. Like others have stated, it wasn't immediately clear to me the function of the site at first.

<comment><AUTHOR> Hhaha that's a great idea. You might enjoy the predecessor to this, <http://mugshotwars.com/>, though it's not my proudest creation.

<comment><USER2> Love it! :-) Same concept as biggest douche, different audience.

</comment></comment></comment><comment><USER3> I'm usually very good at figuring out what an app does, but in this case I had to think about 20-30 seconds, that tells me that the explanation needs to be a bit clearer.

An interesting idea- I'll poke around and see what else I can say.

<comment><USER4> Well, I see two pictures and the words compare who's hotter instantly. It's for the lack of a better word a FaceMash, which itself is a clone of a few dozen other predecessors before it.

No further explanation needed. Your copy, however, needs work to compel me to bother spending 30 seconds to sign up and play with it.

<comment><AUTHOR> Was the features list not compelling, or simply too little?

<comment><USER3> No the features list was compelling, it is an interesting site. I just mean that when I first signed on, I didn't immediately "get" what it was about- maybe make the "who's hotter?" example from the 1st screenshot a bit more prominent or larger, because once you see that, the purpose of the site is self explanatory.

</comment></comment></comment></comment><comment><USER5> link: <http://leftright.me/>

This site is basically a clone of something I believe OK Cupid offers, which is to let other users rate your photos to find the best profile picture. Based on their data blog it looks as though OKC let you pick some demographics of the people who vote on you too, which this site does't currently.

<comment><AUTHOR> Thanks for letting me know about this. I wanted to stay away from making it a dating site but I think private messages would be a good feature to add.

I'm planning on adding some more granularity to the battles page if I ever get more users.

</comment></comment><comment><USER6> The battle pictures thing seems a lot like <http://www.facemash.com.au/>

</comment><comment><USER7> The design is a bit _too_ much like <http://threewords.me>, intentional?

<comment><AUTHOR> Yeah, I wanted to one-up Mark Bao.

<comment><USER8> this sounds much more complicated than threewords.me

</comment></comment></comment><comment><USER9> The idea was hardly original in 2001. What made you start this in 2011?

<comment><AUTHOR> Lack of employment.

</comment></comment><comment><USER10> nice layout and design, esp for a weekend

<comment><AUTHOR> Thanks, still trying to improve it. The settings page feels a little messy to me

<comment><USER10> I will say that having large forms at the right side of the page kind threw me off. Those kind of things, you expect more towards the center.

Current background, its not at all clear what that means</comment></comment></comment>


Which companies will buy lots of companies in 2011? - <AUTHOR> http://blog.eladgil.com/2010/12/companies-who-will-buy-companies-in.html

<comment><USER2> It seems like all Oracle ever does is buy companies, they are a notable omission from this list.

<comment><USER3> Oracle has to acquire companies. It's the only way it manages to grow its revenue. As far as it's core products go, it already sells licenses to almost all the Fortune 500's. If you're selling to everyone it's tough to find new customers... Oracle doesn't sell to the small guys

</comment></comment><comment><USER4> Adobe's recent $1B quarter (and all the renewed confidence that comes with a milestone like that) will fuel their continued spree.

</comment><comment><USER5> Cisco was pretty quiet on M&A front in 2010, so they're a contender

<comment><AUTHOR> Oh, thats a good one! Wonder what changed for them?</comment></comment>


Understanding DNS Record Types - <AUTHOR> https://pressable.com/blog/2014/12/11/understanding-dns-record-types/

<comment><USER2> "Blank Name - A record that has nothing in the name slot gets used for all requests made to the base/naked form of the domain."

No, a blank name uses whatever name was used on the previous record. Near the top of the zone file, that name is usually the domain name because of the SOA record. But later on, it won't be.

<comment><USER3> Seems implementation specific. BIND does this you're right, but many services don't follow the rule as closely.

<comment><USER2> Actually, from RFC 1035, section 5.1:

"If an entry for an RR begins with a blank, then the RR is assumed to be owned by the last stated owner."

[https://www.ietf.org/rfc/rfc1035.txt](https://www.ietf.org/rfc/rfc1035.txt)

</comment></comment></comment><comment><USER4> I don't think this article is technically deep enough to be of any significant value ( at least for me ).

Not discussed at all ( and that people interested in the topic should know ) :

1\. NS, SOA records

2\. What exactly is TXT record.

3\. What's the difference between CNAME, A Records

Later on I also checked the first article [1], which even doesn't explain what TLD is.

[1] [https://pressable.com/blog/2014/12/04/dns-management- basics/](https://pressable.com/blog/2014/12/04/dns-management-basics/)

<comment><AUTHOR> We'll be deep diving on specific record types and their uses next week.

</comment></comment><comment><USER5> A question regarding TTL. If changing the TTL value of a record will speed up (for want of a better word) when that record is available to the DNS server, why would you ever set the TTL to 3600 or more? I understand that there is some kind of caching going on but I don't actually fully understand TTL and what is ideal.

Any advice/insights/explanations appreciated!

<comment><AUTHOR> A lot of that has to do with costs and service levels provided by your DNS provider. There's a couple of good points at Server Fault: [http://serverfault.com/questions/388289/what-are-the- benefit...](http://serverfault.com/questions/388289/what-are-the-benefits-of- a-high-ttl-for-dns)

</comment></comment><comment><USER6> One thing I've been wondering for a while and haven't found a answer to.

Providers like Digital Ocean let you use their nameservers. Why would I do this over just using the registrars nameservers?

<comment><AUTHOR> A lot of that has to do with features and quality of the service. If you have advanced DNS needs (failover, traffic directing, etc) you may need to use a third party. If you have very basic needs sometimes the host can provide those easily for you. Additional conversation: [http://stackoverflow.com/questions/8605200/settings-dns- reco...](http://stackoverflow.com/questions/8605200/settings-dns-records-with- hosting-company-or-registrar)</comment></comment>


FCC finds AT&T's purchase of T-Mobile not in the public interest - <AUTHOR> http://www.itworld.com/networking/227365/bulletin-fcc-finds-atts-purchase-t-mobile-not-public-interest

<comment><USER2> RIP Capitalism. It cracks me up when people here in Australia cite America as a shining bastion of capitalism, when purchases are regulated 'in the public interest'.

<comment><USER3> You don't think that monopoly regulation is necessary to prevent capitalism from completely failing? I think the US learned that in the 1880s with Robber Barrons.

<comment><USER4> The late 1800s and early 1990s were crony capitalism, encouraged by a corrupt court system and naive immigrants who bought into the political machines. A fully free market actively discourages monopolies by removing all barriers for competition, and encouraging disruptive startups.

<comment><USER5> This may come off as ignorant, because I don't know tons about economics or capitalist history, but is the U.S. capable of surviving a removal of the barriers? Given the size and political influence of our corporations? And flexing my ignorance again, is there a real world example of success for fully free market functioning?

Genuinely interested, but I don't know if I'm expressing myself properly, so don't eviscerate me ;)

<comment><USER4> If the US were to attempt to remove the barriers to entry, it would have to be very carefully with a scalpel and not destroy them all in one blow with a hammer. One approach which would help curb corporate power would be to start removing the civil liability limits on many sectors. To use the oil industry as an example, the reason BP got off so lightly after causing damage to nearly all industries reliant on the gulf coast was that there was a $75M cap on civil damages, where without that cap, BP easily could have gone out of business after being sued under Tort law.

The United States in it's early days was a decent example of a near-free market functioning, as there was no central bank and minimal regulation on business.

Also, I'm glad to see you're interested in learning more. Economic theory is a very nuanced subject, with many differing opinions, studies and models. One that I wish I knew much better.

<comment><USER5> Thanks for the great answer, I appreciate it :) I'll continue reading up, too.

<comment><USER4> By the way, if you are interested in the Austrian School of economics, which advocates a free market, the Ludwig van Mises Institute has a very expansive collection of over 4100 articles, books and essays freely availiable as PDFs and eBooks here (<http://mises.org/literature.aspx>).

Also, I recommend reading about the Keynesian School of Economics, which advocates central planning in the form of a central bank (The Federal Reserve), so you can best make your own decision. Wikipedia has very good introductions to both schools, and can provide a basis for your further readings.</comment></comment></comment></comment></comment></comment></comment>


CNN – 1996 Year in Review - <AUTHOR> http://edition.cnn.com/EVENTS/1996/year.in.review/ <comment><USER2> > Then in April 1995, right after the devastating bombing at a federal > building in Oklahoma City, the Unabomber attacked again, perhaps peeved that > another bomber was making headlines. A package bomb killed a timber industry > lobbyist in Sacramento. Days later, Unabomber threatened to blow up a plane > out of Los Angeles; and then he promised to stop the bombings if The New > York Times and Washington Post published his 35,000-word, anti-technology, > anti-modern-civilization diatribe.

This guy must be really disappointed to see what the world has became.

[http://edition.cnn.com/EVENTS/1996/year.in.review/topten/una...](http://edition.cnn.com/EVENTS/1996/year.in.review/topten/unabomb/unabomb.index.html)

<comment><USER3> Yup. IIRC he continues to write from prison...

EDIT: removed hasty personal judgement.

<comment><USER4> His latest book came out last year: [https://www.amazon.com/Anti-Tech- Revolution-Theodore-John-Ka...](https://www.amazon.com/Anti-Tech-Revolution- Theodore-John-Kaczynski/dp/1944228004)

<comment><USER5> I wonder if the profit from the book sales goes to him ? I'd be interested in reading it but feel conflicted about the $

<comment><USER6> In the publisher's description it says:

> Note: Theodore John Kaczynski does not receive any remuneration for this > book.

</comment></comment></comment></comment></comment><comment><USER7> Heh, I recently came across a "guestbook" [0] that I set up ~20 years ago. I doubt that new posts work but it's still there all these years later.

HTML was so much simpler back then.

[0]: [http://qsl.net/n9wwv/gbook/guestbook.html](http://qsl.net/n9wwv/gbook/guestbook.html)

<comment><USER8> >Hello from Croatia!

Reminds me of a feeling that the web had back then. Full of wonder, opportunity; it felt safe, friendly, cozy. I wish I could explain it better. Kind of like a party with trusted friends with shared interests and discovery.

Now it feels like a lot of work and little wonder. It feels unsafe, hostile and you know you are being watched, but not for your protection.

<comment><USER9> OTOH,the oldest guestbook entry is spam advertising the signer's web page lol. That part was there from the beginning.

<comment><USER8> Yea, and not just the greasy salesmanship and profiteering, but the psychopaths and bullies were there as well.

It was still a lot different, and I liked the fact it was filled with a lot more nerds, relatively speaking.

<comment><USER10> When getting online required more effort, it filtered out a lot of people who weren't serious. I often wonder what is the equivalent to a BBS today.

</comment></comment></comment></comment></comment><comment><USER11> Contrast the load times between those 1996 pages from the current site. Keep in mind there is probably no advertising spyware in the 96 site and it may account for most of the HTTP requests on the current site.

<comment><USER12> What was the load time of the page on Netscape Navigator and a Pentium processor over 1996 era dialup?

<comment><USER13> Slow

<comment><USER12> In fact, I'd guess slower than the modern cnn.com homepage on modern hardware and software.

</comment></comment></comment></comment><comment><USER14> >Stay up to date with the text-only version of our website [https://lite.cnn.io](https://lite.cnn.io)

[https://twitter.com/cnnbrk/status/906655818950553600](https://twitter.com/cnnbrk/status/906655818950553600) (10 Sep 2017)

HN discussion: [https://news.ycombinator.com/item?id=15210022](https://news.ycombinator.com/item?id=15210022)

<comment><USER15> ok ?

<comment><USER14> I mean they figured there is a demand out there for "light versions" of websites, which this thread is mostly about.

<comment><USER16> there's also [https://mbasic.facebook.com](https://mbasic.facebook.com) if we're going to talk about light versions of websites.

</comment></comment></comment></comment><comment><USER17> Look at how fast it is! DOM content loaded after just 100ms, whole thing done in 400.

</comment><comment><USER18> Funny that TV graphics or magazine design in '94 weren't bad, but web design graphics were terrible.

It seems like the web could have been beautiful back then, especially with flat design and whitespace techniques.

<comment><USER19> Let us not forget that you're talking about a time before CSS was available, let alone well supported--let alone _consistently rendered_. This is a time when "web safe color palette" was part of the day-to-day web design lingo.

I could see this being a fun challenge, though--how pleasant of a modern-look web page can you make using only HTML <=v4.0; only 256 'web-safe' color palette; limited font choices. One could demo their work via BrowserStack.

EDIT: I totally forgot to think about the fact that "whitespace techniques" would have been quite a bit more difficult given that a good 80% of your users were viewing on screens that were either 640x480 or 800x600. On a 640x480 screen, this comment takes up half of the space above the fold.[1]

[1] [https://imgur.com/x0keeI1](https://imgur.com/x0keeI1)

<comment><USER20> Another thing often forgotten: font-sizes where relative to the system, meaning, they where usually bigger on Windows (depending on the system-wide font settings) and there was no rational for text-image integration.

This became even more severe, when pixels began to shrink with higher display resolutions, where Windows would adjust – i.e. increase – the font-size relatively, while Macs stuck to a positive 72dpi definition for the screen to keep images and text in balance.

E.g., you had an image and a few lines of text to its right. Size the layout so that the text will span vertically over the height of the image, when seen on an average Windows system. Now, on a Mac, it's just about 2/3 of the height … (Considering that all layout had to be done using tables, we may begin to understand that you had to be rather defensive in your approaches. Also, complex tables resulted in perceivable rendering times.)

</comment></comment></comment><comment><USER21> It is interesting how pages like these are like a time capsule. For instance, I was just watching the movie Philadelphia yesterday and how many of the misconceptions/prejudices around AIDS were prevalent then. And here, in this link, there is news about some advances made there.

<comment><USER22> My recollection is the prejudices around AIDS had diminished dramatically by the time Philadelphia came out. But, the movie is (I think) depicting a past event when things would have been different. Also, movies often blow things a bit out of proportion. In the early-to-mid 80s, though, it would have been spot on.

</comment></comment><comment><USER23> This 'Year in review' page doesn't look much like the actual CNN news pages looked:

[http://cdn.cnn.com/cnnnext/dam/assets/150102183958-01-cnn- ho...](http://cdn.cnn.com/cnnnext/dam/assets/150102183958-01-cnn- homepage-1995-super-169.jpg)

This is from [http://www.cnn.com/2015/01/02/world/gallery/cnn-homepage- thr...](http://www.cnn.com/2015/01/02/world/gallery/cnn-homepage-through-the- years/index.html) which gives a better idea of how the front page evolved over time.

</comment><comment><USER24> Much better load times than the current one.

<comment><USER25> Because they wrote it in an era when internet connections were slow. They have not necessarily moved along the time-to-load-vs-page-size tradeoff curve so much as the curve itself has shifted due to improved connections and computation speeds.

It's like looking at a newspaper from a century ago and remarking "how much cheaper it was back then!" Technically you're right, but the change in nominal price is not a useful economic indicator.

<comment><USER26> A newspaper a century ago is an excellent analogy.

Then, the front page was filled with advertising. The content was almost entirely sponsored, or in times of war or national fraction, overwhelmingly towing the official line.

Newspapers a century ago are exactly the same as popular web today.

It's like looking at an article from a news site today, and being presented with a splash-screen 5-second advert, or not being sure who sponsored the content you're reading.

100 year old press is identical to web-news today.

</comment></comment></comment><comment><USER27> > It's a question journalists like to ask themselves at the end of ever year.

This sentence has had a typo for 21 years.

</comment><comment><USER28> The image map on the very bottom doesn't appear to work, at least not on Chrome for Android.

CNN appears to never take anything down, here's CNN's coverage of the OJ Simpson trial from 1999 - [http://www.cnn.com/US/OJ/](http://www.cnn.com/US/OJ/)

<comment><USER29> A lot of the linked stories 404 and many image assets are missing. It's still cool to see the old web designs, though.

</comment></comment><comment><USER4> Plane crash second biggest story of the year — CNN hasn't changed.

</comment><comment><USER30> I clicked on "Games" at the bottom of the page and all I got was [this lousy webmap file]([http://edition.cnn.com/EVENTS/1996/year.in.review/serverside...](http://edition.cnn.com/EVENTS/1996/year.in.review/serverside.map?520,41)).

</comment><comment><USER31> Well news seems to have been a lot tamer in 1996. What a monstrosity it has has become.

</comment><comment><USER32> Lol. As a kid I was living near Kobar towers (Dhahran). It rattled my windows.

<comment><USER33> Wow same. My dad thought my brother and I were slamming doors. Crazy to see a story about Dhahran.

<comment><USER32> Did you go to the Aramco school at dhahran? We might have met.

<comment><USER33> Yeah. Born and raised in Dhahran. Finishing up college now! Dad was in exploration.

</comment></comment></comment></comment><comment><USER34> Huh. Actually, it looks like they cleaned up a bit recently. As of a few weeks ago, there were far more skeletons in place (as literally scoured from robots.txt).

Snapshot from their antiquated ad spaces listing- [https://pp19dd.com/2013/02/attack-of-test3-from-outer- space/...](https://pp19dd.com/2013/02/attack-of-test3-from-outer- space/#specimen_1)

<comment><USER35> To nitpick on your example No 3:

The question is "what amount of money would make the injured party whole again", to which the answer was "One million". To that one million, another million was added in punitive damages, summing to the total of two million.

Punitive damages are added to "regular" damages. The idea is that, for example, you may have only lost $30 when your bank fudged the numbers in their favour. But only awarding you $30 would be too low to discourage such behaviour by the bank, and it would also be too low to make it worth your time and money to sue.

<comment><USER34> That was my point exactly- annotations that require annotations.

Think of it from the reader's perspective: they see $2 million highlighted in an article, they mouseover, click, tap or otherwise interact with it. But then a bubble comes up and gives them a different number that can't possibly be immediately interpreted without further reading and maybe analysis. It's confusing to be presented by conflicting information at a glance.

Annotations are meant to take a reader to primary evidence or otherwise supplement an understanding. However, primary evidence isn't always so precisely straight-forward to be able to do that sensibly- that was my point.

</comment></comment></comment><comment><USER36> Waiting for someone to say "fake news" about any of the stories he doesn't like...

</comment><comment><USER37> Frames!</comment>