Rediscovering MVC - <AUTHOR> https://github.com/ciscoheat/mithril-hx/wiki/Rediscovering-MVC <comment><USER2> I love that this was posted at almost the exact same time as [https://news.ycombinator.com/item?id=10740029](https://news.ycombinator.com/item?id=10740029)

<comment><AUTHOR> Weird, I actually posted this yesterday morning - the Firebase API shows the correct time: [https://hacker- news.firebaseio.com/v0/item/10730047.json?pri...](https://hacker- news.firebaseio.com/v0/item/10730047.json?print=pretty)

        >> new Date(1450084080 * 1000)
        Date 2015-12-14T09:08:00.000Z

<comment> vive-la-liberte Probably the moderators reset the submit time of your post because they wanted it to compete with that other post.

</comment></comment></comment><comment><USER3> Enough with all the 'hand wavy' MVC application already!

MVC had a brief resurgence in the mid 00s with frameworks. So, everybody who learned web development during that time following MVC (mistakenly) tries to shoehorn everything into the same mental model.

For example, here's a modern Angular2 SPA + Microservice architecture in terms of MVC...

Front-End (VCVCM?C?): HTML/CSS + Routes + Templating + Services V C VC M?C?

Backend (N/A): LoadBalancer + Node HTTPD (*N Instances) + Cache + Database ? See Below ? ?

HTTPD (CMCC): StaticFileAPI + DataAPI + RedirectCatchallAPI C MC C

Altogether that makes this a VCVCM?C?CMCC

It's like devs who learned one OOP language and thing everything in the world that can't be described in OOP terms is garbage.

OK, so now that I've probably offended both the MVC and OOP crowd. Can we call this what it is?

Separation of Concerns...

Expand your perspective a bit. Try out a new worldview or two. See if you can find one where you don't have to 'hand wave' away the details.

MVC only really works to describe self-contained, monolithic, desktop applications. Even when it was applied to web development, it only really described the backend server portion and completely ignored the role the client.

Moral of the Story: Network architectures are inherently complex and multi- layered. That's what makes them so powerful. With well defined APIs it's possible to break out of a monolithic application mindset and do very interesting things.

<comment><USER4> You don't seem to be able to grasp that a 'modern' multi-layered application / architecture can always be broken down into self-contained 'monolithic' components.

Which you can apply MVC to. In multiple ways. If you want to use that as a way of abstracting the concepts.

Maybe you think that input->process->output is too simplistic to be the answer to every software engineering problem ?

<comment><USER3> You don't seem to grasp the point of my comment. The format mangling probably didn't help.

I'm saying that the term MVC has been diluted and misused to the point that it no longer carries a specific -- and therefore useful -- meaning. It has become web 2.0 part deux.

Maybe you think that input->process->output is too simplistic to be the answer to every software engineering problem?

In the most general and abstract terms, no. Likewise, what value is to be gained from discussing application architecture in excessively general and abstract terms?

</comment></comment></comment><comment><USER5> There's an interesting discussion on the Portland Pattern Repository about the shift in meaning in MVC from the way it was originally used in Smalltalk to the very different way it's used in most MVC frameworks today: [http://c2.com/cgi/wiki?WhatsaControllerAnyway](http://c2.com/cgi/wiki?WhatsaControllerAnyway)

<comment><USER6> When I hear the Faceboo-React people talk about "MVC", it seems like their experience of the term is from Native-UI frameworks, especially those with active Views that call themselves "MVC".

Then we have "Javascript MVC" frameworks like Angular, which have "bindings" and this makes them MVC.

Then I think about the Server-side web programmers (i.e. Rails) which are also "MVC" that render the whole response for a request.. the view is often just a template. This is also "MVC".

Basically the term has completely lost it's meaning at this point.. It's simply a pejorative term now, because we don't take the time to name/reveal the particular things we don't like about certain frameworks, we just call them MVC.

<comment><USER7> I agree. I think "MVC" has been abused to the point of where it means "the insides of this don't look like a PHP app from 2007, where it's function soup."

</comment></comment></comment><comment><USER8> It looks to me this article is mostly about client side development. As an all round developer, I usually think about MVC in the backend (server side). Now that I recently got more into bigger client side applications it does surprise me there aren't any good MVC kind of libraries/frameworks. To my taste there isn't any good satisfying way to efficiently manage a lot of data on the client side.

I'm talking about doing complex querys on your data done through a sophisticated ORM like that of Django for example. Having relations in your data instead of having to loop trough all your arrays or doing REST calls all the time.

In that aspect I think there's still a lot of nice steps to be made in client side development.

<comment><USER9> I've been doing client side development for a while, and I do not think MVC applies cleanly to the browser as it does to a web server.

In the terms of the 1970s breakdown presented in this article, a DOM node is both a view (presenting information to the user) and a controller (collecting and forwarding UI events).

MVC is a fine pattern, but underwhelming when taken as an architecture. It doesn't tell you how state will be managed and reasoned about, which along with asyncronous sequencing is the main challenge of browser development. Server side MVC doesn't really have this problem because at the end of they day the lifecycle of a HTTP request is relatively limited. Most JavaScript MVC libraries have their own answers for how state should change, but just being answers does not necessarily make them complete, good, or right for your application.

My general strategy these days is to avoid parts of my code having to know that other units are "a Backbone collection" or "a React view", and instead to have those as implementation details that I wrap in a smaller, more limited API. Instead of a framework I just use an event bus with a catalog of events that are very specific to my application. In a way this creates a "data" or "service" layer that has to fulfill event contracts, which are basically abstractions over HTTP, websockets, local storage, etc, and a "statically allocated" view layer that only knows how to respond and trigger a few events on the bus. You might call that MV and say that the C is somewhere, but to me that's more confusing than helpful.

<comment><USER10> Very insightful comment, zachrose. At the end of the article I've linked to DCI, which is the perfect complement to MVC - DCI is an architectural pattern that separates what the system is (data) from what it does (function), and mapping the user's mental model directly to code.

When you grasp how it works, things fall into place very well, with no abstractions, polymorphism or similar things that makes the code divided and very hard to reason about.

</comment></comment></comment><comment><USER11> MVC being the user's model, not the programmer's model -- that's a great insight.

</comment><comment><USER12> I love this quote from Christopher Alexander, author of Pattern Language on its failure:

"So there is the slightly strange paradox that, after all those years of work, the first three books are essentially complete and, from a theoretical point of view, do quite a good job of identifying the difference but actually do not accomplish anything. The conceptual structures that are presented are just not deep enough to actually break down the barrier. They actually do not do anything."

[https://www.dreamsongs.com/Files/PatternsOfSoftware.pdf](https://www.dreamsongs.com/Files/PatternsOfSoftware.pdf)

</comment><comment><USER13> Umm, the GoF Design Patterns book was not published in the 80's. Design Patterns were not all the rage on Commodore 64's and Apple II's.

1994, so well into the 90's decade. OP, if you're reading, this is a big blunder that takes away from what is otherwise an insightful post.

<comment><USER10> Software design patterns were introduced at OOPSLA in 1987, and were "immortalized" as the GoF patterns in 90-94. People coded OO in C++ and Smalltalk all through the 80:s, it wasn't just about the C64 and Apple II. :)</comment></comment>


Scalable Web Architectures - <AUTHOR> http://www.royans.net/arch/

<comment><USER2> So is there any difference between "scaling" and "performance tuning"?</comment>


Noam Chomsky, Closet Capitalist (2006) - <AUTHOR> http://www.hoover.org/research/noam-chomsky-closet-capitalist

<comment><USER2> Classic straw man attack. Don't critisize Chomsky's ideas, or the logic of his arguments, but critisize how he lives.</comment>


Show HN: Yes another game of life (blazingly fast and with draw tool) - <AUTHOR> https://codepen.io/jacobBogers/pen/XKpOqx <comment><USER2> FWIW, I get about 40fps unless it's a pretty small window, then it's around 60.</comment>


Singapore Airlines Billed Me $1200 for the Internet - <AUTHOR> http://www.trendhunter.com/trends/singapore-airlines-billed-me-1200-for-the-internet

<comment><USER2> This article is bullshit.

I recently used Singapore Airlines to fly to Asia and I used their internet service. It was very clear what the charges were, $10 for 10 MB of internet access, and $0.15 per 100 KB overage. I even took a picture of it because I was shocked at how expensive it was, but it was very clear what the price was.

The author apparently didn't care to read the very clear instructions, and didn't monitor his usage, which the connection also provided. If he was charged $1200, that's more than 500MB of data usage, so he clearly was doing a lot more than uploading a 4MB file and 155 page views.

</comment><comment><USER3> While I certainly question a system that allows a person to run up such a steep tab in the first place, this story smells.

 _> "So what does it take to rack up $1200 of internet use? In my case, just 155 page views, mostly to my email."_

Looking at SA per MB pricing [1] you'd need to pull down just shy of 1.2GB to be charged that much - 7.5MB per "page view". Personally, my Gmail and Outlook Inbox are a few hundred K each.

So maybe the author just doesn't know what he's talking about? according to his bio [2]...

 _> "Today, I design and code Trend Hunter until 4am because I like it."_

It would seem likely that statement is an exaggeration, the one about the number of page views is disingenuous or both.

Either way, the author loses credibility.

In any case, the author is apparently the globe trotting, baja racing, "rule breaking", former banker son of a VC [2] - he can surely afford to pay for - at best - failing to pay attention to the terms.

1: [http://www.singaporeair.com/jsp/cms/en_UK/flying_with_us/inf...](http://www.singaporeair.com/jsp/cms/en_UK/flying_with_us/inflight- connectivity.jsp)

2: [http://www.trendhunter.com/Jeremy](http://www.trendhunter.com/Jeremy)

</comment><comment><USER4> If it was an over the water flight - it most likely was using using a satellite connection.

Those are always expensive and Singapore Airlines is passing the costs onward.

For example an Iridium phone is about $.75 for 9600 baud per minute, and Inmarsat BGAN is $450 for 100 MB.

There are other satellite services, but in the general aviation field that I know, Iridium and BGAN are the two biggies.

</comment><comment><USER5> "the pricing per mb was disclosed on sign-up"

<comment><USER6> Even so, are users expected to count bytes on their own? Is a $1000 bill considered typical? If not, how about a little popup alert when you blow through the included bytes. Maybe an Are you sure? prompt somewhere around $100?

<comment><USER2> Yes, Singapore Airlines gives you the ability to monitor your usage, as well as stop once you hit your prepaid limit.</comment></comment></comment>


Ask HN: Multiple Monitors via 3d VR - <AUTHOR>

Question : I work faster and better when using multiple screens, I can do a lot more, and I was thinking - damn, I wish my laptop had multiple screens.
Now I'm not a hardware engineer--if I had the means I'd patent this idea and built it myself, maybe whoever does build it will give me a small half a percent stake or something.
But idea : Headgear that projects 2, 3, + monitors--however many you need virtually -- no need for a laptop screen, instead the laptop would just have mouse/trackpad and keyboard and you could setup however many work spaces you need. -- Even cooler is if it uses eye tracking as a mouse, but that might be asking too much for a mvp.
Anyone know of anybody working on something like this? <comment><USER2> This is one of the applications I'm interested in exploring with the Technical Illusions CastAR system: [http://technicalillusions.com/castar/](http://technicalillusions.com/castar/)</comment>


Oscilloscope pong for 1 or 2 players - <AUTHOR> http://www.eevblog.com/forum/projects/oscilloscope-pong-for-1-or-2-players/ <comment><USER2> Title doesn't do any justice, it's an all-discrete circuit made from diodes, transistors and such. They are soldered not on a PCB but mostly free hanging in air above a copper ground plate. One wrong move and "bazoing" _sparkles_. The guy didn't draw a schematic beforehand either. He mostly made it up as he went. Amazing.

[http://www.eevblog.com/forum/projects/oscilloscope-pong- for-...](http://www.eevblog.com/forum/projects/oscilloscope-pong- for-1-or-2-players/?action=dlattach;attach=298785;image)

<comment><USER3> "mostly free hanging in air above a copper ground plate"

It is impressive work, both for people inside and outside the industry.

I've built a lot of RF stuff that way, his technique is "normal". What impresses me about the quality of his work is there's no solder or flux splashes on the board and none of the wires have been burned by the iron and the board isn't tarnished like an old copper penny from all the handling. Also there's no visible reworking.

A lot of people buy non-inductive carbon comp many meg value resistors for use as standoffs which I didn't see in the pixs I saw. Most relatively low impedance ckts laugh at being shorted to ground by 8.2 megs yet it can be physically useful to anchor connections. Another option I've done and seen others do is take a piece of PCB and chop it into squares and stick the squares on the groundplane with glue or solder. I've had unfortunate incidents with the "hacksaw a grid of isolated squares" where the hacksaw didn't isolate the squares so I haven't done that since the 80s, but others have better luck. I've had extremely mixed results making microstripline using a shear and soldering the strips into place. You can buy pre-etched boards to support ground plane construction, including little boards when you need some SMD. I've done the "flip the chip over, super glue, and solder wire wrap wires to the leads" but its not fun.

I made a complete 80M ham radio receiver back in the 80s using the ARRL Hayward "radio amateur solid state design" or something like that, the title was all generic words you can't google for, using that construction technique. The brown book with the 70s era power RF transistor on the front cover (back in the bad old days when like 100 watt device cost like half a car payment and blew up if you looked at it wrong and was made of beryllium oxide heat sink and came with a toxic waste shipment bag for when you disposed of it). Anyway it looked like a war relic by the time I was done. I think I built at least two VFOs and three mixers by the time I was done (different designs, troubleshooting to get lower drift, etc) and things gradually got trashed as I modified endlessly. I'm not sure every stage was simultaneously 100% perfect at any time, but at one time or another every stage at least momentarily worked.

The truly skilled make things look easy that are actually pretty well impossible, which makes the article very impressive.

<comment><USER4>
      >>  I've done the "flip the chip over, super glue, and solder wire wrap wires to the leads" but its not fun.

Depends on your idea of fun, but this is a pretty standard way of breadboarding analog/RF circuits. (not used much as PC board fab has gotten so fast and cheap)

I have done it many times, and I think it is fun :)

<comment><USER3> Its a top of the board troubleshooter vs bottom of the board troubleshooter thing. I can look at a chip and poke a scope probe on pin 7 almost by reflex from the top but from the bottom (aka flipped chip) I guarantee I'll solder at least one chip "flipped".

I'm enough of an old timer that I'm still used to thru-hole enough that flipping a chip doesn't totally mess me up. I would imagine "kids these days" who never worked a thru hole PCB will likely be rather confused about where pin 1 appears when a chip (or board) is flipped....

Of course your fine tip sharpie pen is handy for numbering pins and preventing OCD cycles (Is that flipped over chip an opamp or a microcontroller? You can't see after its glued down, ya know). And lack of scribble on the groundplane is yet another example of this being project being fine workmanship. He doesn't even have stuff like +12V or LSB/MSB marked which is impressive.

</comment></comment></comment></comment><comment><USER5> There's also Quake on an oscilloscope

[https://www.youtube.com/watch?v=aMli33ornEU](https://www.youtube.com/watch?v=aMli33ornEU)

[https://www.youtube.com/watch?v=GIdiHh6mW58](https://www.youtube.com/watch?v=GIdiHh6mW58)

<comment><USER6> Wow, this looks even more amazing!

</comment></comment><comment><USER7> This is amazing, never thought you can make a pong game without writing a single line of code, without using any CPU.

Moving the bars with knobs, and drawing lines is fine, but doing bounce ball effects with sound.. miracle

<comment><USER8> If you can "read" a schematic, you'll see that it's actually fairly simple; in fact, you should be able to notice the repetition of many areas - it's a very modular design.

Just a bunch of simple and repeated circuits arranged in a certain manner; it's essentially a very special-purpose "computer" where the "code" is fixed in the hardware (literally "hard coded"). Much of it borrows or is identical to analog computing circuits (most especially the way the "ball" is drawn - sine/cosine waves generated and scaled, then combined on the x/y axis, which are also updated by oscillators for the ball movement).

Don't get me wrong, it's an amazing achievement, especially done "blind" and "dead-bug" style.

Also, note the various places where it looks like two diodes are in parallel, hooking up one line to ground. I'm not sure exactly what it is doing here in this circuit, but I know that in single-element ultrasonic distance sensor circuits, such a similar construct is used to protect the input of the receiver portion of the circuit from the high-voltage (due to amplification) of the transmitter when the "ping" is generated; in other words, it acts like a "voltage clamp" or filter to attenuate the signal. That is probably what is going on here, too - to prevent high-voltage spikes from being transmitted further down the line, and routing them to ground. Something like that...

</comment></comment><comment><USER9> Thats really cool. Especially completely analog.

Like the original "tenis of two" circa 1960 [https://en.wikipedia.org/wiki/Tennis_for_Two](https://en.wikipedia.org/wiki/Tennis_for_Two)

In a older thread about asteroids, I learned some older arcade games there were these things called XY monitors which were used by early video games (Asteroids, battle zone, starters, tempest..), which drew on the screen by moving a beam around the screen and turning on and off. Moving slower means things are brighter. Similar to an oscilloscope.

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

There is a youtube video where someone takes a modern laser projector and recreates asteroids similar to the beam moving on the oscilloscope (Though programmed using c). [https://www.youtube.com/watch?v=FkHjG759ABY&t=774s](https://www.youtube.com/watch?v=FkHjG759ABY&t=774s)

There were some interesting links in response to my comments: including an xy monitor manual.

[1] [http://www.arcade-museum.com/manuals- monitors/Atari%20Monito...](http://www.arcade-museum.com/manuals- monitors/Atari%20Monitor%20TM-146%20Issue%201%20Electrohome%20G05-801%20Monochrome%20XY.pdf)

<comment> semi-extrinsic > drew on the screen by moving a beam around the screen and turning on and off

Actually all CRT displays (box TVs/monitors) did this, only they move the beam in a predefined pattern (line by line downwards) and all you can do to control image is to turn the beam gradually on or off. Color uses an RGB shadow mask and three phospohors with different colors stuck together to make a pixel.

But on vector displays like you mention, which were much less common, the software actually defined the beam path and you could have super-precise vector graphics. Some displays were of the storage tube type, which would glow for several minutes, so once drawn you could add more stuff to an image, but to erase you had to reset the whole screen - very similar to a Kindle display. Others had ~30fps refresh rate.

Vector displays were great back when memory was so limited a 640 _480_ 8 bits image was out of the question. Storing only vertices of polygons is much cheaper. But due to the poor text rendering and shading capabilities of vector displays, bitmapped CRTs took over once memory had been riding Moore's law for a while.

<comment><USER10> Wouldn't you expect vector text to look better? Sharper. Like going from text at 100 DPI to 300 DPI. Is it a precision issue with controlling the beam?

<comment><USER3> Linearity of the scope amplifiers was a big issue. Back when this was a thing there was a big difference in image quality between a Tektronix or HP oscope vs some no name scope. For probably 40 years people have been hooking up 8 bit microprocessors and DACs to a scope and trying to display a clock or something and getting a perfectly round clock dial with a cheap scope is not easy.

</comment></comment></comment></comment><comment><USER11> If someone could explain how this works to someone who only understands basic circuits, that would be much appreciated. How does it maintain state and draw shapes on the oscilloscope and trigger sounds with such basic components? Amazing!

<comment><USER12> I'll try my best to explain with my electronics hobby background...

It's full of analog circuitry like integrators, comparators, op amps etc (note: it's made from discrete transistors, so you won't find an opamp chip in there). The "state" as you mentioned is maintained as a a voltage.

The velocity of the ball is stored as a voltage, and the position is produced by integrating that with an integrator. Collisions are found with a comparator, and connected to the circuitry that maintains the velocity.

The output to the oscilloscope is two voltages that control the position of the beam.

Analog electronics is one of those dying art forms where the number of people capable of doing things like this is quickly dwindling. It's no longer a viable way of building actual products except for a few special applications.

I find it a sad state of affairs that we, the mankind, have learned and developed skills and knowledge that we'll be collectively forgetting less than a century later.

<comment><USER13> I find it hard to believe that analogue electronics is disappearing. I'm an undergrad ECE student and the largest part of my course is analogue, with work in labs too. Granted, it's not an immensely popular hobby, but many art forms and jobs are necessary but aren't hobbies.

<comment><USER8> If it's RF, or chip-surface level - there's analog in there somewhere. While digital logic is somewhat forgiving, for production level work you do need to have some understanding of analog to make a successful design and stable implementation. Plus there's always the power-supply stuff, and a bunch of other things that will always be analog as well. So I agree that it won't completely die off (especially in the commercial realm) - but it certainly isn't as common in the hobbyist world as it once was.

/saying this as someone who considers analog a black though beautiful art

</comment></comment></comment></comment><comment><USER14> I wonder if the person who made it knew about Tennis for Two? [https://en.wikipedia.org/wiki/Tennis_for_Two](https://en.wikipedia.org/wiki/Tennis_for_Two)

<comment><USER15> Almost certainly. His youtube channel spends a large amount of time tearing down oscilloscopes and other electronic test equipment.

</comment></comment><comment><USER16> I remember doing similar in MIT digital lab in 1975. My team built Conways Game of Life out of TTL gates. I did the display on the oscilloscope. The grid was 32 by 32, limited by memory sizes at the time. Memory was the most expensive chips at the time, so the lab rationed them. We had double buffer design. One chip held the current generation for display and input to the game engine. The other chip held the next generation.

</comment><comment><USER17> Next step: build his analog pong computer into his home built CRO? Just like having "snake" inside your phone, but it's pong inside your CRO.

[https://www.eevblog.com/forum/projects/designed-a-cro-in- spi...](https://www.eevblog.com/forum/projects/designed-a-cro-in-spice/)

</comment><comment><USER18> Lol, this reminds me of the time many moons ago when a highly experienced tech showed me how to receive and display (good ol' NTSC) TV on a scope

</comment><comment><USER19> Wow! That's some serious analog talent.</comment>


Current launches a Visa debit card for kids that parents control with an app - <AUTHOR> https://techcrunch.com/2017/05/09/current-launches-a-visa-debit-card-for-kids-that-parents-control-with-an-app/ <comment><USER2> In Australia this product already exists as a Visa debit "Load and Go" card available from Australia Post, I have them for my children.</comment>


Show HN: Chat.io – fresh platform for chatting on a website and via FB Messenger - <AUTHOR> https://www.chat.io/ <comment><AUTHOR> Hi! Introducing our very fresh chat application. It has all the basic features you need to smoothly communicate with visitors. The thing that makes it unique is that we're working on a platform that lets you build your own features and add them to the basic product. You can get early access to the beta version of the platform on the website. Let me know what you think!</comment>


3D GIFs Made from Old Stereo Cards Are Stupidly Simple, Effective - <AUTHOR> http://gizmodo.com/5017847/3d-gifs-made-from-old-stereo-cards-are-stupidly-simple-effective

<comment><USER2> It makes me dizzy. I've had a few Molsons, so that can't help, but the flickering make me uneasy.

</comment><comment><USER3> I'm confused - what is it I should be seeing?

<comment><AUTHOR> For me, at least, the flipping cards give the image an appearance of depth, that is unusual on any screen.

<comment><USER3> huh. I just see it flickering back and forth between the two points of view.

<comment><AUTHOR> Maybe it differs from person to person. They should put up a poll -- maybe we have found a phenomenon!</comment></comment></comment></comment>


Trojan Sent to Dead Prosecutor in Argentina Posted for Community Analysis - <AUTHOR> http://pastebin.com/iiAGSMYc

<comment><AUTHOR> I love crowdsourcing (when it works): the result of the troyan analysis is here: [https://www.reddit.com/r/Malware/comments/3h9lkw/trojan_sent...](https://www.reddit.com/r/Malware/comments/3h9lkw/trojan_sent_to_dead_prosecutor_in_argentina/) and a previous one: [https://www.proofpoint.com/us/threat-insight/post/You- Dirty-...](https://www.proofpoint.com/us/threat-insight/post/You-Dirty-RAT)

</comment><comment><USER2> Context: [https://en.wikipedia.org/wiki/Death_of_Alberto_Nisman](https://en.wikipedia.org/wiki/Death_of_Alberto_Nisman)

Autotranslation with a few tweaks:

> _The Trojan sent to Nisman is the same as that was sent to Jorge Lanata [a > journalist]_

> _Personally, I think the same person that activated this to make > intelligence of Nisman had targeted Lanata._

> _Behind this are the murderers of a prosecutor or the national intelligence > or a group of para-intelligence._

> _(The e-mail of Lanata was redacted for logical reasons.)_

> _This is the mail received by the objectives of this intelligence cell._

> _The source account simulates to be Judge Claudio Bonadio. Refer to the > reception date to make sense of the simulation, which rules out spam or > general objective._

>* Attached [http://www.megafileupload.com/4Ybp/attacheado.txt](http://www.megafileupload.com/4Ybp/attacheado.txt) .*

> _@julitolopez_</comment>


Russia just announced that it's sending humans to the moon - <AUTHOR> http://www.businessinsider.com/russia-announces-first-manned-mission-to-moon-2015-10 <comment><USER2> I wonder if they will land at the SpaceX lunar base and resort hotel or will go to some other part of the Moon. :-)</comment>


Now this is how you pitch your product to an open source company - <AUTHOR> http://blog.reddit.com/2010/04/now-this-is-how-you-pitch-your-product.html

<comment><USER2> Congrats to the embed.ly team for doing it right and making our job easier.

<comment><USER3> You're welcome. A lot of credit has to go to Chris and the Reddit guys. They were awesome. One phone call, some code, a few emails and it was done.

<comment><USER2> (I'm one of the reddit guys) ;)

</comment></comment></comment><comment><USER4> Just curious, but what's the business model behind embed.ly? How does one generate revenue from such a service?

<comment><USER5> I'd like to know that too.

The only product I see here is an open standard which would be forked the moment they try to slap ads on it.

</comment></comment><comment><USER6> Love the TLDR summary at the bottom. That should become more of a trend.

<comment><USER7> I never got why its standard practice to put it _after_ the "too long" part? Shouldn't it be before?

I guess semantically using "didn't" is past tense, implying some type of initial attempt to read it and then because it's too long, you didn't. But nevertheless it would more helpful at the top?

<comment><USER8> Since you asked, my guess is psychology. If it was at the top, then most people wouldn't bother reading the comment, as they already know the conclusion.

TLDR is useful for and needed by those who are skimming.

<comment><USER9> It also makes for a nice summary if you read the article.

</comment></comment></comment></comment><comment><USER10> As a guy who runs a reddit install, I am pleased to hear that we'll be getting updates soon. : )

Is github going to be kept in sync with reddit's copy now? Is that the idea there?

<comment><USER2> We are trying to be a lot better about keeping everything in sync.

Our goal right now is to publish weekly, but we'll see how that actually works out.

<comment><USER11> The best way to keep in sync is to remove the need: just publish everything live and unfettered to a public repository.

<comment><USER2> We used to do it that way, but we stopped because it was breaking people's installs. Sometimes we have to push half-baked code, and if you sync at that point, bad things may happen.

Also, we stopped doing it because it meant revealing features before we were ready to reveal them, like sponsored links. That is when we split the public and live repos. Before that, the public repo _was_ the live repo.

<comment><USER11> Hi, thanks for responding. Obviously, I'm not involved in reddit development, since I didn't know you used to publish live. But still, I think it's ok to have half-baked code out there -- you just need to mark releases occasionally. Those can be as slow or frequent as you like, but it's still important for people to see what's going on in the interim. And in turn, those people can help you get it fully baked.

As for controlled feature revelation, I think that's counter to the spirit of open source community -- the community is not really on equal footing with the company. It like you're saying "aren't we nice to share our code with you" rather than "let's all work on this together".

Well that's my two cents. I understand that not every company feels they can work that way, but I think the really successful projects have figured this out.

<comment><USER2> > As for controlled feature revelation, I think that's counter to the spirit > of open source community -- the community is not really on equal footing > with the company. It like you're saying "aren't we nice to share our code > with you" rather than "let's all work on this together".

We very much embrace open source -- we use only open source software and we contribute back as much as we can.

However, we are still a for profit company, and occasionally have to keep things secret (especially new features, for competitive reasons).

So yeah, unfortunately the community really isn't on the same footing as us. The idea is that the code is modular enough that if someone wants to work on a new feature, they should be able to do so without having to worry about what we are doing, and for the most part that is the case.

</comment></comment></comment></comment></comment></comment><comment><USER12> Love the idea. I did find a down page btw.

<http://api.embed.ly/about>

</comment><comment><USER13> nice</comment>


PayPal Launches In-App Payment Library For Android - <AUTHOR> http://techcrunch.com/2010/05/19/paypal-launches-in-app-payment-library-for-android/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Techcrunch+%28TechCrunch%29 <comment> mike-cardwell Excellent. It's damn annoying having to give Google 30% of every sale on the Android market place. Much better to just make an app free on the market place and then make people pay through paypal to unlock features.

<comment><USER2> Allowing users to charge an app to their existing cell phone bill might actually be worth 30%.

</comment></comment><comment><USER3> This article doesn't say it, but "developers will dish up 1.9 percent to 2.9 percent of the sale, plus 30 cents based on PayPal's tiered pricing structure for e-commerce, or a 5 percent plus 5 cents per each transaction fee for micropayments." (source: <http://www.cnet.com/8301-19736_1-20005327-251.html>)

</comment><comment><USER4> FINALLY.

Although, watch this feature already included in the next release. That would be interesting.

It sure would be nice to be able to charge to the user's existing phone bill, though.</comment>


Ask HN: Do you write Airbnb review frankly? - <AUTHOR>

Right now, I am living in a house I found on Airbnb. The host is very nice and the housing is very good. But not everything is perfect. I feel it's hard/embarrassing to write something not good because the host is so nice and exposing that might affect her future rental. Not doing that might be not fair to future renters.<p>What will you do? Of course, this not only applies to Airbnb. But this is a little bit different from the amazon review where the connection between a product/seller and you is much looser. <comment><USER2> In a words of pop psychology dont't sweat the small stuff otherwise talk to host about isues you have and see what she'll do about it. Than respond accordingly.</comment>


How Prince of Persia Defeated Apple II's Memory Limitations [video] - <AUTHOR> https://www.youtube.com/watch?v=sw0VfmXKq54 <comment><USER2> Accompanying article is here: [https://arstechnica.com/gaming/2020/03/war- stories-how-princ...](https://arstechnica.com/gaming/2020/03/war-stories-how- prince-of-persia-slew-the-apple-iis-memory-limitations/)

Which links to the transcript: [https://cdn.arstechnica.net/wp- content/uploads/2020/03/princ...](https://cdn.arstechnica.net/wp- content/uploads/2020/03/prince.txt)

And his journals from the time, which are now being published: [http://jordanmechner.com/journals](http://jordanmechner.com/journals)

<comment><USER3> TL;DW: Memory constrains prevented the inclusion of enemies in the game (due to the space taken by rotoscoped images), so he got the idea of xor-ing frame pixels together to get the outline of the main character, kind of a shadow, and made that the enemy. He also squeezed a bit more memory from an "auxiliary" memory unit to animate guards.

Kind of light on details, though :)

<comment><USER4> Hi, saw this thread and wanted to jump in. It's a good question not answered in the 20-minute ArsTechnica video: since Shadowman was born out of the necessity of being squeezed for memory on the Apple II, how was I then able to add guards, skeletons, and a Vizier?

To refresh my own memory (which is more than 48K, but often foggy), I checked my journal. Part of the answer is in this entry from 11/20/1988:

"...Put in footsteps, and improved the chomping jaws. But the real breakthrough this week was invisible: I moved a bunch of stuff around so the main game code can use the auxiliary language card. Basically, I've just freed up an extra 12K. That gives me some breathing room I'll sorely need if I'm going to put in all this sword fighting."

And a few months later, on 2/16/89: "A lot of heavy work, most of it invisible, but which will make it much easier for me to implement the enemy guards in their flowing robes and turbans."

The journal doesn't give more technical detail than that (if I'd imagined anyone would be interested in this stuff 30 years later, I'd have written more!) but the code is on github, so anyone who's motivated enough should be able to reconstruct how the final code uses the auxiliary memory. In my recollection (foggy, as warned -- it's been a while), the "auxiliary language card" was an extra 16K of RAM that Apple had squeezed into the latest generation of Apple II computers, but that was difficult to use because it wasn't contiguous with the rest of RAM. I seem to recall it shared addresses already used by the main memory, so you had to flip between which part you were using. In November '88, seeing how much Shadowman and swordfighting and Shadowman improved the game motivated me to invest the time to rewrite/strategically relocate a bunch of existing code to free up 12K that I could use to implement enemies.

As for the multiple enemies, I'm pretty sure that each level contained exactly one enemy, whose shape table was packaged with the level load. The floppy disk access (very quick, thanks to Roland Gustafsson's magical 18-sector routines) when the level was loaded would swap out the previous level's enemy with the new one. That's why you'll notice that the levels containing the "special enemies" (skeleton, Jaffar, and the Fat Guard) had no normal guards in the rest of the level -- they couldn't.

Hope this helps. Thanks for your interest!

<comment><USER5> Such great memories of playing PoP in my teens! I wish I could get as excited about some new game/software as I did back then. In those days there really were some titles that would come along and just knock your socks off. Doesn't happen much anymore...a sign of the times I guess.

Thanks for taking time to share!

<comment><USER3> I can't reply to the parent anymore, but I just went back to HN after a week of busy work: thanks a lot for the details, jmechner, that's quite interesting :)

I don't have enough time on my hands to dig into the old source code (nor I am particularly interested in the Apple II), but I'm glad to know it's available, should I or some others be suddenly curious to dig in. I much prefer such code to be opened than to be lost to history!

So, it's a bit like register banks [1] or an MMU, where you have to page in and out part of the address space, I guess? I've seen some people [1] argue that we needed less powerful machines and to break backwards compatibility, for people to get creative again. Maybe there is some truth to that?

[1]: [http://www.keil.com/support/man/docs/c51/c51_le_regbankspec....](http://www.keil.com/support/man/docs/c51/c51_le_regbankspec.htm)

[2]: [https://fosdem.org/2020/schedule/event/generation_gaps/](https://fosdem.org/2020/schedule/event/generation_gaps/)

</comment></comment></comment></comment></comment><comment><USER6> I enjoyed the video a lot, but it feels a bit fictionalised. The first fifteen minutes talking about how hard it was to get another character, then immediately after adding shadownman the vizier is added, then unmentioned but shown at 16:21 there's a new skeleton enemy which is clearly a completely different bitmap from any other character.

That's a heck of a lot of space to suddenly find when adding a single extra character was seemingly untenable.

<comment><USER7> It's because the video is an ad for his book, "The Making of Prince of Persia".

</comment></comment><comment><USER8> Loved the video, and loved Prince of Persia growing up. It might have been my first PC game, back on our old 286. I'm saying might be, because we also had Monkey Island and Alley Cat!

Now that I'm older, I really appreciate the relentlessness of the vision. "I'm just gonna do rotoscoping! I'm gonna film my karate teacher and my brother!". I have to say it's really rare these days in the tech industry to see this kind of insane vision. It's even more rare to see someone pull off a cohesive product out of it.

I wish the interviewer had asked for more elaboration on the techniques used. It went really quickly from:"I ran out every single byte of memory with this Prince guy, how do I create an antagonist? I know, palette shifting!" to "then I added sword fighting, and enemy guards". Still, really love to hear these tales of optimization.

<comment><USER9> And he did it on an Apple 2. Those machines were good programming workstations, in the day, fast storage, lots of tools, and so forth, but high resolution graphics were hard to do fast.

And it is not even palette shifting. The Apple has absolute colors. He literally made another draw routine that performed the XOR operation.

For a modern day example of similar dedication, check this out:

[https://m.facebook.com/LawlessLegends/](https://m.facebook.com/LawlessLegends/)

Python scripts create in line assembly for the ray caster, PLASMA byte code interpreter, big world, animations, and excellent use of the 6 colors and artifact art.

A game this big would have been epic in the day. The team has been grinding away at it for some years now.

It will end up being an exemplary example of an RPG, and on the Apple, that kind of game is in the sweet spot.

What Jordan did was not really considered possible. PoP amazed many people!

<comment><USER10> Not just absolute colors, but absolutely bizarre Rube-Goldbergesque colors!

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

<comment><USER9> The big complication was 7 pixels per byte. Artifact colors work on even "bit boundaries" aligned with the colorburst.

On pretty much every other computer, the same bit patterns resulted in the dame artifact colors, but the Apple had even and odd byte patterns, because the repeat took two bytes, not one like other machines.

On the other hand, having that high bit shift the pixel clock a little meant 6 colors, plus black and white.

Because of how artifacting works, that is actually enough to do anything. Until the PC and some machines like the color computer 3, artifact colors were limited. Red blue, kinds of things.

The secondary complication was the screen addressing, which cost a table lookup. Had it been linear, overall draw speed would have been a bit faster.

<comment><USER10> Right, within every even/odd group of seven pixels, the even/odd colors for each of those pixels were reversed. With the high bit switching between different sets of colors. And on top of that the vertical scan line interleaving.

So many levels of owch! And punching through all that with an 8 bit 6502. It's really hard to appreciate how fucking hard any Apple ][ game that uses hires graphics had to work just to put a dot on the screen.

[https://en.wikipedia.org/wiki/Composite_artifact_colors#Appl...](https://en.wikipedia.org/wiki/Composite_artifact_colors#Apple_II)

Even more amazing were the text/hires graphics adventure engines that stippled together different colors to get a wider palette. It was so hard for the poor 6502, that part of the visceral pleasure of the game was just sitting there watching it draw each scene.

And all the visible text (IN UPPER CASE OF COURSE) must fit in the characteristic four lines at the bottom. Since it drew the scene so slowly, there was enough time to read the text before it scrolled off the top. Talk about making lemonade out of lemons, due to technical limitations!

Hi-Res Adventure #4: Ulysses and the Golden Fleece for the Apple II

[https://www.youtube.com/watch?v=QTFNKbkxeY8](https://www.youtube.com/watch?v=QTFNKbkxeY8)

<comment><USER11> Not to mention that the HGR screen was also _interleaved_ , rather than linear. Also, if you factor in DHGR, you remove the half-pixel shift, but instead you operate like you do in 80 column text mode, with the even columns of 7 pixels being in the normal high-res memory map, and the odd columns being in the auxiliary 80-column memory, on top of the normal HGR interleaving. Certainly a lot to wrap your head around as compared to other video subsystems.

[http://www.appleoldies.ca/graphics/dhgr/dhgrtechnote.txt](http://www.appleoldies.ca/graphics/dhgr/dhgrtechnote.txt)

<comment><USER10> When your only registers are a 8 bits X, Y, and A, the hires screen memory was practically encrypted!

It felt so fucking amazing to finally have a computer with a normal 1 pixel : 1 byte memory mapped display.

But before that, I played around with the Sun CG1 graphics board (on a Sun 2: I mmap'ed /dev/cgone0, but maybe it was actually a cgtwo card, not sure), which was kinda but not really memory mapped.

[http://www.sunhelp.org/faq/FrameBufferHistory.html](http://www.sunhelp.org/faq/FrameBufferHistory.html)

It had 8 bit color mapped pixels, and it had an implicit read position and write position, such that you could address a row and column of pixels at a time, one pair for reading and one for writing ("rop mode memory").

When you accessed a column of the row block of memory, that set which column you could address in the other column block of memory. When you accessed a row of the the column block of memory, that set which row you could address in the other row block of memory!

As it turned out, that just happened to be useful for drawing lines and filling trapazons and performing raster operations, but it made random access quite inefficient, and was a huge pain in the ass for anything else.

(Although nowhere near as painful as Apple ][ graphics, but a lot more expensive!)

I think the early X10 and X11 servers actually supported it (SunView [SunTools at the time] certainly did), but it was really really slow.

I learned later than John Gilmore had written weird union structs the .h file to describe the memory mapped registers, when he was at Sun in its early days:

[https://donhopkins.com/home/archive/forth/cg/cg2reg.h](https://donhopkins.com/home/archive/forth/cg/cg2reg.h)

Here's some Forth and 68K code I wrote to play around with that card (notice how register offsets gr_x_select / gr_y_select, 68k code xsel / ysel, and Forth words lineaddr / coladdr work together -- yes Forth can mmap device registers, and that is RPN 68k assembly code, with opcodes at the end of the line!):

[https://donhopkins.com/home/archive/forth/cg/cgone.f](https://donhopkins.com/home/archive/forth/cg/cgone.f)

        : getfb
          0 bytes/fb [""] /dev/cgone0 mapin  >fb !
        ;

[https://donhopkins.com/home/archive/forth/cg/cg.f](https://donhopkins.com/home/archive/forth/cg/cg.f)

        code xsel ( x --- addr )
          >fb l#) d0 long move
          gr_x_select gr_update + l# d0 long add
          d0 sp ) add
          next
        c;

        code ysel ( y --- addr )
          >fb l#) d0 long move
          gr_y_select gr_update + l# d0 long add
          d0 sp ) add
          next
        c;

[https://donhopkins.com/home/archive/forth/cg/fline.f](https://donhopkins.com/home/archive/forth/cg/fline.f)

[https://donhopkins.com/home/archive/forth/cg/iline.f](https://donhopkins.com/home/archive/forth/cg/iline.f)

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Along the same lines, there's a wonderful series of forum posts detailing the progress (right through to completion) of a fan-made Prince of Persia port to the BBC Master here: [https://stardot.org.uk/forums/viewtopic.php?f=53&t=13079](https://stardot.org.uk/forums/viewtopic.php?f=53&t=13079)

<comment><USER13> It's very good. Official page here:

[https://bitshifters.github.io/posts/prods/bs-pop- beeb.html](https://bitshifters.github.io/posts/prods/bs-pop-beeb.html)

Click the "Emulate" button at the bottom to play in your browser.

</comment></comment><comment><USER14> This War Stories series from Ars is really great. The episodes are generally geared for the gaming audience and not necessarily a technical audience, but they often touch on a wide range of topics involved in producing video games that also end up being applicable in wider software development.

<comment><USER15> Yeah it's really good, though one minor issue is that they seem to be keen on fitting a certain structure (cutting in with "The Problem", "The Solution" when it doesn't really fit well) when really it's just entertaining hearing people like Jordan Mechner, Sid Meier and Lucas Pope talk for a while about an interesting mechanic or issue.

</comment></comment><comment><USER16> Download a copy of the original Apple II disk for an emulator [https://archive.org/details/wozaday_Prince_of_Persia](https://archive.org/details/wozaday_Prince_of_Persia) You can kinda play it in the browser but the sound was a little odd and I couldn't figure out the controls.

<comment><USER17> The the Apple II version the game is actually very playable with the keyboard (easier than using a joystick) but it would be hard to figure out without some guidance.

At the title screen, hit the space bar to start the game.

After the game starts, hit Control+K to enable keyboard controls.

It uses the standard I,J,K,L + U,O layout for up, down, left, right and jumping. Note that you can't press two of these keys at the same time, but you can hold one of them down.

The Option/Alt key modifies the behavior of these keys, and you will use it often:

\- Option+J/L: step slowly rather than run. Use this to safely walk up to the edge of a ledge.

\- Option+I: Jump up and hang on to a ledge. Hold 'I' to climb up the ledge.

\- Option+K: Drop down and hang on to a ledge. Release Option to let yourself drop.

Use 'U' and 'O' to leap left or right over a ledge. This can be done while running or from a standstill.

Use 'Option' to pick up objects and drink potions.

Use the space bar to see how much time you have left.

There is a lot of trial and error at first, as you discover what things can kill you. When you die you can back to the start of the current level. Some tips:

\- You can only safely fall one story. Falling two stories will reduce your life. Falling more will kill you.

\- You can safely step into spikes that have popped out of the ground. If you run into them you will die.

\- You can jump straight up to see which floor and roof tiles are loose. Run over floor tiles that are loose. Jump up underneath a loose ceiling tile to reveal hidden areas.

<comment><USER18> You da real documentation mvp. Thank's, I've tried playing this in the past, but got lost on how the controls work.

</comment></comment></comment><comment><USER19> Why wasn't the "auxiliary" memory the actual solution? Most of the video was about not having enough memory to add guards/monster for combat but guards were added anyway after finding extra memory and yet that fact was largely glossed over.

<comment><USER20> Path of least resistance. Also, if he would have used that part for the "evil self" there would have been no guards because that memory would be in use now.

<comment><USER19> The evil self was suppose to be (according the video) the "genius" work around to not having guards and combat in the game due to memory constrains. Guards and combat being added anyway really undercuts the narrative of the video.

</comment></comment></comment><comment><USER21> It was such a let down to hear that after all that work, apparently the ports are what made PoP successful.

<comment><USER2> One point that Jordan Mechner makes is the limitations made the game better. The whole idea of the mirror guy as an antagonist was inspired by these limitations. Here's someone who is actually in the game world (not just in cutscenes or a final boss battle) that would manipulate the environment to frustrate your efforts to escape.

And then some extra memory was found so guards were added, and the ports had even less limitations and could reach a larger audience. But the original limitation inspired creativity that might otherwise never have been.

</comment></comment><comment><USER22> combat, combat, combat.

Not so long ago I shared a small video of his young brother doing the jumps and walks that he uses to create the animations for his game. Awesome work, awesome video. Inspiring.

<comment><USER23> I'm trying to imagine his coworker, telling him this every time he was bragging about some feature he managed to squeeze into the game.

Torches on the wall. Super. Why didn't you use that surplus for, and I'm just spitballing here, say... combat?

<comment><USER24> The answer would likely be along the lines of torches using a minimal amount of memory, while combat would involve adding multiple large sprites for the player in combat as well as many large sprites for the the combatants's combat and motion. Given that the game was already pushing the limits of computer graphics with it's art style, it was likely desirable to differentiate the appearance of at least some of the combatants, pushing the memory requirements even higher.

Then there was the author's lack of desire to make another game focused upon combat.

Which is the beauty of the shadow character. Since it is based upon a computational trick, it added a minimum to the resources required. At the same time, it afforded a twist in the plot that allowed the author to accept and integrate combat into the game. It changed the nature of the combat and of the player's decisions, permitted the antagonist to exist long enough to have it's own story, and got rid of the cheap feeling of a clone army (i.e. reused sprites).

</comment></comment></comment><comment><USER25> Related, the video How Myst Almost Couldn't Run on CD-ROM[1] is actually more fascinating and entertaining in my opinion.

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

</comment><comment><USER26> I would like to see Jordan getting out there and making stuff again. From this outsider's perspective, he's been in a largely quiescent state for 15+ years. I'm sure he's got more good stuff inside his brain and I want him to set it free.

<comment><USER27> He designed a completely re-imagined Karateka in 2013. The iOS version died during the great 32 bit apocalypse.

<comment><USER28> He posted some "making of" videos when he remade the iOS version of Karateka.

I really enjoyed this video explaining how he got around making the gameplay easier (not just 1 life) but also made it make sense to the story.

You have 3 lives... but 3 different lives:

[https://www.youtube.com/watch?v=Vq31IwKZkt0](https://www.youtube.com/watch?v=Vq31IwKZkt0)

</comment></comment></comment><comment><USER29> Their video on Crash Bandicoot has some more technical trick to squeeze performance out of a finite resource, where I think this one was mostly conceptual. Both enjoyable though.

</comment><comment><USER23> Is "Shadow Man" the origin story of Nega Scott?

'Nega Scott is a reference to the "Shadow Doppelganger" stock character present in many games and anime & manga.'

<comment><USER30> Maybe, but I feel there's a great chance it inspired Shadow Mario, the main antagonist in Super Mario Sunshine.

</comment></comment><comment><USER31> [https://www.reddit.com/r/TheMakingOfGames/](https://www.reddit.com/r/TheMakingOfGames/)

</comment><comment><USER32> There's a related set of blog posts[1] that go into some details of the memory limitation problems when making the C64 port.

[1] [http://popc64.blogspot.com/2011/10/part-one-why-hell- would-a...](http://popc64.blogspot.com/2011/10/part-one-why-hell-would-anyone- want-to.html)

</comment><comment><USER33> For some reason I initially read this as "Prince Charles." And thought that I was totally ignorant of Prince Charles' programming exploits, as though he were a Lee Hsien Loong.

</comment><comment><USER34> I always wanted to play "Prince of Persia" but I was too busy writing code for a living. Is it possible to play this game in a current platform, may be in Ubuntu ?

<comment><USER35> The PC version is available via abandonware. You can play it in dosbox.

<comment><USER36> Or here, right in the browser (via Dosbox)

[https://archive.org/details/msdos_Prince_of_Persia_1990](https://archive.org/details/msdos_Prince_of_Persia_1990)

<comment><USER34> This was awesome. Thanks!!</comment></comment></comment></comment>


Show HN: Multiplayer Pac-Man - <AUTHOR> https://spanisharmada.github.io/mmopm-client/ <comment><AUTHOR> Hi HN, this is a project created by me and my friends during Facebook Singapore Hackathon 2016 last weekend (and we won the 2nd place there). Client is implemented using Canvas and vanilla JS. Server is implemented in Python + Tornado. And they communicate via WebSocket. I hope you can enjoy the game :) Source codes are available on GitHub:

\- Client: [https://github.com/SpanishArmada/mmopm- client](https://github.com/SpanishArmada/mmopm-client)

\- Server: [https://github.com/SpanishArmada/MMO-Pac- Man](https://github.com/SpanishArmada/MMO-Pac-Man)

<comment><USER2> It's an interesting take on the game. One of the elements of the quarter hungry arcade game was deterministic behavior and part of the gameplay was executing patterns with precise timing. Which is to say that Pacman only required reactions due to mistakes.

But that's another game. In this one, I found that there were too many dead ends in the maze generation.

Good luck.</comment></comment>


Death-penalty analysis reveals extent of wrongful convictions - <AUTHOR> http://www.nature.com/news/death-penalty-analysis-reveals-extent-of-wrongful-convictions-1.15114

<comment><USER2> My own particular belief is that the death penalty as it is currently implemented is an abomination. But I also believe that there are just some crimes committed that must be punished by death. I have often wondered why the death penalty shouldn't only be imposed in cases where there is a 100% moral certainty that the accused committed the crime, ie, caught at the scene of the crime, captured on videotape, etc. Other than these types of cases, we really should be thinking about not allowing the death penalty anymore.

<comment><USER3> Exactly

It's one thing to put someone in death row for one conviction (with a possible error rate), another, would be to put someone for multiple convictions (and not from the same event)

Unless there's a direct evidence (filming, or something similar) no evidence (testimony, DNA, etc) should be enough to put someone in death row.

</comment></comment><comment><AUTHOR> From the article: "At least one in 25 people on death row in the United States would be exonerated if given enough time...That number still underestimates the rate of false convictions, Gross says, because many innocent people never manage to prove their innocence."

Abstract of the study available here: [http://www.pnas.org/content/early/2014/04/23/1306417111](http://www.pnas.org/content/early/2014/04/23/1306417111)

Edit: Full paper here: [http://www.pnas.org/content/early/2014/04/23/1306417111.full...](http://www.pnas.org/content/early/2014/04/23/1306417111.full.pdf+html)

</comment><comment><USER4> My 2 cents... The death penalty is wrong on both moral reasons. The moral reason is clear - you can never be 100% sure that you got the right person, and you don't have the opportunity to back out of a bad decision afterwards. The economic reason is that it's just too expensive anyway. You wind up having to do a tremendous amount of extra work to get the conviction (which may not have been correct) and then have to deal with years (decades?) of appeals and imprisonment. Just toss them in jail.

<comment><USER5> It's not always wrong. Never being 100% certain is incorrect. There are cases where you are sure; and in such cases, it should be a viable punishment. Otherwise, you're right, it is not something you can back out of.

<comment><USER4> Are we ever 100% sure though, when the possibility exists that the prosecution is corrupt and the confession could be coming from someone that is mentally ill?

And stepping aside from morality, if it costs 10X[0] the cost of a life prison sentence to kill someone, isn't it really better to just put them away for life with no chance of parole?

[0] 10X is a made up #, but it's certainly a large multiple of non-capital punishment cases.

</comment></comment></comment><comment><USER6> This was covered yesterday: [https://news.ycombinator.com/item?id=7663845](https://news.ycombinator.com/item?id=7663845)

</comment><comment><USER7> The interesting thing about death and imprisonment for life sentences is that legally society is basically saying these people are beyond recovery and not worth having among us. In practice, though, society is demanding punishment and exerting vengeance.

Where I live there are (in theory, of course) three sides to every penal sentence:

      Punishment
      Example
      Rehabilitation

Sentencing to death is admitting the convicted is beyond rehabilitation or that he will do more good to the society as an example than as a productive, rehabilitated member.

The punishment part I can't see as anything but thirst for vengeance from the society and, perhaps, atonement for the convicted.

P.S.: This thirst for vengeance, our collective need to have someone pay is, rationally , the source of these false convictions

</comment><comment><USER8> When you look at government and see how many things they do wrong, it seems to be consistent to not allow the death penalty and instead have true life- without-parole. I have no moral issue with the thought of giving a child rapist-murder the death penalty[1], but I think the risk of being wrong is just too high to support a death penalty. Plus, it seems to be a lot cheaper just to skip it and keep the person in prison for the rest of their life.

So, cheaper and allows for an apology in error.

1) I feel bad for feral dogs that need to be put down, monsters not so much.

</comment><comment><USER9> Lack of free will invalidates any form of extreme torture or death penalty. People think that the perpetrator should have known better and hence "deserves" the punishment. This is nonsense since we now know from neuroscience that "we" are not authors of our own thoughts.

There is no hard evidence that shows that capital punishment acts as a deterrent for future crimes, there is some contradictory data though[1][2].

Interesting study which found out that instead of acting as a deterrent, pickpockets were picking pockets during the hanging of a pickpocket![3]

[1][http://www.deathpenaltyinfo.org/studies-fbi-preliminary- crim...](http://www.deathpenaltyinfo.org/studies-fbi-preliminary-crime- report-2012) [2][http://www.deathpenaltyinfo.org/murder-rates-nationally- and-...](http://www.deathpenaltyinfo.org/murder-rates-nationally-and-state) [3][http://aler.oxfordjournals.org/content/4/2/295.short](http://aler.oxfordjournals.org/content/4/2/295.short)</comment>


Have coffee with Charlie Cheever and support the nonprofit arts - <AUTHOR> http://aaww.org/charliecheever.html

<comment><USER2> I did this last year. I put up $500 to have a coffee with Richard Da Silva from Highland Capital. Great insight, got a contact that I've been able to talk to since, well worth it. And I flew in from Toronto to boot.

</comment><comment><USER3> If the point is raising money, a workshop on the design of Quora or something only Charlie can teach would probably make much more folks willing to pay.</comment>


Coinbase Eyes Bitcoin ETF with New Cryptocurrency Index Fund - <AUTHOR> http://fortune.com/2018/03/06/coinbase-bitcoin-cryptocurrency-fund/ <comment><USER2> Cryptocurrency index funds make no sense in general - the correlation between coins is too negative for holding a basket of them to make sense. You want to diversify over _uncorrelated_ assets. Holding offsetting long and short positions makes zero sense, and due how most alt-coins are priced by their ALT/BTC pair, holding most altcoins essentially means shorting everything other than Bitcoin and maybe Ethereum.

If you want crypto exposure, just buy BTC and Eth. Due to their volatility, you'll want to have a healthy cash balance and target a constant fraction of that in exposure - essentially, selling half your coins if the price doubles and buying back double when the price halves. Read up on the Kelly Criterion for the full explanation as to why.

<comment><USER3> I think you mean correlation between coins is too positive, all coins tend to move up or down together.

<comment><USER2> It's both. The correlation is too positive in dollar terms, and too negative once you back out the BTC correlation by repricing things in terms of BTC (which is usually the base currency in crypto-only trading pairs).

</comment></comment></comment><comment><USER4> I signed up for this just in the hopes that someone from Coinbase reaches out to me.

Their support is completely unresponsive, even for high net worth individuals you'd think they would cater to.

<comment><AUTHOR> > Their support is completely unresponsive,

Yep. You'll see a few horror stories every week on [https://www.reddit.com/r/CoinBase/](https://www.reddit.com/r/CoinBase/) and usually once a horror story hits the front page of this sub-reddit (there are 2 horror stories today on the front page), then someone from Coinbase responds.

This is the case pretty much with all the top crypto-exchanges since the 2017 Holidays Media hype.

</comment></comment><comment><USER5> It's interesting that crypto was supposed to democratize investing and level the playing field, but this is only available to accredited investors.

<comment><USER6> To be fair, there's very little point in the fund if you ask me.

Any third party can robo-copy it and tell anyone how their portfolio should look like.

Also index funds in crypto does not mean the same as in stocks, there is extremely high systemic risk and negative correlations between coins.

These are some weird times.

<comment><USER7> simply put its "Most Advanced Yet Acceptable" -- Raymond Loewy

I'm guessing its a user acquisition tactic for people who traditionally invest in mutual funds, ETFs, etc. this way they feel like they "understand" what they're buying into instead of actually needing to suffer through the learning curve of how blockchain works.

<comment><USER6> I see that, but there is a huge problem with this index that I'm amazed is not illegal. They control the index with the coins the same platform adds.

That is a major incentives no-no. Coinbase can make more money pumping coins into the index than managing the index itself. If I wanted and index'd solution for crypto, I would not use one like this.

<comment><USER8> It's common for brokerages to have exchanges for both their own index funds and the assets those funds track.

<comment><USER6> I can't possibly understand how there isn't a breach of fiduciary duty.

</comment></comment></comment></comment></comment></comment><comment><USER9> Earlier post, where the main discussion of this is happening: [https://news.ycombinator.com/item?id=16532788](https://news.ycombinator.com/item?id=16532788)

</comment><comment><USER10> If its anything like BLCN then I'd be interested if its correlation with bitcoin was closer to 1 than 0</comment>


DNS-over-HTTPS Policy Requirements for Resolvers - <AUTHOR> https://blog.mozilla.org/security/2019/04/09/dns-over-https-policy-requirements-for-resolvers/ <comment><USER3> > Our plan is to select a set of Trusted Recursive Resolvers (TRRs) that we > will use for DoH resolution in Firefox. Those resolvers will be required to > conform to a specific set of policies that put privacy first.

So can I manually set one myself to my local pi-hole instance? I have already been setting the TRR about:config values (ala [0]), will that remain?

I am wary of Mozilla becoming the arbiter of acceptable DNS providers for me, so I should be able to override it if I want.

0 - [https://blog.stackpath.com/serverless-dns-over-https-at- the-...](https://blog.stackpath.com/serverless-dns-over-https-at-the-edge-doh)

<comment><USER4> Think of this more like which CA roots browsers include by default instead of a nefarious plan to stop you from doing whatever you want.

<comment><USER5> It's not a nefarious plan to stop me from doing what I want in a FOSS browser on a PC where I can compile and run what I want. It _will_ be used that way, however, on locked-down devices users pay for but don't actually own.

<comment><USER6> Then don't buy such a device which clearly doesn't meet your needs. Why should every personal computing device on the planet be tailored to your requirements, at the cost of safety for the majority of other users? Most people don't use PiHole, they use Adblock or uBlock which are not affected by this. It's not as though they are taking away your ability to use adblocking technology.

<comment><USER5> Macro-level view: The Mozilla Foundation may think that DNS-over-HTTPS is about "safety", but they're unwittingly furthering the agenda of those who would profit from the Internet not being decentralized. A decentralized Internet filled with devices that end users can control, should they choose, is a good thing for society, I'd argue. DNS-over-HTTPS is another piece of technology that can be used to eliminate that. It is not necessary to hand over freedom in exchange for "safety" or "security".

Micro-level view: I'm a sysadmin for my Customers, my family, and some of my friends. Inevitably I will have to deal with these awful devices. So will countless other sysadmins. I'm dreading having to deal with devices that invade my users' privacy, thwart my attempts at detecting bad actors on the network, and that just generally act like the person who paid for them doesn't actually own them.

<comment><USER6> Regarding your second point, this change will improve privacy for your clients and make it harder for bad actors to take advantage of your network. So what's not to like? Just because your old tooling won't work anymore doesn't mean that this change is a bad thing for clients.

<comment><USER7> If it improves privacy for the clients, it also improves privacy for the malware, and you won't be able to monitor or be alerted of it.

<comment><USER8> Most modern firewalls can decrypt/re-encrypt all traffic on the fly. The end user doesn't even notice. I've done this at my last two jobs.

More here: [https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?...](https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClEZCA0)

<comment><USER9> That works by Man in the middle attacks of SSL

and Only works on Enterprise Networks for devices owned by the enterprise because the Enterprise Installs their own Root Certs on all devices that "tricks" the browsers into believing they are "google.com" not the real google.com

<comment><USER6> Right, which is exactly how it should be. If you want to perform a purposeful man in the middle attack on your clients, then you SHOULD be required to install your root cert on their workstations. With unencrypted DNS, it just means that you can perform the same attack with NO specific approval by the client workstation. How is that better?

<comment><USER10> You get an HTTPS error if someone performs a DNS MITM and you're not set up specifically to trust their certificate. It's equivalent to performing an HTTPS MITM without the root cert installed.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> I replied sub-thread, but adding here to give some more visibility to some of the issues DoH is causing and will cause:

I work at a k12 school and I am involved on many k12 IT communities.

Some schools already removed Firefox from the students computers because it was being used as a "VPN" by some elementary students to access porn - <USER2> school. Guess what this VPN was? Just DNS over HTTPS.

There is a fine line between protecting yourself from your ISP and local network operators that NEED to apply some security policies to their traffic. Even Google offers "Safe Search" for schools and libraries that removes porn content.

Unfortunately, on our school network, we also allow BYOD (students with their own laptops and ipads), so we will have to have some strict rules to block DoH, the same way we block proxies and vpns.

The only other option is going to full HTTPS MITM, forcing a root SSL cert to all computers that use our network, which is the last thing that anyone wants to do.

 _Summary: This may lead to more HTTPS MITM or schools forbidding BYOD AND removing Firefox from their computers._

<comment><USER12> Don't worry. Soon Chrome will also implement DoH and ESNI, then you actually have to either forbid BYOD or actually start teaching students manners, how browsing porn is not okay in school context. I'm really quite annoyed by the connotation that kids should rather be helicopter-parented (by tech or by people) than actually taught what's okay and what's not.

The very least the new tech provides is that any silent helicopter parenting is becoming more visible and I'm grateful for that. Kids deserve internet privacy just as much as real-life privacy.

<comment><USER13> > Soon Chrome will also implement DoH and ESNI, then you actually have to > either forbid BYOD or actually start teaching students manners...

If you think that this is how it will go, you're very naive. If schools and parents can't block porn anymore, prepare for more legislation that blocks porn by default at the ISP unless you pay some kind of fee - like what the UK has proposed. Also look for a return of "content standards" for sites that want to be kept off the "porn list", like the old broadcast TV content standards.

<comment><USER12> Thankfully I don't live in the USA where asinine things like that would work. Pretty sure there isn't a single school here try and enforce a web filter other than "Let's agree not to visit pages that are not allowed [OK]". I'm hope I'm not naive, maybe just not super-accustomed to the "tHinK oF tHE ChiLDRen"-narrative for pushing filters (or other things) trough.

</comment></comment></comment></comment><comment><USER14> Note that with DoH on Firefox, your intranet domains do not work. Had issues with it before and had to disable DoH just to access our company printer. Also causes issues with DC.

That goes into the argument that DNS (domain name lookup) should be a system and network-level setting, not an App-based setting.

<comment><USER15> That's not entierely true. If the domain doesn't resolve via DoH, Firefox will fallback to the system DNS server.

        network.trr.mode

Needs to be set to 2 (fallback), 1 (pick faster), or 0 (dissable DoH) for this to happen. 3 disables the system resolver.

<comment><USER16> So, the internal domain names leak to Mozilla unless I disable this totally?

<comment><USER17> Not to Mozilla, but to whichever DoH service Firefox is configured to use, by default or by the user. Mozilla isn't running a DoH service.

<comment><USER16> What is the default?

<comment><USER18> Cloudflare 220.127.116.11 is the default.

<comment><USER16> So, when the user types in internal.mydomain.com, it gets sent to Cloudflare then they query my public domain server which doesn't have the entry so it falls back to checking the DNS the system has listed. Is Firefox going to cache the IP like the OS does?

<comment><USER18> The behaviour depends on a few preferences:

* network.trr.mode can be set to 0 (disabled), 1 (race native vs TRR), 2 (TRR first, OS DNS as fallback), 3 (TRR only), 4 (run native and TRR in parallel but use native results, save TRR timings for telemetry), or 5 (off by choice)

* network.trr.uri configures which DoH endpoint is queried

Firefox does maintain a DNS cache, even if you use the native DNS resolver. You can view the cache at about:networking#dns.

<comment><USER16> So, I really need to set 5 because 0 will probably later become default consent to use DNS-over-HTTPS.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> I hadn't been paying much attention to DNS-over-HTTPS, but I recently listened to a talk that Dr. Paul Vixie (of BIND fame) gave that where DNS-over-HTTPS was discussed:

[https://youtu.be/OxFFTxJv1L4?t=2799](https://youtu.be/OxFFTxJv1L4?t=2799)

After hearing Dr. Vixie discuss DNS-over-HTTPS from a network operator perspective I'm a lot more wary of the protocol.

<comment><USER19> (full disclosure: I'm affiliated to Cloudflare, but opinions here are my own of course)

Thanks for posting this. I knew Paul is against DoH, but never understood his specific arguments. He has great comment about DoT (dns over TLS) couple of minutes before the linked youtube (I agree with him on that).

Personally I'm not an "owner" of the networks I'm connecting to. My home router is managed by my ISP, I don't run pi-hole. Network at work is managed by yet-someone-else. I often use my mobile carrier (LTE tethering), and often use WiFi at coffee shops.

For all of these cases I would prefer to not expose my DNS traffic. Heck, I'm 100% sure that my dns traffic today is being re-sold! I have couple of unique domain names that I have open in my browser which have unique and non- guessable DNS names, which are crawled by some bots today. Even though I never shared them in any way with anyone! The only way they could be exposed for crawling is by my DNS provider leaking the DNS traffic to some shady third- party.

Many DNS people are opposed DoH, but I think this train has passed. As a user of the internet I really do want encrypt everything these days. [https://tools.ietf.org/html/rfc8404](https://tools.ietf.org/html/rfc8404)

If my corporate boss, or my ISP can mine less data about the malware I'm running - so be it. For me this is an acceptable cost of measurably improved privacy.

<comment><USER20> Your ISP doesn't really need DNS traffic to know things about you, IP addresses alone leak a lot of information, add to that SNI, response sizes, active probing, clear text traffic, etc. and you should realize that the only thing DoH does is letting one extra party to know what you are doing in addition to your ISP. DoH is net negative for privacy. You need at least a VPN to get to net positive, so that your ISP can't get that much data.

<comment><USER21> SNI is getting encrypted soon too

<comment><USER22> Only if you go through big, centralized cloud providers fronting the traffic. You're just replacing your ISP with the the CDN.

<comment><USER23> The person who wrote your application stood it up using that CDN though. There are two parties we're concerned about: you and the entity you're communicating with.

You trust your device and the entity, and the entity trusts the infrastructure and services they're using. Everything else is the enemy. So moving the barrier to a CDN which the entity trusts is actually an improvement over intermediate ISPs which neither of you trust.

<comment><USER22> They may simply not care and only "trust" the CDN in so far as it bypasses local resolvers. I.e. they might be using it for reasons not aligned with my interests and not vet the CDN at all.

</comment></comment></comment></comment></comment></comment></comment><comment><USER24> I've begun to think that differences of opinion on the benefits and/or negatives of DoH come from two different perspectives on what DNS is for.

What I perceive from the debate is generally that people who dislike DoH tend to perceive it as a network plane protocol, one that is designed for network operations and nothing more (layer 3/4 if you will).

Whereas people who tend to want privacy and the other features of DoH, perceive it as an application level concern (layer 7). In this context connectivity and discoverability of services is the aim, and knowing that the information for establishing connections to those services is correct is important to the foundations and guarantees of applications being built to utilize DNS.

In the application and services context, you may not even want a single set of recursive resolves or authorities for the system. And the reasons are to help ensure the data is focused on what you need in different contexts.

I believe that the network level concerns over DoH are a little disingenuous, and this is because there are many ways to circumvent DNS, DoH isn't necessary, you don't even need DNS to establish layer3/4 connections. Fighting over DoH for security that can't truly be enforced in DNS, seems misguided.

<comment><USER25> I can think of 3 main use-cases for DNS blocking on a network level:

1\. content policies: blocking porn, censorship, etc (already easily circumvented by changing DNS or using a VPN)

2\. preventing malware command and control: blocking domains that malware phones home to (already easily circumvented by including their own resolver, etc)

3\. preventing malware infection: blocking domains serving malware (you might lump "ads" in this category too, e.x. Pi-hole)

IMHO the 3rd is the only use-case worth trying to solve with DNS blocking, because the user isn't actively trying to circumvent it.

Applications using their own resolvers do make that difficult to do. It seems like it would be best if operating systems implemented DoH at the system level, including DHCP support, so devices could use the network's DoH resolver which might do malware blocking.

Applications like Firefox could fall back to their own DoH resolver if they had a way to detect the system was not using DoH. This would also encourage network operators to support DoH.

<comment><USER26> > It seems like it would be best if operating systems implemented DoH at the > system level, including DHCP support, so devices could use the network's DoH > resolver which might do malware blocking.

They already do that. It's called DNS.

<comment><USER25> Of course, but it's not encrypted.

</comment></comment></comment></comment><comment><USER27> "To that end, today we are releasing a list of DOH requirements, available on the Mozilla wiki, that we will use to vet potential resolvers for Firefox. The requirements focus on three areas: 1) limiting data collection and retention from the resolver, 2) ensuring transparency for any data retention that does occur, and _3) limiting any potential use of the resolver to block access or modify content._ "

I sometimes use a local resolver bound to localhost that blocks ads by pointing to a custom root.

If someone aiming to be on the TRR list sets up a remote resolver that blocks ads (or replaces them with blank images) perhaps using the same technique, it could allow Firefox users to get ad blocking by default, by using DOH.

I wonder if that would violate Mozilla's requirements?

Are ads considered "content"?

There is of course precedent for blocking undesirable content via DNS as a "service".

Third party DNS service, for example the famous one that starts with "O", has been used to block certain content, e,g, at schools.

This was offered as a fee-based service.

If I remember correctly they also offered "free" service which was subject to redirection of NXDOMAIN to paid placement "search" results/ads.

<comment><USER28> I'd be fairly certain this would be against Mozilla's requirements.

<comment><USER27> Any idea of the reasoning behind that choice?

</comment></comment></comment><comment><USER29> This has negative implications for security. For instance, one reason why DNS resolvers might block or modify requests is to blacklist domains used for malware operation (botnet C&C domains). Other things like DNS sinkholing and poisoning are also frequently used as tools to disrupt malware communication.

In addition, collection and analysis of below-the-recursive DNS traffic is one of the primary ways in which security researchers discover the infrastructure of botnet networks.

Overall DoH is probably a net positive, but I don't see downsides like this being discussed.

<comment><USER30> You can currently customize the trr address in firefox, so assuming you trust a network box's single HTTPS certificate, it can also run a DoH server.

</comment></comment><comment><USER31> Still no explanation on why dns-over-https rather than the already widespread dnscrypt or the lesser known dnscurve, dns-over-quic, and dns-over-tor.

<comment><USER32> DNSCrypt and other solutions typically involve changes to the DNS resolver in the underlying operating system. That's a lot harder to get changed and deployment can take a long time.

DOH can be implemented directly inside of the web browser application, since those browsers are obviously already doing everything over HTTPS. So the browser developers just have to build in a DNS client. From their perspective, I would see that being much simpler. And deployment is as easy as the next browser application update.

<comment><USER33> Yandex has been shipping support for DNSCrypt in their web browser since 2016.

</comment></comment></comment><comment><USER34> (It's been a long time since I've actually set up a DNS server and am pretty fuzzy on some details - so I'm going to state this like a real nooby to hopefully get an ELI5 answer)

If I were to set up my own DoH server, would its queries to upstream (root??) servers (and subsequent recursed servers) be encrypted? (Simpler: does running a DNS server "on-premise", or even in the cloud, actually protect you from anything?)

<comment><USER28> No, DoH only deals with client to resolver encryption.

Recursive lookups from the resolver to authoritative DNS servers from the root down are not encrypted.

Really what you are doing is switching between telling your ISP all the domains you look up to telling Google/Cloudflare. Except your ISP can still see SNIs so you're really just telling Google/Cloudflare in addition to your ISP.

<comment><USER34> Seems all for not :|

I don't suppose there are any proposals to replace how SNIs are transmitted? (sans-vpn/tor, that is)

Does QUIC/HTTP[23] do anything different?

</comment></comment></comment><comment><USER35> Notice something they're not requiring? Mozilla will trust resolvers that don't check DNSSEC. Stick a fork in DNSSEC.

</comment><comment><USER36> Has anyone started contributing lists of all the public DoH resolvers on any of the block-lists? e.g. [1] [2]

[1] - [https://iplists.firehol.org/](https://iplists.firehol.org/)

[2] - [https://github.com/firehol/blocklist- ipsets](https://github.com/firehol/blocklist-ipsets)

<comment><USER28> Someone has a list here:

[https://github.com/curl/curl/wiki/DNS-over- HTTPS](https://github.com/curl/curl/wiki/DNS-over-HTTPS)

</comment></comment><comment><USER37> Also you can encrypt SNI in Firefox, just enable

network.security.esni.enabled

[https://blog.cloudflare.com/encrypt-that-sni-firefox- edition...](https://blog.cloudflare.com/encrypt-that-sni-firefox-edition/)

</comment><comment><USER38> No data collection? Watch 126.96.36.199, 22.214.171.124, etc. suddenly end their services.

<comment><USER39> I'm totally supportive of that.

</comment></comment><comment><USER16> What is the justification for an app to resolve domain names differently than the services the operating system provides? I am really curious why this is a thing.

<comment><USER37> Windows doesn't provide privacy when it comes to DNS queries. It still uses old fashion, plain text DNS. Firefox is trying to protect its users from prying eyes.

<comment><USER16> Then complain to Microsoft, ship VPN software like Cloud Flare, and quit doing things in the browser that aren't browsing. This attitude that "I can suck functions into the browser" that do not take into account all the scenarios that OS vendors already have to deal with is a pain in the butt.

</comment></comment></comment><comment><USER11> Glad that they allowed resolvers that filter content based on the user request in there. So good news that Quad9 and CleanBrowsing will be able to make the list.

</comment><comment><USER40> I hope it can respect nsswitch?

</comment><comment><USER41> pretty cool, I wished chrome did that. firefox is probably going to choose cloudflare (184.108.40.206).

I wonder how this plays out with local DNS (e.g. my ISP has some custom domains for me to use, and internal company network addresses)

<comment><USER42> You can set firefox to use the normal DNS as a fallback

<comment><USER43> One could reasonably wonder why "normal" should be a fallback.

<comment><USER42> I have two reason to like DoH: public wifi blocking sites and ISPs blocking sites. I understand that it is "wrong" from the perspective of a network stack, but for my use case that is far from being even a weak issue.

</comment></comment></comment></comment><comment><USER44> tl;dr

Firefox will ignore your DNS settings and use his own (DoH)

<comment><USER45> Nothing in the article says anything about that.

The article talks about Firefox behavior when DoH is enabled. It's not enabled by default. The article doesn't say it's getting enabled by default, or under what conditions it might get enabled by default.

<comment><USER46> At the very start of the linked article, it says this:

"Over the past few months, we've been experimenting with DNS-over-HTTPS (DoH), a protocol which uses encryption to protect DNS requests and responses, with the goal of deploying DoH by default for our users."

<comment><USER45> That's correct, but the requirements that need to be met for it to be enabled by default are still being determined.</comment></comment></comment></comment>


Who is Popcorn Time? - <AUTHOR> https://blog.popcorntime.io/who-the-heck-is-popcorn-time/

<comment><USER2> I get the point they're trying to convey, but considering this is not the original Popcorn Time team, and there is at least one competing team, and as a community they still probably have some core team here (e.g, the guy who wrote this blog post), it would help to clarify more than "We're a community". Who owns the domain? Who compiles the builds? Etc.

<comment><USER3> I compile the builds. And just giving you a heads up, watch the video. Many of our team members have been there from the start. Original team.

</comment></comment><comment><USER4> OT: is this domain also owned by Popcorn Time guys? [https://popcorn- time.se/](https://popcorn-time.se/)

I noticed a difference that these guys also offer iOS version.

<comment><USER5> No, these groups had a significant war of words, especially when the build source for the binaries at the site you link was unavailable for some time. It was suggested that this late-comer was dangerous, but there are no other specifics for these claims of malicious intent that I've seen.

<comment><USER3> If you look again you'll find on reddit quite a few posts about malware regarding them.

<comment><USER4> Do you have an official blog post and clarifying you don't own .se domain and that project is run by different people? If not, I think you should write one.

</comment></comment></comment></comment><comment><USER6> ...time to adjust the front page algorithm again.

</comment><comment><USER7> Better question is, who's sponsoring the vpn company behind popcorn time? Is it an mpaa honeypot?

<comment><USER8> Popcorn-time.io doesn't have the VPN sponsership, that's popcorn-time.se.

Edit: removed "weasely" phrase, and incorrect claim about source code.

Edit2, the VPN doesn't seem to work anyway. Unable to get anything to play when it's connected.

<comment><USER2> Now you're spreading FUD the same way popcorntime.io has. First of all, popcorn-time.se is not closed source[0], and "many have said is less reputable" is both a weasly phrase, and doesn't really mean anything.

I'm not affiliated with any popcorn time team, I'm just not a fan of throwing around FUD, it's totally unnecessary.

[0] [https://popcorn-time.se/source.html](https://popcorn-time.se/source.html)

</comment></comment></comment><comment><USER9> Clear as mud.

</comment><comment><USER10> 504 Gateway Time-out

nginx/1.1.19

</comment><comment><USER2> I get the point they're trying to convey, but considering this is not the original Popcorn Time team, and there is at least one competing team, and as a community they still probably have some core team here (e.g, the guy who wrote this blog post), it would help to clarify more than "We're a community". Who owns the domain? Who compiles the builds? Etc etc.

</comment><comment><USER11> what did they use to create the video animation of git updates? I want to try visualizing other projects.

<comment><USER12> I can't load the site at the minute, so I don't know, but I've used gource[1] before, with great results

[1] [https://code.google.com/p/gource/](https://code.google.com/p/gource/)</comment></comment>


NASA robotic explorer runs into trouble after launch - <AUTHOR> http://www.usatoday.com/story/tech/2013/09/07/nasa-robotic-explorer-moon-va/2779137/

<comment><USER2> The issues have been resolved, according to the NASA Ames Center Director: [https://twitter.com/worden/status/376345117205876737](https://twitter.com/worden/status/376345117205876737)

</comment><comment><USER3> It always seems to be the reaction wheels. Are they inherently difficult to get right?

<comment><USER4> Yes and no. They're usually quite good, but they wear out. Reaction wheels are in continuous use and must remain precise enough to negate spin within some very tight tolerances. With limited fuel and the inherent work and risk in doing a burn to cancel spin, reaction wheels are usually spun very fast before they burn off the spin and let the wheels slow back down.

</comment></comment><comment><USER5> More details: [http://science.time.com/2013/09/07/nasa-launches-robotic- exp...](http://science.time.com/2013/09/07/nasa-launches-robotic-explorer-to- moon-from-va/)</comment>


BrowserStack Explains the Hacking Attack with Honesty and Maturity - <AUTHOR> http://www.nextbigwhat.com/browserstack-hack-attack-explanation-297 <comment><USER2> "We have a trace and the IP of the hacker."

Now all they need is a GUI interface using visual basic.</comment>


Universal phone charger approved - <AUTHOR> http://news.bbc.co.uk/1/hi/technology/8323018.stm

<comment><USER2> Great news, and about 15 years too late. Now let's hope the rest of the lower power gadget manufacturers will get the hint.

At least this will solve a bunch of hunting around when you don't have your charger handy. What it probably won't do is reduce the waste because phones will still be sold with a charger.

Or they may become optional, another great opportunity for unbundling :)</comment>


Show HN: Mudstack – Asset Management for Game Studios and Digital Artists - <AUTHOR> https://mudstack.com <comment><AUTHOR> Today we launched Mudstack's early access program. After working hard for almost a year, we are finally ready to kickoff the program and invite the world to come and check out what we have been building.

We built mudstack to help game studios and artists manage, collaborate on, and ship their art assets and pipelines better, faster, and with confidence.

This early access program represents the culmination of our dreams. We are extremely excited to be kicking it off, and welcome any and all feedback.</comment>