The Battle Between Standards: TCP/IP vs. OSI (2003) [pdf] - <AUTHOR> http://doc.utwente.nl/46343/1/battle_between_-_maathuis.pdf <comment><USER2> The book "Where Wizards Stay Up Late" by Katie Hafner has a nice overview of this battle of standards.

Here are some of my favorite quotes from the book:

"the Internet community—people like Cerf and Kahn and Postel, who had spent years working on TCP/IP—opposed the OSI model from the start. First there were the technical differences, chief among them that OSI had a more complicated and compartmentalized design. And it was a design, never tried."

Not only was OSI "never tried":

"On the OSI side stood entrenched bureaucracy, with a strong we-know best attitude, patronizing and occasionally contemptuous"

"Everything about OSI was described in a very abstract, academic way," [Vint] Cerf said. "The language they used was turgid beyond belief. You couldn't read an OSI document if your life depended on it."

Lastly, what I think is a nice and short summary of why TCP/IP "won":

"[the success of TCP/IP] provided an object lesson in technology and how it advances. "Standards should be discovered, not decreed," said one computer scientist in the TCP/IP faction. Seldom has it worked any other way."

<comment><USER3> This account is also good, it's fairly technical and _very_ funny: [http://www.amazon.com/Elements-Networking-Style- Animadversio...](http://www.amazon.com/Elements-Networking-Style- Animadversions-Intercomputer/dp/0595088791)

</comment></comment><comment><USER4> The article misses a big point. The OSI model originally envisioned operating over X.25 connections operated by telcos. Then came local area networks. Most network traffic was, for a long time, local; in business settings, it often still is. TCP/IP worked well both for local and distant networking, and worked through gateway choke points between LANs and larger networks. X.25 over a LAN was a huge mismatch; X.25 was intended for slow links.

OSI TP4 eventually could do everything TCP/IP could, and Microsoft included it in NT (NT4 and Windows 2000, I think), so it did ship. But nobody cared much.

<comment><USER5> The elephant in the corner of the room is that TCP/IP is a _bad_ protocol. That's why hacking is on the front pages of the newspaper every day now. Sometimes it is better to let the grown-ups design things.

<comment><USER6> By what stretch of the imagination is TCP/IP a bad protocol? It is a 30+ year old standard that is still in wide use today. It has managed to scale from a few networked computers to billions. From an engineering perspective, TCP/IP is a good protocol.

From a security perspective, most issues with modern computer security have absolutely nothing with the TCP/IP protocol. If you take a look at top 10 vulnerabilties ([https://www.owasp.org/index.php/Top_10_2013-Table_of_Content...](https://www.owasp.org/index.php/Top_10_2013-Table_of_Contents)), none of them are directly related to TCP/IP.

It is always easier to look back in hindsight and criticize something knowing what we know today. Saying we should leave design to "grown-ups" is not a fair assessment of TCP/IP and its designers. Engineering is difficult and every design comes with trade-offs.

P.S. If you want to see truly bad protocols, look to ones designed by "professional", "grown-up", organizations. CORBA and anything WS-* are a few that come to mind.

</comment></comment></comment><comment><USER7> TL;DR: TCP/IP shipped. (Edit: _first_. Some OSI stuff did ship, as another poster pointed out, but much later and by then it didn't matter.)

I also must point out that the history of spec-ahead-of-time massive bureaucratic network standards efforts is extremely poor. These efforts tend to produce things that are complex, over-engineered, unwieldy, hard to deploy, and generally a mess. In some cases things never progress beyond the discussion phase, or if they do the result is _far_ less interesting than the hype. It's basically the bad form of "waterfall" development.

All the most successful network systems I am aware of are developed first and then specified once the kinks are worked out. Step one is to make it work. Then you optimize it, clean it up, test it in the field, and _then_ you spec it so others can interoperate with it. The result is seldom perfect, but it differs from the byzantine stuff in that it actually exists and people can use it.

Real but imperfect functionality always trumps non-existent perfection.

Byzantine ahead-of-time network standards bodies are part of this whole branch of "enterprise" software "development" that as near as I can tell doesn't actually build anything. I've seen it in action in other spheres too. They pick a big problem, gather specifications liberally, and then jawbone it to death. Sometimes small prototypes are produced (at ridiculous cost) that do tiny subsets of it poorly.

I cannot for the life of me understand why money is actually spent on this stuff. You would get far better results by taking the millions spent on these enterprise towers of babel and using it to hose down AngelList and fund startups doing things that are relevant.

<comment><USER8> "history of spec-ahead-of-time massive bureaucratic network standards efforts is extremely poor" Do you think this applies to IPv6? I understand the need, but it's still difficult to implement IPv6 even for knowledgable people let alone the 'plug & play' experience of IPv4 with all devices today. But how could it have been developed first then specified?

<comment><USER7> IPv6 has a bit of this disease. From what I can tell the core of IPv6 is fine, but it has too many extensions and many are half baked or over-engineered. IMHO the core of IPv6 will get adopted and will work just fine and the rest will get left behind. The most important thing is the extension of the IP address space to 128 bits, which gives us plenty of room to do all kinds of interesting _real_ things with addressing.

(Edit: but... if you'd asked me I just would have shoved another 32 bits into IPv4 via an extension and done it in such a way that routers/gateways that supported a _simple_ spec could manage that in a backward compatible way. Probably use a new protocol code + the port field + some extension bits to allow "IPv4-64" with /32 being the new /16 or /8\. But V6 exists and already has traction so let's just go with it.)

IPSec and IPv6 mobility were great ideas that are poorly executed. In reality they should be closely bound -- you _cannot_ securely or reliably implement endpoint mobility without authentication. But one-bird-one-stone is apparently some kind of dogma in networking circles. IPv6 is also a f'ing mess from an implementation standpoint. It's insanely complex to get set up given the simple thing that it is (or should be), and the language around it seems designed for maximal confusion ("left" and "right?" WTFOMGWHY? Which left? The right left or the left left? KILLMENOW.)

A much bigger disaster is WebRTC: [https://www.pkcsecurity.com/blog#webrtc- flow](https://www.pkcsecurity.com/blog#webrtc-flow)

It's a byzantine mess with tons of acronym-laden moving parts and way too many things required under the same umbrella... and _no_ all those moving parts are _not_ necessary. NAT-t and mobile addressing do not require state diagrams that look like the Paris power grid. As a bonus cherry on top, WebRTC leaves the signaling mechanism unspecified. Batteries not included.

<comment><USER9> God WebRTC looks like a clusterfuck. Plus the mandatory encryption... only to punt on the signalling issue. Oops.

Some of this shit is inherited from SIP, which is a mess from the parsing on up. And people really get... committed ... to the mess they've made, because it's a "standard".

<comment><USER7> Microsoft has already announced that they will do their own 'spin' on WebRTC. Chrome and Mozilla WebRTC are not perfectly compatible in the field from what I hear. I predict failure.

</comment></comment></comment></comment></comment><comment><USER10> Famous last words: _A case in point is the lack of space of the Intemet addressing system that emerged in I994 due to an explosive growth of Internet. This may now be solved by replacing IP version 4 (Ipv4) by IPv6, which implementation is underway since about 2000._ (p. 173)</comment>


On the hazards of significance testing: the false discovery rate - <AUTHOR> http://www.dcscience.net/2014/03/24/on-the-hazards-of-significance-testing-part-2-the-false-discovery-rate-or-how-not-to-make-a-fool-of-yourself-with-p-values/

<comment><USER2> In short, p=0.05 means that 5% of no-effect experiments show a false positive.

But due to publication bias, negatives are ignored. When there are lots of experiments looking for mostly non-existent effects , the false positives appear ever more commonly than true positives.

This is why Bayesians insist on choosing a prior probability. Without it, there is no way to interpret the result of an experiment.

The takeaway lesson here, which is horribly underemphasized in school , is that statisitics never answers yes/no questions! Statistics can only give you a _function_ for combining a Prior with an Experiment to obtain a Posterior. Without a Prior (which is subjective; it can never be chosen objectively!), you cannot get a Posterior Probability out of a experiment.</comment>


Being poor now just leads to being more poor later - <AUTHOR> https://twitter.com/tayzonday/status/1020003667921940480?s=21 <comment><USER2> Insofar as being poor is evidence of

\- no full time job

\- children out of wedlock

\- not graduating high school

Okay sure.

But if you don't do those three things, you have a 2% chance of being poor.

[https://www.brookings.edu/opinions/three-simple-rules- poor-t...](https://www.brookings.edu/opinions/three-simple-rules-poor-teens- should-follow-to-join-the-middle-class/amp/)

The modern narrative of "poor stay poor" parrotted these days lacks quite a bit of nuance.

</comment><comment><AUTHOR> Also known as the Matthew Effect.

The comments are worth reading.</comment>


Surgical Precision JIT Compilers [pdf] - <AUTHOR> http://lampwww.epfl.ch/~rompf/pldi2014.pdf <comment><USER2> At one point the programmer was expected to regularly _override_ the compiler, replacing sections with hand-tuned assembly for maximum throughput, based on their knowledge of the CPU architecture, hand-profiling, & expecting the calling pattern.

Then the programmer was expected mostly to _trust_ the compiler, which either applies massive, unwieldy (for a human) optimizations at compile time, or develops new optimizations on the fly based on JIT profiling data, or both.

There has been not nearly enough research on _cooperating_ with the compiler, and providing information that's useful for developing specific optimizations, doesn't force potentially unproductive optimizations if that information is wrong, and still represents the information at a high-enough level that it's human-comprehensible.

<comment><USER3> I'd be interested to see how much of a difference cooperating with the compiler makes. I think the usual advice that until you profile you don't know what the bottlenecks in your code are applies here. Similarly, I think that it is unlikely that the places where humans could add anything of value to the compiler have much of an impact on actual performance (with the exception of types which I'll discuss below).

And in most cases the compiler is much better at optimizing than humans. Register allocation is probably the archetypical example of this. C has a register keyword that the compiler is supposed to interpret to mean "try to put this variable in a register". In most cases you aren't going to be able to perform a liveness analysis of your variables better than the compiler can, and I'm not even sure that modern C compilers even pay attention to the register keyword. They might just perform their own optimizations since compiler writers realize that in >99% of cases, that's going to be better anyways.

Lastly, to touch briefly on types, this is one area that does make a difference on runtime performance. Basically, if the compiler can type check code it can perform more aggressive operations because it can rule out certain classes of errors. Additionally, static types don't have the overhead associated with dynamic typing in terms of tagging variables with their type information. Functional languages in particular are nice from a compiler writer's perspective because if you can guarantee certain parts of the source code are pure you can perform more optimizations that you could otherwise. For example, let's say you're using C++ and you have a function that doesn't return anything, doesn't take any arguments, and doesn't update any globals. A Haskell compiler could probably eliminate this function call, since it doesn't seem to be doing anything, but in C++ it's most likely doing I/O or is being called for some other side effect and so we have to keep it around.

<comment><USER4> Aliasing information is one place the programmer can help the compiler. The 'restrict' keyword in C/C++ is a great example of this. Also information provided by 'const' can be very helpful for the compiler. While both of these aren't strictly hints because they limit what you can do and still get correct results, they do tell the compiler facts that would be otherwise difficult or impossible to prove.

<comment><USER3> 'const' is a very good example and one I hadn't thought about. To some extent functional languages pass every function argument with const, since the arguments are call by value, rather than call by reference. At first glance this might seem to be disastrous in terms of performance if, for example, you pass in a list with 1,000,00 entries or something like that, but any reasonable implementation of a functional language provides ways of doing this without the excessive space and time costs that a naive implementation would have.

<comment><USER5> I'm not sure any compiler actually implements any real optimizations based on const. I suppose possibly on static const variables of basic integer types, but that'd be about all it can do. The existence of the volatile escape hatch, to say nothing of const_cast<>, makes it a pretty useless hint for the compiler.

</comment></comment></comment></comment></comment><comment><USER6> Author here. Thought I should share the github link as well: [https://github.com/TiarkRompf/lancet](https://github.com/TiarkRompf/lancet)

<comment><USER7> Have you read the papers on Tick-C (`C)? MIT, mid 90s. Pretty interesting stuff.

</comment></comment><comment><AUTHOR> I thought of Futamura projections [1] while reading the abstract, and saw that they indeed talk about it in the paper. If you don't know what it is yet, be sure to check it out, since it is also quite interesting and fun.

[1] [http://cs.au.dk/~hosc/local/HOSC-12-4-pp381-391.pdf](http://cs.au.dk/~hosc/local/HOSC-12-4-pp381-391.pdf)

</comment><comment><USER8> Bravo! More of this, please.

It is my great sorrow that I have no time to read these excellent things. The rest of you, please do it justice.

</comment><comment><USER9> I am looking forward to see Graal eventually replace Hotspot, but so far it is only a possible Java 9 feature.

<comment><USER10> Is it a replacement for HotSpot or an add-on?

<comment><USER9> A replacement. Graal is the next generation of the Maxime JIT.

Maxime is/was a meta-circular JVM done at Sun research labs.

Since Oracle bought Sun, Maxime project changed into Graal and there have been a few presentations where the goal to replace Hotspot has been hinted a few times.

There are a few Oracle presentations where it is listed as possible Java Next (8+) feature, but without any kind of commitment when.

</comment></comment></comment><comment><USER11> I don't know if the authors would agree, but Dalvik's JIT compiler appears to be a "precision" JIT. The goals for Dalvik's JIT compiler were to speed up apps without reducing battery life by focusing on compiling only the parts of code that will deliver the most performance increase.

One can also suppose that, with more memory and more power-efficient processors, Google has calculated that in real-world cases, ART's pre-compiler delivers more benefits in performance dimensions than it costs in space and power dimensions.

<comment><USER6> "precision" JIT: I'm not sure -- can you tell it what to do? More predictable performance model than HotSpot: absolutely.

</comment></comment><comment><USER12> This reminded me of PyPy, where (I think) you write an interpreter, than add what they call JIT hints to the interpreter to help it do a good job of JITting the interpreted code.

<comment><USER13> That's different though in that in the case of PyPy you are writing an interpreter and get a JIT that's generated and takes those hints into account.

The authors of programs that are being interpreted by that interpreter are unable to provide any information to the JIT.

</comment></comment><comment><USER14> Christian Wimmer, an Oracle researcher work works on the Graal and Tuffle projects, gave a talk at Mozilla last year. A video of the talk is available here:

[https://air.mozilla.org/one-vm-to-rule-them- all/](https://air.mozilla.org/one-vm-to-rule-them-all/)</comment>


Comcast to acquire NBC - <AUTHOR> http://money.cnn.com/2009/12/03/news/companies/comcast_nbc/index.htm

<comment><USER2> The vertical integration continues. It's always seemed dicey to me that a cable provider owns so many content stations, and this just exacerbates it.</comment>


A hands-on introduction to video technology: image, video, codec and more - <AUTHOR> https://github.com/leandromoreira/digital_video_introduction <comment><USER2> Video compression is not understood well enough throughout the whole stack yet.

I recently got a 1080p projector for home use, so now movies / TV series in my home are viewed on a 100" screen. Content is mostly from Netflix and Amazon Prime Video.

Netflix does a really good job with encoding. I cannot say the same for Amazon Prime Video; even with their exclusive (in UK) offerings, like American Gods or Mr Robot, the quality of the encode is quite poor when viewed on a big screen. Banding, shimmering blocky artifacts on subtle gradients, insufficient bit budget for dimly lit scenes - once you become aware of the issues, it becomes really distracting.

OTOH a really big screen is a fantastic ad for high quality high bitrate content. Anything less than 2GB/hour is noticeably poor.

<comment><USER3> Depends on the content - HDR 4K content on both Netflix and Amazon is encoded in horribly low bitrate - about 12-15Mbit/s which makes it barely look any better than 1080p content (for comparison - 4K BluRay discs are about 60-100Mbit/s and look infinitely better).

<comment><USER4> This is probably not an accident.

A good broadband connection is limited to a sustained rate around 13-18 Mbps.

<comment><USER5> in US maybe, Im getting my advertised Mbps 24/7 as long as the source is able to keep up.

</comment></comment></comment></comment><comment><USER6> Remember when we did this ugly _interlacing_ thing, so that we could get a higher (50/60fps) framerate?

When did we decide that 24/25/30fps was good enough? Now we have a Blu-Ray standard that cannot handle greater than 30fps, and media corporations that are unwilling to release content via any other medium.

Put that together with ever-increasing resolutions, and the amount of pixels something moves across from one frame to the next becomes greater, and video looks more and more choppy.

Franky, this is a _much_ bigger problem than NTSC ever was. Even with content (The Hobbit, Billy Lynn's Halftime Walk) being created at higher framerates, users have no way to get the content outside of a specialized theater because the Blu-Ray standard cannot handle it, and because people seem to honestly believe that higher framerates look _bad_.

I suppose we can only hope that creators take better advantage of digital mediums that _do not_ have such moronic, and frankly harmful, arbitrary limitations.

<comment><USER7> >> When did we decide that 24/25/30fps was good enough?

Everything looks weird at 48/60fps

Remember LoTR?

<comment><USER8> I think you mean the Hobbit, which was mentioned in parent comment. People didn't like it because they are so used to blurry low frame rate movies. If all movies were filmed like that, people would quickly get used to it. Soon they wouldn't be able to stand 24 fps. It's objectively worse.

Similarly footage shot with digital cameras is often modified to look more like film. There's no objective reason for it most of the time, people are just used to the artifacts of film. Anything else "looks weird". Now stuff like lens flare, shaky cameras, etc, are added to shots made entirely in CG!

I can get past that stuff because it doesn't make the quality that much worse, but low fps definitely does. What's the point of having super high resolution 4k display, if the scenes displayed on it are incredibly blurry from a low frame rate?

</comment></comment></comment><comment><USER9> looks like this contains a bunch of creative commons (CC-BY-SA) content ripped from wikipedia without proper attribution. please add the missing attribution

[https://it.wikipedia.org/wiki/File:Pixel_geometry_01_Pengo.j...](https://it.wikipedia.org/wiki/File:Pixel_geometry_01_Pengo.jpg)

[https://en.wikipedia.org/wiki/Chroma_subsampling#/media/File...](https://en.wikipedia.org/wiki/Chroma_subsampling#/media/File:Colorcomp.jpg)

etc

<comment><USER10> I'm so sorry, I didn't mean to make it wrong, I tried really hard to put all the references in a list [https://github.com/leandromoreira/digital_video_introduction...](https://github.com/leandromoreira/digital_video_introduction#references) !

I'll fix these attributions but also feel free to point me more or even PR.

</comment></comment><comment><USER11> It's interesting to note that the architecture of the first ISO codec MPEG (1) is almost identical to the one we have today H.265 That codec was standardised in the late 90s So this design has carried through for about 20 years. Most of the changes relate to the targeted parameters such as frame size, frame rate and bitrate. Only the last step 264 --> 265 seems to have added new features.

This is a very well written introduction

<comment><USER12> Just curious as I never bothered to think about this before, in all H. Codecs/standards... what does the "H" stand for?

<comment><USER2> It's an ITU spec naming convention - think things like X.25. They're all <letter>.<digit>+. The letters aren't often very mnemonic. The letter is a large bucket classification, audiovisual and multimedia systems for H.

[https://en.wikipedia.org/wiki/ITU-T](https://en.wikipedia.org/wiki/ITU-T)

[http://www.itu.int/en/ITU-T/publications/Pages/structure.asp...](http://www.itu.int/en/ITU-T/publications/Pages/structure.aspx#H)

</comment></comment></comment><comment><USER13> Xiph.org wrote fascinating stuff about video compression when working on their next-generation codec, Daala [https://xiph.org/daala/](https://xiph.org/daala/)

</comment><comment><USER14> This was also food for whiteboards in the show silicon valley. Compare: [https://github.com/leandromoreira/digital_video_introduction...](https://github.com/leandromoreira/digital_video_introduction/blob/master/i/thor_codec_block_diagram.png)

with: [http://imgur.com/a/Sne89](http://imgur.com/a/Sne89)

<comment><USER15> Those don't really seem similar. Diagrams with boxes and arrows aren't uncommon.

<comment><USER13> "Q" = Quantizer, "EC" = Entropy Coding, etc. It's definitely similar if you look closer.

<comment><USER16> "LZW" -> Lempel–Ziv–Welch on the entropy codes doesn't really make sense though (maybe that's why the word "stupid" is next to it).

</comment></comment></comment></comment><comment><USER17> I liked that the green channel in Mario's picture was titled "Luigi". Nice touch :)

</comment><comment><USER18> The frequency of 60/1001 Hz and the situation where we are stuck with it basically forever is a shame upon the entire profession of video engineers.

<comment><USER19> Any more background on the 60/1001Hz thing?

<comment><USER8> [https://m.youtube.com/watch?v=3GJUM6pCpew](https://m.youtube.com/watch?v=3GJUM6pCpew)

</comment></comment></comment><comment><USER20> Got really excited for a second thinking this was discussion on _transport_ technology as opposed to _encoding_.

<comment><USER21> What aspects of the transport technology are you specifically interested in?

<comment><USER12> Uh...assume I know absolutely nothing; can you start with a simple ELI5, and then elaborate/point me off in the right direction with a seed foundation of knowledge?

<comment><USER21> LOL, I'll try. Two major things to grasp about transport technology are the a) "entry point" and b) the notion of time.

a) multiple types of media data are encoded independently and then bundled together in what essentially looks like an endless file (called a stream file). So when given a chunk of such a file, the decoder needs to quickly identify the nearest offset in it where it can begin decoding simultaneously all the individual media it needs. This is called "access point". Decoding cannot be started at any random place in the stream, as it generally requires context (so an access point allows to start decoding with the context being empty for all required media -- audio, video, graphics, subtitles etc). Stream file formats (called containers) are designed to solve this, provide access points to the decoder, as easily and frequently as possible.

b) a decoder, when driven by a running presentation device -- video screen, audio amplifier etc -- is essentially a pump. The encoder can be looked at like a pump too, when they are separated by network. If decoder runs faster than the source feeds it, it will drain the pipe and will make the presentation device run idle (which will be noticeable to the consumer). If it runs slower, at some point it will be drowned in data from the source. So the pumping rhythm needs to be maintained identical between both ends. The most practical way to synchronize the "piping clocksource" is via the stream file itself (which has to carry time sample data for that). Again, different containers solve this differently (some not at all).

EDIT: I didn't mention (should go into b)) the effort to make constant the throughput of the pumping -- "constant bit rate", as I believe with the advent of transport schemes which require point-to-point connections (as opposed to multicast streaming), the importance of this goes lower now.

<comment><USER11> Re: b) For video, the encoder contains a model of the decoder, including the amount of buffering available to the decoder. The bit-rate controller at the encoder uses this model to ensure that the decoder always has the right amount of data in its input buffers. It also ensures that the information rate of the channel is matched with that of the compressed stream in a live transmission setting. The transport scheme which operates at a layer below the codec, therefore only needs to take care of delay and packet delivery/loss related issues over the channel. Media is typically transmitted over UDP.

</comment></comment></comment></comment></comment><comment><USER22> This is really great. We seriously lacked a good introduction to video technology.

</comment><comment><USER23> This is awesome. I work in the VOD space, specifically in content protection and this is great reference guide. I've been meaning to write a similar guide for DRM.

</comment><comment><USER5> first example interlacing image is wrong, shows running dogo with simulated division into scan lines, but does not take into account timing difference - that was one of the mayor sources of deinterlacing artifacts. Alternating fields are 1/60 second apart in time.

[http://www.onlinevideo.net/2011/05/learn-the-basics-of- deint...](http://www.onlinevideo.net/2011/05/learn-the-basics-of- deinterlacing-your-online-videos/)

</comment><comment><USER24> I believe the next step in video compression will be more on smarts like object tracking och object recognition.

Machine learning becoming more and more popular will probably help :)

<comment><USER11> They started along that direction with MPEG-4. But it didn't go very far then.

</comment></comment><comment><USER25> How much of that repo is protected by patents and cannot be reused?

</comment><comment><USER26> Amazing work.</comment>


Ask HN: What are the best Machine Learning MOOCs in 2017? - <AUTHOR> <comment><USER2> Well, I haven't taken all of them, so I can't give you a direct comparison. But I am pretty sure Andrew Ng's Coursera one still holds up. I'm doing the Geoffrey Hinton one on Neural Networks now and it's been good. I've also been working through the Udacity ML course and there's some good stuff in there (lots of sci-kit learn stuff, so if you're especially interested in that, it's definitely good).

And not "Machine Learning" per-se, but related, there's a series on Coursera, from Duke, on "Probability and Statistics with R" that I've been going through. I'm on the Bayesian Statistics module now and I've learnt a ton from this sequence.</comment>


Plan to dramatically increase development would transform some LA neighborhoods - <AUTHOR> http://www.latimes.com/local/lanow/la-me-ln-housing-bill-transit-20180325-htmlstory.html <comment><USER2> I live in LA, and I wonder often about the future of housing for this city.

With the population doubling by 2050, something needs to be done. A few ideas could help:

\- Self driving cars (live in Palmdale) \- Tiny Homes/ADU's \- Rezone parking lots (significant portion of LA)

<comment><USER3> >Tiny Homes/ADU's

Mobile homes (and all the 'tiny homes' I've seen are smaller and cooler "mobile homes") are great for quickly putting up housing in undeveloped places.

I think they are less good for higher density options. Personally? I really like the idea of condo or apartment towers that are built to modern luxury condo standards... but have smaller units, and are priced accordingly. I'm in Silicon Valley, and all the new construction is luxury grade, which is fine; I like my insulation, climate control and especially my sound insulation, and I'm willing to pay for these things, but... the problem is that all the units are also really big; I'd be really happy to pay 60% of what they are charging for half the space.

What I'm saying here is that I think that the 'tiny home' movement needs to move up. build us 'tiny condos' and I'll buy one!

<comment><USER4> The standard "luxury" high-rise studio is 500 square feet. A one bedroom is maybe 700-900. Is that really unreasonable?

Most "luxury" multi family buildings use that word because the historical norm is that apartments only exist to cheaply house the poor. It just means they're comparable in quality to suburban middle class houses (or are pretending to be).

<comment><USER3> > The standard "luxury" high-rise studio is 500 square feet. A one bedroom is > maybe 700-900. Is that really unreasonable?

first, just finding high rise studios built in the last two decades is really rough. Like I can't find any in silicon valley that aren't giant "lofts" that approach 1000sqft. Hell, the smallest studio I can find looking around now is the place I lived in redwood city; it was shit, built in the '60s, with a giant single pane window facing a major street near an intersection, so you could listen to all the people who have managed to disable the noise dampening capabilities of their vehicles. 600sqft. And it felt huge. I mean, not that I mind the extra space, but I totally would have given up a couple hundred square feet just for some decent noise insulation.

But... as to the actual question? if you made it proportionally cheaper? I'd totally buy or rent a 300sqft space with a shower and bathroom, if it were priced proportionally. Ideally, you setup the shower and commode in the same enclosure, japanese style, and then have the sink in the apartment.

The problem right now is that usually if you want to pay for less than 600sqft of space, you end up sharing some wreak of a single family home with five other people. or you live in a smaller studio built before double pane windows, with no thought given to isolating you from your neighbors.

I kinda like having public places; I'm a member of a few clubs, including 'the hacker dojo' in mountain view, and I do move some of my life there. I enjoy interacting with other people, but I need some private space, even if it's a small private space. I've lived in shared houses, and with the right people, it's okay, but it's really nice to have your own adytum to withdraw into, where you don't have to see or hear anyone.

>Most "luxury" multi family buildings use that word because the historical norm is that apartments only exist to cheaply house the poor. It just means they're comparable in quality to suburban middle class houses (or are pretending to be).

I don't think that's true in silicon valley; most single family homes around here were built to working class standards in the '60s and '70s and are all around pretty terrible. For someone as soft as I am, they'd be intolerable if the climate was not such that you could sleep in a tent, and they are intolerable if you live in the flight path of the local airport or otherwise have significant noise outside. (I'm in a somewhat more modern place right now, on the approach to SJC, with triple pane windows. It's super loud if you open the windows, but if you button up, it's nice and quiet.)

<comment><USER5> Ear plugs and heavy duty curtains should help.

<comment><USER4> Ear plugs aren't magic. They are appropriate to make dangerous noise levels tolerable, but don't do much to remove the distracting information encoded in already-moderate sounds. They also reflect the sounds of my own body back into me, which practically guarantees insomnia. A white noise source is much more effective. (I use a box fan). Still not great against bass-heavy music next door but makes me pretty much impervious to street noise.

</comment></comment></comment></comment></comment></comment><comment><USER6> Sure, if people in Hollywood would be developers instead of actors, the world would be a better place, LA certainly so.

All kidding aside, I think the solution to this sort of problem, and specially LA, would be to have an open market for public transportation.

The city council could hand out coupons for transportation to the poor, so they can commute to work. (The transportation companies would take those coupons and get the cash for it from the city.)

Such a system would be a much better investments of tax dollars then the currently offering of public transportation.

<comment><USER7> Public transit and density is a chicken and egg problem. Without adequate transit, density is impossible (everyone can't fit their cars in a dense neighborhood), and without adequate density, public transit is unprofitable.

The only solution is decades of highly subsidized public transit and pro- density policies, until it fills the profit gap.

<comment><USER7> Another possible alternative is to promote privatized public transit and allow the transit companies to invest in dense developments and real estate at stations.

An example is in Japan where private train lines take people in from the outskirts of Tokyo into downtown where the line terminates at a transfer point with malls built by the transit company at the station.

</comment></comment></comment><comment><USER8> Ha, I live right in that highlighted area. Used to live on Miracle Mile where these new apartments have popped up. It really does change the vibe of the neighborhood. They're modern and shiney and don't fit in at all. If they made the apts look like spanish revival places I think they would get more buy in from the neighborhood.

</comment><comment><USER9> Jesus Christ, if you want to put up one of those buildings you'd have to pay the existing renters over 3.5 years rent.

<comment><USER10> it pencils out if you go from a duplex to a five or eight story 40 unit condo.

</comment></comment><comment><USER11> I live in LA too, I am a sox figure a year salary tech worker and cant imagine myself buying a property here its too expensive. Wish real estate was more ubregulated like in Houston and Miami</comment>


Writing English as a Second Language (2009) - <AUTHOR> https://theamericanscholar.org/writing-english-as-a-second-language/ <comment><USER2> It is amusing that in the example of replacing "Prior to the implementation of the financial enhancement." by "Before we fixed our money problems." the bad Latin words are replaced by other Latin words. ("fixed", "money", "problem" all have Latin roots.) Even the list of Anglo-Saxon words has a decidedly non- Anglo-Saxon word ("chair", via French from Latin).

What matters is not the origin of a word, but its modern usage. When you consider alternative ways to express a concept, use the words that a. convey the intended meaning with the necessary precision (Clarity), b. are commonly used (Simplicity) and c. result in short sentences (Brevity).

So I agree with the principles the author recommends, but I disagree with the examples. I find all three principles broken throughout the text, and although that might have been deliberate, it certainly doesn't feel like it.

<comment><USER3> "Problem" is from Greek, to be exact (as are many, many other words - "system", "grammar", "physics", "geology", etc.).

<comment><USER4> Yes - when I was learning Spanish I was told that the exceptions to the la -a rule (i.e. words that end with "a" usually are feminine) are from Greek. For example, "el problema", "el sistema"

</comment></comment></comment><comment><USER5> And French! E.g. John Searle's comment on Michel Focault,

> 'Don't be ambiguous', 'don't be too wordy, be brief', 'be orderly' and > 'avoid obscurity' are the four Maxim's of manner. And I think those are > frequently violated. In fact, there are certain schools of philosophy---not > once I'm sympathetic with---where they are more or less systematically > violated. I don't know if I've told you this story but I once had a > conversation with a famous French philosopher who's a friend of mine and I > said to him "Why the hell do you write so badly, _pourquoi écris-tu si mal_ > ", and he said, "Look, if I wrote as clearly as you do people in Paris > wouldn't take me seriously. You know, they would think it's childlike and > naive." [...] In France you got to have 10% incomprehensible otherwise > people won't think it's deep. > ([http://www.openculture.com/2013/07/jean_searle_on_foucault_a...](http://www.openculture.com/2013/07/jean_searle_on_foucault_and_the_obscurantism_in_french_philosophy.html))

I think this is one of the great contributions of the anglophone academic sphere, the idea that you should try to aim to be easy to understand.

<comment><USER6> But, in the article, the "bad examples" he gave, some real people wrote them. If you had to write back to such people with "bare" English, wouldn't they judge you as "childlike and naive" too?

Isn't it necessary to adapt your phrasing to your target? (I thought it worked this way in any language)

</comment></comment><comment><USER7> A friend once asked me to translate a letter he had written to a US company about some equipment of his that needed maintenance. I quickly realized the main difference between Portuguese and English: in Portuguese, you write in a very roundabout way and in English you are straight to the point.

So, if I had translated that letter word by word, it would go something like this:

      Dear Sir,

         I bring to you, by way of this letter, knowledge of the defects that have befallen the equipment I purchased in...

Sounds a bit medieval.

<comment><USER8> It doesn't seem particularly more roundabout than the conventional English "I write this letter to inform you of the defects etc. etc."

<comment><USER9> That sounds oddly stilted and formal.

In my social class and area of the USA a native speaker would open directly with the problem.

"I purchased a widget from you on November 3rd with the expectation that it would..."

<comment><USER10> as a speaker of few European languages, it's considered rude to be straight to the point, it's like you are ordering someone to do something, while you should be politely asking them to do it, even if it's their job and business communication should be kept formal, we are not friends after all

personally i have no problem with straight people, but some people care more about form than content

</comment></comment></comment></comment><comment><USER11> > Don't say anything in writing that you wouldn't comfortably say in > conversation. Writing is talking to someone else on paper or on a screen.

While true, doesn't this ignore the concept of styles and related stuff? And doesn't every word has its own distinct flavor, that may subtly imply something? Like saying "individual" with a certain emphasis on the word, may put some stress on the aspect of individuality (maybe I'm wrong about English, but it surely works like this in my native language).

</comment><comment><USER12> > My Spanish-speaking students must be given the bad news that those long > sentences will have to be cruelly chopped up into short sentences with short > nouns and short active verbs that drive the story forward. What's considered > "good writing" in Spanish is not "good writing" in English.

As a native Spanish speaker, I disagree: Unnecessarily long sentences are considered just as bad in Spanish as they are in English. The average Spanish sentence is a little longer than the average English sentence, but that's only because the average Spanish word is a little longer than the average English word.

<comment><USER13> I have no knowledge of Spanish, but I think your comment is spot on. I think the author of this article is wrong that things like simplicity, well-placed verbs, and economy are unique to English. The students from other language cultures who claim otherwise likely have a very distorted view of their own language.

Good verbs are like a universal principle of good language, as is the one thought per sentence rule. These rules might need to be tweaked - perhaps, for example, simple clauses can be strung together into a single sentence as dependent and independent clauses more easily in one particular language, but the universal part is then the simple clause with a good verb. These universal principles of good writing are like the foundation of the house - they have to be in place - , and everything else, like nice adjectives, proverbs, etc. are ornamental. The author's students are confusing the ornaments of their languages for the foundation.

</comment></comment><comment><USER14> Very helpful for people who study English as a second language. I really like the examples on Arabic, Spanish, and the woman from Nigeria.

</comment><comment><USER15> Not bad advice for native writers either.

</comment><comment><USER16> I can't take these things seriously when they say stuff like "It's not as musical as Spanish, or Italian, or French, or as ornamental as Arabic, or as vibrant as some of your native languages."

The classic fetishism of Romance languages and exoticization of everything else is alive and well.

</comment><comment><USER17> That's William Zinsser, who wrote the book "On Writing". I've been recently reading it, and its great, full of useful advice.</comment>


Tina is not a CMS - <AUTHOR> https://tinacms.org/blog/announcing-tinacms/ <comment><USER2> I love static sites and made some using Hugo. A year later i've started working with WordPress and its ugly/nice (it depends) Gutenberg editor and to be honest, having a look at the quality (yes, there are a lot of excellent plugins and a lot of bad ones) and the availabilty of plugins,i think WordPress is the only platform to go for business oriented websites where seo, caching and other things matters a lot. I've been using wp on production and i'm very happy with it and even if it's far from perfection, even common users learn easily how to use it. Static site generators look like something build for developers instead of non-developers users. What i really miss on WordPress is the capability to produce a static site from a WordPress installation and use netlify for hosting. I know there are some plugins for that purpose but i still haven't tried them.

<comment><USER3> So much this. We work with WordPress where our non tech savvy cllients have to build a lot of content using page builders. I wish there was an easy way to auto deploy most of the content as static while keeping the power of CMS capability. We either have very User oriented CMSs including WordPress or developer oriented tools like Gatsby/gridsome etc. Sorry but my B2B client is not going to run a "gatsby build" on every new page or post creation.

The sweet spot worth billions would be WordPress type.CMS that auto deploys static content while keeping dynamic features as needed. Caching plugins are just too cumbersome even though they are an option.

<comment><USER4> So you should try Publii CMS. It's a good use case for this. Very "client oriented". It can deploy static sites to Netlify, Github Pages, FTP, and so on.

<comment><USER3> But does it match WordPress in terms of functionality, plugin ecosystem, ease of deployment etc?

<comment><USER4> Regarding plugins and functionality, not really. But the deployment is easier — and free. For simple sites, it's a real alternative.

</comment></comment></comment></comment></comment><comment><USER5> Myself and my colleagues have spent the last two months working on TinaCMS, and have learned a lot along the way. We believe Tina is a novel solution for managing website content.

For one thing, as the title of this post mentions, "Tina is not a CMS". Our team also works on the Forestry.io CMS, so we know how to build one of those. As we embarked on the Tina project, we felt that another one-size-fits-all CMS wasn't the solution we wanted. This is why we architected Tina as a suite of libraries to enable frontend devs to quickly compose a more form-fitting content management strategy for their clients.

Another interesting innovation that we discovered along the way was that, by having the CMS live on your website instead of in a traditional CMS dashboard, the correlation between source content and rendered website becomes much more intuitive to those who were not involved in developing the website to begin with. With a traditional CMS, users must have some mental model of how their site is composed. They can ultimately figure out that, for example, they can change the homepage title by clicking on Settings > Homepage > Title or something like that, but requires some trial and error and a lot of implicit rules to remember. With Tina, the editor will edit the Homepage title while viewing the homepage; the information will tend to be where they're expecting it. And by having a short-feedback, on-page experience, even more esoteric rules will reveal themselves more intuitively.

We have been thrilled so far with the response to the public release of this project. We hope to continue to improve and extend the capabilities of TinaCMS, and I'd like to thank everyone who has expressed their enthusiasm and support!

</comment><comment><USER6> Wow, this looks pretty amazing. I can totally see setting up a Gatsby site with the Tina plugin as a website for small or medium businesses.

For me, personally, I'm happy with VCS-centric workflow... I push a change to git, Netlify picks it up, and fires the build process automatically. I think that'd need to be sovled for small businesses, as the changes are local only (and considering that such a blog is very likely to be executed in a container, that'd make no sense).

<comment><USER7> > I think that'd need to be sovled for small businesses, as the changes are > local only

This is exactly why we created Tina Teams ([https://tinacms.org/teams](https://tinacms.org/teams)). We will start sending early access invites in 2 weeks.

</comment></comment><comment><USER8> >"using a CMS feels more like filing your taxes than editing a website"

Loved this quote. I've recently realized this when trying to get a family member (millennial generation) to understand how to edit the simple website she had created using wordpress.

<comment><USER9> I'm guessing that quote was written by an American. For comparison, I filed my Australian taxes on Friday. My tax affairs are admittedly fairly simple, but I comfortably finished the whole process in under ten minutes including looking up a few things for such items as deductions for my home office. Not all taxes are hard, just as not all CMSes are hard.

<comment><USER10> The quote was more about the experience (i.e. just a long list of form fields with no context) rather then about the difficulty.

</comment></comment></comment><comment><USER11> Live demo with a Gatsby website on stage at JAMstack Conf: [https://www.youtube.com/watch?v=iPDCmbaEF0Y](https://www.youtube.com/watch?v=iPDCmbaEF0Y)

<comment><AUTHOR> Demo starts around 3:45 [https://youtu.be/iPDCmbaEF0Y?t=227](https://youtu.be/iPDCmbaEF0Y?t=227)

</comment></comment><comment><USER12> I'm currently using Netlify CMS on my Gatsby site for the blog bit. Any reason I should switch to this?

<comment><USER7> Tina is designed to give editors the live editing experience they want (similar to a site builder like squarespace) while developers maintain control over the project. NetlifyCMS is missing the former. They have their preview templates but it is not an exact representation and requires extra work from the developer.

Tina is also designed so that you can create the editing experience that your customers/clients/coworkers need. Instead of a one-size-fits-all solution, you can give them something that is tailored to their needs.

As well, at the moment Tina only works with git (similar to NetlifyCMS) but we are working on other data source plugins as well (think Contentful, Headless Wordpress, etc).

<comment><USER13> The 'requires extra work from the developer' would be the main way to improve on NetlifyCMS. You have to create a schema, and then translate the schema and any changes into an editor component. How does Tina do it without this?

</comment></comment></comment><comment><AUTHOR> Linkt to repo [https://github.com/tinacms/tinacms](https://github.com/tinacms/tinacms)

</comment><comment><USER14> Napoleon Dynamite reference?

<comment><USER15> At risk of stating the obvious, "TinaCMS" is a recursive acronym similar to GNU.

This doesn't necessarily prevent "Tina" from having another referent except then "TinaCMS" wouldn't a recursive acronym.

<comment><USER16> Interesting.. it works for every letter does it not? [_]ina[category]?

For 2 random examples.. LinaPhone, UinaBag

<comment><USER17> LAME: LAME ain't an MP3 encoder

</comment></comment></comment></comment><comment><USER18> If Tina is "not a CMS", then what does "cms" stand for in your domain. Do you have an alternate interpretation of that acronym?

</comment><comment><USER19> Wiki/documentation repo based on this would be interesting.

</comment><comment><USER20> Surprised Craft CMS hasn't been brought up.

<comment><USER10> Tina maintainer here! There has been some thoughts around how Tina could be used _with_ CraftCMS. Nothing concrete yet, but it's on our minds!

</comment></comment><comment><USER21> Is there a working online demo?

<comment><USER10> Checkout this gastby starter :)

[https://github.com/tinacms/gatsby-starter- tinacms](https://github.com/tinacms/gatsby-starter-tinacms)</comment></comment>


Oscar = Open Source Car - <AUTHOR> http://www.theoscarproject.org/

<comment><USER2> Like most open source projects, this has good intentions, good technology, and a terrible design.

> Form follows function.

Apple begs to differ, and they have been extremely successful thanks to their philosophy. Form very often shapes function and it's at the core of a product's usability.

When designing something as complex as a car, form and function need to be equally considered every step of the way.

<comment><USER3> I am recently trying to understand what people mean specifically by terrible design. Can you be specific about what you disliked about the existing design?

<comment><USER4> It usually means: "I don't like it".

</comment></comment></comment><comment><USER5> Looks dead? Forum is offline and the last update appears to be 2006?

<comment><AUTHOR> Hi there! No its not. It might look like it. You are right! but that is because we've just upload an old version.

The thing is that it wasn't working that smoothly and we had to take it down for improvements. Furthermore, some IPA issues occured with several OEMs, and we have to clear them first before we switch on the new version.

Design follows form is basically a heuristic for order. We dont say that form is less important, not priorizin either. We are are just implying the logical design order; first you develop the core, then you make it look good! Its just another way more poetic to put it.

Good night from Munich!!

</comment></comment><comment><USER6> Something like this was actually the idea I sent to Google Project 10^100. It was more specific because the goal was to have a cheap electric car but the design concept was very similar. I'm glad that someone had the same idea, will try to help :)

</comment><comment><USER7> You wouldn't download a car?

</comment><comment><USER8> Who can tell me about the legalities of home-made cars? What kind of hoops do you have to jump before using something like this on a public road?

<comment><USER9> there's president. people have built 'kit cars' from plans for ages. here's what the CA DMV has to say about it:

<http://www.dmv.ca.gov/vr/spcnsreg.htm>

It doesn't sound easy, but it doesn't sound difficult compared to actually building the thing.

<comment><USER9> did I really just say "there's president"? jesus.</comment></comment></comment>


Microsoft acquires AI scheduling service Genee, hopes to make Office smarter - <AUTHOR> https://techcrunch.com/2016/08/22/microsoft-buys-ai-scheduling-tool-genee-to-make-office-365-smarter/ <comment><USER2> RIP, Genee.</comment>


Ask HN: I've been accepted to Google Startup Launch, now what? - <AUTHOR>

Hi.
Like the title says, I've been accepted to this Google Startup Launch program, but I don't know what to do next. Will someone contact me? There's not much information in the approval email, so I'm a bit stuck in this right now.
I know it's a good thing to be accepted -- means my idea is quite nice, at least.
Should I contact them and ask for more information? Can't find much in the internet in general. <comment><USER2> We were also accepted with our project ([https://dockerize.it](https://dockerize.it)).

The extra $500 for Google Cloud are really nice, but we are expectant for other cool things from Google.

Do you have any idea about how much projects are being accepted? The most powerful thing in this incubators are the relationships with other startups.

In this G+ page ([https://plus.google.com/u/0/communities/10729681536514869184...](https://plus.google.com/u/0/communities/107296815365148691846)) some teams are presenting their projects.

<comment><AUTHOR> Have to agree. Relationship with other people on the same boat and mission is always good. Is that an official community? Haven't checked yet.

</comment></comment><comment><USER3> I assumed it was just a platform to help start-ups utilize Google products. I didn't think it was a formal incubator (I maybe wrong).

</comment><comment><USER4> I was also accepted. Based on the initial application, I assumed there would be more resources than what was included in the acceptance email. So far, the biggest perk is the $500 credit for the Google platform.

<comment><AUTHOR> I'm a bit disappointed. Maybe I was expecting just a bit more out of this, but let's see what will happen. I'll contact them just to get more info.

<comment><USER5> Did you learn anything more?

<comment><AUTHOR> Nop, nothing else. Still no answer.</comment></comment></comment></comment>


Ask HN: Should we open the API of our smart object? - <AUTHOR>

Our startup is making a smart object. You connect to it via Android or iOS, and use the smartphone to control it (e.g adjust the temperature of it via the app) We were wondering if it would be a good idea to go "open" with our smart object API and allow any developer to write an app that connect to it.
On the upside : looks cool on marketing, and we could focus more on the product and less on the apps if someone made better apps that us
On the downside : I feel that there has to be one (competitors could use their app to control our product etc) but can't think of anything harmful
What's your experience on that ? Do you know any company that opened their api with success or failure ?
NB : Im talking about communication between our bluetooth product and a smartphone, nothing related to servers
Thanks ! <comment><USER2> That's a big question. It depends on how you plan to monetize your product and in what space it sits. Also, open doesn't have to mean unregulated. You can (and IMO should) have people register for the rights to use your API, and the licensing terms should be that you can revoke their license under certain circumstances. Think of it like Apple vs Android. Apple is super closed off, (wouldn't personally go there for my own product), but Android for a long time was the wild west, some argue it still is. So if you are too open you can actually hurt your products success because too many people provide a poor experience around your product and your product starts to take the blame not the app developer. Whereas with Apple, they try to control so much that it is sometimes impossible to get legitimate apps published timely or at all, even defect fixes can take too much time to get released.

I know, I didn't answer really. That's because I really think it depends. However, I would always side on the openness, but openness with some controls to make sure users have a good experience. As for concern over someone writing a better app then you do, I like the attitude overall. If someone does, buy it from them, hire them or use it as motivation to make yours better. Competition is good, it can generally make good things great in the hands of motivated people.

As for competitors, execution is what beats competitors. But that doesn't mean you should allow them a front row seat to your party either, hence open but not unrestricted.

<comment><AUTHOR> Monetization: purely by selling the product itself in shops (approximately $100)

Thanks for the detailed answer and I like the idea to have it open but restricted

Is there a way to forbid that an app can control our product ? it is a pure bluetooth smart object easy to reverse engineer, a competitor could have his app control our product. That's what Im afraid of

<comment><USER2> Well, I am not a blue tooth expert, so you might want to double check my understanding. But from what I do understand, you could restrict key functions right? For example, maybe you restrict it in that they need a magic key that your device will recognize and you only issue that when they register. This allows you to control who has access to those key features. Also, you don't publish your API unless they register.

Again, I fully admit to not being a bluetooth expert so maybe my understanding isn't accurate. Happy to talk through ideas though, love learning and coming up with options to figure out how to get things done.</comment></comment></comment>


MS just announced some pretty awesome stuff for the Xbox - <AUTHOR> http://gizmodo.com/5273957/microsoft-e3-keynote-live-right-now?skyline=true&s=x <comment><USER2> I hope Natal works out as well in real life as it does in the ads. I really like some of the motion-sensitive Wii games... but Wii games have terrible graphics, and I find that distracting. Having games that are both motion sensitive AND full HD will be wonderful. (I wonder if there will be a Mirror's Edge 2 that takes advantage of this.)

<comment><USER3> If Natal works, there's tremendous applications in terms of interactivity at _work_. How about we leverage this stuff for "Minority Report" type interfaces with 50" flat screen TVs? How about rear projection? Imagine collaborative picture or movie editing over the net? Can stuff like this be leveraged for pair programming? How about animated CRC cards which can execute and animate their functionality? Such things have been possible for awhile now, appearing in places like TED. Natal and the dropping price of big TVs can make them easily accessible to small and mid-sized companies.

</comment></comment><comment><USER4> At first I was _really_ skeptical that the motion stuff was more Hollywood demo than reality. Then I took a closer look at the sensor bar:

<http://cache.gizmodo.com/assets/e3xbox/e3xbox300.jpg>

I don't think that yellow thing to the left is a camera, but if both those other holes are cameras, then that would mean the XBox could indeed be getting full 3D information on you, and that really does open up some interesting possibilities. I doubt the demos are possible with silhouettes, but with full 3D information... maybe.

I remain skeptical until I try it, but I have to admit I'm intrigued. This really could be a big deal. It's cool not because current games will translate to this; they're all specialized for current controllers. It's cool because this will enable new things, some of which are things that the Wii seemed to hint at but doesn't seem to have been able to execute on.

<comment><USER5> There are indeed two cameras and a microphone array. The hardware design is still not final, but it is able to extract accurate depth information. Similarly, the software is not final, but the skeletal tracking demos which I have seen have been pretty impressive.

<comment><USER5> In the interest of correctness, I should say they aren't both normal cameras. In the interest of keeping my job, I won't say more. Needless to say: our APIs will provide at least depth, color, and skeletons. Cool stuff :-)

</comment></comment></comment><comment><USER6> If this is as cool as it looks, it's one hell of a response to the Wii.

That said, I'm a little skeptical, the lack of any sort of tactile feedback, even just holding an object, may be awkward.

</comment><comment><AUTHOR> Here is a video of the Natal. Wow.

[http://www.youtube.com/watch?v=03thQvGRVvQ&feature=playe...](http://www.youtube.com/watch?v=03thQvGRVvQ&feature=player_embedded)

I just hope it works as advertised and I hope it has an easy to use API/SDK.

<comment><USER7> Yikes. I wonder how Nintendo can respond to this. Microsoft is really going for their throat here.

<comment><USER8> Just to rub it in Nintendo's face a bit more, during the demonstration at E3, the guy explaining the system said "This isn't a game where you end up on the sofa just kind of using some preset waggle commands."

Ow.

<comment><USER9> 'Tis true though. I've worked briefly with the Wiimote, and it really isn't as capable as advertised - forget tracking any sort of complex gestural movements, it's really only good for jerks and twists - i.e. something that saturates the sensor good.

This thing is going to absolutely destroy the Wii, if it works as advertised...

<comment><USER10> In the Rayman: Raving Rabbids games, one of the minigames involves tracing an outline on the screen with as much accuracy as possible. I don't know whether or not you'd consider that "complex", but it certainly involves a little more than jerks and twists. (Just the first thing that came to mind :) )

<comment><USER11> The pointer and the accelerometers are two separate things. I haven't heard many complaints about the pointer accuracy (which is what Rayman uses for the section you're thinking of).

<comment><USER10> I don't know the technical specifics, so I'll take your word for it ;)

<comment><USER9> The Wii sensor bar combined with the little camera inside your Wiimote can give you a reasonably accurate estimate of where your wiimote is pointed on the screen.

This is quite bad at gestures though, particularly when the front of the Wiimote is pointed away from the sensor bar (as it is in games like boxing and tennis). In these cases, lacking a visual way to tell movement, the controller relies entirely on the accelerometer, which while theoretically capable, saturate very quickly with full body motion.

This is why in Raving Rabbids, where you have to play rabbid-DDR with the music, you have to jerk the controller - the accelerometer is neither reliable nor accurate enough to reliably infer your intentions through light motions.

<comment><USER10> Thanks for clarifying (I never can do those music minigames!)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> The voice recognition stuff also looked impressive.

Buzz (Quiz game) with voice recognition is a killer feature. (My mother in law would probably buy one for that)

<comment><USER13> With the camera and internet play (see the other family) it's going to be _bad_ for that segment of the TV market, because it'll be easy to set up tournaments with cash prizes. Way more people will compete to win $1000 than will watch TV to watch someone else win $100,000.

On an unrelated note, I wonder if/how they're going to prevent it being used for porn. Obviously they won't allow porn games but the video chat + bored teens makes that kind of activity pretty much inevitable.

<comment><USER3> _Obviously they won't allow porn games but the video chat + bored teens makes that kind of activity pretty much inevitable._

There are already porn avatars aplenty. That will make "sexting" visible -- instead of writing and imagining it, you'll just see it. The imagery is probably better with well written text, though. Your imagination is the most vivid rendering system there is.

All that has to happen is for SecondLife to get the interface.

</comment></comment></comment><comment><USER14> Can't wait to put my hands on it and start hacking some crazy software. Of course someone will have to write some drivers for it...

<comment><USER15> I'm guessing that it's USB or Bluetooth, like existing hardware for the system. Windows Vista actually has drivers for the Xbox 360 controllers out of the box. This may end up being surprisingly hackable.

</comment></comment><comment><USER16> So they announced twitter integration, facebook integration, last.fm stuff.

Call me ridiculous, but have they not considered the possibility of releasing a web browser instead? Then people could have twitter, facebook, last.fm, and whatever else they want. Why is this so hard for microsoft to do?

Having said that, the xBox hardware is so noisy it's not a good machine to use for much apart from gaming.

<comment><USER15> The lack of a web browser is indeed a glaring hole in the system capabilities, but the optical drive noise is a bit of a red herring these days with the ability to install games to disk. It runs silently when you do that.

<comment><USER16> That's actually another gripe of mine. What the hell is the point of giving me a HDD to copy games to, if I still have to insert the disc to play it. Complete and utter failure. Also on mine at any rate, the noise from the fans it most of the issue.

<comment><USER15> Maybe I just have a newer model? The fans run silent for me. If they were noisy that would be aggravating, I agree.

Also, needing to have the disc in place to play HDD games is ridiculous. No question about it.

</comment></comment></comment></comment><comment><USER17> Is this real or just a "product vision" kind of video based on no concrete technology?

If they have actually solved the hard problems involved in making this technology work, it's extremely cool.

If they have not, it's somewhat akin to a video suggesting that they'll build technology to allow people to fly without any equipment, just by flapping their arms.

<comment><USER18> They demoed it live on stage. They didn't just play this video for everyone in the audience...

</comment></comment><comment><USER19> It seems like there is no release date or price info but anyway demo is very cool.

</comment><comment><AUTHOR> Here is a slightly better link:

[http://gizmodo.com/5273957/microsoft-e3-keynote- archive?skyl...](http://gizmodo.com/5273957/microsoft-e3-keynote- archive?skyline=true&s=i)

I'm really looking forward to CoD Modern Warfare 2 - the trailer looks ridiculous. I've wanted a new video card for a while, but I'm not going to let myself buy one (or an accompanying 24" monitor) until I get my product launched. Looks like my deadline is November.</comment>


Big Picture guy is now at Atlantic with InFocus - awesome photography blog - <AUTHOR> http://www.theatlantic.com/infocus/ <comment><USER2> Great pictures. But without keyboard shortcuts to jump directly between pictures, one is constantly micro-managing the window scrolling to fit each pic inside the browser window.

<comment><AUTHOR> Agreed... I wish more sites would do the gmail style j/k moving between anything.

<comment><USER3> Right at the top of each collection subpage, there is "Use j/k keys or ←/→ to navigate"

<comment><USER2> That wasn't there the last time I saw it. And I tried every key. Looks like they changed it. Thanks for the hint!</comment></comment></comment></comment>


Ask News.YC: How to fight features? - <AUTHOR>

Well, it's quite obvious when your product gains some popularity users start bombing you with feature requests. The problem I would like to arise here is how do you handle these requests ? Of course you can gather some statistics then start implementing features that are being asked more frequently. But, at some point you start receiving a lot of controversial feature requests: one group of users claim that the feature they request is more important than the feature requested by the other group, sometimes even claiming to remove feature requested by the opposition. How do you rule out such situations ? Please advise. <comment><USER2> Features are intricately coupled with usability design - which incidentally looks really easy, but is in reality extremely hard.

What I would do is gather all the feature requests, and see if there is a pattern among them. Often there is. For instance, if you are doing a webforum: One user wants a feature that allows him to change tha background of the app, another user wants to change the border thickness of the forum posts, and yet another want to be able to have his name blink when he posts to the forum.

In this rather contrived example there is a clear pattern: It all has to do with design. And you can implement all the requests by creating a design editor where users can change the look of the site. If you are really clever you can do a javascript app that lets users pick out indivivual elements and apply CSS styling to them, maybe with a nice userinterface that lets him pick colors from a javascript palette, and nice input boxes for border thickness. And you can use javascript to let the user see his changes instantaneously... I'm getting carried away now...

Anyway: If you gather all the feature requests in logical groups, and look at how many requests there are in each group, as opposed to just how many users want to have their name blink when they post to your forum you will get a much clearer idea of where your problems are. Also, you will be able to solve many requests by implementing one feature - which will admittedly be a larger one, and thus more work.

If, on the other hand, you slap features on every now and then in no particular order you will in time end up with an interface that is almost impossible to figure out because there is no consistency. Just look at word ;-)

But as I said: Usability is much harder than it looks.

<comment><AUTHOR> We are developing mobile application. The problem we stuck in with is the GUI: what was initially considered as best usablity for one group of users appeared to be totaly unacceptable for another. We were trying to solve this controversity by making every thing configurable. But again we came close to the point where the number of different settings and options is beyond of understanding even a very experienced user :-). I understand that we have to rethink all the concept of the GUI, but I don't see any decent ideas :(. Perhaps we need some fresh look on this from someone outside.

<comment><USER2> Throw me a mail if you like, I'll be glad to have a look. My mail is in my profile. I probably won't be able to get back before the weekend though.

It's always fun to see what others are doing, besides maybe as you say it will be easier for someone that hasn't been too involved beforehand. It often is.

</comment></comment></comment><comment><USER3> (Note: This is a little bit of a plug for ideas I'm a big fan of, but it's not for anything I make money on.)

I recommend you setup a project and encourage your users to use a feature voting site like the one we have for startups/hackers to use:

<http://featurelist.org> <http://featurelist.org/projects/add/>

There you can have your users upvote features and you can really see which the majority like best (rather than tracking all of them via email).

Once I know what the users want, I rank the features internally using the method I mentioned here for getting a rough notion of ROI for each feature: <http://news.ycombinator.com/item?id=122203>

The enthusiasm of your users on those features can help you calculate the business value (though other things should factor in). But you shouldn't decide to code them unless you've also calculated the cost (including some factor for long-term costs) of implementing them into your product.

</comment><comment><USER4> Just pick the ones you're yourself most enthusiastic about first.

<comment><AUTHOR> Yeah, I like this approach :)

</comment></comment><comment><USER5> Tough one. One option is to use a poll. The best option is to go with your opinion, and that of your fellow founders. If you think a feature would make a good addition to your software, go for it. If the feature takes away from what your project is, don't use it.

</comment><comment><USER6> <http://fevote.com/> has an interesting/digg-like approach to managing features/comments on feature requests, etc

<comment><USER2> Henry Ford has a great quote on this:

"If I asked users what they wanted they would say a faster horse"</comment></comment>


Linux game database - <AUTHOR> http://www.lgdb.org/

<comment><USER2> It's a shameless plug but I keep a game index site with a fair list of Linux games:

<http://www.gamefndr.com/games?game%5Bplatform_ids%5D%5B%5D=7>

The site is still only half-done and is a work in progress. (and features ugly deep link URLs)

BTW slick work on the lgdb tools and emulators listings.

</comment><comment><USER3> Well there has to be a replacement for The Linux Game Tome (<http://www.happypenguin.org/>) but this one just feels soulless and generic. The Linux Game Tome was never very good from a technical point of view but it had style.

<comment><USER4> A sad demise, this page was part of my Linux using in the early 2000s.

</comment></comment><comment><USER5> Also list of Linux games on Steam:

1\. <http://steamlinux.xpaw.ru/>

2\. <http://steamdb.info/linux/> (automated, pulls data from Steam)

</comment><comment><USER6> I was going to recommend <http://www.happypenguin.org/> but apparently this week they announced its demise, sad to see it go.

There is also <http://www.penguspy.com/> which contains a well curated list of Linux games.

<comment><USER7> I'm sorry to be mean, but with a 1994 feel like that, no wonder it didn't get the attention and interest it deserved. And this is coming from an enthusiast. Hopefully someone will take the reins and do it justice though.

<comment><USER8> I rather enjoyed the Linux Game Tome for many years. It got a lot of attention and was well-known in the community. As the post says, its maintainers stopped updating and maintaining it, but it went on for a long time. I actually appreciate that "1994 feel" and am glad it didn't become polluted with such modern "niceties" as tag clouds, infinite scroll, and share buttons on every post.

</comment></comment></comment><comment><USER9> For games specifically distributed under free software licenses take a look at <https://libregamewiki.org/Main_Page>. SourceForge's games section [1] is also still a surprisingly good tool for discovering smaller and more obscure Linux game titles. I wish there was this sort of cataloguing going on on GitHub (even if it was through a third-party website).

[1] <https://sourceforge.net/directory/games/>

</comment><comment><USER10> I tried to create an account using Yahoo! OpenID to submit one of my games: <http://www.guacosoft.com/njam>

I got this error from Yahoo!:

Sorry! You will not be able to link your Yahoo! account with this website or application. It is using an older version of the OpenID technology.

</comment><comment><USER11> How can gaming on linux be taken seriously when the same tired old ports and poor quality games dominate the "top" list by user reviews?

You'd get a better sense of linux gaming with Steam for Linux.

<comment><USER12> Unfortunately Steam remains DRMed, so it's not going to "cut it" for Linux gaming (i.e. to be a presentable selection of Linux users), since Linux crowd has little respect to DRM and many aren't using Steam because of that. The only hope could be GOG, but they aren't itching to start selling Linux games yet (feel free to let then know if you are interested: <http://www.gog.com/wishlist/site/add_linux_versions_of_games> ).

<comment><USER13> Steam does not require games to use their DRM, it is one of their many optional features. I do not know if anyone has compiled a list of non-DRMed games at Steam though.

<comment><USER12> I mean DRM in general (running the Steam client and so on). GOG is completely DRM free in comparison.

</comment></comment></comment></comment><comment><USER12> No way to filter by DRM free criteria there?</comment>


Wikipedia summaries from the command line - <AUTHOR> https://github.com/KorySchneider/wikit <comment><USER2> Why would I want to use this instead of using the browser?</comment>


11 Steps To Starting your ISV and how to measure your progress - <AUTHOR> http://stackoverflow.com/questions/263723/developing-a-software-idea-into-a-business#283597 <comment><AUTHOR> Wow, some of the nuggets you find on SO are quite good.</comment>


3 Sins of Free Music and How to Fix Them  - <AUTHOR> http://neverheardof.me/3sins.htm <comment><USER2> this was a seriously brilliant article. i run a music forum that is roughly based on a niche genre of music and we get FLOODED with terrrrrrrrible artists. this is a great thing to make them read.

haha, thanks.</comment>


Undo Made Easy With Ajax - <AUTHOR> http://humanized.com/weblog/2007/09/14/undo-made-easy-with-ajax-part-1/

<comment><USER2> This approach is too simplistic to be useful in a multi-user environment.

Adds, changes, and deletes MUST be done immediately and cannot be queued without bottlenecking the entire system.

Undo's MUST be examined for every possible ramification. What if you change something and then want to undo it AFTER someone else has changed it again? What if you want to undo an add after someone else has already changed it? What about undoing a delete after someone else has added it anew?

Also, distinction must be made on how to handle a client side undo (simple) versus a server side undo (could be complex).

I agree with the writer that undo is a necessity, not a luxury, in a serious web app. For industrial strength apps, however, more thought is needed than what this writer has provided.

<comment><USER3> This approach is too simplistic to be useful in nearly any environment. On top of that, its basically the exact opposite of what undo is/has always been.

The "correct" way to do undo, is to perform an event, and keep a list of inverse events. As you pop those off the undo stack, you can simply execute them.

As you mentioned, this may be slightly more complicated in a multi-user environment -- but in this example, it would absolutely be the right way to go. Plus, this is so easy to get working in javascript, where you can actually push functions to the stack, and then execute them when you pop them off...

</comment></comment><comment><AUTHOR> This article had a strong positive impression on my development team. If you like it, I recommend the other article it mentions at the beginning.

</comment><comment><USER4> I recall this being lambasted on Reddit a while back:

<http://programming.reddit.com/info/2piup/comments>

<comment><USER2> Thanks for that reference. 2 things about it enlightened me:

1\. Hacker news is not the only place to read stuff like this. (although, for me, it sure seems that way now)

2\. The children haven't made it here yet. (and hopefully they'll stay where they are)</comment></comment>


Hello from the Markup - <AUTHOR> https://www.getrevue.co/profile/themarkup/issues/hello-from-the-markup-199187 <comment><AUTHOR> > When we asked Mailchimp for an explanation, a spokesperson told us the > company doesn't turn off click-tracking until after an unspecified > "probationary period" because they need to ensure "abuse prevention."

<comment><USER2> That sounds like "abuse" in itself!</comment></comment>


The Deepest Metro Stations in the World - <AUTHOR> http://www.amusingplanet.com/2017/03/the-deepest-metro-stations-in-world.html <comment><USER2> Don't click. I did and it redirected me to a scamming site.

<comment><AUTHOR> Strange, I couldn't reproduce now or at the time of original submission.

With that said, they do load a bunch of third-party ads, so there might be some malicious payload that you received but others didn't.</comment></comment>


Show HN: Automatic Slack reminders for pull requests - <AUTHOR> https://pullreminders.com/ <comment><USER2> I created a similar open source tool for this for work a few years ago called drill-sergeant: [https://github.com/zumba/drill- sergeant](https://github.com/zumba/drill-sergeant)

However, it leaves the scheduling mechanism up to you. We currently have it on a crontab on one of our build boxes that notifies hipchat hourly and a separate cron that sends an email digest once a day.

I also created a hubot integration as well, but it is out of date since we use the direct hipchat integration: [https://github.com/cjsaylor/hubot-drill- sergeant](https://github.com/cjsaylor/hubot-drill-sergeant)

</comment><comment><AUTHOR> OP here:

I created this tool because on the last few teams I've worked on, pull requests would linger around and start then start to get backed up. It's not fun for managers to chase after old PRs or for developers to constantly beg each other for code reviews.

I'm hoping that this tool can help teams stay on top of their pull requests without as much manual nagging!

</comment><comment><USER3> My team has needed something like this for ages...gonna give this a whirl. #hackerNewsComingInClutch

<comment><AUTHOR> Thanks!</comment></comment>


GPU Performance for Game Artists - <AUTHOR> http://www.fragmentbuffer.com/gpu-performance-for-game-artists/ <comment><USER2> This is a great article for programmers too - maybe too much for non technical artists.

The article doesn't really go into how to make more performant art, and thats probably for the best - a lot of that will be game and engine dependent. It's really easy to 'optimize' in a way that hurts the engine (or for programmers to build/configure the engine and shaders in a way that is counter to the artists workflow or visual targets).

</comment><comment><USER3> "Some engines (most notably the latest version used by Assassin's Creed) have even gone in a radically different direction, using the capabilities of the latest GPUs to drive rendering and effectively doing away with draw calls altogether."

I'm curious about this. Is it procedural generation? How does it work? The only thing I could find with a while of searching is:

"AnvilNext [...] is capable of generating structures in a flexible and automatic manner while following specific design rules and templates, which reduces the amount of time and manual effort required for artists and designers to create an intricate urban environment. Specific landmarks, such as the Notre Dame de Paris, are still designed by hand [...]."

\-- [https://en.wikipedia.org/wiki/Anvil_(game_engine)](https://en.wikipedia.org/wiki/Anvil_\(game_engine\))

<comment><AUTHOR> He refers to a talk from the Assassin's Creed team in comments, and I discovered the person who gave the talk wrote a fairly extensive set of forum posts on it (including links to the original slides) here: [https://forum.beyond3d.com/threads/gpu-driven-rendering- sigg...](https://forum.beyond3d.com/threads/gpu-driven-rendering- siggraph-2015-follow-up.57240/)

</comment></comment><comment><USER4> Google cache: [http://webcache.googleusercontent.com/search?q=cache:MRJVrSS...](http://webcache.googleusercontent.com/search?q=cache:MRJVrSSSJosJ:fragmentbuffer.com/gpu- performance-for-game-artists/)

<comment><USER5> Unfortunately without images :(

</comment></comment><comment><USER6> This is a great, concise explanation of the openGL pipeline.

It would be great to have a similar explanation for Vulkan.

<comment><USER7> The Vulkan graphics pipeline isn't any different than the OpenGL graphics pipeline (or DX11/12, gnm or Metal) although the details of how commands and data are sent to the GPU change. This article is pretty high level, so it applies equally to both APIs...</comment></comment>


Facebook is sued after stock plunge 'shocked' market - <AUTHOR> https://www.reuters.com/article/us-facebook-lawsuit/facebook-is-sued-after-stock-plunge-idUSKBN1KH2JY <comment><USER2> They shouldn't have pretended so hard that everything is just peachy and there's nothing to worry about right after the Cambridge Analytica scandal. They misled investors. I'm glad there's a lawsuit, maybe they won't be as misleading in the future.</comment>