Firefox 48 released – supporting process separation - <AUTHOR> https://www.mozilla.org/en-US/firefox/48.0/releasenotes/ <comment><USER2> Have you noticed that shift in release notes rhetoric? I cannot recall seeing such pseudo-cool-worded-wannabe-funny release notes with questionable punctuation ever before.

> "Roar for moar / We've got your back / Try saying that three times fast / > Buh-bye, squeaky voice! / hot, hot, hot! / embetterment / …"

I hope this is not a beginning of standard discourse towards users, because as I've found out I prefer previous boring and concise one.

<comment><USER3> Those aren't whole entries, they're occasional "color" in still-descriptive entries. Lighten up. More companies should have a unified "voice", even in technical documentation.

<comment><USER2> I agree, entries are still sufficiently descriptive, but from my subjective point of view this "color / lightening" is absolutely redundant in this specific context. And worse: for me it even adds disruptive noise to the message: To be honest, as a very bad English language user I am in fact happy if I do not struggle understanding the basic message and decoding any extra non-technical jargon and bending my brain around some idioms I never met before is extra effort I'd like to avoid in this case. (But it might as well be just a sign that I am not the target audience (anymore).)

</comment></comment></comment><comment><USER4> It will only be enabled for a percentage of users, and one of the criteria for not enabling it is having an extension.

</comment><comment><USER5> That's a lot of stuff to release all at once...</comment>


OpenBSD LDAPD Portable for Ubuntu 16.04 - <AUTHOR> https://github.com/harishanand95/openbsd-ldapd-portable <comment><AUTHOR> A portable ubuntu version of the ldapd in OpenBSD. This was tested in ubuntu 16.04</comment>


Needle: ASCII-fied arrow notation - <AUTHOR> http://scrambledeggsontoast.github.io/2014/09/28/needle-announce/

<comment><USER2> Somehow I'm reminded of "Multi-Dimensional Analog Literals" project for C++:

          assert( ( o</comment><comment></comment><comment>-o
                    |L             \
                    | L             \
                    |  L             \
                    |   o</comment><comment></comment><comment>-o
                    |   !             !
                    !   !             !
                    o   |             !
                     L  |             !
                      L |             !
                       L|             !
                        o</comment><comment></comment><comment>-o ).volume == ( o</comment><comment></comment><comment>-o
                                                      |             !
                                                      !             !
                                                      !             !
                                                      o</comment><comment></comment><comment>-o ).area * int(I</comment><comment></comment><comment>-I) );

[http://www.eelis.net/C++/analogliterals.xhtml](http://www.eelis.net/C++/analogliterals.xhtml)

</comment><comment><USER3> "Hopefully this is a lot clearer."

Really hope that was a joke, because the immediately preceding mishmash of ASCII art is pretty much the OPPOSITE of clearer.

I'm also imagining the source-code diffs from editing one of these. Yow.

But perhaps that's the idea: make circuitous functions so painful to write that people refactor to smaller ones.

<comment><USER4> > Really hope that was a joke, because the immediately preceding mishmash of > ASCII art is pretty much the OPPOSITE of clearer.

Do you really think it's a joke or are you just being nasty? I thought it was quite clear (although perhaps the choices of visual ascii characters could be tweaked a little), and it certainly makes the structure of the circuit more apparent than in the original arrow notation. Obviously this is an experiment, and a quite clever one in my opinion.

<comment><USER5> I thought it was a joke, and a cool hack, but not actually intended for real use. But I wasn't sure, and came here to post "So... is this a joke?"

</comment></comment></comment><comment><USER6> _Tunnels can overlay each other. The following arrow swaps the outer two elements of a 3-tuple._

I can't tell if this is intentional or not, but it's a prime example of when programmers should Stop Writing Code and use a high-level flow diagramming tool, for the same reason that large projects shouldn't be done in assembler, that chip designers long ago gave up doing layout by hand, and architects use drawings instead of writing out step-by-step instructions. Code is a really terrible medium for defining structural relationships.

Sticking with the architecture metaphor, if you look at the plan for a building it requires skill and effort to understand properly - and for large buildings, a capacity for understanding abstraction - but even to the untrained eye there's a clear isomorphism between the plan and the actual structure. When you first encounter a large body of code it's more like a jigsaw puzzle without the reference picture. There are some standard reference points you can rely on - analogous to identifying edge and corner tiles, and knowing about different conventions of interlocking tiles - but you have to do a good bit of reading before the flow of the program emerges and you get a sense of where most of the computational effort takes place. My mental representation of a program is as a causal network, somewhere between the operation of a clock and a Rube Goldberg machine (probably because I spent a lot of time dismantling clocks as a child); reading code in order to figure out the operational structure often feels to me like closing my eyes and trying to infer the structure of something through my hands.

</comment><comment><USER7> There was a thread on /r/haskell with 116 comments. In particular there were alternative Unicode character sets that made the rendering clearer.

[http://www.reddit.com/r/haskell/comments/2hpzpu/announcing_n...](http://www.reddit.com/r/haskell/comments/2hpzpu/announcing_needle_asciified_arrow_notation/)

</comment><comment><USER8> Anyone who likes this notation should look into Labview. It is a visual language where you draw the network the data will follow, and is in use in a lot of university labs. There are even companies that sell equipment programmed this way. People who have done much programming usually hate it, but you can get non-programmers to build the interface for a scanning confocal microscope this way and expect it to actually work in a few weeks.

I have found that it is a horrible way to do easy things[1], but it can be a useful way to put together fairly complicated programs with multiple concurrent pieces and a nice UI.

[1] Hello world is something like find the graphic that creates an integer box and add it to the UI. Then repeat for a second and third number. Find the plus sign and connect the first two with wires as inputs and the third as the output. Change to the UI view and organize everything and add appropriate labels. You now have a display that will show x=a+b. For a programmer that is painful.

<comment><USER9> My college roommate made the observation that "Everything is equally hard to do in LabView." He was a physicist and generalizing, but it holds up nicely. You can either sum up and divide a few numbers, or automatically collect data from a sensor every five seconds and store to an Excel file with about the same difficulty.

I both adore and hate the language for that weirdness.

</comment></comment><comment><USER10> The concept is very interesting, but I feel like building actual software with this would be better-implemented not with a 1-dimensional text stream, but with a 3-dimensional VR environment, moving wires and such between tangible machines. Redstone programming in Minecraft comes to mind.

</comment><comment><USER11> This is clever, whatever the intent. Are there any truly visual programming environments that are functionally based in this way? I don't think ASCII is the right venue for this sort of idea, but such ideas must have been tried before for functional languages.

</comment><comment><USER12> I cannot even...

It's like 10 times harder to read.

</comment><comment><USER13> it seems like something that would be good for visualizing/gui editing, then unicode could be supported easily and the parsing troubles wouldn't be so bad</comment>


Trump Press Secretary Sean Spicer may have just tweeted his password - <AUTHOR> https://techcrunch.com/2017/01/26/sean-spicer-n9y25ah7/ <comment><USER2> Could he be verifying the channel of covert communication, or integrity with codes? All are clearly lower case alphanumeric, and 8 digits, a common checksum (or yes, password) length...

/tinfoil hat

</comment><comment><USER3> Still think trump' twitter account will get hacked.</comment>


Oops, I Wrote a C++ Compiler - <AUTHOR> https://praeclarum.org/2018/08/27/oops-i-wrote-a-c-compiler.html <comment><USER2> _The process of creating the parser went very smoothly thanks to this. The real work involves creating C# syntax classes that mirror the grammar. These classes form the Abstract Syntax Tree (AST) of the compiler._

To address this problem, I use Zephyr ASDL to describe the abstract syntax of a language (which CPython also uses!)

It's a little DSL that lets you write an ML-style algebraic data type, and generates a bunch of code for you. In CPython, you go from ~100 lines ASDL schema to ~10,000 lines of C! It underlies the 'ast' module in the stdlib.

Why is Zephyr ASDL? [http://www.oilshell.org/blog/2016/12/11.html](http://www.oilshell.org/blog/2016/12/11.html)

It eliminates the need for a lot of boilerplate he pointed out:

[https://github.com/praeclarum/CLanguage/tree/master/CLanguag...](https://github.com/praeclarum/CLanguage/tree/master/CLanguage/Syntax)

<comment><USER3> For those writing language processors in Java, I highly recommend having a look at JastAdd [1]. It's a great framework for implementing semantic analysis using attribute grammars [2]. The tool automatically generates Java classes to represent ASTs, based on a high-level description (a CFG grammar) of the desired AST shape. You can use any Java-based parser as long as the AST it produces is constructed from those classes. That's only the starting point; the real power is in the excellent support for expressing attribute computation. It uses a high-level, lazy equational formalism extended by the programmer with custom logic, which is then turned into automatically- generated Java code. Compilers/interpreters written in JastAdd tend to be very well structured and easy to maintain. It's one of my all-time favourite libraries, actively maintained, and very well documented.

[1] [http://jastadd.org/web/documentation/concept- overview.php](http://jastadd.org/web/documentation/concept-overview.php)

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

<comment><USER4> And for Scala, there's Kiama [https://bitbucket.org/inkytonik/kiama](https://bitbucket.org/inkytonik/kiama)

</comment></comment></comment><comment><USER5> Please don't call it C++ if it doesn't even support constructors and destructors.

People will be trying to port their existing code, and will be unpleasantly surprised.

> But the truth is, I'm just going to keep listening to users and improving > the parts I can. I am not trying to recreate GCC or LLVM.

Why not _use_ GCC or LLVM as part of your project? That seems like a better investment of your time.

<comment><USER6> It is very well explained? GCC and Clang would be nightmares to integrate into an app that runs on many platforms including iOS, and even once you did, you'd still need to implement an interpreter, because you're not allowed to JIT on the app store. Compiling a toolchain for a desktop platform is easy. Cross compiling a toolchain is moderately easy. But embedding a toolchain into an iOS app, where you have to get it and all of its dependencies compiling for iOS, definitely seems like a massive challenge.

<comment><USER7> For Clang/LLVM, it wouldn't be that hard. It's one source tree to build (Clang is in a separate repo from LLVM core, but you check it out into a specific subdirectory and they build together), all C++, no external dependencies, and the result is a set of static libraries you can easily link into an iOS app.

As for interpreting — there are a few options. The simplest approach would be to use LLVM's built-in IR interpreter (lli), which did exist in 2010.

Alternately, if you want more control: these days, the targets supported by upstream LLVM include:

\- eBPF

\- WebAssembly

\- AVR

The first two are bytecode formats, both designed for (relative) simplicity and portability. There are open-source interpreters available for both, or alternately they're both simple enough that you could relatively easily write your own. AVR, on the other hand, is the actual instruction set used by the Arduino; I'm not sure what the status is of open-source AVR emulators (I see a few projects on GitHub but don't know how good or complete they are), but there's probably something out there that would work.

But to be fair, all three of those targets were merged into LLVM upstream only recently, much later than 2010. Also, 2010 was the year that Clang got C++ support working well enough to become self-hosting, according to Wikipedia [1]; it was still relatively experimental, not nearly as much of a "safe bet" as it is today. (Still, even then, it was pretty much guaranteed to work better than writing your own C++ compiler from scratch! :p)

GCC is older but much harder to embed, even today. For one thing, it's under the GPL. iCircuit is closed source, and even if the author were willing to open it, there are supposedly legal issues with publishing GPL code to the App Store. And there are technical obstacles as well: last I checked, GCC still expects to be run as the main executable as part of a traditional Unix toolchain, not embedded as a library. If that has changed, it was only recently.

[1] [https://en.m.wikipedia.org/wiki/Clang#Status_history](https://en.m.wikipedia.org/wiki/Clang#Status_history)

<comment><USER6> Honestly, Clang does seem like it would be pretty easy to embed in comparison. They do mention their app is written in C#, and integrating C++ code with it on every platform may carry its own challenges. I know it's relatively easy to do with desktop platforms with Mono and Microsoft .NET just using normal PInvoke, but have no idea about iOS; code signing looks complicated on iOS, though I'm sure you know it inside and out. Either way... yeah, if you consider Clang, it really does appear like a waste of time to write your own C++ compiler, even for just a subset.

</comment></comment></comment></comment><comment><USER8> It takes hundreds, if not thousands person-years to write C++ compiler intentionally, damn next to impossible to write it accidentally as title implies.

Frank is a talented engineer, I used to follow his work on Calca very closely. But as others noted, this does not seem to be anywhere close to C++. The problem with parsing C++ starts with C. Say you see the code "T(t);" at the beginning of a function body. What is it? Declaration of variable t of type T? Call of function T on variable t? You cannot parse it properly without symbol table. No context free parser handles C properly, let alone C++. It gets progressively and exponentially worse from here.

<comment><USER9> > You cannot parse it properly without symbol table. No context free parser > handles C properly, let alone C++. It gets progressively and exponentially > worse from here.

C is actually pretty easy if you ignore all of the bad advice to use parser generators. I looked into the various YACC grammars for C I could find on the Internet, and all of them either had bugs or were incomplete. TCC[1] has a simple recursive-descent parser. With a recursive descent parser you also have the option of implementing the C pre-processor in the same step. Turns out I was able to implement a single-pass C parser and pre-processor as a bunch of Common Lisp read macros[2].

I have not looked into it, but the approach for C++ looks like it would be very different because template instantiation needs its own step.

[1] [https://bellard.org/tcc/](https://bellard.org/tcc/) [2] [https://github.com/vsedach/Vacietis/blob/master/compiler/rea...](https://github.com/vsedach/Vacietis/blob/master/compiler/reader.lisp)

</comment></comment><comment><USER10> This post reminded me of myself in 2012. Where did all that energy go?

</comment><comment><USER11> Does this seem insane to anyone else?

Emulating an Arduino, you get no benefit at all from re-implementing a compiler. The Instruction Set Architecture is rigorously defined. All you need to do is implement that, plus some peripherals. Write a compiler from ATmega machine code to your VM, if you like.

This C++-- will never be actually useful to anyone, and people developing for Arduino already have more than one anyway. It might be educational, but almost all the work has gone into the least useful and least educational parts of it.

The destructor is by far the single most essential feature of C++. After that, constructors, templates, and the standard library take 2nd, 3rd, and 4th place. If you think integer conversions are important, you have not learned much at all.

There are already several ATmega emulators done sanely. One more would not be bad, and could break new ground. Use virtualization primitives to make an x86 program translated from ATmega think it's a real chip, and emulate the Arduino 100x faster than the real one.

</comment><comment><USER12> Nice! I think doing this is a great learning experience. I think I understand how to write a basic compiler but I am completely stumped by writing an optimizer. How do you model that?

<comment><USER13> The llvm compiler has it's optimization routines here:

[https://github.com/llvm- mirror/llvm/tree/master/lib/Transfor...](https://github.com/llvm- mirror/llvm/tree/master/lib/Transforms)

You can play around with how it takes in llvm code to optimized llvm code by using the opt tool.

Here's a basic example.

      $ cat test.c
      #include <stdio.h>
      int main() {
        for (int i = 0; i < 3; i++) {
          printf("hello world");
        }
      }

      $ clang -c -S -emit-llvm test.c
      $ cat test.ll
      ** too long replacing with gist**
      https://gist.github.com/cwgreene/b6f33d40ad735a448ed15057d91fdbdc

      $ opt -S -print-before-all -O2 test.ll
      ** too long, replacing with gist**
      https://gist.github.com/cwgreene/99b3075dbfffae35a5745934ded217fb
      ** final result**
      @.str = private unnamed_addr constant [12 x i8] c"hello world\00", align 1

      ; Function Attrs: nounwind uwtable
      define i32 @main() #0 {
      entry:
        %call = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2
        %call.1 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2
        %call.2 = tail call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0)) #2
        ret i32 0
      }

The command `opt -S -print-before-all -O2` can be manually modified to specify exactly which compiler passes you want to see. You can run `opt --help` to see a list of all compiler passes. (you can figure out what code performs by looking at the * * * IR Dump Before `MODULE NAME` * * * and finding the associated logic in the Lib directory)

In the case of llvm, the idea for them is they break the code into things called 'basic blocks' which, along with using Single Static Assignment, are more easily analyzed, transformed, and simplified.

</comment></comment><comment><USER14> More like a "C++ [1] compiler".

[1] restrictions may apply

<comment><USER15> To be honest, that's most C++ compilers.

<comment><USER16> That's only technically true. The main C++ compilers in common use basically support, aim to support or have collectively agreed not to support parts of the C++ standard.

<comment><USER17> > have collectively agreed not to support parts of the C++ standard.

Those parts were ripped out of the standard. (The big one is export templates, where the expert compiler implementers when asked for feedback about how to implement it said "don't").

</comment></comment></comment></comment><comment><USER18> This looks like a cool app, the post says it's available on Android but I can't seem to find it on the Play Store. Anyone know what happened?

</comment><comment><USER19> Very cool</comment>


Memory is a Skill of the Past - <AUTHOR> https://medium.com/what-i-learned-today/f14453f0e755

<comment><USER2> I've been saying for years that "I've outsourced my memory to Gmail"...</comment>


The 1995 Hubble photo that changed astronomy - <AUTHOR> http://www.vox.com/2016/9/21/12989670/hubble-deep-field <comment><USER2> I've always adored this photograph. It manages to show just how big the universe is, and how incredibly small we are.</comment>


Report: US on Track for Record Coal Retirements in 2018, with More on the Way - <AUTHOR> https://www.greentechmedia.com/articles/read/report-on-track-for-record-coal-retirements-with-more-on-the-way <comment><USER2> And China provinces, in defiance of the central government has permitted new coal plants equal to the generating capacity of all the current US plants in total.</comment>


Apple to pay up to $500M to settle U.S. lawsuit over slow iPhones - <AUTHOR> https://finance.yahoo.com/news/apple-pay-500-million-settle-154848278.html <comment><USER2> I've always thought the coverage of this issue got things completely backwards.

Apple had an issue with old phones unexpectedly shutting down. They determined this happened because aged batteries were not capable of delivering peak current anymore and the CPU was "browning out" under heavy load.

They added a software feature in an iOS update that throttled the CPU in this condition to prevent a crash, at the expense of lower peak CPU performance.

From my perspective, this demonstrated real dedication to customer care and old device support from Apple. A phone that is moderately slower is still more valuable than one that randomly crashes. Intuitively, I'd expect that this would decrease sales of replacement iPhones, not increase them.

People latched onto the fact that Apple did this "secretly" - but Apple has never exposed this sort of implementation detail, and they've never wanted battery replacement to be part of the normal user experience for their devices. If Apple had shipped an iOS update that started telling people "Your battery is degraded, pay us to replace it to stop the crashes!" they obviously would've been raked over the coals also. There is no magic solution here.

So I never saw any indication that this was malicious on Apple's part.

<comment><USER3> It's shocking to me that even in a technical audience like HN, so many people don't understand the fairly simple story that you've outlined here. Look around this thread and see how many people spread the narrative like "Apple intentionally slowed phones down" or even "Apple tried to extend battery life at the cost of performance". Reiterating the summary:

\- Some iPhones in this generation began randomly shutting down as their batteries aged.

\- While looking into this, Apple determined it happened because certain aged batteries could no longer deliver enough current to sustain peak workloads (computers use more current when performing more intensive tasks). This is probably due to Apple underprovisioning the battery capacity in this generation, but that's not something they could fix in existing devices.

\- Apple added a mechanism to detect when these random shutdowns occurred _on a specific device_ due to insufficient power from the battery.

\- Once the random shutdown had been detected _on a specific device_ , that specific phone would instead throttle its CPU when the system was under heavy load to prevent the random shutdown from occurring.

In short, your phone was not affected unless your battery had already degraded and was experiencing power-related random shutdowns. The changes Apple made to deal with this were an unequivocally user-friendly change to work around a hardware shortcoming and keep peoples' phones working well for longer than they otherwise would have.

The mistakes Apple made were:

\- Designing the phone hardware with barely enough battery capacity, such that some moderately old phones might not be able to keep working properly when the batteries decayed.

\- Not being transparent with the hardware design flaw above, such as proactively replacing any customer whose device was being affected by this flaw while still under warranty.

\- Not going far enough with the software changes to initially add something like the battery health info they later added in response to this PR fiasco.

That's about it, I think?

<comment><USER4> > The mistakes Apple made were:

> \- Designing the phone hardware with barely enough battery capacity, such > that some moderately old phones might not be able to keep working properly > when the batteries decayed.

Indeed! This was (and still is) very much a design flaw. People like to say, all phones have this issue, but where are the examples? Also, look at the iPads which are just scaled up iPhones. They don't have this issue because they don't suffer the same design flaw.

Apple put a bandage on the issue and people throw praise at them.

<comment><USER5> This is like saying my car's gas tank is a design flaw because I want to drive farther than my tank will allow. Increasing battery capacity means increasing the volume of the battery, which results in a phone that isn't as sleek. This isn't a design flaw, this is a tradeoff between form factor and battery capacity - just like how car designers have to make a tradeoff when selecting a fuel tank capacity.

The examples are, literally, every device that uses a lithium ion battery. Take any phone or tablet, repeatedly charge and discharge the battery fully (better yet, do so in a hot climate) and eventually it will not put out sufficient voltage. This will either trigger CPU throttling, or your device will start crashing. The iPhone was the most widely publicized example, but this is a fundamental issue with battery chemistry that all battery powered devices are subject to.

<comment><USER4> Other phones don't have the issue because they didn't match a tiny battery with an over sized CPU. To use your analogy (which still isn't adequate at explaining the issue), this is like paring a top fuel dragster with a tiny fuel tank.

<comment><USER6> There is no correct answer here (no arguing matters of taste), but consumers seem to have voted for the sleek design.

<comment><USER7> We did not. I can't buy an iPhone 5 anymore that can still run iOS properly, so I had to get one of these huge but thin things

<comment><USER8> Apples newer phones are actually thicker. They stopped the "make it thinner each year" thing.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This entire mess could have been avoided if Apple was just upfront about what they were doing. There is nothing wrong with throttling the SoC so that the phone doesn't shut down when a degraded battery can't provide sustained peak voltage.

Apple has been, and still is, the industry leader in providing software updates for older devices. You can install the latest version of iOS on an iPhone 6S, a phone that was released in 2015. The fact that they chose to make this throttling change and keep it a secret was a major whiff on their part and destroyed a fair bit of goodwill they built up from their long support cycle.

<comment><USER10> 6S? I'm still rocking my iPhone SE!

<comment><USER11> The iPhone SE was released a year after the 6S.

</comment></comment></comment><comment><USER12> > The lawyers plan to seek up to $93 million, equal to 30% of $310 million, in > legal fees, plus up to $1.5 million for expenses.

Ah of course...

<comment><USER13> There needs to be a cap on lawyers fees. This is what is causing a lot of unnecessary litigation.

<comment><USER14> I'm pro-cap. (For different reasons.)

But (1) this case is a bad example of unnecessary litigation, and (2) there might be better ways than a cap to stop the litigation that you're calling "unnecessary."

Maybe what you want are no caps, but greater penalties for losing (either to the winning side or to taxpayers who are paying costs associated with large companies suing each other) -- just for one example. So higher risk, higher reward. Or maybe the courts reform to make it easier to dismiss cases. You could think of a million ways to do it without caps.

What you don't want are for good cases to not be brought on behalf of consumers because it's not worth the investment of time and money.

</comment></comment></comment><comment><USER15> I don't know why half of HN shows up to vehemently defend Apple whenever an article like this is posted. There was a time when mobile phone batteries were easily removable and replaceable. Apple got us to a place where it is now expected that instead of a $25 annual battery swap you should spend $700+ on a full replacement (and send the old one for "recycling" where it will likely end up in a landfill). It is also the company that aggressively sues repair shops and is fighting against right to repair bills.

<comment><USER16> Because half of us realize that engineering is a tradeoff (in this case with things like device size/thickness, battery capacity, durability, water resistance, appearance, etc.), and a company making an engineering decision you don't agree with doesn't make them evil.

While it might be hard to believe based on discussions on HN, it actually IS possible to debate the merits of a design without dividing into "attacking" vs. "defending" factions.

<comment><USER17> There's a difference between tradeoff and design flaw.

Here's an Apple apology that has since been removed:

[https://web.archive.org/web/20171229000007/https://www.apple...](https://web.archive.org/web/20171229000007/https://www.apple.com/iphone- battery-and-performance/)

</comment></comment></comment><comment><USER18> Question to those affected: When Apple had throttled the CPU due to old batteries, did they suspend throttling if the phone was connected to a charger?

<comment><USER11> When the phone is connected to a charger, is it drawing power from the wall? Or is it still drawing power from the battery?

<comment><USER19> My guess would be both - it draws wall power up to a point and once it hits the limit of the charger (usually 5W for the small iPhone cubes) the rest comes out of the battery. So light use might still trickle the battery, but turning on the camera probably drains the battery slightly.

</comment></comment></comment><comment><USER20> > It calls for Apple to pay consumers $25 per iPhone

I wonder if I owned one of these iPhone models but then re-sold it to a friend before it was slowed down, who gets the compensation? Presumably it'll be me, because Apple wouldn't have records of the second sale? Unless my friend logged in with an iCloud account in which case they might be able to tell?

<comment><USER21> If you sold it after the big slowdown, the slowdown presumably reduced the value of the phone and the price you got, so you deserve the money. If you sold it before, than it was your friend who experienced the drop in value.

</comment></comment><comment><USER22> Is there any precedent for a company to pay damages in a combination of money and goods. For example paying N dollars in legal fees, and issuing new phones to those affected within some filter criteria?

I ask because the only people who tend to benefit from from issues like this are the lawyers involved. Besides the damages being potentially punitive to the company responsible and _maybe_ preventing recurrence of the same issue, nothing really improves for the people personally affected by the problem being sued over.

<comment><USER23> There is, but the cost of the replacement would still have legal fees factored into it.

A free phone would be an absolutely enormous settlement, which would raise the legal fees commensurately.

</comment></comment><comment><USER24> It says 25-46$ can be paid to customers. How do I claim this money? I was affected.

<comment><USER25> You'll likely receive a notice in the mail in the next few months.

</comment></comment><comment><USER26> I wonder if from a cost perspective, they actually benefited from doing this. $500 million to make people buy newer iPhones. Wouldn't be surprised if they did the math here to justify the cost of a lawsuit.

<comment><USER27> They were slowing the phones to preserve battery life, giving the appearance of longer useful battery lifespan. Without that, people would have been upgrading phones (or replacing batteries) sooner anyway, which seems, financially, like a wash.

<comment><USER28> > They were slowing the phones to preserve battery life, giving the appearance > of longer useful battery lifespan.

Not quite accurate. They were preventing the phones from spontaneously shutting down by limiting CPU. Processor spikes can drain older, feebler batteries.

<comment><USER29> That is also not quite accurate.

The "unexpected shutdown", as Apple called it, was a result of a voltage drop in the battery. Voltage drop occurs when the max current capacity of a battery is exceeded, it has nothing to do with battery age.

Also, when you experience a voltage drop you have generally exceeded the c-rate of the battery and caused some damage which increases it's internal resistance and further reduces the max current capacity of the battery.

The iPhones experiencing "unexpected shutdown" weren't very old, generally a battery is spec'd with a c-rate that takes into account degradation over time. The fact that Apple shipped software to limit the max current draw of the device demonstrates that this wasn't expected behavior AND they were attempting to hide it rather than own up to a defect that might result in a recall.

</comment></comment></comment></comment><comment><USER30> This whole fiasco is part of what motivated me to move out of the Apple ecosystem. The other part was the abandonment of the headphone jack.

<comment><USER31> So you moved away from Apple because they implemented a software fix to prevent your phone from crashing when the hardware eventually degrades? Sounds like a kneejerk reaction based on misleading headlines.

<comment><USER30> They claimed for years that they didn't slow down older (1-2 year) iPhones. Then it turned out they did.

If the phone was only going to last a year without becoming unusable unless it was throttled, then that's terrible design. If they slowed down old iPhones to drive sales then that's fraudulent.

Either way I'd rather not be in an ecosystem that only has one manufacturer that conducts business that way.

</comment></comment></comment><comment><USER32> > Friday's settlement covers U.S. owners of the iPhone 6, 6 Plus, 6s, 6s Plus, > 7, 7Plus or SE that ran the iOS 10.2.1 or later operating system.

The settlement should cover all iPhones and iPads, not just the ones affected by CPU throttling. iOS 4 made anything older than iPhone 3GS nearly unusable. iOS 9 did the same for my iPad 2. I completely gave up on Apple mobile devices because of this.

<comment><USER33> I downgraded to 8 because of this (iPad 2).

Works great as a reading device still.

</comment></comment><comment><USER34> The battery was too a bit too small, and this was a design flaw.

But overall, I think third-party developers are more at fault. The biggest reason that old phones get slow is because third-party developers get new phones and don't worry as much about optimization for older models.

<comment><USER35> While the app optimization may have played a small part, I know for a fact that when I updated my iPhone 6 to IOS 11 it basically became unusable until a whole year later when they released IOS 12. I upgraded to the 8 during this time and really regretted it once the 6 was updated to fix all the issues. If I had been able to downgrade my software it wouldn't have been an issue, but Apple forced my hand to buy a new phone by breaking my old one with zero recourse available to me. I'm now very, very careful to not update software on my phone until I've vetted it carefully. Apple lost a lot of goodwill from me with that whole shitshow.

</comment></comment><comment><USER36> > quietly slowing down older iPhones as it launched new models, to induce > owners to buy replacement phones or batteries

This happened to me a long time ago and it made me a permanent Android user, not that I don't have issues with that ecosystem but I use an isolated google account that isn't tied to my real email and desktop activity.

But after 3 Android phones, each was still completely usable after 3 years and each was able to be replaced on my schedule instead of being required after an OS update "surprise" which is what happened with my only iPhone.

</comment><comment><USER37> Too little! The cost of replacing an iPhone dwarfs $25.

The reason they settled was _likely_ due to guilt, because proving innocence is cheaper than $500M. They should not be allowed to get away with a slap on the wrist

<comment><USER38> They made a decision to try to keep battery life closer to constant at the expense of performance, believing it was a better UX (slow phone > no phone).

I think this was totally defensible, and I also think that the people who claim it's some sort of malicious activity are unhinged. That said, it makes sense to avoid a lawsuit where you'll spend a fortune in legal fees, then roll the dice on the verdict possibly losing _billions_ instead, and definitely earning a lot of ongoing PR along the way. Better to just pay it once, get one more round of dumb "Apple slowed their phones because they're evil hurr durr" commentary out, and then get back to business.

<comment><USER39> The issue is that they kept this all a big secret. A decision which indisputably goes against their customers best interest and (perhaps coincidentally) enhances their bottom line.

I'm otherwise a _huge_ Apple fan, but people defending this completely baffles me. Especially since _Apple themselves_ have admitted it was a mistake to not inform the customer (a key fact that you conveniently left out of your rant).

It's amazing that defenders changed their response from "Apple would never slow their phones, you're unhinged!" to "Apple did it in your best interest! You don't understand technology!" without skipping a beat. Just. Stop.

Batteries degrade over time. It's an inherit limit of the technology. That's fine. Let _me_ decide what to do about it.

<comment><USER38> I understand that you claim that it enhanced their bottom line, but that makes no sense.

I (and many others) will _immediately replace_ a phone that routinely turns itself off under load. I will limp along, for quite a while, with a phone that is a bit slow. Every piece of evidence supports the notion that it was a well- intentioned decision that turned out to be not ideal.

And yet all you unhinged haters are _STILL COMPLAINING_ two years after Apple apologized for the decision, explained it, built features to expose the battery health, cut battery replacement costs down to zero-margin levels, and have now agreed to pay a settlement on top of that. To quote you: "Just. Stop."

<comment><USER39> I see you deleted your first _highly abusive_ comment and re-wrote it to be (only slightly) less so. I hope you see the irony in doing that while at the same time calling out other people for being "unhinged".

Remember to breathe.</comment></comment></comment></comment></comment>


Covid-19 antibody study of MLB employees finds 0.7% have had the virus - <AUTHOR> https://theathletic.com/1763139/2020/05/10/covid-19-antibody-study-of-mlb-employees-finds-that-7-percent-have-had-the-virus/ <comment><USER2> I'm curious how you decide on MLB employees, and do they even have access to all of them to test them?

<comment><AUTHOR> The MLB agreed to it. The point was to get a large random sample of people across the country...it doesn't have anything to do with baseball otherwise.

My read is that this is more a bad thing than a good thing. I think the assumption was that asymptomatic spread was more prevalent across country than we thought, but this would disprove that theory.

Also they noted that these people are on average a higher socioeconomic status than average American, and takeaway is that those who have been able to WFH probably have a much lower prevalence of antibodies than essential workers, even in hard hit areas like New York. Something to consider.</comment></comment>


Do We Need Hundreds of Classifiers to Solve Real World Classification Problems? [pdf] - <AUTHOR> http://jmlr.csail.mit.edu/papers/volume15/delgado14a/delgado14a.pdf <comment><USER2> This is consistent with our experience running hundreds of Kaggle competitions: for most classification problems, some variation on ensembled decision trees (random forests, gradient boosted machines, etc.) performs the best. This is typically in conjunction with clever data processing, feature selection, and internal validation.

One key exception is where the data is richly and hierarchically structured. Text, speech, and visual data falls under this category. In many cases here, variations of neural networks (deep neural nets/CNN's/RNN's/etc.) provide very dramatic improvements.

This study does have a couple limitations. The datasets used are very small & form a very biased selection of real-world applications of machine learning. It doesn't consider ensembles of different model types (which I'd expect to provide a consistent but marginal improvement over the results here).

</comment><comment><USER3> Here's some commentary on the article: [http://www.win- vector.com/blog/2014/12/a-comment-on-preparin...](http://www.win- vector.com/blog/2014/12/a-comment-on-preparing-data-for-classifiers/)

<comment><USER4> Great commentary. Encoding high-level categorical variables as unordered integers, or even frequency count maps, is pretty common practice, but really only valid (as the author says) in tree based methods. Given deep enough trees (or enough iterations in the boosting scenario), it is my anecdotal experience that trees are able to parse out relevant values. The problem with indicator variables in general is the enormous potential loss in computational time and increase in complexity. My models have hundreds of vehicle/car types, U.S. state, etc., and so this type of coding helps quite a bit in performance without sacrificing (and sometimes improving due to curse-of-dimensionality) model performance (IMHO YMMV)

</comment></comment><comment><USER5> I think the lesson here has been evident for some time: There is no one best classifier, only classifiers that perform better on particular problems. Random Forests work well because as ensemble methods they can be optimized to explore many different aspects of a data set, but they don't perform significantly better than SVMs or most of the other methods.

In practice the solution is often to _use a combination of multiple methods_. Trees, support vector machines, multilayer perceptrons, gaussian kernels, bagging and boosting. In most applications you don't have choose. Combining the results of all of them together using a weighted average will out perform any of them individually. And in most cases, the whole is greater than the sum of its parts. Each classifier fits a given data set differently and provides its own perspective on the prediction problem. The goal isn't to choose the best one, but to find an ensemble of methods that best explain the patterns and relationships in the data.

There are many cases where resource and speed limitations dictate that only one classifier can be tuned and implemented, and in those situations it's good to know which one is 'best'. But when it's possible to build an ensemble out of many different methods it's almost always the best way to go.

<comment><USER6> Couldn't agree with this comment more. This hit home for me when I read Grimmer and King's "General Purpose Computer-Assisted Clustering and Conceptualization" ([http://gking.harvard.edu/files/gking/files/201018067_online....](http://gking.harvard.edu/files/gking/files/201018067_online.pdf)), which looked at every text clustering/classification alogithm they could find at the time (as summarized [http://gking.harvard.edu/files/gking/files/discov- supp.pdf](http://gking.harvard.edu/files/gking/files/discov-supp.pdf)). They basically end up clustering in the space of clustering algorithms...</comment></comment>


I made Smartify - Smart Album Queues - <AUTHOR> https://repl.it/talk/challenge/Smartify-A-Spotify-Powered-thematic-album-queue/16467 <comment><AUTHOR> Feel free to leave suggestions - I think many people would find this service useful</comment>


A history of Internet security - <AUTHOR> http://www.washingtonpost.com/graphics/national/security-of-the-internet/history/

<comment><USER2> This is... not great (for instance: it culminates in "car hacking").

How could you make it better? I'd suggest adding:

* This is inside baseball, but Lopatic's NCSA httpd exploit in '95, which inspired 8lgm's Sendmail 8.6.12 exploit, which in turn kicked off the modern era of software security.

* The Mitnick/Shimomura Saga in summer '95, which surfaced TCP sequencing and provoked the eventual adoption of SSH.

* The first major distributed denial of service attack (probably around '99).

* The Summer Of Worms (Slammer/Blaster/Welchia in '03), which pivoted Microsoft from security-oblivious desktop software vendor to the middle of the enterprise security industry.

* The release of Metasploit at Black Hat in '03.

* Roughly the same time period: Tor.

* The AT&T "Room 101" NSA monitoring fiasco.

* Something like TippingPoint's Zero Day Initiative, or some other appropriate example of an early vulnerability market, in '06-'07.

* You think, maybe, just maybe, Snowden is meaningful to Internet security?

<comment><USER3> The famous 2002 Bill Gates "Trustworthy computing" memo.

[http://windowsitpro.com/security/complete-text-bill-gates- tr...](http://windowsitpro.com/security/complete-text-bill-gates-trustworthy- computing-memo)

</comment></comment><comment><USER4> I just finished reading The Cuckoo's Egg today it's about security in the days of Arpanet et al (1986).

It was a little goofy and it has a lot of human interest stuff in it to make it more of a story, but I liked it.

I can't remember life before everyone was on dialup Internet, so it was very informative to me.

pg shows up as a student in a tiny aside at the very end!

Story summarized here:

[http://en.m.wikipedia.org/wiki/The_Cuckoo%27s_Egg](http://en.m.wikipedia.org/wiki/The_Cuckoo%27s_Egg)

ACM article covering the story's events (May 1988):

[http://dl.acm.org/citation.cfm?id=42412&dl=ACM&coll=DL&CFID=...](http://dl.acm.org/citation.cfm?id=42412&dl=ACM&coll=DL&CFID=679765795&CFTOKEN=71360838)

</comment><comment><USER5> Would make for a very interesting book. (If there isn't one available already)

</comment><comment><AUTHOR> great shot of rtm leaving court in '88 cf: Morris Worm</comment>


Calacanis to Challenge TechCrunch - <AUTHOR> http://newsgrange.com/?p=2139 <comment><USER2> One of the things that popped out at me in this announcement is that he's going to be launching this on email, rather than a blog. I know email seems like it's so antiquated and passé, but after listening to Mixergy's interviews with IdealBite and VitalJuice, I'm not so sure. The CPMs for email newsletters seem to be 20-100x what you can get for a blog in the same space, because the customers are so much more engaged. This might not work as well in a tech market, where the audience presumably uses RSS (or maybe not, as Jason already has a sizable list). That said, the reality seems to be that normal people do not use RSS, so you're probably better off starting an email newsletter than a blog.

Some links:

[http://jasonlbaptiste.com/commentary/email-newsletters- busin...](http://jasonlbaptiste.com/commentary/email-newsletters-business/)

[http://jasonlbaptiste.com/startups/email-newsletters-are- sti...](http://jasonlbaptiste.com/startups/email-newsletters-are-still-a- serious-business/)

<http://mixergy.com/jen-boulden-ideal-bite-interview/>

<http://mixergy.com/amanda-freeman-vital-juice-interview/>

<comment><USER3> actually I think it's a very bad idea for tech news.

email is slow, any news you cover is old news, that will get scooped by the blogs way before you run it.

A week's time for his editors, means that any news they cover will be severely out of date.

I run <http://mydailygeek.com> and my run time is only 1 day...and I find myself constantly having to pick different stories throughout the day to run with, since they get bludgeoned to death by the time the emails get sent out.

Now for me it's fine, since my focus isn't startups or the bleeding edge of tech, so the tech I do cover is just interesting stuff that my readers may have missed elsewhere...but for a "Techcrunch competitor", it's suicide.

Any scoop you get will get leaked to Techcrunch before you can run the story.

<comment><USER4> This is not about news. It is about analytical, in-depth content.

<comment><USER3> would you read a 5000 word story on Google Instant right now?

I wouldn't, since that topic has been beaten to death already.

<comment><USER4> Analytical content covers different topics. Not product launches, deals and executives moves. It is about opportunities, trends and introductions to the new areas. E.g. should the next wave of startups start from China market? How? What is the potential of sell-to-government market? What is a 5-year outlook on TV business?

Here is an example of content (my own writing) that is an analytical alternative to tech blogs: <http://bit.ly/PublicGood>

<comment><USER3> stuff like that is fine if you write a big essay once a month...but good luck making that a daily publication.

there are only so many topics you can cover, before you tun out.

</comment></comment></comment></comment></comment></comment><comment><USER5> Calacanis knows a race to the bottom when he sees it. Hell, he practically _invented_ the race to the bottom with Mahalo.com.

<comment><USER6> Oh please.... we're going great work with millions invested in content and amazing results due to it.

type "how to play guitar" into google or youtube, and watch our videos.

... or check out our halo reach walkthrough <http://www.mahalo.com/halo-reach- walkthrough>

we're making a lot of good content that is helping our 17m unique users (11m on mahalo.com and 6m on YouTube!) every month. The massive traffic to these pages is creating nice revenue that we are reinvesting 100% of into great content.

So, give it a look.... i think you'll find it solid.

<comment><USER7> "Once a year my dog shits diamonds." CNR.

</comment></comment></comment><comment><USER8> Jason is hitting a low point. If he wants a cut of the Aol deal, would he then give Arrington a portion of the launch conf (because just like disrupt, it's a derivative of tc50)? He's a hypocrite and drunk for any attention he can get.

Plus, isn't sequoia peeved about him starting to invest + run a separate video network + new conference + playing poker? I hear a new product is in the pipe but their innovation has slowed since he got distracted.

<comment><USER6> 1\. Well, Mike kicked me out of the TechCrunch50 conference. He nuked it--not me.

2\. Sequoia is not peeved, they are more excited then ever with Mahalo and the amazing performance right now. We're really crushing it on all fronts including revenue, hiring, content creation and, yes, a really killer version 4.0 that will be out next year. It's not easy to build a top 200 site in under three years... in another three years we will be in the top 50!

3\. I spend an hour or two a week on ThisWeekIN.com hosting my show, This Week in Startups. That show has resulted in about five of the last seven developers we hired. It is the ULTIMATE recruiting machine for Mahalo.

4\. You might notice I wear a Mahalo logo playing poker on TV along with Full Tilt (which I need to wear since I'm a Full Tilt Red Pro... I'm sponsored, yes). I play maybe five hours a week.

5\. 90% of my 100 "work" week is Mahalo. Literally.... I love what I do and I'm 1,000% dedicated to Mahalo.

I'm not distracted... far from it. I'm super focused.

<comment><USER8> Thanks for the response. I see that you wrote this at around 4:25pm. If you are focused, why are you chatting on HN? Especially when you've publicly commented that you dislike the HN community.

<comment><USER6> I'm in the UK. It's midnight. I'm still working.

<comment><USER8> O - okay that's pretty rad.

</comment></comment></comment></comment></comment><comment><USER9> Email newsletter? Is there some legal non-compete that Calcanis is under after selling Weblogs, Inc to AOL that prevents him from running a blog as a business?

<comment><USER10> I don't know if you've missed all the stories around here, but e-mail newsletters are resurging in popularity. My own experiments have proven there's certainly a strong audience for them, even in the progressive tech scene.

</comment></comment><comment><USER11> At first glance, this isn't revolutionary or even newsworthy. E-mail newsletters have been around forever - even those that are authored by a series of writers. I find this interesting because I've heard Jason say things such as "I like to find a new market and blaze my own trail". This certainly isn't trailblazing.

It sounds like he's thinking that he can build off of the success of his personal newsletter. However, the difference will be in the audience. People subscribe and connect with his personal newsletter because they want to hear what he has to say. Also, there is something sort of neat about getting an e-mail from an author in your inbox rather then passivley clicking on a bookmakred blog.

However, this doesn't sound like it will be the individual thoughts of someone like Jason. It will be a series of articles by a number of people - likely low paid people. Some of those people may be interesting and insightful, but unless they have an existing audience coming into the newsletter, the effort won't get large enough for very many advertisers to care.

This newsletter effort will work well in combination with the This Week In network. Hosts will be able to say things such as, "subscribe to our newsletter" or "get the inside scoop via e-mail".

Beyond a complimentary add-on that builds on a tiny bit of personal success, I don't see this effort being a fraction of what TechCrunch is. I think Jason is using this sensational comparison (and the whole Calacanis vs. Arrington thing) as the same word-of-mouth marketing he's well known for.

</comment><comment><USER12> "Jason's list" (his current email list) has been, on average, excellent. It consists of long writings trying to convey what he thinks in a reasoned (if occasionally emotional) way. It is plished occasionally instead of around the clock, and so avoids most knee-jerk topics. He often responds to well-thought- out user replys.

This sounds like him hiring some more people to have more articles and points of view. If it manages to continue to be thorough and nuanced, it'll be a great resource.

</comment><comment><USER13> "email newsletter?"

I love steam powered technology.

sarcasm aside, this is a good idea on the whole. just not over email. my inbox is fifth date material. I'm gonna have to create a separate email address that forwards to my rss reader, or something..

<comment><USER14> It's funny, but email just wants to be a part of my life. Due to the push notification on my phone, it's almost a feed to me.

I mentioned this in the comments on AVC some time ago: I'd like to see an email service where I can modify the submittal (ex: for NAME@email, I could submit email@example.com) where the X automatically created a sub-inbox X when replies to it came in.

<comment><USER15> Gmail has this feature with + tagging.

[http://labnol.blogspot.com/2007/08/gmail-plus-smart-trick- to...](http://labnol.blogspot.com/2007/08/gmail-plus-smart-trick-to-find- block.html)

</comment></comment></comment><comment><USER16> It seems like that's all I'm reading today, but this is yet another article that I started reading with one idea, and finished having completely rethought it.

My instinct was to make a snide remark, or to say something like "Good luck", not believing there are serious inroads to be made there (at least, not by Calacanis) -- but he speaks of a 'race to the bottom', and in writing deeper, more detailed posts than those made in an effort to be the first to break the news.

I've always felt that was an error on the part of TechCrunch, in that they are so eager to release that sometimes facts just get in the way of a story breaking. Or at least, aren't checked to the degree they ought.

I personally, welcome something like this in the market.

My initial hesitation would be that I wouldn't expect to hit this site every day, but it appears Calacanis has already thought about that as well, intending (at least to start) an email distribution, which I think fits the model nicely.

Perhaps I'll learn to start keeping my prejudices in check.

<comment><USER17> Subscribe to his email list - you'll be pleasantly surprised. 1-2 per month right now and every one is deep and thoughtful.

<comment><USER6> Thanks pal. The plan is to convert my www.jasonnation.com newsletter to the LAUNCH newsletter at some point (or fork it, have to discuss with my list members).

Basically, I'm trying to do long form, in-depth profiles of startup companies. Instead of begging TechCrunch to get a profile, only to be mocked in their edtiorial, we will actually get to the know the business model, founders and dig deep into their vision.

It won't be a fluff piece, but it won't be a snarky/venomous TechCrunch/Gawker article.

all the best, jason

(in London for the first Open Angel Forum here!!)

</comment></comment></comment><comment><USER18> The problem with this is the invisible barrier to entry. Calacanis has a good point - but what does it take for TechCrunch to rebut? Simply ask three or four editors to spend more time putting out Atlantic/New Yorker-esque articles. Instantly.

That is ridiculously easy to do.

</comment><comment><USER19> How long will it take for...

"tech blogging is a race to the bottom" and we're "going for something that doesn't exist in the market"

...to turn into...

"tech blogging is a race to the bottom, and we intend to win that race"

The problem is that pot-stirring, half-wrong stories, and superficial snap judgments bring the eyeballs, inlinks, discussions, and ad revenue.

A new online journalism needs specific ideas to break or reverse that entropic cycle -- at least locally (even if it persists globally) -- rather than just high-minded goals.

<comment><USER20> Depends if you're going for quantity over quality of eyeballs. If Calcanis' newsletter provides engaging content that tech professionals with purchasing power consider a must-read then it's going to achieve much higher CPMs than tabloid-style blogging, which can make up for serving fewer impressions and being unknown to Google and the consumer audience.

The advantage of running it as an opt-in email list is that you find out much more about who your readers are.

</comment></comment><comment><USER10> I like the e-mail newsletter idea, but on the _type_ of content that's planned, it just sounds like the sort of work ReadWriteWeb and GigaOm are already doing.

</comment><comment><USER21> One of the best tech blogs was <http://www.startup-review.com>. Unfortunately it shut down. I prefer thought-through reviews as opposed to quick post about another investment raised as if that was a milestone.

</comment><comment><USER22> He's going back to Silicon Alley roots. Plus the ThisWeekIn startup, he's got a pretty good read on the community than TechCrunch.</comment>


TypeScript 2.1 RC: Better Inference, Async Functions, and More - <AUTHOR> https://blogs.msdn.microsoft.com/typescript/2016/11/08/typescript-2-1-rc-better-inference-async-functions-and-more <comment><USER2> This is a great release. I know a lot of people have been waiting for async/await downlevel support (transpiling async/await to ES3/ES5 for use in contemporary and older browsers), including some of my own projects.

Better type inferencing of course makes writing code better for everyone.

Also, somewhat buried in this announcement is showing off support for more modular lib.d.ts support, which is also something that has been patiently needed. (Up to now the basic types and expectations of the target ES version you were transpiling to were in big monolithic definition files making it harder to "pick and choose" as needed for your project: the most common case being one shown here that most browsers support native promises from ES2015 and/or are easily polyfilled, but you still want to mostly stick everything else to ES5 output code for the time being.)

<comment><USER3> I was just trying to get a async/await working in react-native and I kept running up against various errors. Maybe I should wait until Typescript 2.1 is released and just use that.

<comment><AUTHOR> Hey, I'm the PM on the TypeScript team and I'm curious to hear about the issues you ran into. async/await already works in TS 2.0 when targeting ES6, so you should have had a good experience in that respect. Feel free to DM me on Twitter at @drosenwasser.

<comment><USER3> Oh I was actually using the default react-native config which I assume is ES6. So, I was just saying that I was considering switching to TypeScript instead.

It surprised me that async didn't seem to work by default in react-native because their documentation stated support for it very plainly. Maybe it's because I was on Windows or because I am using Node v4.

Thanks for the offer but I will probably continue to slog through this on my own. I'm really just getting started with React even though I've been reading about it forever. I don't know TypeScript very well either but maybe I will start learning!

</comment></comment></comment></comment><comment><USER4> I'm definitely behind the times with regard to what's happening in the Javascript world, but for me Typescript was nothing short of a revelation! It makes it just so much more easy and pleasant to code anything with any reasonable amount of complexity.

Sincerely, Microsoft, bravo!

</comment><comment><USER5> Does the new inference allow incremental construction of objects?

        interface Color {
            isRed: boolean,
            name: string
        }

        function example(): Color {
            let x = {};
            x.isRed = false;
            x.name = "Cerulean";
            return x;
        }

Obviously you'd just build the object at once for something this simple, but for larger/more complex objects it becomes trickier.</comment>


Scheme 9 interpreter ported to Plan 9 (again) - nils-m-holm http://t3x.org/s9fes <comment><USER2> Nice to see Plan 9 making a bit of a comeback these days (at least in HN). I would certainly be glad if some of the ideas behind it became more popular today.

<comment><USER3> Which ones? I would like to know more about Plan 9.

<comment><USER4> Plan 9 makes extensive use of pure-text IPC, more commonly known as file writes and reads. This is facilitated by the fact that each process sees its own filesystem hierarchy.

For instance, GUI programs are built by reading from files like /dev/cons and /dev/mouse and writing to files under /dev/draw. Now it seems that this will end up in a mess when you try to run multiple GUI programs, but that is not the case - a WM can provide virtualized versions of these files, and each program still feels that it is using the entire screen and does not need to know about the WM at all. My description is likely not very accurate because I haven't really tried it, but you can find the whole story in the related man pages: [http://man.cat-v.org/plan_9/3/cons](http://man.cat-v.org/plan_9/3/cons) [http://man.cat-v.org/plan_9/3/mouse](http://man.cat-v.org/plan_9/3/mouse) [http://man.cat-v.org/plan_9/3/draw](http://man.cat-v.org/plan_9/3/draw).

Another example is the authentication facility of plan 9. Instead of being a dynamically-linked library, it is a separate process that can be reached via IPC. Russ Cox et al have a talk on this ([https://swtch.com/~rsc/talks/nauth.pdf](https://swtch.com/~rsc/talks/nauth.pdf)).

This is also why Plan 9 has no dynamic linking, since those things are done with IPC instead.

<comment><USER5> I am not sure I understand why that's desirable. Why is reading plain text out of /dev/mouse and writing plain text to /dev/draw an improvement over how Linux or OS X or Windows does it?

EDIT: I get that Plan 9 is "more UNIX than UNIX" and that this is an extension of how UNIX behaved. I view that as a philosophical, rather than practical, point though.

<comment><USER6> Under Windows, to run a program on one host and display and interact with it on another requires a special "remote desktop" client and special hooks into the graphics driver and kernel.

Under Plan 9, the tool you use to redirect output from one machine to another is just "mount": mount /dev/mouse and /dev/draw from the other machine onto this one, run the command you want, and they appear on the remote machine - <AUTHOR> changes required to the kernel or graphics drivers or any other part of the system.

Of course, remote display is just one application - since Plan 9 exposes just about everything as a filesystem, you can mount a remote machine's TCP stack or editor session or authentication keys or even actual ordinary file storage, transparently and easily.

<comment><USER5> Okay,but what does this buy you other than some leaky abstractions? A local file is not the same thing as a remote file, a local mouse is not the same thing as a remote mouse, and a local file is definitely not the same thing as a remote mouse. All that code in Windows that Plan 9 'doesn't need' contains a lot of logic for dealing with remote displays and input devices that is probably going to have to reside in your application if the OS isn't providing it. Simplicity is only a virtue if it's real; false simplicity is just kicking the can down the road for the next poor bastard to deal with.

<comment> vezzy-fnord Please actually try researching the concepts and papers about Plan 9 and Inferno before making such sophomoric statements as "A local file is not the same thing as a remote file." As if no one has thought about this before.

<comment><USER7> As much as I love the way p9 modeled the world, I agree a tiny little bit about cwyers, in that the notion of file is stretched a little too thin. I do love the consistency but these aren't files anymore but namespaced objects, unless a file is a pipe `or` a register `or` a document `or` container of files.

<comment> vezzy-fnord Which is the point. Files may be synthetic references to resources and not actual on-disk files, it's a general abstraction.

<comment><USER7> It's just a vocabulary thing, `file` is not that generic.

<comment><USER8> A file is an object that supports the methods open(), read(), write(), and a few others. That's about a generic as you can get.

<comment><USER7> If I write <data> /dev/net/tcp can I read and get <data> back ?

Can I append <data> /dev/mouse ?

Sharing {open,read,write,close} interface, but with exception and different semantics leads to a weird flavour of genericity.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I was most interested in the toolkit for dynamic languages providing garbage collection, bignums, etc.: [http://t3x.org/s9fes/s9core.pdf](http://t3x.org/s9fes/s9core.pdf)

</comment><comment><USER10> Gambit Scheme compiles to portable C, so I see no reason it couldn't be compiled on Plan 9 (I haven't tried, though).

</comment><comment><USER11> The good think of portable ANSI C, compile anywhere there is a C compiler. Very nice.

<comment><USER12> The Plan 9 C compiler isn't even 100% ANSI conformant. But quite close.

<comment><USER11> yes, yes, reasonably close.</comment></comment></comment>


Win A Trip To Vegas To Meet Tony Hsieh Sponsored By Startup Weekend - <AUTHOR> http://startupweekend.org/2011/08/15/win-a-trip-to-vegas-to-meet-tony-hsieh-sponsored-by-startup-weekend/

<comment><USER2> Nice work! More to come!!!</comment>


How Busy People Find Time to Think Deeply - <AUTHOR> http://www.linkedin.com/today/post/article/20130312012437-659753-how-busy-people-find-time-to-think-deeply?_mSplash=1 <comment><USER2> I can confirm that "Extra long showers" and "Writing" work. For me.

<comment><USER3> And for me too ;-)</comment></comment>


An Early Stage Entrepreneur's Guide to New York City - <AUTHOR> http://www.darrenherman.com/2007/03/05/an-early-stage-entrepreneurs-guide-to-new-york-city/ <comment><USER2> A nice overview of New York for entrepreneurs

</comment><comment><USER3> Excellent. Thanks for posting this.</comment>


Apple Watch - <AUTHOR> https://www.apple.com/watch/

<comment><AUTHOR> No mention on battery life and water resistance... Let's see what the answers are when it comes out.

<comment><USER2> Pretty much those are my two biggest questions. Given that water resistance isn't mentioned, I'd assume it's _not_ water resistant, just like most other smart watches (besides Pebble) aren't.

At the price, and without water resistance, and given that it's guaranteed to have worse battery life than my Pebble, I think this device is a non-starter for me.

<comment><USER3> Didn't they mention a water resistant speaker when talking about the internals?

<comment><USER2> Possibly. I've seen some speculation based on a few things they've said and based on a picture, but water resistance wasn't mentioned on Apple's site.

</comment></comment></comment></comment><comment><USER4> > I'll be very disappointed if this is just a device that shows a fake analog > watch face, displays notifications from a tethered iPhone, and tracks your > footsteps and heart rate.

John Gruber ([http://daringfireball.net/2014/09/prelude](http://daringfireball.net/2014/09/prelude))

Sadly it seems to be just that.

</comment><comment><USER5> I made a comment in the other thread, but I searched through the entire website and couldn't find how it connects to the iPhone and what the range is on the connection. A lot of people are talking about using it for workout stuff, but if you also have to carry your iPhone around with you, isn't that a non-starter?

</comment><comment><USER6> I can't see how this is one of those 'category defining products'. Health tracking, wireless payments, and the like are all okay, but don't inspire me to buy it. It's also ugly as hell, the 'Edition' version is absolutely garish.

</comment><comment><USER7> Tin foil hat time:

with the disappointing battery life of the moto 360 revealed last week, apple quickly decided to delay the launch of the watch until 'early 2015' to improve the battery life.

</comment><comment><USER8> Any official sites for WatchKit? I can't seem to find any.

</comment><comment><USER9> This is just as underwhelming to me as all the Android ones that were announced earlier.

My wish list:

1\. Its own cellular connection (not tethered to a smartphone)

2\. Tactile (not touch) controls for music

3\. Waterproof (even for swimming)

Also to make it parent/child friendly:

4\. GPS for remote tracking kids

5\. Lock to the wrist option to prevent it from being yanked off a kid's wrist by a predator

6\. Unrefusable calls from parents

Oh well, I guess I'll keep waiting.

First to market to offer all that gets my money! :)

</comment><comment><USER10> No mention of it's ability to be read in sunlight. Anyone have information here?

</comment><comment><USER11> Was there any mention of how it connects? LTE? WiFi? Did I miss that part?

</comment><comment><USER12> Price for me is a deal breaker, can't justify it.

</comment><comment><USER13> Battery life?</comment>