Ask HN: What browsers are you using? - <AUTHOR> As the question says, I am interested to know what browser are you using and why.
I am trying to find some alternatives in terms of speed and security/privacy. <comment><USER2> I use Firefox for everything, including web development (I find the firefox dev tools far better built and more complete than the Google ones).

The only alternative I use is Vivaldi, which I don't use often due to its weird and hard-to-use UI

</comment><comment><USER3> I make web apps so... all of them.

<comment><AUTHOR> Which one would you recommend for normal web browsing?

<comment><USER4> There are times I switch over to the competition for change ( I used Quantum for some time after it launched, and have used Safari at times for it's simplicity ) but do always come back to Chrome, for work and otherwise. It wins everywhere!

</comment></comment></comment><comment><USER5> Desktop:

\- Google Chrome for work and testing

\- Mozilla Firefox for personal and testing

\- Microsoft Edge for testing only

\- Apple Safari (in a MacMini) for testing only

Mobile:

\- Google Chrome (Android and iOS)

\- Mozilla Firefox (Android) for testing

\- Apple Safari (iPhone and iPad) for testing</comment>


Peter Sunde: "I've never really belonged anywhere" (May 2014) - <AUTHOR> http://www.laurahalminen.com/2014/06/peter-sunde-ive-never-really-belonged-anywhere.html

<comment><USER2> For those interested, Sunde got 2911 votes. The Pirate party got ~12000 votes in total. 106000 was needed for a single parlament seat.

Sunde was barely mentioned in Finnish media before the election.

[http://vaalit.yle.fi/tulospalvelu/2014/eurovaalit/ehdokkaat_...](http://vaalit.yle.fi/tulospalvelu/2014/eurovaalit/ehdokkaat_vertauslukujarjestyksessa.html)</comment>


Tutorial Screencast: Setup a Web Server on Google Compute Engine in Minutes - <AUTHOR> https://developers.google.com/live/shows/793746316

<comment><USER2> Less than 1 cent?!</comment>


Ask HN: Are there any open-source alternatives to AWS Lambda - <AUTHOR> Hello!
I recently started playing with AWS Lambda, and the entire thing intrigues me, but due to some legal chicanery at work, I can't use it for anything in production.
This got me thinking, though...Is there any good frameworks/platforms/whatever for running a Function as a Service on your own hardware? <comment><USER2> Here's something which recently got pretty popular on GitHub within just a few days. It's a framework to run serverless functions through Docker Swarm:

[https://github.com/alexellis/faas](https://github.com/alexellis/faas)

</comment><comment><USER3> A couple of choices are fission from platform9 and kubeless from bitnami.

Alternatively you could try IBM OpenWhisk or Azure Functions, both of which are open source.

</comment><comment><USER4> I worked on [https://github.com/siscia/effe](https://github.com/siscia/effe) which is basically a templare where you Write Your function in go.

You compile it down to a single executable and then you do whatever you want with it.

I can't provide the autodeploy part though...

</comment><comment><USER5> This is something I've been curious about but not found many encouraging projects so far.

Also, props for using a term that actually makes some sense (Functions as a Service) as opposed to that _other_ name thats so popular.

Most things I've seen so far are docker-based, which is a non-starter for me.

</comment><comment><USER6> What are the features of AWS that you need? For example, do you really need an enormous amount of elasticity? If not then a single powerful server that people can ssh to might be fine. How long are you waiting for various jobs to finish?

<comment><AUTHOR> Mostly what I want is the ease of "writing a function as a callback and deploy it".

<comment><USER6> Do you need the streaming features? IE, would a json endpoint in a technology of your choice be good enough? Would a message queue like rabbitmq be appropriate?

</comment></comment></comment><comment><USER7> I've heard a bit about iron.io, but couldn't tell you anything about them past that.

<comment><USER8> As an ex-customer of iron.io, I'd suggest looking elsewhere. They've been downsizing for awhile - I wouldn't be surprised if they ceased operations any day now.</comment></comment>


Objects, Identity, and Concept-formation (2008) - <AUTHOR> http://blog.higher-order.com/blog/2008/12/04/no-such-thing/ <comment><USER2> "Object-oriented programming" in its basic form means that the data manipulated in a computer program is self-describing. We can ask a datum, "what are you? what type?". The functions of that program are organized around data. This is in contrast with the form of programming in which data is just some storage, which is given a meaning by the algorithm that operates on it; it is not self-describing.

Self-describing data lets us then have generic operations. For instance, if an object hold a sequence of other object, we can create an operation which extracts the N-th one. And we can make that same operation work for an object which is a character string, vector, list. This is because the function can inquire the object what it is, and then call the appropriate concrete implementation which does the right thing for that type.

This leads us to realize that type is connected to the operations which are applicable. Those objects are somehow of the same "kind". This gives rise to the concept of subtyping and substitutability: a string is a kind of sequence and so is a list and we can have operations on sequences.

The non-object-oriented concepts are all that cruft from various languages which tries to strangle OO: virtual base classes, protected members, methods within class scope, scope resolution, copy constructors, yadda yadda ad nauseum ... We are led to believe that OO requires this or requires that. It's not OO if there is no encapsulation. It's not OO if there is no language- enforced "information hiding". It's not OO if there is no private/public access mechanism. It's not OO if method calls aren't represented as message passing. It's not OO if methods aren't in a compile-time class scope together with data members. ...

<comment><USER3> You just described parametric polymorphism, which has nothing to do with objects or runtime type information.

<comment><USER2> "has nothing to do" ... says you! I didn't describe static parametric polymorphism. Some of the things I described are doable with static parametric polymorphism in some limited circumstances.

<comment><USER3> Well, you described parametric polymorphism (a generic Nth function) and then switched to talking about dispatching on tags at runtime. You are mistaken; those really are completely unrelated concepts.

</comment></comment></comment></comment><comment><USER4> The term "object-oriented" was coined by Alan Kay, and he did provide a much more precise meaning. Unfortunately, the term became a fad and was then diluted into all sorts of vaguely related ideas.

[http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented](http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented)

I find the original idea deep and worth thinking about.

<comment><USER5> The page you link seems to indicate that Kay _didn 't_ propose this as a definitive definition of OOP, but rather as a description of the defining features of Smalltalk. I'm not familiar with the document; do you have any insight?

<comment><USER4> You are right. I've heard Kay provide short definitions. One documented case:

"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things."

[http://userpage.fu- berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay...](http://userpage.fu- berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en)

If you read this email, you will see that what he had in mind was much more than a way of programming. It was a model of computation where the computer is a networks of "cells" exchanging messages.

</comment></comment></comment><comment><USER6> "Valid concepts are arrived at by induction."

If the point is to argue that OOP is not a valid concept, the author should show first that 'programming' is a valid concept (using the same definitions) and that there are some related concepts (e.g., 'functional programming') that are valid, because if the same argument can be applied to most or all other '* programming' concepts too (not to mention concepts like 'validity' and 'concept'), then the point is not specific to OOP at all.

Incidentally, [http://en.wikipedia.org/wiki/Prototype_theory](http://en.wikipedia.org/wiki/Prototype_theory) seems a much better starting point for thinking about concepts in general, and '* programming' in particular.

<comment><USER5> The author's case is based upon Harriman's account of induction in the natural sciences. I don't think that's appropriate here. Computer Science -- or at least PL/Software Engineering -- is not a physical science! In many cases it's not or historically wasn't even a mathematical science.

Furthermore, all programming paradigms suffer the same fate in popular/industry press (even if not within academic communities). For instance, productivity claims justified by the macros and dynamic typing of Schemes and Lisps are often implicitly cross-applied to MLs under the broad header of "FP". And vice-versa for safety claims about MLs germane to types.

Sure, some people are careful about this sort of thing. But some aren't, which can make the concept of FP a "grab-bag" in certain settings. That doesn't (or shouldn't) make FP a "non-concept".

(It appears you beat me to this punch, so I'm moving my comment here instead of fragmenting this point into 2 top-level comments.)

<comment><USER7> I was happy to see a blog about the intersection of functional programming and philosophy, but I'd be happier if it weren't Objectivist. On the other hand, it's nice to see that my Rand radar is working. At the first mention of "actual concepts," I was a little intrigued. Then I noticed arrogant statements like "abstraction that is made in error," and the typical retreat to Aristetolian epistemology in order to make some basically political point. Then I went back and noticed that the link to "epistemology" actually links to "Objectivist epistemology" and that the citation for the criteria of concepthood is from The Objective Standard ("Reason, Egoism, and Capitalism").

</comment></comment></comment><comment><USER8> Well, the author recommends induction as a means of figuring this out, and it seems for induction to work we need to have some existing example to induce the principle from (if I am remembering my maths, I might not be). So to figure out our concept it may be worth taking a look at what the use of object-oriented features is, and use that as a starting point. Maybe, again I am a little rusty on my inductive reasoning.

I think one thing that strikes me with Object-oriented programming in general is the idea of data management and function management.

I guess if we look at the features that are associated with object-orientation (I am not pretending that I am being strictly inductive at this point, although I think this is vaguely inductive), I would say that it takes the management and organization of programming concepts, such as data and function organization, and embeds it into the language itself.

<comment><USER5> The article author was referring to inductive reasoning in the sense of epistemology, which is _not_ the same as mathematical induction. In fact, mathematical induction is a _deductive_ reasoning technique.

Here's the relevant wiki article: [http://en.wikipedia.org/wiki/Inductive_reasoning](http://en.wikipedia.org/wiki/Inductive_reasoning)

<comment><USER9> You might also refer to this as "recursion" when talking about computer programming.

</comment></comment></comment><comment><USER5> The mainstream programming language community has a pretty strong consensus on what OOP means, in terms of language features.

Some people out there seem to have some confused notions of what OOP is. That doesn't mean there isn't a well-understood and more-or-less accepted definition, at least in academia.

Edit for downvotes: dynamic dispatch + associating methods with classes, often times but not necessarily accompanied by an inheritance hierarchy. Of course there's lot of room for design decisions (and prototype-based languages are only awkwardly encapsulated in that group), but these features are basically unique to OOP languages.

The point is that you could put a language with these features in front of any random sample of PL researchers and they would probably more-or-less agree on whether the language has OO features. That's more or less the definition of scientific consensus.

<comment><USER10> _Edit for downvotes: dynamic dispatch + associating methods with classes..._

So Julia and Clojure are object oriented? Some "object-oriented" julia code:

        f(x: Int64) = ...
        f(x: String) = ...

Even Haskell might qualify, due to existential types.

[http://www.haskell.org/haskellwiki/Existential_type](http://www.haskell.org/haskellwiki/Existential_type)

<comment><USER5> I have no idea how defining the type of a function's domain is supposed to be indicative to dynamic dispatch or associated methods with classes. I think I don't understand your example :-( Perhaps you can elaborate, since I don't know much about either of these languages.

Regarding existential types: yes, there's an intimate relationship between existential quantification and OOP. But you can distinguish the difference between OO languages and (non-OO languages with existential types) in the type theory. That's what's important. I think the raw empirical nature of my academic community consensus test is far preferable to the author's epistemological argument.

The question is whether OOP has meaning. I think if the PL community can be empirically demonstrated to have enough consensus that languages are reliably categorized as OO or non-OO, then we can safely say the term has meaning regardless of any armchair philosophy to the contrary.

Edit: And I think (hope) the author of the article would agree my test is sufficient. He states: _When I say that there's no such thing as OO, I mean, more precisely, that there exists some abstraction (or several) that is referred to as "object-oriented", but that this abstraction has no actual referent in reality. It is an abstraction that is made in error. It is not necessary, and serves no cognitive purpose. It is "not even false"._.

If OO has enough meaning to an important subgroup of people that they can use it with more-or-less consensus, then the claim that it has no referent in reality is clearly empirically denied, at least for that subgroup. And if that subgroup happens to be a large chunk of the PL community, then I think that's an important enough subgroup to settle the larger question.

<comment><USER10> Julia/Clojure/Lisp does dynamic dispatch on the argument types of the function - it's called multimethods. So it seems to fit your criteria of "dynamic dispatch + associating methods to classes".

And in some sense, it is used for object orientation - CLOS is built on it. But on the other hand, these languages are very far from what one would normally normally call "object oriented".

I do agree with you that there is some meaning to the term "object oriented" \- I _often_ completely understand what is intended by the term. Python is certainly OO, Haskell is almost certainly not. But to some extent I agree with the author - it would be very useful to have a precise definition, because I don't think that classifying stranger languages as OO is that reliable.

<comment><USER5> Great, thanks! Your example makes a lot more sense now.

The easy way out is to say that these languages are OO in the same sense that Java is functional. Easy but maybe not unfair, particularly since all are dynamically typed.

The clojure examples make this look like OO. I would have to find a formal definition of the semantics to figure out if there's a more nuanced explanation than the easy one above.

And yes, I think I agree with the last bit. The author's _observation_ that lines can become blurred is certainly valuable and true. It's the author's _conclusion_ that the term OOP is therefore meaningless which is, imo, empirically false.

edit: stray punctuation

</comment></comment></comment></comment></comment><comment><USER2> There is such a thing as object-oriented programming; the author just hasn't encountered it through the tools that he was led to believe were OO programming tools.

"I didn't find Tao in Java or GoF" does not imply "there is no Tao".

</comment><comment><USER11> Alan Kay coined the term "object-oriented" for software architecture in the late '60's. He offers a good explanation of it: [http://programmers.stackexchange.com/a/58732](http://programmers.stackexchange.com/a/58732)

"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things." — Alan Kay

It's easy to assume only languages with Class and Object abstractions are "object-oriented", but the "orientation" is really more about your mental model of the system as differentiated objects that communicate via messages.

</comment><comment><USER12> [http://www.dreamsongs.com/ObjectsHaveNotFailedNarr.html](http://www.dreamsongs.com/ObjectsHaveNotFailedNarr.html)

</comment><comment><USER13> Url changed from [http://runarorama.github.com/blog/2008/12/04/no-such- thing/](http://runarorama.github.com/blog/2008/12/04/no-such-thing/), which redirects to this.

</comment><comment><USER14> Programming in C which isn't "object oriented" is very similar to say, Java. You make the same architectural diagrams on a whiteboard for both. So I agree with the author.

<comment><USER15> Java is a deeply flawed object oriented language. You agree with the author because, correctly, you are experiencing that Java barely supports object oriented programming. Not that there is no such thing.

[edit: Why the downvotes? I'm not saying java is bad - just that it isn't a strong representation of object orientation. If you take Java as the examplar of object orientation, then you will reasonably conclude that Object Orientation is a weak concept.]</comment></comment>


Ask HN: Why is Zoom audio quality better? - <AUTHOR> I am regularly having video and audio calls with participants all around the world, often having participants from three different continents on the same call. I have experience on Google Meet, Skype, Zoom, WhatsApp and many others.
Though I have had a subjective experience that Zoom has better audio quality, yesterday we did a test by having the same meeting in both Meet and Zoom. All participants agreed the audio quality was better for them (even with video turned on).
Why is this? Are Zoom's codecs superior? Does Zoom have an internal network which routes better than public internet WebRTC? Do they have better voice picking and echo cancellations? <comment><USER2> What? After getting a proper audio setup for videoconferencing (studio quality) my jaw dropped on the floor when I realized how BAD Zoom's audio quality is. It's comparable to a 128 Kbps mp3 file. The only thing they do well is noise cancellation. That whole Zoom thing is built for people using their MacBooks with built-in microphones and speakers, and these are THE LOWEST quality possible. A set of those internal peripheral costs maybe $4. I was expecting something close to a RedBook (uncompressed 16 bit 44.1 kHz) quality investing money in a good microphone and an audio interface. Money wasted.

A lot of WebRTC software made by hobbyists has usually much better quality than Zoom has.

PS: Zoom also sucks in their over-compressed 720p. I use a Canon camera with a separate HDMI->USB encoder and what I get straight from that setup vs what Zoom can handle are two different worlds. Shame, again.

PS2: I've been using videoconferencing tools since 1995 (I was also selling high end ones like Cisco) for a long time. The quality delivered by them has been very good for a really long time. Zoom isn't even comparable to something like mid-range Polycom ;/

I use Zoom a lot, but let's be honest - the only good things about it is price and reliability (and good noise canceling tailored up to shitty laptop microphones). I tell you, guys, the Zoom people don't want to pay for bandwidth...

I can understand, though, that someone who uses only a laptop for calls might be in love with Zoom. Myself I'll rather zoom out of that product toward something better focused on quality, especially audio. Immersive experience is important to me. I don't expect that much. Just a stable 1080p (sharp!) and a RedBook audio.

(before anyone is going to ask: I sit on a 1 Gbps fiber... And my PC is an i7 with 16GB RAM)

<comment><USER3> Everything you mentioned makes sense - video streaming is far from my area of expertise.

But you may have missed what I think is the major point in the OP: for the majority of customers, Zoom appears to have far better audio quality out-of- the-box versus other major players in the market.

You mentioned optimizing for MacBooks with built-in microphones and speakers, and I think that is exactly the point.

The number of users that have a fully equipped setup will be a tiny minority.

I think the best things about Zoom are the optimized UX in terms of getting into a call, and then the decent quality. They have definitely converted our company into paying customers. I only have anecdotal evidence, but we're continually asking our staff and all the clients we call with how the quality is, and everyone has mentioned Zoom is much better than the alternative we have been trying.

Do you have any thoughts on why/how Zoom appears to have much higher quality than say Skype/Google Hangouts without the need for additional equipment?

For us, the major use case is getting a random client on a call easily, with a reliable signal and clear audio, using their current equipment - they are never going to buy additional equipment or configure peripherals .

<comment><USER2> Sure, even if it doesn't look like so, I'm happy that Zoom exists. I use it every day without thinking about it at all. This is how technology should work. It should be transparent. Moreover, I myself converted at least 7 companies to use it instead of other solutions.

> Do you have any thoughts on why/how Zoom appears to have much higher quality > than say Skype/Google Hangouts without the need for additional equipment?

Zoom founders are former Cisco guys. They took let's say 70% of what's the best Cisco has developed in terms of know how and started selling it for pennies. So, they have a lot of experience with that kind of tech. That results in: a great noise cancellation by default, extra good algorithms for balancing sound levels between participant (that might be even the most unique on the market), an algorithm that can focus on (also audio) for a currently speaking person - working VERY fast. It also seems that they leverage a big cloud provider for low latency between ALL continents (tested, 4 way connection between the US, Asia, Europe and Iceland - works probably better than anything their competition can offer). One must remember, though, that the initial cost of development of all of that, plus the cloud costs (it must be a lot, this is why they forbidden 1080p and HD voice) must have been very large when they had started. The only other company I've seen doing that in the last couple of years was Star Leaf (they were like a father to Zoom), and they are... I'm not sure if they're out of the market or in just a bad financial shape. Financially it's a high-level game. No wonder there's not that much actual competition. Only on the first glance all those products look similar, but Zoom is like what Skype was for regular people 10 years ago, although for enterprise. Microsoft is entirely different beast, and Google is just a joke for hipsters.

Skype belongs to Microsoft, and they went the UC way (like unified comms market does it always) - I mean that they assume you're going to make your config tailored up to your situation; which comes down to dedicated rooms, DSP processors, etc. Zoom went with completely different approach - everything is configured with some assumptions in mind. They are like Apple. They want you not to see all the files on your HD by default. No wonder it works wonder for a lot of people. Especially those non-technical ones! It just works at least reasonably well.

It's hard to argue with the fact that Zoom has nailed it from the very start. They made a bet and now they can enjoy the results. Being former Cisco guys, I'd just expect them to strive for quality too, but that's not going to happen. It's crystal clear now - even providing advanced encryption is now a big deal. They are going to be like Apple. That has both pros and cons. Up to everyone to decide for oneself, exactly as it should be.

Yet, I'd like to point to the fact, that the paramount value in videoconferencing since always was immersion. Now the market decided it wants more of the cheap+fast+I-don't-wan't -to-thing-about-it stuff. I want videocalls to be like in SF novels! I want it commonly used and 4k with ultra- HD voice, with multi-directional audio coming from like 7 different directions. I want immersion. I must be biased though, because I work remotely and I prefer it over other options ;) Howk!</comment></comment></comment>


Is it faster to count to the infinite going one by one or two by two? - <AUTHOR> http://math.stackexchange.com/questions/661855/is-it-faster-to-count-to-the-infinite-going-one-by-one-or-two-by-two

<comment><USER2> Yes!</comment>


An Interview with Jack Crenshaw (2009) - <AUTHOR> http://www.trs-80.org/interview-jack-crenshaw/ <comment><USER2> Let's Build a Compiler, by Jack Crenshaw: [http://compilers.iecc.com/crenshaw/](http://compilers.iecc.com/crenshaw/)</comment>


Ask HN: Learning Engineering - <AUTHOR> I understand many people here are either from an engineering background or (like me) from a computer science background. In a lot of discussions people claim that engineering is a better background to have when it comes to problem solving.<p>I was wondering what are some good resources for computer scientists (or anyone) to learn the principles of engineering? <comment><USER2> I kinda like: <http://www.alankennington.com/philo/eng.html> after a quick skim.

I have a computer eng undergrad degree from a solid canadian school. I cant say we were explicitly taught "engineering principles", I wish we were. We learned mostly domain-specific principles, but there are some deeper cross- domain principles that are worth learning (like the link above includes).

I would add to the above, a very central concept is the "engineering trade- off" -- there is no free lunch, etc.

Another smaller one I like is "visibility", seeing clearly into your system and its state is critical to debugging/design and clear thinking.

There are also things you kind of learn by osmosis from doing projects and in the workforce. Like, dont overestimate how hard it is to do some custom work to create something new (a good FPGA programmer or C programmer can do amazing things in a week). And also, dont underestimate how hard it is to maintain said custom work (most university projects dont give a sense of maintenance cost, the overriding cost in the real world).

</comment><comment><USER3> I've got a B.S. in Comp Sci, and like you, heard that engineering would be a more valuable degree, so when I had the opportunity to get my masters, I got it in E.E.

I don't think there are many aspects of EE, if any, that prepare you more for "problem solving" than CS. That's not to say it's not worthwhile. EE is more difficult and broader than CS; it's also expensive and time consuming to learn it all on your own.

The nice thing about engineering is that the math is extremely similar between fields. Mechanical engineering uses a lot of the same techniques that electrical engineering does, as many of the principles are the same (stability is important in both).

You can use a lot of your CS skills to do engineering experiments. There are a lot of EE fields that are nearly all done in software now. Software Radio is a big one and Digital Signal Processing is another.

So, get an introductory Circuits textbook and learn the math. Learn differential equations. Play around with robots and try to get them to do things extremely accurately; this will introduce you to control systems.

Also, learn to love math and be able to read and understand formulas and equations with a lot of Greek letters.

<comment><USER4> I'm not sure whether one can say that EE is harder than CS, or vice versa. For starters, which subfields of EE and CS are you comparing? If, for CS, you pick Theory of Computation, Algorithms, or Machine Learning, then those are pretty difficult fields. If you pick programming languages, databases, or user interface design, those are "easier" than the aforementioned (although still challenging in their own right).

In EE, if you pick some of thee classes that Stephen Boyd [<http://www.stanford.edu/~boyd/>] teaches at Stanford, I would imagine those are difficult.

How much more difficult is convex optimization than complexity theory? I'm not sure, but I don't think one's necessarily easier than the other.

<comment><USER3> I can only speak from my own experience but in general I found EE to be much more challenging, particularly in the sub-fields like DSP that involved a lot of probability.

I think what makes CS more tractable is that the theory is easily testable and you can write a program and see things work. Many times when you're working with signals and antennas all you have is the theory and there's very little you can do to visualize what's actually going on, not to mention working in the analog domain always throws you some surprises.

Never in CS will you hear "Well that's due to relativistic effects."

Additionally there's the practical problem in EE that you rarely encounter in CS of actually building physical things. How many times has a program given you bad results because someone somewhere turned on the microwave? :-)

</comment></comment></comment><comment><USER5> Learn by doing, taking things apart, exploring. A good school helps too. And legos.. I'm not sure it matters whether you're an EE, or SE, or CS major. It hasn't in my experience, I know crappy engineers from each faith as well as good ones.

</comment><comment><USER6> I'm a VP of IT at my company and I have an Aerospace Engineering degree. The only distinction that I can say between problem solving with an engineering background versus a CS background might be the breadth of the tools you have to solve your problems. Many times, I noticed programmers do a great job of solving problems, but they are only able to use the languages they know best to solve them. As an engineer, I felt that I was, mentally, more free to solve problems with out-of-the-box ideas. I don't believe there is a book or write- up that can help you there though, other than experience and the willingness to open up your mind and research solutions outside of your normal expertise.

</comment><comment><USER7> heh, I'm exactly the opposite. I was a physics engineering major with an emphasis on electrical and materials engineering before I switched to more computer-sciency stuff for graduate school.

Having seen both sides, I don't think either discipline prepares you more for problem solving more than the other. It's all about your mindset.

What I will say though is that engineering problems are rooted in practical issues. e.g "This suspect is approaching security, do we have a machine that can spot them far enough away to interrogate them safely?" Science problems by contrast are more concerned with the phenomena, e.g "Does the suspect reflect enough light for our detector to pick them up at extended ranges given atmospheric turbulence?"

tl;dr If you want to be a good engineer, seek out everyday problems and solve them practically with a given budget and timeline. If you want to be a good scientist, learn to ask better questions.

</comment><comment><USER8> For my major (Biomedical Engineering) we had an intro to engineering class that did a pretty good job of laying down some basics. It was taught using a chemical engineering book (which I won't actually recommend) and we spent the lectures learning how to do mass/momentum/heat/energy balances using Chem E block-flow diagrams (<http://en.wikipedia.org/wiki/Process_flow_diagram>).

 _Then there were the tests._ How would you lift an elephant? How many liters of syrup are used in a Waffle House each day? Design a dishwasher. Explain why you think implanted blood glucose meters are difficult to design. All in an hour and with demands for equations, pictures, assumptions and models. These aren't just Fermi Questions.

You couldn't study for it. You were graded like a kindergartener for "points achieved" instead of percentage correct and yet you still somehow failed the tests all semester long.

But at some point during the semester you start to enumerate assumptions, apply math as a tool to create and communicate an engineering model of the world, and then make designs and conclusions with error bounds and a good understanding of your personal confidence in them. It was pure survival- motivated.

In short, the class did exactly as advertised and we took one step closer to thinking like engineers. I'm not sure that CS degrees cover something like that, but I'm curious to know if I'm wrong.

So try that kind of thing. You're already used to modeling (building) information processes. See how good you can get at building/modeling/analyzing physical processes. Not knowing things won't hold you back from learning the philosophy. It'll just make you less accurate.

</comment><comment><USER9> What I have to say is probably more of a meta-response -- a few things to think about / look for when you're learning.

One of the first things I was told when beginning my E.E. degree was that I'd be _learning how to learn_. Many years later (after obtaining a master's), I see that it is true.

Others here have stated, and I agree, you need to try _doing_ stuff. There seem to be two sides to engineering: understanding/developing theory, and implementing it. Both are worlds unto themselves.

Also, learn the tool of the trade: Math. Even if you don't learn a particular subject, at least familiarize yourself with it enough to be able to later on say to yourself "hey, I think this type of math is what I need to solve this problem" then go and learn it.

(And, relating back to doing things, try looking at example problems and connecting the concepts involved to their equational counter-parts -- this will make connecting the math to the context easier when you try to come up with solutions or understand something else).

I'd recommend starting out with these branches:

Differential Equations - as most physical systems adhere to these types of rules

Linear Algebra - as this is useful for taking differential equations and turning them into computations a computer can perform (via state-space) as well as many many other things -- I've found a lot of the ideas I learned from linear algebra were helpful in understanding other branches of math, such as differential equations (e.g. basis vectors/functions)

and

Laplace/Fourier Transforms - lots and lots of engineering will look at things in different domains (esp. these two), so it'd be a good idea for you to get used to doing that.

Again, the best way to learn this stuff is by doing.

[EDIT: Grammar]

</comment><comment><USER10> I can only speak from a more physical engineering (ME) persspective but the best way to become better at problem solving is by solving problems. To add to that you must also continue to solve harder and harder problems to improve at a steady pace.

<comment><USER11> Terry Tao, a mathematician, agrees: [http://terrytao.wordpress.com/career- advice/continually-aim-...](http://terrytao.wordpress.com/career- advice/continually-aim-just-beyond-your-current-range/)

</comment></comment><comment><USER12> I'm going to give you an unpopular answer, but as an engineer I have enough credence to say this:

You cannot become an engineer or learn engineering without going to college to become one.

You have to understand: engineering is far different from computer science. Even computer engineering — which is my field. It's a field that you can't practice in without a degree. It's not like computer science where you can get a job programming without a degree. No engineering firm will even consider you without a degree.

And that's because engineering requires formal training from certified teachers according to a standardized curriculum. The skills, thought processes, problem solving strategies and specific knowledge of the individual engineering fields is highly tailored. And, most importantly, extremely arduous. If an engineer has ever scoffed at your degree in college, it's because compared to his workload — no matter your degree — you have an easy time. (Because of this, we're also all arrogant :)

But, to answer your question: the best place to learn the principles of engineering is in an engineering class. In fact, it's the only place. Even if you read online articles or textbooks, you won't ever get the full engineering perspective. Only professors, uniquely qualified to endow the sacred profession, can teach the principles.

If you're currently studying CS at school, I highly recommend sitting in an introduction to engineering class. Speaking from experience, engineering has helped me immensely in computer science. I'm a much better programmer from the problem solving skills I learned in my engineering classes.

I hope this helps. Engineering is such a wonderful major, and I love every minute of it. Good luck!

</comment><comment><USER13> I was CS for undergrad, but my school had everyone take an intro-to- engineering-principles class that used digital signal processing (DSP) as the domain. There are pros and cons to that, but it provides one view on a lot of things that come up in many areas of engineering: mathematical modeling (and validating and knowing the limits of mathematical models), analyzing systems in frequency and time domains, different tools for characterizing the aggregate response of systems (resonant frequency, impulse frequency response, etc.), different ways of visualizing or analyzing the behavior of systems (mostly in Matlab), solving mathematical models in reverse (e.g. finding a physical system that will produce the desired behavior), and so on.

There are a bunch of good DSP introductions, and it's a useful thing to know in itself, so I think you could do worse than working through one of them.

</comment><comment><USER14> My advice for learning CS, from someone who is completely self-taught, learn ad hoc and strive to completely understand - trying to just understand stuff built on top of other things without understanding the bottom layer is not very good for learning.

</comment><comment><USER15> Principles of engineering is machine building. Then, it takes off as your interest. The funda of Machine building in Computer engineering is called Automata Theory. So, you can start with Formal Language and Automata. That along with mathematics forms the principle of any form of engineering.

</comment><comment><USER16> Lego.

<comment><USER17> This is actually not far from the truth. Engineering is an art and a science, and you can only get better at the art part by doing (the science can be taught, and then reinforced by 'doing' as well).

</comment></comment><comment><USER18> MIT OpenCourseWare - ocw.mit.edu - has a lot of engineering courses.

<comment><USER19> So does Berkeley - in fact Berkeley seems to have more core-engineering courses on the web and iTunes-u than anyone else.

<comment><USER20> And Stanford even has iPhone Programming classes. But MIT was the one who started it all, so some credit is due.</comment></comment></comment>


Intel and Micron begin production on new class of non-volatile memory - <AUTHOR> http://newsroom.intel.com/community/intel_newsroom/blog/2015/07/28/intel-and-micron-produce-breakthrough-memory-technology

<comment><USER2> Comments moved to [https://news.ycombinator.com/item?id=9962913](https://news.ycombinator.com/item?id=9962913).

</comment><comment><USER3> Now in production? Really, where can I buy it? What is it they are producing if they are not selling it?

Am I crazy, or did they jump a few steps ahead here?

<comment><USER4> At the bottom of the article: "3D XPoint technology will sample later this year with select customers, and Intel and Micron are developing individual products based on the technology." Sounds like the general consumer won't be getting this until those individual products are developed.</comment></comment>


Alexander Skarsgård Explains "Jantelagen" & Why He Hides His Awards - <AUTHOR> https://swedesinthestates.com/alexander-skarsgard-explains-the-swedish-jantelagen/ <comment><USER2> I dislike this attitude. Depending on the packaging it comes across as false humility at best, and at worst it holds back the most talented among us from some of the best opportunities.

If only everyone who had a 150 IQ (approx one in 2500) was arrogant enough to want to have 2500 kids.</comment>


From a non-hacker: why problems that people want fixed haven't been fixed - <AUTHOR> https://pastebin.com/gw3gYdzs <comment><AUTHOR> Well, this turned out to be too long to post without pastebin.

To summarize the long post, fixing problems requires some knowledge of economics and psychology. Having confidence that you've identified the solution, and explained various strange quirks of human behavior, requires even more knowledge of psychology and which strategies can emerge in human society, but I didn't get into that. Basically, we can fix most problems except long-term energy sources by using this system:

"Work up to 24 hours each week is paid at 1.2 times the normal rate. Work after 24 hours is paid at 0.7 times the normal rate."</comment>


Google CEO Eric Schmidt Sees No Need to Quit Apple Board - <AUTHOR> http://digitaldaily.allthingsd.com/20090710/schmidt-3/?mod=ATD_rss <comment><USER2> I think Apple and Google make a very interesting partnership. Scary for such big companies to be developing business together but they are very complimentary as I see it. Google is to web as Apple is to hardware?

</comment><comment><USER3> [http://fakesteve.blogspot.com/2009/07/dear-eric-youre- dead-t...](http://fakesteve.blogspot.com/2009/07/dear-eric-youre-dead-to- me.html) ;)

</comment><comment><USER4> apple isn't in the netbook business, so it may not be a conflict of interest</comment>


Elon Musk: Tons of C++/C engineers needed - happy-go-lucky https://twitter.com/elonmusk/status/1224182478501482497 <comment><AUTHOR> If this is their actual hiring strategy (armies of junior whiteboard coders with no preference for engineering experience or education), then the quality of their product will tank rapidly. It's not that junior engineers are bad hires, it's that it takes years of hard fought engineering experience to get an idea of what designs will work, what won't; when to pay down tech debt, etc.

Edit: There are lots of junior-sounding devs on this thread. Don't let me discourage you. Just be sure you're joining a team with strong engineering leads that will be good mentors.

<comment><USER2> What gives you the idea that Tesla is hiring junior whiteboard coders for these roles? They wouldn't know anything about optimizing C++/C/raw metal driver code for speed and wouldn't pass a real hardcore coding test.

<comment><USER3> Passing a "hardcore" coding test is something you can train for, and tends to not correlate well with actual software architecting and optimization knowledge.

<comment><USER4> Also optimized code is not necessary well designed.

<comment><USER5> Very true. Especially in embedded programming where custom code can yield massive perf gains.

</comment></comment></comment></comment></comment><comment><USER6> I could see working for for Tesla, I couldn't work on Tesla's AutoPilot though.

I have deep reservations about using members of the public (and others on the road) as guinea pigs. Before the Walter Huang fatality, maybe, but after that and how Tesla acted about what was clearly a software bug in software that wasn't fit to be on public roads ("beta" label or otherwise), I could never justify working for such a company. Imagine being a software engineer on AutoPilot at the time, and then having the company you work for excuse your bugs by blaming the victim for not circumventing AutoPilot controlled steering into a wall.

Software development ethics don't come up a lot. But I feel like AutoPilot is up there with medical software, aviation, and military, in that mistakes can easily cost lives. I want to be able to sleep at night.

It is a cool problem-space, but only academically.

<comment><USER7> The inverse is also true. There are plenty of videos of autopilot preventing wrecks that the human drivers said they likely would have wrecked on themselves. I happen to be one of those drivers when someone pulled onto the highway from a field at night. AP swerved and missed the idiot but I'd not even seen them and would have almost certainly hit them doing about 70mph. A T-bone that fast would likely have messed both of us up really good.

AP will never prevent all injuries / fatalities due to road conditions and other human drivers simply being imperfect. It has a good chance to prevent a lot of otherwise fatal crashes in the meantime however. One could say it would be unethical to not even consider the alternative here.

Just some food for thought. I'm a software engineer myself and Model 3 owner.

<comment> semi-extrinsic On the flipside, in these cases where people self-report "I likely would have wrecked myself", we can reasonably expect that they are paying less attention to the driving situation while using AP than if they were driving a car without AP. So we expect them to be strongly biased towards underestimating their own abilities in the situation.

<comment><USER7> That's fair, but I'm sort of afraid / amazed by autopilot. I have been through FAA flight school and you learn to develop an instrument panel "scan" in instrument rated flight. I find myself having developed a "scan" that includes looking side to side and behind me. With AP enabled I'm able to take in more of the current situation around me, but in this case, I was not able to see the car that drove into the middle of the highway from offroad at night. AP did a better job than a human did. End.

<comment><USER8> AP did a better job than _you_, but it's a bit of a stretch to assume that finding is true for most other people, or even just the average person. This is why the scientific method exists, so we don't fall prey to our own bias.

</comment></comment></comment></comment></comment><comment><USER9> > Educational background is irrelevant, but all must pass hardcore coding > test.

This sounds like another example where his hard core coding tests filters for code-grifters.

You know the type: People who game the system by studying L33T coding challenges, and can hack out some nonsense from copy/pasting stackoverflow. They get 'something' working, and ship it, and declare that it is done. But when you really investigate it, you find that it is a disaster waiting to happen.

And in general, they cannot engineer a formally-verified, fault-tolerant system to control complex systems, complex heavy machinery, and intricate business logic.

But, these are the engineers that will pass his hard core coding challenge. Welcome to the so-called world of Software "Engineering".

<comment><USER10> > And in general, they cannot engineer a formally-verified, fault-tolerant > system

Do any automobile manufacturers actually use formal verification? How do you even apply such techniques to things that leverage ML like Tesla's autonomous driver?

<comment><USER9> ML for automotive sounds like a disaster waiting to happen.

It seems like ML is statistically safe for everyone else, until that moment when you become the "statistic".

</comment></comment></comment><comment><USER11> I don't care to have a job where my mistakes could possibly end up killing people months/years from now, but I wouldn't mind seeing what he means by "hardcore coding test".

<comment><AUTHOR> Almost any software bug can end up killing someone once it's deployed to a billion people.

It's just less likely you'll hear about it if it doesn't involve a spectacular plane/car crash, missile launch, radiation release, etc.

Ad targeting comes to mind (e.g., accidentally pushing opioids and worse at mentally unstable people because the computer inferred they are likely to buy).

<comment><USER12> I like how you assume that was an "accident", especially after it came out that Purdue and Allscripts teamed up to push pills through their software. The system is working as expected, it just would horrifying it's original creators

</comment></comment></comment><comment><USER13> A few years ago, I contacted a buddy of mine at Tesla to see if they were hiring. That led to a call from their HR/recruiter and a nice chat. I remember being interested enough to continue the process until we reached the end.

It sounded pretty straightforward. Coding test, talk to a bunch of people onsite, etc. Each of the people would write up a report and it would work its way up to Elon Musk and he would make the final decision as to whether or not to hire me.

In a small company of up to ~200 people, sure. A department that's maybe a layer or two beneath him, ok, maybe? I don't remember where this was exactly, but it was something involving web services or similar in C#, and I don't even think it was front-facing, but for internal use, so probably somewhere in the IT department.

For my personal tastes, when the CEO is making hiring decisions on every position, that's an element of micromanaging that I'm not comfortable with, so Tesla is pretty much off my list.

</comment><comment><USER14> I know Elon is sometimes not popular around here, but how many CEOs at that level would know that level of details abouts the NNs. (he is totally in the weeds, but that is very cool IMO)

I'd love to work there, but I know I would not put in the effort to pass the coding tests.

<comment><USER15> Many of them? 1/3 of Fortune 500 CEOs majored in engineering. For decades, the CEO of Intel was a process engineer. The current CEO of AMD is also a process engineer. You bet they know the details of their chip design and manufacturing process. Ginny Rometty, CEO of IBM for more than a decade, had a degree in computer science and electrical engineering. The current Boeing CEO is an aerospace engineer. They've not necessarily been amazing leaders, but I bet they know what language Watson/Boeing's control code is written in.

<comment><USER16> Dennis Muilenburg was fired. The current CEO of Boeing is a finance guy if I remember correctly.

</comment></comment></comment><comment><USER17> Tesla doesn't pay well enough to attract good software engineering talent.

<comment><USER18> It does compare badly versus employers in the oil & gas, defense, tobacco and casino industry. A shame.

</comment></comment><comment><USER19> naive question, but shouldn't AV command and control algorithms be built on some kind of formally verified system/language, considering lives are at play here ?

I am aware of MISRA C for automotive but is something like that sufficient to guarantee against unintended behavior ?

If not, can someone comment on why this isn't the case today ?

<comment><USER20> Is there _any_ production software in the world that is written and maintained in a formally verified language? I have only ever seen toy problems and simplified subsystems of real projects verified.

I work on space craft flight software and exactly none of it is formally verified. As far as I know, it's not practical to do so. If we could do it (without ballooning cost and schedule 10x), we would.

<comment><USER21> Amazon S3 and DynamoDB come to mind are good examples. They are model-checked in TLA+ though the applications themselves are not written in TLA+.

A large portion of Microsoft's in house developed device drivers for windows are formally verified.

Boeing together with DARPA built an autonomous helicopter on top of the formally verified Sel4 microkernel [https://ts.data61.csiro.au/projects/TS/SMACCM/](https://ts.data61.csiro.au/projects/TS/SMACCM/)

Another one:

Wireguard uses formally verified implementations of ed25519 [https://github.com/project-everest/hacl-star](https://github.com/project- everest/hacl-star)

<comment><USER20> >Amazon S3 and DynamoDB come to mind are good examples. They are model-checked in TLA+ though the applications themselves are not written in TLA+.

Honest question (I obviously don't have a ton of experience in this area), what does "model-checked in TLA+ though the applications themselves are not written in TLA+" mean (in terms of the guarantees you're getting)? If you're not verifying the actual code, then how do you prevent bugs creeping during whatever happens between verification and actually writing the application code?

The HACL* project looks interesting. I would definitely accept that as an affirmative answer to my original question.

<comment><USER22> > If you're not verifying the actual code, then how do you prevent bugs > creeping during whatever happens between verification and actually writing > the application code?

Code review! So, SO much code review. Also testing and type systems and linters and code review.

(There's also some work on automatic synthesis, like PGo, but that's all very, very far from being production-ready.)

The main benefit of using TLA+ is that it lets you hammer out issues in the high-level design. Less "oops this has a buffer overrun" and more "oops if this service stalls out for too long our recovery mechanism will violate a core safety guarantee." Turns out that lots of the nastiest bugs are in the design, not the implementation, so using TLA+ saves a lot of time and money. But you still need to code review!

<comment><USER20> >Less "oops this has a buffer overrun" and more "oops if this service stalls out for too long our recovery mechanism will violate a core safety guarantee."

Yeah, but we already have processes to manage the latter. It's the (potential) buffer overruns that keep me up at night!

>Turns out that lots of the nastiest bugs are in the design, not the implementation

I'm not saying it never happens (does TLA plus make sure everyone's assuming SI units?), but that hasn't been my experience at all.

<comment><USER22> > Yeah, but we already have processes to manage the latter. It's the > (potential) buffer overruns that keep me up at night!

I'd _hope_ you'd have those processes, working on space flight and all :P. Good processes > good tools. It's easier to start using a good tool than overhaul your process. So for people who don't have that kind of discipline or heavyweight process, TLA+ gives a lot of benefits for really cheap. AWS, for example, found it really easy to slot into their workflow.

Re buffer overruns, I just remembered OpenComRTOS, which used TLA+ to verify low-level properties of their code.[1] They found it super helpful.

> I'm not saying it never happens (does TLA plus make sure everyone's assuming > SI units?), but that hasn't been my experience at all.

'Fraid it probably can't help you with the SI units. I'm thinking about "design bugs" more like this:

> 1\. Suppose we have a document with version 57

> 2\. A bulk of delete and reindex will remove the index-v57, increase the > version to 58 (for the delete operation), then put a new doc with version > 59. While the engine places the index-59 into the version map, the safe- > access flag is flipped over (due to a concurrent fresh), the engine won't > put that index entry into the version map, but also leave the delete-58 > tombstone in the version map. The delete-58 tombstone is stale because the > latest version of that document is index-59.

> 3\. Another bulk of delete and reindex will increase the version to 59 (for > a delete) but won't remove docs from Lucene because of the existing (stale) > delete-58 tombstone. The index operation will append document (version 60) > to Lucene (instead of overwriting). At this point, we will have two > documents with the same id.

Which was a bug TLA+ found in ElasticSearch.[2]

[1]: [https://dl.acm.org/doi/10.5555/1779934.1779955](https://dl.acm.org/doi/10.5555/1779934.1779955) [2]: [https://github.com/elastic/elasticsearch/issues/31976#issuec...](https://github.com/elastic/elasticsearch/issues/31976#issuecomment-404722753)

</comment></comment></comment></comment></comment></comment></comment><comment><USER23> Wilson Williams responds:

" If you ever need a solid ideas man with no coding knowledge whatsoever, hit me up."

To which Scott Lawson responds:

" Ideas are cheap, execution is gold."

Finally Wilson again:

" Anyone can learn to code, you can't learn how to have good ideas."

I assume Wilson (I'm using their names as presented) is kidding, in which case it's very funny.

<comment><USER24> I don't think he's kidding. Most people think that being a "good ideas guy" is how you succeed without understanding that everyone has those ideas, but few can execute them. I'm sure many of us in tech were approached by friends and family with amazing app ideas after iPhones became popular without understanding that ideas are cheap and getting a product launched is the hard part.

</comment></comment><comment><USER25> I miss C++ a lot. The modern standard library is a thing of beauty IMO. Such a shame that I could not find a good gig when I was looking few months ago, at least not where I am.

Looks like Tesla though are doing C with C++ features rather than C++. I'd also be interested in knowing what their "hardcore" questions are like...I heard that they ask a lot from your past experience.

<comment><USER26> > Looks like Tesla though are doing C with C++ features rather than C++

Tesla's UI is in Qt 5 which is fairly C++

<comment><USER25> Good point. Whenever I see a job ad advertising C/C++ together, it's basically saying "we do C with objects".

</comment></comment></comment><comment><USER27> > "but all must pass hardcore coding test."

The time necessary for this means a huge opportunity cost for every applicant.

</comment><comment><USER28> Ok. Recently few layoff happened at Tesla. New hires are a replacement.

</comment><comment><USER29> Can't they just build it all in React? /s

</comment><comment><USER30> Why not rust?

<comment><USER31> Rust's ecosystem is genuinely nowhere near the maturity of C++.

<comment><USER32> Can you elaborate on this, or point to a good source of more info on the topic? As a longtime C++ programmer starting to look at Rust, I'm quite interested.

<comment><USER33> Please name one GUI library written in Rust which is widely used in production.

Exactly, there are none (yet). Unlike C++ which has Qt and WxWidgets which are all mature open-source GUI libraries and are used in production and seen in the wild.

<comment><USER32> I'm guessing that you think there's an agenda behind my question. Just to clarify, I really am just trying to understand the current lay of the land regarding Rust.

<comment><USER33> It is just an open question about the state of mature cross-platform GUI libraries in Rust. My point is that the current state is that compared to C++, the Rust ecosystem is not mature (yet) and there are no production ready cross-platform GUI libraries written in Rust.

That is one setback when trying to consider using Rust for cross-platform GUI development.

</comment></comment></comment></comment></comment></comment><comment><USER34> C++ != C

<comment><USER35> I'm pretty sure that that would evaluate to false in C++

<comment><USER36> It's undefined behavior (in both C and C++), so it can evaluate to true and false at the same time.

</comment></comment></comment><comment><USER37> Ah, Elon needs more sweatshop programmers?</comment>


Show HN: Blog media viewer – view videos on blogs - <AUTHOR> http://www.justthink.it/wordpressTools/bmv.html <comment><AUTHOR> Blog media viewer lets you view the Youtube videos on Wordpress.com blogs. This allows you to check if the video is still there, too.</comment>


What Does It Mean to Be an Entrepreneur? (Please Comment) - <AUTHOR> http://kenneticexpression.com/2016/02/08/what-does-it-mean-to-be-an-entrepreneur/ <comment><USER2> It means doing something you like to do as a startup business. It means learning new things and doing market research to see if your project ideas are feasible before working on them. It means a lot of hard work, dealing with stress and deadlines, and working with other people to achieve goals. It means building your own team of experts and leading them to greatness.</comment>


Show HN: Available two-letter domains - <AUTHOR> https://ahreflink.com/domains/two-letter <comment><USER2> There was a Show HN for colorblind accessibility no later than a few hours ago. As someone who is red-green deficient, while I can see the difference, the list is barely readable. I would suggest using the whole background color of a cell, and using one dark shade of red for unavailable, and one bright shade of green for available.

<comment><AUTHOR> I've been quite busy with work this week, but now that it's weekend I finally had some time to work on the site again.. I've made significant improvements to the domain name finder, and added a button to hide unavailable SLDs/domains.. I hope that will solve the problem for those who are red-green deficient.

</comment></comment><comment><USER3> Nice. Would it be possible to add the ability to sort by price?

<comment><AUTHOR> Thanks :), the reason I didn't add any ability to sort yet is because most two-letter SLDs only have 1-5 TLDs available, but I'd love to add sort support (it would definitely be useful to have when the "domain name finder" (WIP) in the future hopefully displays price as well).</comment></comment>


Ask HN: How do you onboard new hires on codebase? - <AUTHOR> Looking for insights mostly on smaller companies (3-50)with internal software applications with a focus on onboarding new junior devs?<p>We have three applications, 2 web client and 1 backend. Initally, I am setting training now with a walk through our documentation at a high level but show them where to find more in-depth knowledge is located in docs, setup peprsonal environment, and do a simple task so that we can go through the whole process of developing, testing and deploying to production. <comment><USER2> Let them setup an environment s.t. they can work on the codebase - help them, but also let them document it for the next person (or update existing documentation).

Give them a high level overview of architecture and best practices.

Let them work on very small features/bugs (update text, fix small issues, ...) s.t. they learn the process end-to-end without spending much time on code.

[^ everything until here could be done without human explanation if you have solid documentation and codelabs]

Give them small features to work on s.t. they can own part of the codebase.

<comment><USER3> If you're gonna type s.t. why not just shorten to st so that you can save 2 more keystrokes?

</comment></comment><comment><USER4> A new hire is an opportunity to fix root causes of confusion causing the need of onboarding. I let new hires kick the tires of the codebase and ask me questions about code I was too familiar with. Most of these questions would have gone unasked had I explained it to them before, but the questions exposed ambiguities or things that could be done better. This lead to issues and fixes to remove ambiguities, either in code, comments, documentation, or refactoring.

Here are some notes containing tips on how to "get to know a codebase"[0] from the new hire perspective.

One thing that has helped was having modular code that was documented, and most behavior changeable by configuration, and functionality that could be added by adding a plugin without really changing the code. That made the time to first contribution extremely short. The configuration files contained comments and examples, the code was documented, there were tests, and exception messages told you exactly what has happened, how to troubleshoot, and what you can do, profiling code, simulator like code, etc. Most questions new hires asked were about the behavior of a dependency of the project using the actor model, or about hardware and protocols.

In order to get that, one of the things I used to do was write the documentation for how I wanted to use the code, then write the code to match the documentation, then ask a _non programmer_ to follow the documentation. As long as the non programmer succeeded writing code with the library, I knew programmers could. I would confirm, though.

How much of the behavior can be controlled by configuration files? It helped to have as much behavior dictated by a configuration file.

What is the quantum to develop a functionality. Similar functionalities can be abstracted and have a sort of "cookie-cutter" way to add them as plugins discovered and loaded by the application.

A new hire can then get to know the application by developing plugins, for which the complexity and scope is limited, and then expand the domain to bigger parts of the application.

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

</comment><comment><USER5> I was the one who inherited a c# codebase from 2 developeres who had very different styles in 2015 Understand for C#, Open Source Tools like RoboDoc and Doxygen I JUST finally got the build moved from Many Batch Files to a Single 160 Line Build.Cake I tried to use Nuke, but is gave me an error on trying to access the Volume information, and the Nuke developers could not replicate the issue My "boss" made it clear, that the code was messy from teh start, that if I was good at spelunking it would be beneficial. YEP learning to keep BBS Dungeon games was very beneficial 12 Assemblies 10 - 2500 Source files 1 exe 3500 source files and all 12 Assemblies which interact with each other, and I was constantly getting the Circular Reference errors</comment>


Apple has admitted its TV box is piece of crap - <AUTHOR> http://amistakes.com/2013/04/17/apple-has-admitted-its-tv-box-is-piece-of-crap/

<comment><USER2> What a douchy website , you could have pasted that to twitter instead of waste web space.</comment>


Apple's iPhone 3GS: What It Costs to Make - <AUTHOR> http://www.businessweek.com/technology/content/jun2009/tc20090623_210230.htm

<comment><USER2> It just makes me laugh when I read posts by big publishers like Business Week write articles like these without adding or crediting any costs that were put into research/design/development/marketing/distribution etc., etc. And then average Joe swearing that these big companies are looting people by asking for so much money which costs so less to produce. Idiots!!!</comment>


Open-source client scaffolds and API pricing - <AUTHOR> https://www.inboxapp.com/blog/clients-and-pricing <comment><USER2> I'm in Inbox employee. I'd be glad to answering questions about what we do, our platform and the rest.

<comment><USER3> Inbox seems like a great product.

I am building this desktop productivity tool which helps you to stay on top of things that matter most to you - www.StayOnTop.co

Do you have features which can help me do following operations -

1\. Knowing whether user had read his email.

2\. Downloading email attachments

3\. Search\find inside email using regex or some keywords

4\. How much time it takes to download first 50 emails?

5\. How much times it takes for authentication and for how long the session token will be valid?

6\. Do you support paging of emails? Like page 1, page 2....n

Much Thanks.

<comment><USER4> Some quick replies: (I work at Inbox.)

1\. Yes, we expose unread state via the tags endpoint.

2\. Yes, check out the files endpoint

3\. Currently we have filtering on subject line, and we're working on full- text body search. (It's hard.)

4\. Depends on the size of the emails. In general less than a minute.

5\. Our OAuth flow is super quick. Access tokens are valid forever unless the user or developer revokes them.

6\. Yes, see the `offset` and `limit` filter parameters, which let you page nearly any API query.

</comment></comment></comment><comment><USER5> So basically it's a REST/HTTP wrapper for IMAP?

Also (and I'm serious): Why would any app (that is not an email client) need to directly access a user's emails?

<comment><USER6> ITTT type applications could also benefit from this. Year ago I wrote a script that would send me a digest every morning that would include things like a list of cron jobs that ran last night. To do that I had the cron jobs email a specific mailbox as the last step, and had my script connect via IMAP to check them.

Having said that, IMAP libraries are good enough to not have to pay for a wrapper when using most email providers.

<comment><USER7> Or Use Gmail's REST API if you use Gmail/Google Apps:

[https://developers.google.com/gmail/api/](https://developers.google.com/gmail/api/)

<comment><USER4> The Gmail API is great, but if you're building a real app that needs more compatibility, Inbox is a much better fit.

[https://www.inboxapp.com/features](https://www.inboxapp.com/features)

Plus, the Inbox sync engine is open source.

[https://github.com/inboxapp/inbox](https://github.com/inboxapp/inbox)

</comment></comment></comment></comment><comment><USER8> How would you compare Inbox to Context.IO from a REST API functionality perspective and overall goals?

Seems very similar to me - except Context.IO is either free or $0.05 / month / mailbox.

<comment><USER9> [Disclaimer: I'm Dan, Context.IO's product manager]

We welcome InboxApp to the email API space. Like Context.IO, they see the value of helping developers build apps that interact with email. Building a platform like Context.IO, that abstracts complex systems, involves more technical challenges and product-level decisions, than you can keep track of. So, it's not a surprise that our two teams came to different conclusions and have built somewhat different solutions. InboxApp made a choice to cache 100% of the email data, hoping to solve potential availability issues, which is key for some use cases. As a result, developers on that platform need to cover the costs for storing that data, whether or not they need it. We've worked with and spoken to hundreds of developers over the last few years and learned that the vast majority don't need that model and do not want to carry those costs. In the few cases where the dev needs a cache of every single message, many decide to store the data they need, instead of relying on a third party to store everything in their users' mailbox.

If speed is the utmost concern and you are able to charge your users enough for your product to cover the cost of the platform while keeping your business afloat, then paying $5 a month per account might be cost-effective. However, if you prefer to use a header caching layer and you can engineer around caching the bodies, then using Context.IO for free is a better fit.

Just a couple quick points I should mention. Context.IO stores all of the message headers in our caching layer. Combined with our webhooks, applications are quickly notified of a change and can easily retrieve messages they care about. Exchange support is being used by initial beta testers on our Lite API right now. If you're interested in joining the beta test, please let us know!</comment></comment>


Show HN: HashPlane Attack Map - <AUTHOR> https://map.hashplane.com/ <comment><USER2>
        Uncaught TypeError: Failed to execute 'setTimeout' on 'Window': 1 argument required, but only 0 present.
        at Object.init ((index):405)
        at (index):531

In Chrome and Edge on Windows.

<comment><AUTHOR> Thanks! I'll take a look, I thought I'd cleaned up most of the errors, whoops!

</comment></comment><comment><AUTHOR> Yes, this map is based on the iPew map.

The data is sourced from the HashPlane threat intel network.

The data to the websocket is almost real time but its sampled so its not a complete threat feed. If you want to use the data please drop me a note.

</comment><comment><USER3> I'm not sure how random this is...

CN (22.214.171.124) attacks AU (172.X.X.X) (Port PING)

... (x20)

CN (188.8.131.52) attacks AU (172.X.X.X) (Port PING)

<comment><AUTHOR> Its not random data, its almost-live attack/scan data. Basically we packet capture everything, process it then shovel it off to our backend datastore. Its a minute or two delayed. I realize it may not be the most interesting thing to look at and I'll probably downsample stuff like that in the future, but its real!

I've seen unwanted contact from that IP 7600 times, its hit pretty much all of our nodes and appears to be scanning for some commonly known ports. Its probably a bot or someone attempting to gather intelligence for attacks.

Since its from China in the Hebei Province my guess right now its from the Alibaba datacenter there or possibly China's APT1 unit. Either way its doing bad stuff and you'd want to block it on your edge (if you have one) or load that IP onto a blocklist with your WAF.

Edit: I just updated the map data stream so it dedupes, it should make it a little prettier :)

</comment></comment><comment><USER4> Site doesn't appear to be working in Firefox or Chrome at the moment. No idea what it is supposed to show based on the title.

<comment><AUTHOR> Hrm, I tested with Firefox and Safari. I don't use Chrome. Looks like there was a deploy error I didn't catch, which is now fixed.</comment></comment>


Obamacare's Skyrocketing Premiums? Why the Sky Isn't Falling - <AUTHOR> http://www.nejm.org/doi/full/10.1056/NEJMp1605913 <comment><AUTHOR> The article discusses only premiums and does not discuss the overall cost of health care to the person who has the insurance.

Some deductibles are $5000 or more. There are copays on some of the plans.

The overall costs have increased for most of the people who already had insurance prior to the implementation of the ACA.

A lot of the increased costs are that people who have very high medical costs have now been included on plans to be subsidized by others.

Much of the higher costs are from choices patients have made such as smoking cigarettes or overeating.

The ACA allows for smokers to be charged premiums 50% higher than non-smokers. But most plans do not implement this option and relatively few smokers report that they are smokers and the information is not verified.

Instead of having people paying higher costs not only in premiums but in large deductibles and high co-pays the ACA should have done what most developed countries (eg, Canada, UK, France) have done which is to increase the tobacco tax to $5.00 or more per pack (the US Federal tax is about $1). That way, it doesn't matter if smokers lie about their smoking status or of the plan charges the allowed 50% increase in costs for smokers.

The author is an MD PhD with the PhD has a sub specialization in Economics. He should know (as should the editors of the New England Journal of Medicine) that the proper economic analysis of insurance costs should include not only the premiums but the costs of deductibles and the costs of co-pays. The fact that this was not done suggests a political axe to grind and not giving complete and transparent information to their readership.</comment>


SoftBank plans to sell $14bn stake in telecom unit - <AUTHOR> https://www.fnlondon.com/articles/softbank-plans-to-sell-14bn-stake-in-telecom-unit-20200828 <comment><AUTHOR> From the article:

The sale will lower its stake in the telecom unit, known as SoftBank to 40% from 62%, ending its position as majority shareholder. It will remain the largest shareholder of the company, which is one of Japan's biggest mobile- phone providers.</comment>


The Death Of Nintendo Has Been Greatly Under-Exaggerated - <AUTHOR> http://techcrunch.com/2013/09/04/nintendont/

<comment><USER2> If I were an investor, and Nintendo's CEO came by and told me they wanted to make games for smartphones or, god forbid, sell to _Apple_ , I'd sell so fast, and with so much energy, CERN physicists would confirm the Higgs boson from my clicking.

I think I already posted here about this, some eons ago. To recap: this strategy is _bad_. It's let's take Nintendo from a powerful stance as both platform maker _and_ virtuoso first party developer, to Oversized Third Party Developer in a market notorious for:

(a) Low quality and extremely low fidelity demand, which prizes being cheap and having a gimmick _over everything_.

(b) Notoriously capricious primma donnas such as Apple and Samsung as platform makers, which take _insane_ cuts from developers.

(c) Being an extremely fragmented market, with thousands of devices with very different characteristics and software _which Nintendo would have to support_.

Selling Nintendo to Apple is the business equivalent of folding a royal flush. Yeah, so the iPad sold 100 million units. The DS sold _154 million_. _For a single purpose device_. The 3DS might be 20% behind its predecessor's curve -- a ridiculously successful curve, if I might say -- but that's still a cold 124 million units. The Wii was a fad, true... and it redefined the meaning of fad itself, selling _100 million units_ ; a _one model_ , _single-purpose device_. When factored into this that Nintendo _profits from third party software_ \-- unlike Rovio, which has to pay its dutiful tides to petulant lovers by excellance Apple and Samsung -- one starts clearly seeing how Nintendo is pulling ass like Brad Pitt at a wet t-shirt contest. Absolutely insane. Not even Steve Jobs could dream of selling a gadget so well as the 3DS does.

Not to mention that, again, in this business if you're a third party developer, either your name is Activision, or you're into masochism. Lose power, lose the platform, and you lose everything that makes you strong.

Edit: and I don't even like the Wii U.

</comment><comment><USER3> I'm not a Japanese citizen or know the language but I'm under the impression that Nintendo is more like a Hasbro or Milton-Bradley; having been around since about 1905 or so.

These companies don't seem to go away. They have brands that continue to sell to the next generation of children.

Every now and then they become immensely popular and have some runaway freight train successes. But even in the bad times, they seem to stick with it.

There are some game companies that seem to do the startup gamble. The company that produced Teddy Ruxpin (Worlds of Wonder) and Atari seem to have been structured this way; put all the chips on black and see what happens.

But I'm under the assumption that as an American what I see are the electronics of Nintendo and that within the confines of Japan they have other product lines such as boardgames and toys for children (things like this: [http://d3gqasl9vmjfd8.cloudfront.net/aba95bdd-6979-4b92-b7fe...](http://d3gqasl9vmjfd8.cloudfront.net/aba95bdd-6979-4b92-b7fe-6e0589991d11.jpg)) - as that is their history.

Am I wrong, or is this fundamentally what Nintendo is?

<comment><USER4> Nintendo used to produce card games etc., but today they only produce video game consoles and software.

That being said, I think the rest of your comment still holds.

<comment><USER5> They publish the Pokemon card game, yet another huge franchise.

</comment></comment></comment><comment><USER6> For an article so sure of itself, it was incredibly light on actual facts, figures, and numbers. I got: the 3ds has sold 20% less than its predecessor at the same point in its lifetime.

Also got: Wii u is a dud (I think that's some kind of technical term); they have like, a blackberry amount of cash (whatever that means); and the author is "definitely" right.

Anyone have some actual details about why I should be concerned about Nintendo?

<comment><USER7> Completely agree

20% less than the Nintendo DS is a good sales figure considering the DS is #2 in terms of video game console sales, only selling 3 millions units less than the all time leader, the PS3. ([http://www.vgchartz.com/analysis/platform_totals/](http://www.vgchartz.com/analysis/platform_totals/))

<comment><USER8> The leader is the PS2.

<comment><USER7> oops typo :)

</comment></comment></comment></comment><comment><USER9> Nintendo's market cap is ~$15B. Their cash on hand is ~$11B. In my opinion, their IP is worth sooooo much more than the difference.

Rovio, in comparison, is estimated between the $2B-$9B range. If Angry Birds is worth that, what is Mario/Zelda/Metroid/etc. combined worth?

I do feel like they would be best served ceasing set top boxes and focusing on handhelds and making games for the PS4, XB1, and PC. Perhaps port a few of their games to iOS/Android.

To do this they would most likely have to get acquired though. I see Disney as a much more likely suitor for that than Apple.

<comment><USER10> > "Rovio, in comparison, is estimated between the $2B-$9B range. If Angry > Birds is worth that, what is Mario/Zelda/Metroid/etc. combined worth?"

I don't know, what is nostalgia worth? A lot more kids know and crave Rovio IP these days. Sure, Mario/Zelda is recognizable and part of the zeitgeist but then so is Pacman.

<comment><USER11> It can't be nostalgia if these kids have never experienced what a real video game should be.

<comment><USER12> This is the problem with your thought process. Video games have changed. What you think they should be isn't what they are now. You don't continue, and grow as a company by targeting a shrinking demographic.

<comment><USER11> Something is wrong with your thought process when you think the most dominant type of games are touch screen games. Video games haven't changed, there are just different types of games now. Some of which are limited by their lack of controls. Last time I checked gamers still exist, many of which don't play touch games.

Don't forget who had utilized a touch screen for games properly.

<comment><USER12> Yes, but as this article and many others have discussed; that number is shrinking. Gamers still exists, but you don't make billions of gamers. You make billions of consumers as a whole, and convincing people to buy yet another piece of hardware to do something is a hard sell. "I could just use this thing I carry with me everywhere," or, "I could buy a 2nd dedicated device that only does games (well) _"

_ I'm aware the DS/3DS/etc do more than games, but anyone that uses the DS browser and thinks it's good is a liar.

</comment></comment></comment></comment></comment></comment><comment><USER11> A lot of this is not really structured it's just a bunch of thoughts I want to share with everyone.

This guy may say he loves Nintendo but I really don't think he's a gamer. He seems to be looking at it from the smartphone market point of view. The author compares Nintendo to Nokia and Blackberry; phone companies that barely even touch console or mobile gaming. Nokia and Blackberry lost a lot of market share but to say that Nintendo has fallen off as hard as they have is false. Relative to their markets of course.

Why can't console gaming still be a market and co-exist with touch screen games? Is there really only room for one? Just because the PC exists doesn't mean consoles will go to shit or that no one buys PC games.

Nintendo does pretty well in it's home country Japan, and I bet in other parts of the world also.

The author also neglects to talk about the differences in gaming markets. He seems to think all games and hardware are the same.

Handheld games are a market in itself and Nintendo is at the top of it. Just because people own more smart phones doesn't mean they'll buy a Nintendo game on it.

What does he care. It's not like he's going to buy "Super Super Mario World TOUCH for iOS" for $30. It doesn't sound like he's a gamer at all and it's sort of offensive when someone who thinks the latest tech will take over doesn't consider the facts or any other factors.

Think about, why would you give in to your "competition" and make games for their "console".

<comment><USER13> "Why can't console gaming still be a market and co-exist with touch screen games?"

It can it'll just be a tiny market and any sensible company that wants to keep making big boy profits will have to be part of the larger market. There's still a few companies that make pagers, they just don't sell 50 million a year like they did in 1990.

"Handheld games are a market in itself and Nintendo is at the top of it"

They are now in 3rd place. Standalone handheld gaming devices are under the same pressure that point and shoot cameras and portable music players and all sorts of other devices are under.

"why would you give in to your "competition" and make games for their "console"."

Because your consoles flopped and you can make more money that way. Sega did it. Atari did it. NEC did it.

</comment></comment><comment><USER14> "Nintendo isn't just failing because their hardware is sub-par. They're failing because they continue to try to re-tool the Model T while the competition is building Ferraris."

This has been Nintendo since practically forever, they have always been railed on for their sub-par hardware milking it for as long as possible. Wii U might not be selling hotcakes but I don't think this is Nintendo's death. Their IP will keep the company going.

For anyone interested in the story of Nintendo (or just enjoys gaming history in general) this is a fun read: [http://www.amazon.com/Super-Mario-Nintendo- Conquered-America...](http://www.amazon.com/Super-Mario-Nintendo-Conquered- America/dp/1591845637) (or listen for commute/jogging)

</comment><comment><USER15> The author may be correct that Nintendo is in trouble and will lose against Apple, Google, Samsung, Sony, Microsoft, etc. His mistake is in thinking this means that Nintendo needs to do something right now.

As a thought experiment, imagine a bad scenario for Nintendo in 5 years. They've been steadily losing market share and have eaten into their cash reserves. They've launched a new console and a new handheld that are largely seen as a flop. What are their options? Drop out of the hardware business and just be a game publisher/developer or sell themselves to another company. Basically the same options they have now. So they might as well stay the course and see if they can come up with another hit as it's not really costing them anything to do so.

</comment><comment><USER16> I would say, almost certainly, console gaming in general is already dead; all we're seeing are its nails and hair continuing to grow. Hardcore gaming is on PCs, casual gaming is on mobile, multiplayer is online.

There's only one thing consoles are good for now, and it's exactly the market Nintendo already has cornered--local multiplayer gaming (your "Mario Party"-like titles.) The only valid competitor for Nintendo's dollar, this gen, is, _extremely_ surprisingly, the Ouya. Nobody else is publishing semi- casual games you can play around a TV with your friends.

But that's still a small market. Nobody wants to play _single_ -player games on a TV any more; they either want full online gaming experiences on a PC (for which Nintendo could give two shits), or _personal_ games on a handheld. Which is why, no surprise, Nintendo has been shifting their major IP from console to mobile for years now. The "portable mode" of the Wii U is basically a compatibility hack for this new paradigm, letting devs make single-player games for the console, which can then be treated by the consumer as if they had been made for a portable, as they've now come to expect.

I'd bet that six-to-eight years from now, Nintendo will be putting out a box very similar to the Ouya, and also somewhat resembling the Apple TV. It will be sold as a DS accessory to enable local multiplayer DS gaming, on your TV. It'll be everything the Wii U is, but with four of those portables (notice how much the 2DS resembles one of them?) And that'll be that for Nintendo making consoles.

</comment><comment><USER17> A very similar article could have been written before the original DS or Wii debut.

And many were.

<comment><USER12> Yet here we are, years later, talking about Nintendo's continued decline. Band-aids are great, but when you're bleeding internally; they don't do much.

<comment><USER17> Years of inaccurate predictions aside, does the company have bigger problems than new hit hardware can't solve?

Who knows, it's all pure speculation.

Can they hang on for years in a lul? Well that's pretty obvious.

</comment></comment></comment><comment><USER18> While I don't see how Nintendo's 'death' is even on the table, I agree that Nintendo's hardware endevours seem to be failing.

I expected them to have to fold in the hardware department sooner or later and I'm actually surprised that they're still in it. I'm certain their handheld devices will eventually lose to the smartphone/tablet, and the game console market for 'casual' gamers where their hardware resides is losing to the aforementioned aswell.

So yes, I believe that just like Sega (which have nowhere near the same franchise power as Nintendo), Nintendo will become a developer for Android/Iphone and PS5/XTwo or whatever the current high-end gen console is when Nintendo finally get out of the hardware business (if the high-end console market still exists then).

On the other hand, it's games, not hardware, which is what Nintendo is best at.

They may be old hat, Mario, Zelda, Metroid, Pokemon etc, but it's those game franchies which have sold and is still selling Nintendo hardware and not the other way around. Zelda on Android, Mario on Iphone/IPad, i'm sure they will sell massively, printing money even.

<comment><USER19> I'd actually be incredibly surprised if they folded their hardware division. Sure it's not great now (except the 3DS is still doing good by every other metric other than compared to the DS ie: the best selling handheld in history). There are ups and there are downs.

</comment></comment><comment><USER20> Remember when Nintendo was the most valuable company in Japan surpassing Toyota, Honda, and even MUFG?

How the mighty have fallen.

<comment><USER21> I also remember when they were tyrannical, monopolistic assholes who got busted for price-fixing the NES and even sued to keep the Game Genie out of stores. They've been stubborn and out of touch for as long as I can remember.

</comment></comment><comment><USER13> This partially explains why the market discounts Apple's so heavily. Because if your business is manufacturing hits you are going to either have duds or miss waves depending on the POV. One dud you burn the profits from prior successes and can the CEO, two in a row and you're out of business.

I hope Nintendo makes it through the Wii U debacle but it's not looking great.

</comment><comment><USER22> I wonder why many Apple faithful are obsessed with what Nintendo does or doesn't do, should do or shouldn't do. Maybe they're secretly angry that the current CEO of Nintendo started programming on a Commodore PET, and not on an Apple device.

<comment><USER23> I see a lot of similarities between the two companies. A willingness to think different in pursuit of their own hardware standards and form factors (remember how the Gamecube used mini-discs and had a handle for carrying?), huge success from pursuing the Blue Ocean Strategy, the capability to inspire consumer cults (possibly because they are seen as somewhat "purer" than their competitors), and even similar aesthetics (clean off-white plastic-porcelain hardware, the lower-case letter 'i').

</comment></comment><comment><USER24> All Nintendo needs is to be compatible with the Occulus Rift.

</comment><comment><USER25> Why are the Apple zeitgeist all having such a fit about Nintendo right now? First it was Gruber, then Arment, then the various hanger-ons and followers, and now Siegler.

I just don't understand why that company has suddenly become so interesting to them? Might they offer some guidance on the great PS4 versus Xbox One decision?

<comment><USER26> The most famous apple fans are also big Nintendo fans. Or at least they claim to be. John Siracusa is the only one of them that I remember talking about actually playing Nintendo games (even though he always says Mary-o).

Part of it is that for a long time people have compared Nintendo and Apple (both make hardware and software, both have had iconoclastic leaders, both have tended to go their own way contrary to popular trends).

But I think a big part of it is combination of the fact that the Nintendo 2ds was announced and that all these apple people are friendly and follow each other. So when one of them mentions something then the odds are that others will mention it too.

<comment><USER27> Siracusa's essay is the only one worth reading: [http://hypercritical.co/2013/09/02/nintendo-in- crisis](http://hypercritical.co/2013/09/02/nintendo-in-crisis)

The rest of those clowns don't have much to add to the conversation.</comment></comment></comment>


Russian space designer Boris Chertok dies at 99 - <AUTHOR> http://news.yahoo.com/russian-space-designer-boris-chertok-dies-99-085641590.html

<comment><USER2> I have heard that Russia has serious engineering problems with their space program because they neglected it after the end of communism for more than one decade. They now have a lot of really old engineers who are going into retirement and a lot of really young engineers who don't have all the experience they need. Some go even so far and attribute problems Russia had in recent years and failed missions (like Fobos-Grunt which was really supposed to put Russia back on the map) to that.

<comment><USER3> Yes, everything has been broken since USSR dissolved, unfortunately

</comment></comment><comment><USER4> Clarification: he was a rocket designer, not an interior decorator.

<comment><USER5> I, for one, have always thought rockets would look better with deep blue curtains on their windows, and the television behind the cockpit against a lime green wall.</comment></comment>


Simple Racket Game Library - <AUTHOR> https://github.com/samvv/racket-gaming

<comment><USER2> A lot of the documentation seems to be in a foreign language, including the comments for the examples. For those of us that don't speak Dutch[?], are there any plans to translate the entire thing to English?

<comment><USER3> I used chrome to translate it [https://support.google.com/chrome/answer/173424?hl=en](https://support.google.com/chrome/answer/173424?hl=en)</comment></comment>


China Just Seized an Unmanned US Navy Sub - <AUTHOR> http://gizmodo.com/china-just-seized-an-unmanned-us-navy-sub-1790187701 <comment><USER2> Considerable discussion: [https://news.ycombinator.com/item?id=13194523](https://news.ycombinator.com/item?id=13194523)

</comment><comment><USER3> It should be pointed out that this was an oceanographic research vehicle and not one of military origin even though it was deployed by a Navy ship.</comment>


Ask HN: streaming shoutcast stations in flash (as3) - <AUTHOR>

i was going to use minicaster, but you can't use as2 flash projects inside of as3 flash projects.
ok, fair enough, so i'll just write my own.  after trying to create one sound object, let the timer run for 5 minutes, and then delete the object for garbage collection, memory steadily creeps up at a rate of 0.02 mb per second (meaning it doesn't work).  so creating new sound objects, deleting old ones, didn't fix the memory leak.
so i figure: ok i'll go try eecolor's as3 streamer on google code.  turns out you need to be given explicit permission from a shoutcast station because you're using sockets.
does anyone have any idea how to stream a shoutcast station in flash cs4 (as3) from any website?  i'm stuck on this, unless i rewrite minicaster in as3.
one thing i may have left to try: an SWFBridge instance in each swf file, where i load minicaster and rely on the bridge for communication.  does anyone know of alternatives? <comment><USER2> i wrote a flash/actionscript client for streaming mp3 files myself. i'm about 90 percent sure that there is no getting around the fact that every server you connect to _must_ give you explicit permission to connect, either through an .xml file or a little server running on a specific port.

this limitation exists no matter whose code you use. it's a security thing that macromedia/adobe put in there on purpose.

<comment><AUTHOR> i can stream any shoutcast station without permission using the sound object, my issue is the memory leak.

flash thinks it's dealing with an mp3 song that plays infinitely. it increases by approximately .02mb per second.

i know you can stream any station using minicaster, but you can't import an as2 swf into an as3 swf.

<comment><USER2> i was talking about socket usage, that's the part you need permission for.

and i think you should try a longer test before you assume it's leaking memory. i vaguely recall running into this myself, and i think it hits an eventual plateau, without leaking forever.

<comment><AUTHOR> you're probably right. i'm fairly certain i'm freeing up the objects properly for garbage collection, and re: sockets, you definitely need permission for that.

which makes me wonder what minicaster is doing...

but i should test for longer periods. i've been testing for 3 minutes at max, maybe should let it sit for 30+. minicaster keeps the memory fixed every 5 minutes though.</comment></comment></comment></comment>


Should you wash new clothes before wearing them? - <AUTHOR> https://www.today.com/home/do-you-need-wash-new-clothes-wearing-them-verdict-t21801 <comment><AUTHOR> More: [https://home.howstuffworks.com/home-improvement/household- hi...](https://home.howstuffworks.com/home-improvement/household-hints- tips/cleaning-organizing/question470.htm)</comment>