Crystal 0.25 - <AUTHOR> https://crystal-lang.org/2018/06/15/crystal-0.25.0-released.html <comment><USER2> As a long-time Rubyist, I took a serious look at Crystal for the first time and discovered a lot of the best batteries of Ruby included in Crystal. So pleased to find an RSpec-like DSL for testing, for example, and Crystal's Rails-like framework, Amber, generates scaffolds with Bootstrap built in. It's almost cheating how much learning and takeaways the Crystal core team can borrow from Ruby! I'm really liking it so far.

<comment><USER3> While Ruby allows you to choose and provide way too many choices, many guns for you to shoot your foot into. Crystal decided some are not good and actually enforce those best practices.

I think Lucky [1] is actually a more Rails Like framework. ( Or more like both are NOT like Rails. As features rich or heavyweight, Rails provides more then you will ever need. )

[1][https://luckyframework.org/why-lucky/](https://luckyframework.org/why- lucky/)

</comment></comment><comment><USER4> I'm confused about the state of threading in Crystal. See the last message in : [https://github.com/crystal- lang/crystal/issues/1967#issuecom...](https://github.com/crystal- lang/crystal/issues/1967#issuecomment-391321948)

I'm hoping to see more languages with light-weight threads automatically mapped (multiplexed) to physical threads, like in Go. So far, based on the crowd-sourced table I started working on, it is otherwise only Ada, Haskell and Pony (in addition to Go) that seems to meet these criteria:

[https://docs.google.com/spreadsheets/d/1BAiJR026ih1U8HoRw__n...](https://docs.google.com/spreadsheets/d/1BAiJR026ih1U8HoRw__nzbCSFnnHicWrjxpW5l6-O3w/edit#gid=0)

<comment><USER5> Crystal will eventually have go-style parallelism as well as go-style concurrency. It's a hard thing to implement, and we don't have the resources of google (in fact we have very little resources at all) so it's taking time. Until 3 weeks ago, nobody at all was working full-time on crystal, it was entirely a spare-time project, so progress is slow, i'm incredibly proud of what we've managed to achieve so far and looking forward to more in the future.

Really, the best way to help the language is to donate: [https://salt.bountysource.com/teams/crystal- lang](https://salt.bountysource.com/teams/crystal-lang)

<comment><USER4> Great to hear, thanks for the info!

</comment></comment></comment><comment><USER6> I've been using (and contributing to) Crystal for some small projects over the last few months. Writing C bindings within it is amazingly stress-free[1].

It's still an unstable language (there are plenty of breaking changes in this release), but I highly recommend it -- especially if you like both static typing and Ruby.

[1]: [https://github.com/woodruffw/x_do.cr/blob/master/src/x_do/li...](https://github.com/woodruffw/x_do.cr/blob/master/src/x_do/libxdo.cr)

</comment><comment><USER7> I really like Crystal, and while it hasn't reached a 1.0 yet, it is still great and used in production. I think the main selling point of Crystal is performance + nice syntax. The docs are great and will help anyone curious to learn Crystal along the way. Crystal's biggest problem is that it doesn't have the support of a company or a large base of users so the core team isn't funded as much as they'd like. All in all, I think it is a great language!

<comment><USER8> > Crystal's biggest problem is that it doesn't have the support of a company

I thought it was supported by Manas ([https://manas.tech/](https://manas.tech/)).

<comment><USER5> Manas is a tiny company without the resources to spare a single developer. The money to pay for the single developer who is working full-time on crystal comes entirely from bountysource and other donations: [https://salt.bountysource.com/teams/crystal- lang](https://salt.bountysource.com/teams/crystal-lang)

</comment></comment></comment><comment><USER9> Great to see some steps made towards supporting Windows! (i.e. "non-POSIX systems")

Now a pressing issue (though not for everyone) is that the compiler needs to escale from the current state because it takes too much memory and too much time to compile, but last time I checked it still wasn't crystal clear how to improve it.

<comment><USER10> Oh, they copied neglecting windows from RoR? :/ That was the reason I skipped Rails back in the day.

<comment><USER5> Crystal is still fairly early in it's development. We have plenty of time available to make the breaking changes required to make windows a true first class citizen. I'm putting a lot of thought into how to do this.

</comment></comment></comment><comment><USER11> I really, really like Crystal — the Ruby syntax is great, and better type safety is always a plus.

But I haven't found a reliable way for building a binary on a Mac OS without requiring dyld already be present on the target user's system. Seems none of the following issues are resolved, or that the project has indicated a recommended way to do this?

[https://github.com/crystal- lang/crystal/issues?utf8=%E2%9C%9...](https://github.com/crystal- lang/crystal/issues?utf8=%E2%9C%93&q=dyld%3A+Library+not+loaded)

<comment> Birch-san I had a crack at fixing this. Could you try my make_portable.sh script on one of your Crystal binaries?

[https://github.com/crystal- lang/crystal/issues/3067#issuecom...](https://github.com/crystal- lang/crystal/issues/3067#issuecomment-397841583)

</comment></comment><comment><USER12> I am on openSUSE, and I just realized I can install Crystal from the RPM repository (well, duh! I should have thought of that a lot sooner...), so I now have no excuse left to play around with it a little. I also happen to be on vacation right now, so I have plenty of time on my hands. =D

Now the only thing that bothers me is the lack of a REPL. It comes with a web- based playground which is pretty nice, but still not quite the same. Is there any chance Crystal _does_ have a true REPL which I just managed to miss? (If not, it's not a dealbreaker - Go doesn't have a REPL, either[0]. But it still would be nice.)

[0] I know, I know, there are third-party REPLs like gore, but by the time I found out about them, my need for one had diminished a lot.

<comment><USER6> There's the semi-official ICR[1].

[1]: [https://github.com/crystal-community/icr](https://github.com/crystal- community/icr)

<comment><USER5> It's not official, largely because it's a big hack.

<comment><USER6> Whoops. I thought it was official due to issues on crystal/crystal about it, my bad.

</comment></comment></comment></comment><comment><USER13> I think I asked this in the past, but how did Crystal become self hosted?

<comment><USER14> Naturally for a language based off Ruby, the original compiler was written in Ruby. It became self-hosting in late 2013: [https://crystal- lang.org/2013/11/14/good-bye-ruby-thursday.h...](https://crystal- lang.org/2013/11/14/good-bye-ruby-thursday.html)

</comment></comment><comment><USER15> is there like Sinatra equivalent for Crystal? and what is the go to ORM for Postgres in Crystal?

<comment><USER16> [https://github.com/kemalcr/kemal](https://github.com/kemalcr/kemal)

No idea about ORMs though.

</comment></comment><comment><USER17> Wow, amazing!

Well, a couple of breaking changes, but...

still amazing!

</comment><comment><USER15> only thing I don't like about Ruby is the "symbols". if there was a new language that copied everything about Ruby minus the symbols, I'd be all over it.

what is the reasoning for a language like Crystal to support symbols? i am under the impression that is just a relic of the past due to performance reasons but it is not the case anymore.

<comment><USER18> What have you got against symbols exactly?

I don't know enough about the reasons why they are implemented to argue this strongly, but I know that they are immutable and that they are one step closer to the language in the sense that, constructions which you may not use in an unquoted symbol, are also not allowed to be used in a Ruby method name.

That seems like a handy data structure to have around next to a string (and nobody's stopping you from using a string if you wanted a string and not a symbol, ...or are they?)

<comment><USER19> In Lua, symbols are just strings, all strings are immutable via internment, and the symbol rules constrain the parser, not the runtime. So obj.field is shorthand for obj["field"], you can have obj["="] if you want, it means obj.= but that is of course a syntax error.

I find this approach more comfortable and easy to reason about than a separate Symbol class.

<comment><USER18> Thanks!

Pretty sure you can get progressive versions of this type of behavior (where obj["field"] is equivalent to obj[:field] or obj.field) by using Ruby's HashWithIndifferentAccess and/or OpenStruct classes, but those are both obviously more obscure than something which is a built-in default language feature.

<comment><USER19> It's one of several decisions that make Lua's type system easy to reason about. Another one is that environments themselves are simply tables, the global is _G, and environments can be set and retrieved on functions.

Kinda like mutable Mars ^_^

</comment></comment></comment></comment></comment><comment><USER20> Why is Crystal popping up so much on HN and why do all these comments read like advertisements

<comment><USER21> > _Why is Crystal popping up so much on HN_

1) Because HN is a social news website, so when someone reads a post about a subject, others are reminded of it, and can post in return. This happens with all popular topics, they come in batches.

2) Because Crystal is getting more popular (e.g. it jumped TIOBE rank for what it's worth), and more people like to read and hence vote such articles.

3) There's a huge conspiracy, with marketing shills and aliens, for an OSS language.

4) More than Go or Rust or React or Ruby back in the day?

Take your pick</comment></comment>


The Making of Airbnb [YC W09] - <AUTHOR> http://mixergy.com/airbnb-chesky-gebbia/ <comment><USER2> Really exciting interview but I think Andrew needs to cut down on the Red Bull.</comment>


Pie charts to understand how bad the coronavirus spread is in US - <AUTHOR> https://www.yogeshchauhan.com/Projects/COVID-19/Graphs/USA/coronavirus-us-states-pie-charts.php <comment><USER2> It is expressed as a % of the total tested persons, so it depends a lot how wide is the testing policy of each state.

<comment><AUTHOR> That's why I have mentioned Total Tests as well. Out of those tests the percentage of tests positive and negative.

<comment><USER2> But without the total population of each state, it is difficult to compare.

I think it is interesting to see the ratio of recorered/active/dead, but also it is fuzzy because the choices of each state about if the asymptomatic people get tested and the dobious deadth are tested postmortem.</comment></comment></comment>


Machine Learning: A Simple Neural Network - <AUTHOR> http://coderoncode.com/machine/learning/2016/06/06/machine-learning-a-simple-neural-network.html <comment><USER2> LOL "A Simple Neural Network". Good, I don't like the complex kind ;)</comment>


Sicko was not banned in Cuba, unlike leaked cables suggest - <AUTHOR> http://www.michaelmoore.com/words/mike-friends-blog/viva-wikileaks <comment><AUTHOR> _So here you have WikiLeaks, who have put themselves on the line to find and release these cables to the press -- and traditional journalists are once again just too lazy to lift a finger, point and click their mouse to log into Nexis or search via Google, and look to see if Cuba really did "ban the film."_

This is really interesting. It goes to underscore the importance of actually checking the leaked cables since it appears the US government is actually lying to itself in secret cables.

<comment><USER2> Well, it means the cables should be verified like any other source and not just taken at face value.

But the likelihood that governments may be lying to themselves in secret may be the most disruptive and shocking truth of all. Though a moment's thought would lead you to be shocked if it were otherwise.

</comment></comment><comment><USER3> This is a clear example of the communication system highlighted in Assange's own writings. :<http://cryptome.org/0002/ja-conspiracies.pdf>: from :[http://zunguzungu.wordpress.com/2010/11/29/julian-assange- an...](http://zunguzungu.wordpress.com/2010/11/29/julian-assange-and-the- computer-conspiracy-%E2%80%9Cto-destroy-this-invisible-government%E2%80%9D/):

_if the conspiracy must operate in secrecy, how is it to communicate, plan, make decisions, discipline itself, and transform itself to meet new challenges? The answer is: by controlling information flows._</comment>


Facebook open sources Haxl - <AUTHOR> https://code.facebook.com/projects/854888367872565/haxl/ <comment><USER2> This is a fascinating project. Haxl is the brainchild of former Glasgow Haskell Compiler lead* Simon Marlow.

The tl;dr of Haxl: what if you could describe accessing a data store (a la SQL) and have the compiler and library work together to "figure out" the most efficient way to perform queries, including performing multiple queries in parallel? That's what Haxl does, it allows you to specify the "shape" of your query, the type checker verifies its correctness, and the library executes it in parallel for you, without the developer having to know about synchronizing access or anything.

Here's a link to their paper (PDF): [http://www.haskell.org/wikiupload/c/cf/The_Haxl_Project_at_F...](http://www.haskell.org/wikiupload/c/cf/The_Haxl_Project_at_Facebook.pdf)

* - I am not sure if he's still committing, or if he's only doing application development. His accomplishments in Haskell land though, are many.

Edited: I removed my comment about GitHub issues, seems it's a known problem. :)

<comment><USER3> He is still committing, but not quite so often :)

<comment><USER4> Is it a cultural reference? Found it in bestcomments, so looks like many people do get it, but I don't. Genuinely interested having English as a second language.

</comment></comment></comment><comment><USER3> Here's our paper about the ideas behind Haxl: [http://community.haskell.org/~simonmar/papers/haxl- icfp14.pd...](http://community.haskell.org/~simonmar/papers/haxl-icfp14.pdf)

<comment><USER5> Somehow I think this should have been upvoted to the top.

<comment><USER6> Simon Marlow and Sean McDirmid in the same thread? Be still my heart!

</comment></comment></comment><comment><USER7> Hi. I'm one of the engineers who has worked on this so if anyone has any specific questions I can help answer and/or get someone to answer.

As said by @nbm, we also have a blog post up: [https://code.facebook.com/posts/302060973291128/open- sourcin...](https://code.facebook.com/posts/302060973291128/open-sourcing- haxl-a-library-for-haskell/).

<comment><USER8> Have you replaced all use of FXL with Haxl? Or are both languages supported? In the latter case, what is the relative proportion of each in the live codebase?

(I appreciate that migrating code that already works to a new language often just introduces bugs for no gain, so please don't take my questions as trying to dig up dirt or anything. I'm genuinely just curious.)

<comment><USER9> We are still in the process of migrating from FXL to Haxl, and there is too much FXL code to translate manually, so at the moment we are treating FXL as the source of truth, compiling the FXL codebase to Haskell, and running both concurrently to verify correctness.

</comment></comment></comment><comment><USER10> The release blog post is here - [https://code.facebook.com/posts/302060973291128/open- sourcin...](https://code.facebook.com/posts/302060973291128/open-sourcing- haxl-a-library-for-haskell/)

It contains a lot more information about the problem it was originally created to solve, and potential other use cases.

</comment><comment><USER11> I'm an engineer on the Haxl project and am really excited to launch this today. Ask me anything!

<comment><USER12> Is there any resources about why Facebook uses haskell? What's your experience?

<comment><USER11> Our blog post goes into some of this: [https://code.facebook.com/posts/302060973291128/open- sourcin...](https://code.facebook.com/posts/302060973291128/open-sourcing- haxl-a-library-for-haskell/)

Interpreted code was no longer cutting it for perf reasons, and any time you create your own language you end up reinventing the entire tool chain (debuggers, profilers, etc.). Haskell provides so much functionality in the language itself and has mature solutions to the other issues plaguing us in FXL, so it was a natural choice.

</comment></comment></comment><comment><USER13> [http://hackage.haskell.org/package/haxl](http://hackage.haskell.org/package/haxl)

Why do Haskell libraries on Hackage doesn't come even with a single example, getting started, how to use, quick start, nothing, really, just function declarations? This scares Haskell newbies.

<comment><USER14> The "documentation" on Hackage is almost universally just the haddock- generated files (which is why it's mostly just function declarations and type signatures).

Most libraries list a "Home Page" that more often than not includes more useful documentation (Haxl's, for example, has the things you've mentioned).

I concur, that most of the time, the documentation on Hackage isn't really sufficient, but I've found that for the most part I just use it to find the homepage, and then go there to read the actual documentation.

I agree that it would be nice if everything was all in one place.

<comment><USER15> _" I agree that it would be nice if everything was all in one place."_

I actually find "distilled reference with links to source" a fantastically valuable view. I've no objection to providing some sort of combined view, but let's not lose what we have in a quest for consolidation. I've no idea if that's what you meant or not, and don't mean to put words in your mouth of course, just expressing a concern.

<comment><USER14> I agree it's hard to be all things to all people.

I think fundamentally, Hackage is meant to be a centralized package repository. If you look at other similar projects, there seems to be no real consensus as to whether that should just be a launching-off point to the actual project page, or more inclusive.

When I originally wrote this, I was going to say "It's akin to CPAN", but then to make sure I wasn't misremembering, I looked at a bunch of CPAN packages and saw that they were all actually fully-documented (with examples and whatnot).

I think the advantage to having consolidation is that you can then at least try to enforce documentation standards (whether you should, is arguable). What's super frustrating is going to a Hackage page, finding the link to the project home page (frequently on GitHub), going to the GitHub page and then just seeing a barren directory listing of files.

I feel slightly uncomfortable making statements about how Hackage should be set up however, as it's like going to a soup kitchen and then complaining about the specific soup they've decided to give you. "Oh, you mean this community resource we've set up which allows anyone to contribute a package and have it globally available doesn't provide exactly the functionality you'd like? Please tell me more about how the community can respond to your whims."

Also, for what it's worth, all the Haskell libraries that I make frequent use of tend to have very good documentation (you could argue that's HOW they end up becoming the ones I make frequent use of).

</comment></comment></comment></comment><comment><USER16> Slides from Marlow from 9 months ago about Haxl and it's workings [https://github.com/meiersi/HaskellerZ/blob/master/meetups/20...](https://github.com/meiersi/HaskellerZ/blob/master/meetups/20130829-FPAfternoon_The_Haxl_Project_at_Facebook/The%20Haxl%20Project%20at%20Facebook.pdf?raw=true)

</comment><comment><USER17> How do you guys batch requests in PHP? You don't, right? So this is an intermediate layer basically, and it sends requests every few millisecods and waits to batch things in between?

<comment><USER10> The systems described here isn't directly involved with any PHP code.

Like all Facebook services, they are communicated with over the Thrift RPC system, and may have PHP (or any other language) clients, and may talk to other services using Thrift (or occasionally other protocols), some of which may use PHP.

If you're asking a general question about batching requests in PHP, [http://docs.hhvm.com/manual/en/hack.async.php](http://docs.hhvm.com/manual/en/hack.async.php) may be informative.

<comment><USER17> Cool so Hack supports async while php doesn't.

</comment></comment></comment><comment><USER18> Cool ! Are there any alternatives out there, especially to deal with fault tolerance especially when if we want to establish connection with 100's of varied databases?

</comment><comment><USER19> How does the functionality of Haxl differ from a mature ORM system? I'm thinking about .NET Entity Framework + LINQ in particular since it not only does the mapping but also assists in query generation, scheduling.

</comment><comment><USER20> It would be cool if you could transform those tables into HTML tables. They would look prettier (not nice JPG noise) and would also be more accessible.

</comment><comment><USER21> are there similar things for iOS?

</comment><comment><USER17> [http://platform.qbix.com/guide/patterns](http://platform.qbix.com/guide/patterns) ;-)

<comment><USER22> You obviously don't understand what Haxl is for.

<comment><USER17> Why is that obvious to you? Do you care to explain your cryptic comment?

<comment><USER22> Well, that project, Q just doesn't even share the same thesis of Haxl. At all. Two completely different projects, Q couldn't be used for what Haxl is intended.

If you had posted the link asking for a comparison, that would've been different, but your ignorance seemed obvious to me because of the haughty wink at the end of your posted link implying we were being let in on some kind of secret.</comment></comment></comment></comment>


What type of Machine is the C Preprocessor? - <AUTHOR> http://theorangeduck.com/page/what-type-machine-c-preprocessor <comment><USER2> "We imagine Turing Machine memory having an infinite tape which is just there, not having a tape that must be generated as the head moves."

This is one of those times when you're probably better off saying and thinking "unbounded" rather than "infinite". The point of a TM is not that it "literally" (to the extent that term applies anyhow) has "infinite" cells in it, the point is that there is no point in the computation in which it will reach for another cell and be told that there isn't one. (So there isn't even a way to represent that.) Many "infinite" things are better conceived of as "unbounded". For another example, "infinite lists" in Haskell. Obviously, they can not concretely manifest infinitely many cells in memory, but there is no point at which the runtime will reach for "the next cell" and be told it has reached the end of the list.

That is also why it's better to model our real computers with TM math, even though they obviously do not have literally infinite amounts of memory. As long as a software process runs along and is never told that it is out of memory when it asks for more, we get fairly TM-like behavior, or we get a crash if it does run out. By contrast, while the FSM model is in some sense more mathematically accurate, it is less _useful_ for modeling real computers, since it is so weak.

I think this formulation also better intuitively explains why we use infinity so often in our proofs; by saying "and there's always another one if you want it", we remove the case where we have to handle there _not_ being another one. And that case can get quite hairy, as anyone who has watched their machine self-immolate after it discovers it is out of RAM can attest to. :) (It can also be every bit as mathematically tedious to deal with, too.)

The further I got through grad school, the more I said "unbounded" rather than "infinite".

<comment><USER3> "The further I got through grad school, the more I said "unbounded" rather than "infinite"."

I think there's a huge difference between simply saying "unbounded" compared to going through that detailed explanation you just gave. In the latter case, it's very clear what the difference is. But without the explanation I'd guess that people will think something like this:

        unbounded -> without bound -> infinite

In other words, without the explanation "unbounded" becomes a synonym for "infinite".

<comment><USER4> "Unbounded" means "any finite number, no matter how large." For many people, this might be what they think of when they hear "infinite," but in mathematics, "infinity" is an entirely different concept.

<comment><USER2> As I mention in another comment, I am specifically referring to the fact that when we computer scientists or discrete mathematicians use the term _in proofs_ , we were more often interested in the "unbounded"ness than something with "actual" infinite cardinality... the fact that I understand the difference is precisely _why_ I tended to start saying unbounded more often. Using infinity to mean unbounded is really too powerful, and a proof should use the least power necessary. (It was only an intuitive feeling at the time; I have a much better understanding of that fact now.)

When infinity is the relevant concept, use it.

<comment><USER5> This reminds me of the distinction between _random_ and _arbitrary_. Seems to trip people up sometimes.

</comment></comment></comment></comment></comment><comment><USER6> I don't think there's a specific name for this kind of Turing Machine, but it looks to me like it's primitive-recursive, similar to Hofstadter's BLooP ('bounded loop') language. It's basically the difference between for loops, which specify up-front how many times to loop, and while loops, which keep going until some dynamic condition is met. For loops are total, while loops are Turing complete. Note that these are the CompSci definitions of for and while; most languages with "for" syntax are actually implemening while loops.

There _are_ some interesting kinds of Turing Machine which use limited tapes, rather than limited transition tables. For example, a monotone Turing machine can have heads which only move one way. They're useful for modelling demand- driven input and output (one read-only, monotone input tape, one write-only, monotone outpu tape and one read-write non-monotone work tape). Other machines that I've seen in research are 'enumerable-output machines', which can only edit their previous output if it ends up lexicographically higher, and 'Generalised Turing Machines' which can edit their output as long as each bit takes a finite number of steps to 'stabilise'. These machines have been investigated by Jurgen Schmidhuber, among others.

<comment><USER7> I agree. After reading in the article that:

> _The main argument against Turing completeness was that my implementation > did not support unbounded recursion._

I'm almost sure they are Primitive recursive function, but I didn't have time to write the complete proof. [http://en.wikipedia.org/wiki/Primitive_recursive_function#Li...](http://en.wikipedia.org/wiki/Primitive_recursive_function#Limitations)

<comment><USER7> From a previous article of the same author: [http://theorangeduck.com/page/c-preprocessor-turing- complete](http://theorangeduck.com/page/c-preprocessor-turing-complete)

> _This is a fairly clear distinction and a compelling argument. Clearly there > are languages where you can effectively express unbounded recursion > function() { function() } and the C preprocessor is not one of them._

>* But there are a number of subtleties going on here. For example, if we consider the set of macros I created to be the "machinery", and the "language" to be the Brainfuck input to my system, then it is indeed Turing complete. That is - I have created machinery which can simulate Turing complete languages. Taking all the above definitions into account, consider how odd it is that Turing complete machinery can be expressed in a non Turing complete language.*

And from the "Brainfuck interpreter written in the C preprocessor": [https://github.com/orangeduck/CPP_COMPLETE](https://github.com/orangeduck/CPP_COMPLETE)

> _Currently the maximum recursion depth is set to around 1000 and the data > array size around 100. These can be easily extended but for now, as a > general rule of thumb computations exceeding 1000 steps may not run._

Here is the problem. We can consider the one-step-interpreter: it's a function that has as arguments a program, the current instruction index and the whole memory state, and this function computes the next instruction index and the next whole memory state. This one-step-interpreter is primitive recursive. He put that function inside a bounded loop, which is also implementable as a primitive recursive function.

So essentially he created an interpreter that runs a program for at most a fixed number of steps, where this number is an argument of the function (or worse, in this case a constant). Interpreter(Program, Memory, MaxSteps) is a recursive primitive function. To be Turing complete, he needs to write InterpreterForEverIfNecesary(Program, Memory).

With a fixed MaXSteps value, it can't compute all recursive primitive function.

<comment><USER6> This situation crops up in total languages like Coq. For any iterative process, like the stepping of a Turing Machine, we can create an infinite stream of iterations, eg.

Cons (tape, head, state) (Cons (tape, head, state), (Cons ...)))

But since our program is total, we can only extract the first N states, for some finite N. Compare this to a Turing Complete language like Haskell, where we can also define an infinite stream of iterations, but we can also traverse this stream indefinitely.

</comment></comment></comment></comment><comment><USER8> "What we are missing is the ability to re-enter old states."

That's deadly. Any machine with a finite number of states that cannot re-enter a state it has previously been in must necessarily halt on all input. That makes it strictly less powerful than even an FSM.

<comment><USER9> It is worth noting that _must necessarily halt on all input_ is quite a desirable property in a macro language evaluated at compile time.

<comment><USER8> That is arguable. All else being equal it might be true, but all else is not equal. The benefit of never having your compiler enter an infinite loop may not be worth the cost in terms of lost expressive power.

<comment><USER10> Has it been proven that the ability to write undecidable programs confers expressive power such that you can't have one without the other? It seems self-evident that running forever can't be useful, so you should be able to say WLOG that useful programs always halt. So the set of all useful programs is strictly smaller than the set of Turing machines. Is there a formal reason why Turing machines are desirable?

<comment><USER8> > Has it been proven that the ability to write undecidable programs confers > expressive power such that you can't have one without the other?

Yes.

> It seems self-evident that running forever can't be useful

Really? Do you not think that it might be useful for, say, an operating system to run forever?

<comment><USER9> Do you think it is useful to implement an operating system entirely at compile-time, in an implementation which uses separate compile and run phases?

<comment><USER10> I'm not sure I follow what you're talking about. Operating Systems are tangential to the point, though. When I said all useful programs halt, the kinds of programs I meant are the kind used to prove things about computation. Those programs are simplified abstractions of real programs, and they generally compute one result and then halt (if they halt). Being simple makes those programs easier to use in proofs than real programs. However, the proofs still generalize to real programs; a real-world program with multiple functions is equivalent to several single-function programs glued together together.

So my point in saying that all useful programs halt was really to argue that all useful programs must have the constraint that they their behavior is always predictable, or controllable, in some sense. In a trivial way, computers are always predictable, but Turing proved that there are cases where it's impossible to predict the eventual outcome of a program in advance, i.e., the halting problem. In precise terms, the outcome (halt/not halt) of some programs is said to be undecidable or uncomputable. Undecidability is a hallmark of Turing machines. But since real programs are written by humans, who can't solve undecidable problems, real programs will never be able to gain any advantage from undecidable behavior.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Wouldn't it simply be a linear bounded automaton (LBA)? I understand you can implement recursion via some tricks but only as many steps as you predefine (see e.g. [https://stackoverflow.com/questions/7508475/is-c- preprocesso...](https://stackoverflow.com/questions/7508475/is-c-preprocessor- metaprogramming-turing-complete)) This reeks like an LBA to me.

<comment><USER12> My first instinct is that you're right- at least, I don't think it can be any more powerful than an LBA: if there's a finite number of state transitions it can make, then it can only actually "get to" a certain distance along the tape, and you can just chop the tape at that point.

<comment><USER8> Nope, a cpp-machine is strictly less powerful than an LBA, or even an FSA. An LBA (and an FSA) can enter an infinite loop. A cpp-machine can't.

</comment></comment></comment><comment><USER13> A few months ago I got fed up with losing track of what I had written in C. So I knocked up some python scripts to write templates for me, it displays the date and time the file was created and the filename in a comment. This concept can be taken much further.

CPP has been known to be abused by programmers as a general text processor, has anyone else started using another language to help them write C?

<comment><USER14> You mean like $ SCCS %G% %M% %W% $ ?

<comment><USER15> Good times. I used to have emacs mode hooks that ensure that "$Id$" was written into files. I don't miss that.

<comment><USER14> In what I considered minor blasphemy one of my friends wrote git-hooks to keep using them.</comment></comment></comment></comment>


Ask HN/PG: Is my IP banned? - <AUTHOR>

Since about two days I am unable to connect to Hacker News. My problem seems to be comparable to the one reported here: http://news.ycombinator.com/item?id=775381
Firefox shows simply a blank page (0 bytes), curl says "Empty reply from server" and Google Chrome notes "Error 324 (net::ERR_EMPTY_RESPONSE): Unknown error."
My IP address can be viewed at http://yfrog.com/el64282782g. I have maintained only this account, which is still available and I have never posted anything controversial. In fact, I haven't submitted or commented on anything in the last three weeks or so at all. I ought it highly unlikely that my family with whom I share this IP would be interested in Hacker News so that can't be it either.
Can PG or someone else please check and see if my address is in fact banned or if it is a problem at the client's side.
Thanks, Daniel
P.S. I know recall having recently installed this userscript:
http://github.com/brainkarma/hnreputation/tree/master
Might that have triggered an automatic anti-dos/anti-scraping ban? <comment><USER2> I have no idea about the banning status of your IP address. I do find it somewhat disappointing that a hacker news type could not do a little more low- level troubleshooting to try to at least approximate the root cause.

Have you tried your same PC/browser but going through a proxy? Have you tried your same account on the same PC in a different browser? Tried logging in from a free/unsecured wifi somewhere? Tried deleting cookies in your browser? Tried a different PC (library, friend, other family member, etc.).

Perhaps it's just my mood this AM, but it seems rather "do my homework for me" of you to post this up without having done some research and troubleshooting on your own.

<comment><USER3> it's not as bad as asking what ^H stands for :)

<comment><USER4> Well, it's not exactly easy to Google for ^H. Punctuation is annoying like that.

<comment><USER3> who needs google:

<http://en.wikipedia.org/wiki/^H>

And a hacker asking for control-h ? (this is hacker news, isn't it ?)

<comment><USER4> Well, just because I've read the Jargon File doesn't mean everyone else has.

</comment></comment></comment></comment></comment><comment><USER3> I'm suggesting the same approach as the one the other author used (it turned out to be a peering issue there)

\- check your DNS resolver, make sure you get the right IP address (18.104.22.168)

\- do a traceroute to the server and make sure you can actually reach it

\- try telnetting to the server and see if you can find out anything by observing the response

If you find there is a peering issue (a router somewhere that drops traffic to the subnet HN is hosted on) then a whois on the ip of the router will sometimes give you contact information of the party responsible in case your own ISP gives you the run around.

Oh, and last, make sure nobody is pulling a prank on you, check your own iptables!

</comment><comment><USER5> Yes, your IP is banned. A few of us were banned for using the greasemonkey script you mentioned, so unless you've done anything malicious recently, that's likely the reason.

I apologised to PG directly and he kindly removed the ban for me.

<comment><AUTHOR> Thanks. I emailed him yesterday and asked the same thing, now I'm just waiting for a response.

</comment></comment><comment><AUTHOR> I did install this userscript recently:

<http://github.com/brainkarma/hnreputation/tree/master>

Might that have triggered an automatic anti-scraping/anti-dos ban or something?

<comment><USER3> Definitely. that's what was warned about in the announcement.

<http://news.ycombinator.com/item?id=779157></comment></comment>


Stellar Smart Contracts - <AUTHOR> https://www.stellar.org/developers/guides/walkthroughs/stellar-smart-contracts.html <comment><USER2> I'm impressed by Stellar. It seems like it's one of the few cryptos that actually is solving the problems that got people excited about cryptocurrencies in the first place several years ago.</comment>


Show HN: Making good Steam games discoverable again - Bilge- http://steam250.com/about <comment><AUTHOR> Hey! So cool to see this on HN. I love Hidden Gems, mainly because my game is usually on there. :)

A few things I've wondered about:

* Have you considered only counting non-key reviews, as Steam does for the main review total? Curious because I'm currently in a weird position where I have 100% for non-key, but one of the key reviews is negative. And, well, Valve thinks that a good way to count.

* Can you describe how player count factors in? Is it total players or current players? Can the algorithm be understood intuitively?

* I know this is silly, but some sort of Hidden Gems badge/widget would be cool.

<comment> Bilge- Thanks so much for your comments and questions!

* Although excluding key reviews positions your game better, and therefore seems like a good idea from your perspective, from our slightly more neutral perspective, why would we feel compelled to make that change? Aren't key activation customers just as valid as Steam purchasers, whose reviews and opinions are equally valid?

I'm not really swayed by the argument that Valve thinks it's cool. I don't know why Valve thinks that's a good idea; it may be because they have no oversight over how keys are distributed, or it may be to encourage you to push punters to purchase on Steam because it makes them more money, but their reasons are their own.

Aside, I'd posit that whilst it may look better for your game, it may look equally better for other games, too. There's no guarantee your game would be in any better standing for making such a change.

* Player count factors in fairly minimally for games with relatively low sales. It's just there to stop big names taking over the ranking. We use the total player count; that is, anyone who's ever launched the game.

* You're not the first person to suggest a badge-type widget. I wish we could do that but please understand the site is statically generated at present. Until we have dynamically generated pages we're quite limited in what we can do. It will take several months to get there, but once it's possible, having an embeddable widget would be cool!

In the meantime you can create a game tracking link for your game which will load the page centred around wherever your game is in the ranking, and highlight it. To generate one, click the link icon that appears when hovering over a ranking entry.

<comment><AUTHOR> I worded that poorly. I was not suggesting to make a change, only that my particular situation made me curious about your thoughts. Valve's recent change to ignore key activations is actually super frustrating when first starting out.

I wasn't even really thinking of a dynamic widget. Just some simple image that could be linked to your site. However, it would be better if there were permanent historical pages. I'm not sure how to categorize it (maybe every week or month), but the link would make more sense then... you can't guarantee you'll still be on the rolling page. Just an idea.

<comment> Bilge- Interesting, I didn't know key review exclusion was a recent change.

Are you just looking for press kit resources? There's a somewhat dated press kit available from [https://github.com/250/Steam- Top-250/releases/download/press...](https://github.com/250/Steam- Top-250/releases/download/press2/press.zip) that might contain some useful images. If you're looking for something more specific, let me know!

Charting game ranking history is my personal favourite upcoming feature. I want a graph with the full history of a game's ranking across all rankings, so you can easily see how many segments it's participating in both past and present. However, another limitation of the current infrastructure is we don't have a persistent data store. Every day we create a new, independent database snapshot containing only that day's data. Once again, this feature will take several months to develop, mainly because I have to go back to work now because I didn't receive enough funding via Patreon, but I'm looking forward to it at least as much as you :)

<comment><AUTHOR> Well, when I say "recently" it was a little over a year ago: [https://www.pcgamesn.com/steam-reviews- change](https://www.pcgamesn.com/steam-reviews-change)

I was a bit miffed, as it was announced right as my game was going into EA. Most devs will hand out keys to testers and potentially launch with a dozen or so reviews from that, but with that change none of those were "counted". Then you have to wait for 10 more people to buy and review it before you even get a "Positive" summary.

Thanks for the press kit link. That works. I didn't want to be using images like that without permission.

</comment></comment></comment></comment></comment><comment><USER2> Do you have any plans to integrate curator recommendations? Or just regular users?

Big fan of including a "bottom 100" section, a lot of platforms don't do this but I find that sort of thing very interesting, so thanks :)

Also I LOVE the hidden gems section, was just wondering if you had any plans to go beyond 250.

<comment> Bilge- Thanks for your feedback and questions! We have a lot of plans, but none that involve integrating curator recommendations, I'm afraid. On the contrary, one of our next goals is to do the opposite: create an automated curator that delivers Steam 250 recommendations directly back into Steam. For a peek at our roadmap check out the Patreon page [https://www.patreon.com/steam250](https://www.patreon.com/steam250) under the "What's next?" heading.

Some further details are in a secret Patron-only post ;)

</comment></comment><comment><USER3> It seems interesting, although in the Best Seller List I would post a All-time list, of course, the more time you are in the market, more quantity you sell, but its interesting to see a Counter Strike Global Offensive with 4x GTA V (In Steam).

Good job.

<comment> Bilge- This is now live at [http://steam250.com/owners](http://steam250.com/owners) Thanks for your suggestion!

The movement indicators for this ranking won't be meaningful until tomorrow.

</comment></comment><comment><USER4> I'm an avid PC gamer and Steam-browser. Without knowing how this works, the results look excellent to me. I'd definitely use this.

<comment> Bilge- Thanks. Your approval inspires me with confidence and determination :^)

</comment></comment><comment><USER5> Wow, this is great! I've hoped for Steam to implement something like this for ages, but they seem bent on making discoverability a hopeless chore.

</comment><comment> git-pull By the way, I saw it on the top games chart on the site, but "Terraria" is a really fun game. Runs on Mac and Linux, too.

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

It's like a 2D platform version of minecraft.

<comment><USER6> Starbound is also worth mentioning here. Its universe is larger and includes more sci-fi stuff but sacrifices easy onboarding. Love them both :)

<comment><USER7> I've owned Starbound for at least a year now, and only just started playing last week. Hell of a learning curve, but definitely worth checking out if you liked Terraria.

</comment></comment></comment><comment><USER8> Is this official? If not, it seems likely that Valve will make you change the name.

<comment><USER9> I doubt they will, they haven't complained to/about steamspy.

<comment><USER10> Same for SteamDB, we didn't get any C&D from Valve.

<comment> Bilge- Hey Tomáš, I didn't know you worked for SteamDB :^)</comment></comment></comment></comment>


Zapcc C++ compilation speed against gcc 5.4 and clang 3.9 - <AUTHOR> http://baptiste-wicht.com/posts/2016/12/zapcc-cpp-compilation-speed-against-gcc-54-and-clang-39.html <comment><AUTHOR> This is an updated version of my previous benchmark with more recent compilers (GCC 5.4 and Clang 3.9). The results are almost the same as before, zapcc is about 2 times faster than GCC and 3.3 times faster than clang. This is only a comparison on a very template-heavy library, but this shows interesting results for zapcc (still in beta and will be commercial).</comment>


Forgotten Corners of World of Warcraft - <AUTHOR> http://www.atlasobscura.com/articles/forgotten-wonders-of-the-digital-world-world-of-warcraft <comment><USER3> I recently reactivated my old WoW account and purchased Warlords of Draenor out of curiosity, and ended up getting my Orc Death Knight to the new level cap of 100. This article only scratches the surface on _why_ the old worlds are abandoned.

As with most modern MMOs, the endgame begins at max level. In order to help players level faster, Blizzard added a heirlooms mechanic in the second expansion (Wrath of the Lich King) to allow low levels to have above-curve gear while leveling, with a 30% EXP boost. The third expansion (Cataclysm) revamped Azeroth, making new questing much easier and straightforward, and therefore less time is spent in the old world. The fifth expansion adds Dungeon Finder, which is a faster way to level than normal questing. So there is not much incentive to explore until you hit 90 and can go to Draenor. And then once you hit Draenor, you have access to Garrisons, which is a FarmVille- like mechanic which has the easiest financial ROI in the game, making even _less_ of a reason to just explore period. I did not renew my subscription.

Guild Wars 2 had a great solution to this; all zones have content, which the player downscales to. Unfortunately, Tyria (the world of Guild Wars 2) is not as robust as Azeroth.

<comment><USER4> I think you're clearly correct about the game beginning at max level, but I don't think heirlooms or exp boosts changed anything. Even in vanilla, there were accepted "do this to level as quickly as possible" routes. No one really hung around silithus pre-AQ, with the small exception of people who chose to level there (and there were much better zones to do that).

WoW and mmos in general just don't encourage exploration very much. It doesn't contribute to making your avatar any better. So unless you're really into just having fun - which the game mostly does not encourage in lieu of running dungeons and getting gear and etc, a lot of these zones have just ALWAYS been abandoned, save for some event bringing people to them.

The reason the population is 15-20 in these zones as opposed to 60+ is because there are better ways to level nowadays, not that anyone cared to visit these zones in the first place and heirlooms ruined that.

That being said, I realize you're not blaming this entirely on heirlooms and exp boosts, I just wanted to clarify on that specific part of what you said.

<comment><USER5> > unless you're really into just having fun - which the game mostly does not > encourage

This is the exact reason why, no matter how many times I tried over the years to play this game with friends, I could never stay attached for longer than a few hours. There seems to be less and less emphasis put on enjoying the experience of exploration and being in a space in modern online games, and more emphasis on rote activities for the sake of progress.

And thus I return to single-player games, which I certainly do not mind. There is a seemingly never-ending stream of creative ideas coming out of that space.

<comment><USER6> This exact reason is why EverQuest grabbed me so much harder than any other MMO since. Another huge reason is the danger factor. In WoW, there is effectively no punishment at all if you die, so there's no fear of exploring new places. In EQ, there are (or at least were) steep penalties if you die in the wrong place. Ignoring the fact that you lose XP that could amount to hours of lost progress, you may compound your woes with continued deaths trying to get the loot that remained with your corpse. The fear-factor had me addicted, and made accomplishments that much more rewarding.

<comment><USER7> What you said and real nighttime in EQ. I remember being alone, a low level, lost in Karana as night was approaching. I knew if I died that I might not know where my corpse was for the corpse run, so I had real fear, and was real cautious.

<comment><USER8> And the final element missing to instil real fear? True PvP, where anyone might decide to betray you and kill you while you're resting to recover hitpoints or manna or whatever.

It's only when loss is possible that you can truly gain. It's only when betrayal is possible that you can truly trust. It's only when your character can completely fail that you can truly enjoy success.

Each of those are opposite sides of the same coin. A game like Wow (which I found it very addictive, compulsive even, and did "enjoy" it to some extent) is ultimately totally empty, because there is no way to gain, to trust, to win.

Put that stuff back in, and you get a game like Eve.

<comment><USER7> The only PvPing I did was on the RvR server over near Freeport, either as a human or dark elf. That was a blast, since there was no instanced battlefields.

Maybe one day a MMO will bring back that magic. Alas, nostalgia wasn't enough to overcome the shortcomings of original EQ with Project99 in 2015.

<comment><USER8> Well, as I mentioned, from what I hear, Eve has that. It may not have orcs and elves. On the other hand it has big fracking spaceships with huge lasers...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> God that was painful :-). I lost a lot of time in WoW, perhaps it was an escape, but I spent hours learning the various nooks and crannies, leveling up over 3 dozen characters of various types to the max level. I had people I never met that I felt were good friends, shared battles and triumphs and failures. Laughed at the sometimes incredibly subtle in game humor, and sometimes not so subtle. Collected odd recipes to cook, outfits to wear, and trophies and achievements. I loved having the 'two ring' which was one better than the One Ring.

But as others point out, the 'traditional' way to build an MMO is 'learn skills by levelling up / start playing at max level' The game set a number of challenges for 'max level' characters which depended on gear, group composition, and various strategies to overcome the game mechanics. That is where it failed for me.

In WoW while leveling you often needed to join up with groups to run through a local dungeon together. It was fun when you had a good group, annoying when you had children in the group. There were too many ways for 10 - 12 yr old boys to grief people.

In an effort to increase its appeal, Blizzard changed it again and again. Skill changes, techniques, complexity was removed, buffs and nerfs to various skills. Lots of change and slowly less and less appeal. All of the components were there to make it better (arenas were a great testing ground for devs to evaluate PvP changes).

I stopped playing when Mists shipped. It was just too stupid at that point and the similarity to kung-fu panda to stark. Oddly, if you could provide servers that stopped at one of the expansions (Wrath or maybe even Cataclysm) I would still be spending money with Blizzard, but now not so much.

I look at it periodically and see the makings of a durable world/gaming simulation environment. I hope someone picks up the challenge.

<comment><USER10> Lot of nostalgia and time lost. My wife and I played together before we had kids so we could stay up to 2-3 AM on weekends and 40 man raid Molten Core or Blackwing Lair. We were lucky to find some married people who played and/or some more mature players. We stopped after we had kids (time crunch LOL) but we still keep in touch with some of our guild mates.

<comment><USER11> Folks mentioned the time lost. Honestly, if you keep journals of your time in Azeroth, you'll see that they rival any life story. I think the memories gained far outweigh anything "real." I think there are a few fiction writers that owe a few plot twists to what's happened in their game play.

</comment></comment></comment><comment><USER12> Interesting note: every ghost-town of a zone in WoW, and some of them were ghost-towns immediately, cost N fully realized software startups to develop. (Like, mid-single-digit million dollars per zone.)

It's one of those things to keep in perspective when folks say "Why did anyone sink $1.2 million into $A_FIELD_I_DON'T_CONNECT_WITH?" I don't know, but that's literally less than it cost to put that mid-30s swamp level in Ogrimmar that nobody ever went to, so don't fret too much about the misallocation of society's resources.

<comment><USER13> Are they really that expensive to develop?

<comment><USER14> WoW uses a tremendous amount of recycled assets, and however Blizz is budgeting their dev team allocates them to basically do all the work for years at a time at once before reassigning them to other things.

The most explicit example would be in vanilla, where in 2004 they had already created every zone found in the game that would be used up until the Burning Crusade released in 2007. They even had prototypes of a lot of places later added to the game (Outland, from the aformentioned expansion, the Emerald Dream, which is still not in the game, and several other zones). They took those prototypes and reused the assets in various places.

They also heavily reuse models. The same animated skeleton is used for everything from giants to bog monsters to undead constructs or how almost every dragon in the game shares the same model with a retextured skin. When they introduce new bosses, they almost always are reskinned old models.

Individual zones of WoW are not that expensive to develop - consider how hard it is to produce a static 3d geometry map today, period, and that is effectively the cost, albeit the tooling for WoW is almost twenty years old and assuredly less efficient. They will take the same portcullis used in a thousand other places, maybe swap the color palette, and use it again. They make a few novel set pieces per area usually, but the vast majority of the work is copy paste from assets made years ago.

<comment><USER15> is there a place to read more about the development of wow (both history and current pipeline)? fascinating stuff

</comment></comment></comment></comment><comment><USER16> My WoW experience started with Vanilla. Long hours were spent but I had so much fun. Looking back, I had so much free time and no concept of getting older. MC raids were a blast and getting ganked in STV was a daily occurrence.

Today, I'm nearing my thirties and can't seem to get into the game for more than an hour at a time. I'm a very happy homeowner, married and kids are in the plans in the next few years. I have other interests now that take up my time and grinding for drops for hours on end isn't in the cards anymore.

I logged in recently and found it so different. Cataclysm was my last true experience with WoW. I played MoP, but only for a few weeks. The magic was lost for me with flying mounts and easier grinds. It's heartbreaking to a degree because I loved this game and really want to get back to it. I suppose those years are long gone, but it's fun to think about.

<comment><USER17> There are private servers that try to be as close to Vanilla as possible, however that does mean that you have to put in the hours to get to level 60. Valkyrie is fairly populated. [https://valkyrie-wow.org/](https://valkyrie- wow.org/)

<comment><USER16> Thanks for the link. I dabbled with private servers a bit, but that was when BC came out and still retained some Vanilla feel. Might pop back on one now that Vanilla WoW is so long ago.

<comment><USER14> As someone who plays a lot on private servers, you might find the nostalgia goggles to be a little tinted if you try playing vanilla or even Burning Crusade. The game mechanics back then were just tremendously backwards to a degree anyone who has played more recent iterations of the game will be frustrated by, unless you _really_ have some hardcore nostalgia going on.

</comment></comment></comment></comment><comment><USER18> Almost two months ago, an unofficial (completely reverse engineered) Vanilla WoW server called Nostalrius launched. I had a blast reliving the time I spent on the original game as a teenager, but had to wrest myself away after sinking a few too many days into it...

Last I checked, the server was averaging between 4000-6000 players concurrently, so I had quite the opposite experience from what the author was describing: for the first day or two after launch, it was very difficult to find mobs to kill at all, when you're sharing starting zones with literally hundreds of players! It got better over time, as people grinded at different rates, distributing their numbers more evenly, but even when I quit, it was pretty rare to find a zone without a decent number of players.

I recommend anyone with fond memories of Vanilla turned off by newer versions of WoW check it out. Or, maybe I shouldn't, having experienced first hand just how great of a time sink this 10 year old game can still be...

[https://en.nostalrius.org/](https://en.nostalrius.org/)

<comment><USER19> Blizzard has a long history of lawsuits to prevent such a thing, starting with bnetd in the 2002. Scapegaming was the target of the first WoW-related lawsuit in 2010 for running their own server, but certainly not the last.

Enjoy the fun while it lasts.

[http://en.wikipedia.org/wiki/Blizzard_Entertainment#World_of...](http://en.wikipedia.org/wiki/Blizzard_Entertainment#World_of_Warcraft_Private_Server_Complications)

<comment><USER18> Two questions: Where were those servers located, and were they reverse engineered or using leaked server binaries?

Nostalrius being based in France, and running zero Blizzard code on their servers, may give them some protection (IANAL).

<comment><USER20> As long as they're not making money they'll fly under the radar just fine. Every private server that got shut down were taking "donations" in return for in-game items.

</comment></comment></comment></comment><comment><USER21> I played WoW a lot when I was in University. I find it really incredible how much nostalgia I'm feeling looking at these screenshots. I reactivate my account once a year or so just to fly around for a couple hours.

I'm glad I can still do this, but it concerns me that this generation of online-only games won't be relivable decades later like the games of my earlier childhood will always be.

<comment><USER22> A bit sad/cheeky story from me, but still relevant I believe. The time was around TBC, I think right in the middle of its launch, I managed to hack an account back then of some characters, and thought I'd log-in to have a good time. It was my first experience of the game, granted I never did destroy any characters or items, since it was my first time playing the game, but I did spend a reasonable amount of time in-game -- killing mobs, checking out gear of other people, seeing the chat activity, even the character activity in the World (haha, wow, such a rush of feelings), only a few months later when I got my own account to play with, did I realize what this game is and how magnificent it is -- I'm so, so lucky to have had the pleasure of playing during the original TBC when the game was booming with players and such pleasurable soul, one of the best times of playing any video game in my life, hands down.

You can't replicate those experiences, because for the most part -- it was the people who were passionate about the game, that made it what it was.

I'm sure we all have some stories like this, but I did fucking love this game with my whole heart. From a creative Mage to a passionate Druid.

<comment><USER23> I think there's a lot of us that get misty-eyed on TBC. There was a lot of opportunity for just funnin' around. I was surprised Halaa wasn't shown in the article; I consider it some of the best landscape and I had a lot of fun there. It was the sort of game where you'd say in Org chat that you were putting on a fireworks show in Halaa, and people would switch to characters in the other faction to keep the Halaa battle ballanced. (And it was nice they were there: my bank alt toon was very low level.)

</comment></comment></comment><comment><USER24> The 'level' thing is something inherited from old RPGs and computer RPGs and reused to death. It is nice for a sense of progression, but ultimately leads to all sorts of issues.

Why can a 99 level whatever kill dozens of level 1 charaters effortlessly, by mistake even? Why does it have N times more health? Makes no sense.

One of the first successful MMORPG games was Ultima Online, which didn't have any levels. Just skills. And they didn't matter all that much. Equipment did to a degree, but noone was walking around alone with a +9 weapon for fear of losing it. So it was relatively even.

It was FUN. All areas mattered, even if they didn't have as much variety as WoW. Monsters didn't give XP, so they were mostly killed for resources. And some tiny skill increase, sometimes.

<comment><USER25> It's worth bearing in mind, of course, that WoW is vastly more popular than UO ever was -- UO peaked around 250k subscribers, WoW peaked around 12 million (~48 times the population). This presumably indicates that far more people found it "fun".

This makes sense to me, since pre-Trammel UO was a griefer paradise, as you hinted at with your "for fear of using it" comment. :)

<comment><USER26> I don't know that the peak subscriber comparison is fair, UO was released in 1997 when a far smaller portion of the population had the computer hardware / internet to even consider it compared to WoW in ~2005.

</comment></comment></comment><comment><USER27> I found an old folder with screenshots of multiplayer maps from Team Fortress Classic where I had played many hours with friends. Looking at the pictures, I realized that I had an emotional connection to the virtual places just as if they were real places.

<comment><USER28> I spent.. a lot.. of my life in dustbowl. I still know dustbowl better than actual houses I've lived in.

</comment></comment><comment><USER29> I've recently started my first adventures in Azeroth, and its been quite an experience.

Being very familiar with the genre I knew what I was getting into, but didn't quite understand the differences of WoW versus Guild Wars, Wild Star, or another MMO.

I really enjoyed how they continue to have players level through the expansions, the over joyous feeling of a new loading screen when I reach the next leveling milestone was super rewarding, but quickly became overwhelming.

There's SO much content in the game, thousands of quest lines you quickly out level and never see, stories told through quest dialogs I had been skipping over. I passed right by the entire culture of this hand crafted digital world in a rush to raid, and now have no incentive to see what I've missed.

I finally got my druid to level 80, and now entering the Cataclysm expansion it quickly shows how much has changed from each iteration of the game. I went from running dungeons over and over in hopes of a single drop, to now being overburdened with item and item, all far superior than my previous expansions hard earned gear (ilvl ~170 to 300+).

It feels so forgotten, what I was first looking as like an archived museum of this game's vast history is beginning to feel like its own changes are detrimental to reliving the experience of a veteran as a new player.

Seeing complex constructed runes, swirling tornadoes out in the distance, living see creatures in the background, all without content or content worth doing makes the game feel vast and empty. Although its still very enjoyable.

<comment><USER14> You are well beyond the level you can go back and run the raid content from past expansions by yourself. The Blackrock Mountain raids specifically, saw hundreds of thousands of players run through them in groups of forty for hours every night for over two years. You just cannot get that scale anymore, and games that try (hic, Wildstar) don't see popularity like WoW did.

So you don't know empty in WoW until you run up and punch a giant rock monster to death in fifteen seconds that would have taken forty people fifteen minutes of coordinated combat to slay a decade ago.

<comment><USER30> Yes, one of the more depressing things I did recently was level up a new character in WoD after having not played since pre-Cataclysm, basically. Going back and soloing instances that I remember grinding for months and months, encounters I remember working out for the first time with my guildmates (no videos or strategy guides!), bonds I made and the sense of achievement we all had at the end... totally destroyed by a fifteen second punch to the face by my brand new level 100 character. Though I wanted the gear for nostalgia's sake, it wasn't worth the heartache.

It felt a little like going back to college a couple of years after graduating, where a layer of nostalgia wasn't enough to disguise how much I, and the place itself, had changed. (Because college, like WoW, is a lot more about the people for me than the physical buildings.)

</comment></comment></comment><comment><USER31> I played a lot of WoW in vanilla through the second expansion. The world was, I feel, the most explorable in vanilla. The game designers had started but never finished lots of content, and there was lots of randomness and hidden gems that weren't calculated 'content'. Just artistic touches that had been added to the world. After vanilla, it started to feel like everything was very much added 'on purpose', which detracted from the feeling for me. [This is a feeling I have about lots of games, and even software and real-life experiences too. Methodical polish can really make things less endearing.]

I have great memories of wandering zones I had no business being in. Especially wandering Alliance zones and cities on my Horde rogue. When achievements for exploring the whole world and doing so many thousands of quests came out with the second expansion, I had them all (Loremaster, Seeker, Explorer, ..). And I probably did 500+ quests beyond Seeker - I would just keep doing every low level quest I could find, just to experience all the random hidden pockets of content. It was a great feeling, and one that I didn't grow up finding IRL.

The vanilla world was also... rusty.. in a really charming way. It was pretty easy to crack the holes of the world open and find things that weren't meant to be found - like half finished zones, giant peculiar monoliths, and tidbits of things that had been mentioned in lore here and there but never fully implemented.

A famous (at the time) video was "Exploration the Movie' by DopeFish: [https://www.youtube.com/watch?v=UWMz7-7SGlo](https://www.youtube.com/watch?v=UWMz7-7SGlo)

The soundtrack is really great too. It's electronic / trance-style stuff that I guess isn't very popular (or wasn't where I'm from). But, the first song ('When Things Go Wrong' by Airwave) became my favorite thing to listen to for at least a year or so in high school. When I got my driver's license I would put it (and similar) songs on in the car and drive around my town at night, aimlessly. Those are some memories I'm really fond of.

<comment><USER31> (the soundtrack of the youtube video, that is. The takeaway being: that video so helped me romanticize wandering a giant, mesmerizing, alien world that I started wandering the giant, mesmerizing, _real_ world, and enjoying that too. With the help of a soundtrack to set the mood.)

</comment></comment><comment><USER32> On a related note, WoW has plenty of private shards where you can relive old WoW content. Everquest has one too, Project1999, dedicated to the first two expansions only.

<comment><USER33> P99 rocks! (just sayin')

</comment></comment><comment><USER34> It's fun to hop onto random Minecraft servers and explore. You find a lot of abandoned buildings, mining tunnels, pets, etc. Some are recognizable as a player's first temp house they built quickly and abandoned to build something better. Some are players that invested a lot of time to build something nice but stopped playing.

Each server has its own type of abandoned buildings. Chaos servers, for example, have a lot of ruined buildings covered in lava.

</comment><comment><USER35> I play Minecraft on a small server (semi-vanilla PvE). Some stuff I found can be downright creepy. Here's an example: [http://imgur.com/52wZxvp](http://imgur.com/52wZxvp). This was a huge structure in the middle of the ocean that I stumbled upon. The giant sign on it said "HAIL TITO" or some such. The inside was really strange too: dark, with random traps and creatures roaming about (all intentional, such as golems). Abandoned Minecraft buildings in general are really interesting, but this takes the cake.

After some asking around I did find that the person didn't in fact go crazy, and this was supposed to be a temple of sorts, with traps and treasure. But at the time (3am) it really creeped me out.

</comment><comment><USER36> I played WoW for a few years, from vanilla to the level 80 cap days (pugging Naxx was an interesting experience).

I used to love wandering around the world, finding hidden spots, and exploring the different pieces of Azeroth.

Now I'm older and feel way too guilty devoting that amount of time to a game.

Incidentally, one of the main pleasures of Minecraft (for me) was the same exploration.

<comment> david-given Yes, me too; PvP, raids, dungeons etc left me completely cold. I just liked wandering around the map, finding the weird things in the corners, working through the storylines (although a lot of them finished up in dungeons which required more than one person to play, which I was annoyed at). I think I solo'd my way all the way through WoW Classic, and then through a couple of expansions. (The article dumps on the Outlands a lot, but they were some of my favourite content. The designers had just gone nuts. I know someone who painted a scene from the Outlands because it just looked so awesome.)

I think I swam all the way around both Classic continents. Took flipping ages. There are some strange things tucked away in corners, though:

[http://cowlark.com/2009-03-31-south-kalimdor- farm/index.html](http://cowlark.com/2009-03-31-south-kalimdor-farm/index.html)

(Man, WoW looked awful back then. Six years ago!)

</comment></comment><comment><USER37> I have played my fair share of MMOs, and the game I spent the most time exploring the world was LOTRO. (lord of the rings online) It has been 5 or so years since I played, so not sure if it is still the same, but back then they had some deeds system where each region had challenges to kill a certain amount of creatures or explore different locations and would reward you with permanent stat boosts. I remember our guild would have nights where we would group up and tackle these challenges together, those are some of my favourite memories in gaming. Sigh, growing up sucks.

<comment><USER38> LOTRO also has an equippable item ("Stone of the Tortoise") that prevents a character from gaining EXP. If I had the time to play still I would get this. The low-level content is some of the best in the game, IMO.

</comment></comment><comment><USER39> I am just so lucky WoW started after I was done with education. In fact I picked it up during a recovery from knee surgery. I figured if I couldn't walk in the real world, I could explore an imaginary one.

It's a beautiful place. The thing is, you can't explore it without levelling. And it's also pretty vast, at least the size of zone 2 in London tube terms. So I ended up spending a lot of time there.

I got so deep into it I even attended a wedding. I mean where the IRL players got married and their characters and online friends got together.

Anyway, there is something about the way it's constructed that gets boring after a few months of playing time. It's as if there's two games: levelling and raiding. Raiding is where your friends are, so levelling is what you have to do to get your friends the Tank/Healer that they need. (Nobody needs DPS).

It would be cool if the content just scaled so you could level everywhere, instead of having a predefined optimal quest/zone path. On your third character it does get tedious, because everyone levels by doing solo DPS.

Perhaps there is also a smarter mechanic for gold grinding. When I was playing there was always some zone that was optimal for finding the best ores, so I'd just fly a loop of that each morning.

Lastly, is it really hard to generate content? I mean of the type "here's a warrior, a druid, and a warlock, find us something to do that can't just be googled". Maybe smarter minds have thought about this than me, but I thought it could be worth a stab.

</comment><comment><USER40> "You landlubbers are tougher than I thought. I'll have to improvise!"

Mr Smite - <USER2>

</comment><comment><USER41> The most fun I had in wow was running a scripted bot to power-level myself.

It added a whole level of meta-gaming and risk. It also made me ungodly rich in gold.

Then I hit the level cap and stopped playing. Oh well.

</comment><comment><USER42> To me, WoW taught me a lot for startups, especially PvP, because arena games were simply intelligence vs. intelligence fights. I think there is no other game or competition where such a broad range of skills is required in such a short amount of time (team play, application of knowledge of your character, of all other characters and their skills, use of surroundings, application of knowledge of game mechanics, very fast reactions). That's why it was so much fun chasing the gladiator title, pure application of skill (got it in S3). I've never seen something alike before, just startups I feel have the same kind of "game type".

A bit of a shame that the vanilla feeling is gone, I think it would have been important to keep the game hard, so that powerful items are very, very hard to get. It seems like they wanted to make high end content accessible to everyone in order to grow the user base, but it seems like the opposite effect was reached. Reminds me of the startup wisdom, if you want to be everything to everybody, you end up being nothing to no one.

</comment><comment><USER43> I got into WoW for a couple months just before the launch of the newest expansion, though I fell out of it in favor of a few other games before the expansion came out. Even if you're not into the endgame grind of the modern MMO (turns out, I really wasn't, as much as I tried to be), there's just a ton of fantastic content to explore as you level up a character. It's definitely worth picking up on sale and just maxing out a character to explore the world. I plan on getting the new expansion and leveling through Draenor next time I've got a lull in my games backlog.

There's also some great articles about unfinished content in WoW, like this one about a half-implemented zone with lots of lore around it, giving it a particular mystique: [http://www.engadget.com/2011/04/05/wow-archivist-the- karazha...](http://www.engadget.com/2011/04/05/wow-archivist-the-karazhan- crypt/)

</comment><comment><USER44> This is nothing new. Even back in the day, the only people playing in certain old zones were people leveling... the goal of the game (for anyone other than the insane loremasters) is to get to max level as quickly as possible so you can raid and PVP.

Blizzard is taking steps to allow people to see old dungeons, but they have not yet created incentives to keep people exploring old content. Arguably, it's not a great idea to spread people out... as the game population dwindles it's better to keep the players in the same zones so they feel like they are in a populated world and not a single-player game.

Anyway agree there are some really cool parts of the game that ANYONE could see... but they get abandoned. I care more about old dungeons and old raids, but really they've done a good job of allowing players to see that content and farm it for transmog gear and nostalgia.

</comment><comment><USER45> So much nostalgia reading that article. Sometimes I miss playing, but I've moved on with my life. I'm now in shape (I became very overweight during my WoW days), my career is moving better, and I've started a family. But sometimes I wish I could play and talk with the people in my old guild.

</comment><comment><USER46> Reading this brought back a LOT of great memories.

I remember exactly how I fell in LOVE with WoW. It was f&f, and all it involved was walking from Stormwind down through Westfall to STV. And, then, opening the map and realizing "Shit, this was less than 1% of this world."

That wonder at HOW big and rich a world had been crafted lasted for years. In the first year of release, /played was > 160 days, despite being a leader in a world-first-oriented top PvE guild, 90% of it was world pvp and exploring.

And yet it wasn't actually the environment that shaped the experience, but that we all lived in it.

In vanilla, the world MATTERED. And in a way that wasn't always 'fun' for everyone. (Red is dead bro)

We competed to claim world spawns. We griefed, camped, exploited strange environment mechanics, raided opposing cities and killed world leaders or didn't, set up roaming 5v5s, lagged out in Southshore in 200v200 struggles, denied guilds access to instance zone-ins, cursed when we sometimes got our come-uppance (and we sometimes famously did), and we had meaningful rivalries and camaraderie with other players on our server.

We all had stories about nearly every player you'd meet. Actions of single players had potentially huge social impact.

That disappeared when we all retreated to instances. (Flying mounts were a similar scale catastrophe in world engagement) We no longer really had communal experiences.

I functionally quit WoW at the end of BC. I still played a bit in later seasons and expansions, but just arena selling glad titles primarily, as the magic was gone for me, and not for lack of trying -- I had every possible opportunity and advantage to love the game in the later expansions but never really could.

This sounds more negative than I'd like, because I have really no strong bitterness towards WoW. It was a shaping experience for me. I formed great friendships and memories, learned a lot about myself, and a game like WoW has to grow and evolve and a necessity of that is that some won't enjoy the changes.

</comment><comment> ryan-allen Ah, I have played this game a lot... I loved exploring all the zones and levelling up. It's not entirely true that all the game happens 'at the end' I think, there are whole arcs that happened with each expansion but that is lost for a brand new player. WoW caters for the lifers, I think.

Blizzard can solve the problem, they have the brains and the cash. I wish they'd make a new MMO with all their learnings! They could deprecate WoW and start all again. Every expansion you kind of do that anyway.

The thing about all the forgotten content is that at some point in time during some xpac, it was very pertinent and relevant. But now it's still there many xpacs later.

</comment><comment><USER47> I recall a poll on reddit where the question was: "If you could relive any experience for the first time again, what would it be?" Playing WoW for the first time was quite high on that list, and I think that would be my answer too.

</comment><comment><USER48> A great series exploring game worlds and other virtual spaces is Andy Kelly's OTHER PLACES: [http://www.otherplaces.co.uk/](http://www.otherplaces.co.uk/)

His videos are both tranquil and surreal.

</comment><comment><USER49> I have such fond memories of World of Warcraft when it was in private beta, public beta, launch, and then up to the first expansion.

It sounds strange but some of my dearest friends and fondest memories of being a teenager was via World of Warcraft.

</comment><comment><USER50> Ah, those screen shots made me sad. The main reason I played WoW was for exploring, and I left when the only thing left to explore were dungeon raids with huge numbers of prerequisite "keys" to gather, as if it weren't just hard enough to get that many people together for the raid. I wanted to see the dungeon and would have been happy to leave without any loot (because I lacked the keys or whatever) if that was needed to balance the game mechanics. But I left when there was no more land to explore. And now the lands I knew are ghost towns?

</comment><comment><USER51> I want to cry.

If you want to play on those zones, you can resort to a private server with a old expansion. There are very good ones on vanilla where those zones are alive. :-)

That list of locations falls very short, too.

</comment><comment><USER52> I'm not sure what to make of this. It seems as though there were ~20 players in each of the zones he visited and 91 zones in total. 91 * 20 = 1820. Are player populations much higher than that on WoW servers? I was under the impression there were ~3000 active players per server at any given time. Evenly dispersing players over the world is a pretty big design consideration when it comes to MMOs.

When I played WoW I would actively seek out zones with fewer players in order to level up.

<comment><USER53> WoW handles questing/grouping terribly, imo. GW2 (and maybe GW1? Never played it) does auto groups where if you jump in and help someone kill those 20 bandits, you get credit toward your quest for that. Whereas in WoW, if someone hits the bandit first, and you help, they get all of the credit. So there's zero reason why anyone should help anyone at all. And there's also the issue of loot. I can't count how many times I've been in active WoW zones (I'm thinking Westfall, here)and a group of 5 or 6 people are trying to snipe kills off eachother to get that last bore snout or whatever. In GW2, if you helped kill it, you get the exact same loot as anyone else. And to help prevent lazy assholes who do one shot, then sit back and wait, you get varying levels of loot and exp depending on how much you helped.

And because of all that, there's just zero incentive to quest in WoW with other people. Maybe you'll have a guildie or friend quest with you, but you're just not interacting with strangers at all.

That being said, we have seen Blizz go in that direction in the last two expansion. The daily island was largely dependent on team work (albeit through the archaic manual group forming functionality) and there are a lot of rare mobs in Warlords that share kills/loot with anyone who inflicts damage. So hopefully that'll become the norm going forward.

<comment><USER54>
        > And because of all that, there's just zero incentive
        > to quest in WoW with other people.

The issues you outline are all solved by forming a party (thus a relationship) with strangers which is the crux of the game.

Auto-forming a party just because two players are attacking the same kobold in the world sounds like the kind of dumbing-down that plagues WoW, like the early death of spontaneous world PvP.

<comment><USER53> Other people have no reason to group with you though. Everyone is perfectly content doing their own thing and will often outright decline party invites. The only place this was ever not the case was on Mist's daily island.

I would hardly call auto-grouping dumbing down. It's a passive thing that helps put the "Massive Multiplayer" back in MMO, which is something WoW has been lacking outside of capital cities for years now.

<comment><USER54> They have a reason to group with you for the reasons provided above: quest- item sharing, XP sharing + party bonus, crush quests faster, round-robin looting for non-quest drops, etc.

Forming parties is necessary for optimal play and I never had an issue with forming them. If someone else is in the cave smacking the same quest rats you are, then it was common to send/receive an unsolicited party invite, then split the party as you split ways with a `/wave`.

What about the RPG in MMORPG? It's too easy to relinquish all social decisions from players including the decision to party with someone or not.

But then again, maybe people don't communicate as much in WoW anymore and zone spontaneity is dead and Blizzard removed the LFG (Looking For Group) channel. I haven't played since vanilla WoW. I'm sure the game is much different now that the 1-60 experience isn't part of the game anymore, so we're coming from different places.

</comment></comment></comment></comment></comment><comment><USER55> I'm back playing again. I have a few lvl 100's, but I decided to start a new character -- this one would have no weapons and no armor -- just a tabard. I wanted to see how far I could get with just my fists. I'm up to 21 so far. I can take out regular mobs that are 3-4 levels below me with few problems.

But I do die -- about as often as I did in BC, so about 3 times as often as everyone else does these days. The best part is my repair costs are zero gold.

Skywall\Fistsofdeath

<comment><USER56> Reminds me of a GW2 player who is playing as a pacifist cat - [http://www.reddit.com/r/Guildwars2/comments/2u6g1w/this_happ...](http://www.reddit.com/r/Guildwars2/comments/2u6g1w/this_happened_a_few_days_ago_but_i_forgot_to_save/)

</comment></comment><comment><USER57> Back when I was a MUD coder, I implemented a neat 'exploration' mechanic: the game kept track of where the characters had been, and displayed it as '% of world explored', which a lot of players had fun trying to get as high as they could. If one wanted, one could further incentivize exploration by actually tying such a '% of world explored' stat to hack-n-slash gameplay.

</comment><comment><USER58> I bet Second Life is even worse for this, and with even more creepy locales (how many virtual furry-fetish dance clubs have been left abandoned?)

<comment><USER59> Second Life is a cesspit precisely because it is entirely user-generated. I'd imagine abandoned areas simply disappear, though, because you have to pay Linden Labs if you want land.

</comment></comment><comment><USER60> What I love about posts like this one is that they usually result in beautiful comment threads full of nostalgia and memories. And probably a couple of renewed game subscriptions, too. :)

I had a plenty of exciting real life experiences after I quit WoW back in 2010, but somehow I still look back at my in-game experience with an incredible warm and fuzzy feeling somewhere inside of me.

</comment><comment><USER61> Back in the day I used to farm Azshara like it was my job. that place was desolate back then, it's good to see the developers make attempts to make all of the zones useful, the game has just gotten so massive I can see how certain zones would still be under utilized.

</comment><comment><USER62> Temple of Atal'Hakkar was one of my favorite places (7-8 years ago - vanilla) in WoW. I went there a lot of times, tanking was extremely fun. Silithus, Un'Goro Crater and Swamp of Sorrows were my favorite places for levelling.

Oh, nostalgia is hitting me hard :D

</comment><comment><USER63> That made me sad. It seems to me that because there is no way to have a real impact on the world in most MMORPGs, there really is no point to visit those places.

</comment><comment><USER64> A nice reminder, perhaps. Not much data - more of a screenshot gallery.

Unfortunately no real documentation of things like realm population (or comparisons across multiple realms), changes over time (day of week / weekend, holidays, etc.).

Yes, "the game designers declined to comment" but I was hoping for something with a little more detail. However, that doesn't appear to be in line with the rest of the content on the site.

</comment><comment><USER15> i shivered with nostalgia thinking about time time i spent exploring and building friendships in azeroth. blizzard created an entire universe, and in some ways it is just as real as this one. very powerful and interesting to think about, thank you for sharing</comment>


Show HN: 1dollarthings.com – an internet dollar store - <AUTHOR> http://www.1dollarthings.com <comment><USER2> I can't check your site because it's throwing an application error, but Ali Express has many sub-1USD things, even with postage, and also has an affiliate scheme.

A propos nothing, the cheapest thing I've found, ordered, had delivered and found useful was a Raspberry Pi camera mount for 0.19GBP (~0.27USD) shipped. Astonishing and a bit shameful.

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

<comment><USER3> I've written a blog post on that very subject. Turns out you can have a $0.03 item mailed to you, including shipping, from China!

[http://romain.goyet.com/articles/free_shipping_from_china/](http://romain.goyet.com/articles/free_shipping_from_china/)

<comment><USER4> But you do have a have a lot of patience. It seems to be getting a lot slower. I just hit a new record: An item shipped on November 25th arrived last week to Canada.

<comment><USER5> I had package of green tea I ordered show up 7 months after I ordered it.

</comment></comment></comment></comment><comment><USER6> "Application Error"

Okay, maybe your web hosting shouldn't have been a 1 dollar thing too?

(I'm kidding. I'll bookmark this and come back later when the traffic dies down. Seems like a neat idea!)

<comment><USER7> I'll buy that for a dollar

</comment></comment><comment><USER8> Site is down but based on the domain and your description, I like where your head is at.

Limiting it to $1 items might be too low IMO. One place I enjoy browsing is this subreddit: [https://www.reddit.com/r/amazonunder5](https://www.reddit.com/r/amazonunder5)

<comment><USER9> Pretty cool thing to exist, but I'm going stay away in effort to keep my life clutter free and junk drawer somewhat empty.

<comment><USER8> It's _junk drawers_ (plural) in our home

</comment></comment></comment><comment><AUTHOR> I created this app out of frustration with how hard it is to find low priced items online. You usually have to drill way down before you can filter by price. Do you think this is a useful service?

<comment><USER10> I worked on a similar side project a little while ago that focused on items that were below ten dollars. Like 1 Dollar Things, I used your typical affiliate data feeds. It was an interesting development exercise, but I failed to get any steady traffic/interest in the site.

I think the idea has some merit, but my execution wasn't good enough. Good luck with 1 Dollar Things!

<comment><AUTHOR> What do you mean by "affiliate data feeds"? I am using live API calls. Is that what you mean?

<comment><USER10> I consumed product data feeds from companies that ran affiliate programs through companies like Commission Junction, filtered/stored the product data offline, indexed it, and displayed it in any number of ways through the web.

In retrospect, I should have spent more time marketing the site and getting feedback from users instead of focusing on the technical infrastructure :-)

<comment><USER11> Yeah, but where's the fun in that!

<comment><USER12> The fun in that is gone, it has trickled into your wallet.

</comment></comment></comment></comment></comment></comment><comment><USER13> I'm getting an "Application Error" when I try to visit.

<comment><AUTHOR> Uh Oh. Looks like I have some work to do. It's up again.

<comment><USER14> It's down again :)

</comment></comment></comment><comment><USER15> I think the idea has some merit, and the domain is pretty solid. Though you'll want to eventually snag "onedollarthings.com" as well. The pinterest style tile layout is pretty exhausting at this point though. I think you'd fair better with a tidy listing, and filtering. The ability to have a "watch list" for types of items would be very handy as well.

</comment><comment><USER16> Why did you choose a Pinterest-style list rather than a sequences of rectangle boxes and pagination? Sometimes the Javascript breaks when scrolling down (I assume because the server returns a 500 on the response). A refresh would fix it, but since it doesn't know what "page" I'm on, I'm brought back to the top. It's also really slow on my mobile device and old-ish computer, while it's just a handful of images and text.

</comment><comment><USER17> It looks like you have some things counting as less than one dollar when they are really $undefined -- specifically, video streaming shows from Walmart. Here is the HTML of one of them:

Doctor Who: Season 7, Part 2 (2013)

Price: $undefined

<comment><AUTHOR> Nice catch! Thanks

</comment></comment><comment><USER18> nice, but you need a server for more than one dollar for this website

</comment><comment><USER5> I have been thinking of building an online marketplace called "unplaningobsolescence.com" that would only sell products with 10yr+ warranties but I haven't had the time.

P.S. yes I know that would be a terrible url for a online store but I like it.

<comment><USER19> Did you mean "unplaning"?

<comment><USER5> Or perhaps unplanning. I wanted it to be a play the phrase "planned obsolescence" but its like I said in my post its not a good url. Combining a word that doesn't exist with a word that is difficult to spell probably breaks a lot of the guidance given for good urls. I am open to suggestion.

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

<comment><USER20> Brainstorm: golong, plannedlongevity, lifeplus, longestlife, lastslong, vital, tenplus, 10tolife, keepers, ...

<comment><USER5> I like plannedlongevity

</comment></comment></comment></comment></comment><comment><USER21> Awesome site. Ever since I saw fivestar.io I've been wanting to do an Amazon affiliate site. He gave an update a couple of months after launch and said he was making a nice ~$300/month.

</comment><comment><AUTHOR> For those outside the US would something like this work in your country? Do you have the equivalent of a dollar store there?

</comment><comment><USER22> Heroku error on the page - I suppose paying for expensive hosting like Heroku is a bit difficult when everything being sold is $1 :D

</comment><comment><USER23> One issue that I have here, and I can't view it because the site is down, is that shipping will probably make any of these things not worth buying. Most $1 things aren't worth shipping. Unless you filter for only free shipping?

<comment><AUTHOR> Yeah I have thought about that. With Amazon Prime users don't think about shipping and with Walmart you can ship to store. But I hear what you're saying.

</comment></comment><comment><USER24> down again</comment>


Time safety is more important than memory safety - <AUTHOR> https://halestrom.net/darksleep/blog/036_timesafety/ <comment><USER2> > I see choosing "new" languages (or frameworks) as very risky propositions to > the life of a project. These languages are less likely to be around in ten > or twenty years time (newer and better Rusts and Gos are likely to form in > the years ahead) and in the meantime require you to constantly expend effort > to prevent your projects from being turned into a brick by > language/environment/library changes. In contrast my old C projects from 5-8 > years ago still compile and run, with one particular example only needing a > small modification. It's not perfect, but C is much more likely to be the > "safe" option if time x usefulness of your project is a goal.

The author's point would be strengthened by adding some examples of languages that seemed exciting at the time, gathered a large following, and then died - in the sense that software written in them no longer compiles or runs.

I'm not able to think of any. Just recently on HN was an article about a Web framework written in FORTRAN of all things.

It seems more likely that software considered throwaway today will still be chugging long after interest in the language has waned or been eclipsed by the next thing. And there will be lots of these former throwaways, keeping the language alive. Maybe for a very long time.</comment>