skysight-inc/HackerNews huggingface dataset:
There are a few devices where there are good arguments for connectivity. An HVAC thermostat, for one, benefits as it's the most expensive consumer of electricity, so a smarter device (or access to external resources) makes sense. Additionally, the ability to control it remotely has a great benefit for "oh hey, I forgot to turn off the A/C before we left on our month-long trip." It could pay for itself right there.

I really think IoT ought to be much more focused on a few high-value devices. Mostly, I think this is important because they have high value for end users but, as such, are also potentially targets for attacks, and by focusing on fewer devices they can hopefully be made much more secure.
Turn your PC into a sound-making machine
At this point, I doubt it will matter much if they do. Many other companies are working on it now. Eventually, one will get it right, and the auto companies will copy/follow.
All valid points, but I think the products now are laying groundwork for the future. I really believe that at some point, the home will have more safety features and convenience because of IoT. I'm actually surprised that Nest failed to deliver more products. There will be some company that offers a wide range of products and has a huge marketing budget for explaining the use to people.
I can see this in a commercial setting, but any family/household that wants to drop $600+ dollars on a folding appliance, may be better served with a $30+ / week maid, who also does the folding.

How does one justify $600+ on saving 16 min a day? How does one sell this to any consumer with a >$100,000 income to a household?
Why isn't it? I'm sorry, I'm genuinely curious.
That's because there's not much language to talk about. Which is sort of the point--and 95% of the elegance.
... and create unique soundscapes.
> Getting a flat from an agent is very hard if you're not friends with them.

I find that rather odd, any ideas why it is that way? Is there really so few flats on the market? I would think that estate agents would be happy to help anyone find a home...

I have tried to email a number of estate agents and all I got was automated responses. Some in French, despite the fact that I wrote the email in English. They all mostly said the same thing: "Our website has many listings, please look there".

> Bizarrely it can be just as cheap getting an air b&b for a few months at a time.

While that may work, I would much rather stay in the same place.

> Also it is absolutely worth looking in to a place across the border in France, it's cheaper, not that far away, and public transport is pretty good.

Hrm, France is looking very nice too. I guess it all depends on where I find a place first.

> I've been here for 6 months or so, but leaving soon... its really not the city for me.

May I ask why it's not the city for you?
It's hard for me to see that CPUs historically and substantially pander specifically to C. IMO adding hardware crap to fix software crap should be strenuously resisted.

Early on there were efforts to build custom Lisp machines, etc. which were abandoned when CPUs became good enough and general purpose enough. Using a stack processor as a stack language target seems natural until you see all the inefficient stack gymnastics that go on at the lowest level.
I still don't understand the complaint against checked exceptions.

I've concluded that unchecked exceptions (above the runtime) and exception chaining are painful artifacts necessitated by using overwrought frameworks like Spring, J2EE, JPA, etc.

Most useful anti-checked exception TL;DR I've gotten is "What do you do when your code can't act (recover) on a checked exception, like some library fails on I/O?"

My answer remains "I handle it." After demo'ing my code, buddies conceded that my strategy works because I'm coding "close to the metal". In that case, it was an ETL/workflow engine (framework) that used hand-coded state machines (eg get next, data error, retry, restart).

Looking forward, I'm keen to learn Erlang and Elixir. I have the impression they would provide for free all the error handling and recovery I painstakingly hand-coded.
The article isn't really good but the headline is spot on: "Smart technology is a solution looking for a problem"

http://www.dezeen.com/2016/04/27/smart-technology-driverless...
Yes, that's definitely an issue in general. But in this case, my shell has some unique properties, which make it both necessary and possible to do a good job of software design:

1. Shell is a fixed problem domain. It's not changing, so you can spend time getting the components and interactions right, and know that the rug won't be pulled out from under you. (Though I am planning significant enhancements; it's not a "nostalgia" project).

2. But it is a complex problem domain. What I'm writing is a superset of full fledged POSIX shell, i.e. not a toy. You really do need to control complexity... or you'll end up with something like bash (at least 175 K LOC)

3. It's "systems code". I find that systems code needs to be more highly reliable than application code (or at least the market tolerates less sloppy systems code than app code). So good software architecture matters.

4. It's not a commercial product. I am doing all the design by myself, for better or worse, and the only deadlines are my own.

I think my main thing now is designing with ZERO mutable globals. I've probably been doing this for about 5 years now. Once you get in the habit, and get a few idioms down, I find it makes things go a lot faster. Things break less.

My main issue now is C++ headers and compile times. I started the current codebase with C++, but then switched over to Python to figure out the design. There were a lot of nontrivial issues to solve. Admittedly, implementing everything twice is pretty extreme! But maybe not -- I can write Python so fast that it saves time overall.

But that issue is entirely orthogonal to FP vs OOP. As far as that is concerned, Python and C++ are identical -- they have an imperative history, with significant OOP additions, and support a functional-in-the-small style (lambdas, list comprehensions, etc.). functional-in-the-large is already covered by classes, as mentioned.
My observation is that consumer grade laptops have upgradable BIOS to handle bugs, but there's only a brief lifecycle in which the manufacturer performs updates of about a year to coincide with a typical [US] manufacturer's warranty. My suspicion is that providing the upgrade service is cheaper than the combination of resulting warranty claims and potential lawsuits which could result from not fixing the BIOS automatically.

I don't deny the possibility that adding TLS to the update mechanisms might make the world better. On the other hand, I haven't seen a business case that shows a clear benefit for company's like ASUS to change all the moving parts in their logistics chain. Admittedly, I haven't looked very hard.
The notion of internal competition is really tricky, since you're also competing externally. If you believe in the classic explanations of the theory of the firm, "companies" exist so they can be effectively communist on the inside in an attempt to lower transaction costs. If you have teams competing against each other directly for resources, time-to-market, etc. you don't really have a reason to be a single company anymore.

OTOH, a little bit of internal competition to penalize complacency, if there's not too much wasting of resources, is probably a good thing. It's been fairly common IME for different teams to be working on very related concepts (eg, HPC platforms for different tasks), with a sort of implicit understanding that the team that does well will be able to do the logical extension of the project, and the team that doesn't will work on something else.
I'm very happy with my Nest thermostat. I have no desire for IoT smoke alarm but I don't think I'd like to go back to an old style thermostat.
What about video calls, do those make the cut?
Go's approach requires specific code to handle errors in each and every function, and it's very easy to forget or introduce a bug in the propagation of the errors (or to ignore one altogether).

So I wouldn't use that as proof that the world has settled on global "stop the world" exceptions vs checked exceptions.

Rust is another one that requires specific Result<DataType, ErrorType> to be passed back to a calling function, that either contains the return value or an error. But unlike Go, it's very difficult to ignore the error entirely, but it does require code to handle and propagate errors up the stack.

Although both Go and Rust also have the concept of a panic, that does stop the world (or at least the current thread, unless the panic is captured but that's another story...).
big E economists are entirely aware of the pitfalls and the limitations of their field, they know it's far from exact, and they know it much better than people who don't study economics. Those who are ignorant of historical mistakes are doomed to repeat them.

and in terms of rational vs irrational behavior, the behavior of fluids is describable without deriving from the behavior of the particles that make up the fluid; and the limitations of the approach is understood, again, not by lay people but by experts in the field.
I did that exact commute for 8 years. I've never been so happy as when I was finally able to ditch it. The new commute is 20 minutes (one way), with WFH days and hours flexible enough that I can usually avoid rush hour.
All these exceptions are basically errors in your code, which is the reason they are runtime exceptions in the first place. The API needs a way to tell you that you produced a bug (because the type system, programming environment, etc. isn't advanced enough to prevent that case), but it doesn't have to bother you with writing code to handle that case: If it happens at production time you have a bug. Fix it. Don't try to work around it.
Sure, but if you go with nVIDIA, you also get access to all the other goodies they distribute (thrust, cudaFFT, cudaDNN, etc) and all the CUDA-compatible stuff other people have written, like Theano and TensorFlow.

It does seem like people have gotten a little more interested in OpenCL lately, but it still lags pretty far behind. As dharma1 says below, AMD seems weirdly uninterested in catching up. If I were in change of AMD, I'd be throwing money and programmers at this: "Want to port your library to OpenCL? Here, have a GPU! We'll help."
You are correct, I've seen this linked before as some silly "Iron Sphere".
Could be concretion, would be still very strange indeed, The smaller "iron spheres" were usually found in mines where there was already a high concentration of iron content that could be used to form iron minerals, not sure where did the iron came from to form this one.
"SW needs a pottery barn rule, you broke it you pay for it."

Software, even small stuff, has proven to be too complex to get right consistently except for the most, elite programmers. A safety net or safe by default makes more sense. It's more fundamental than that, though.

You see, certain languages in programming are closer to how we think and express our ideas as people. We find we get more productive as we abstract away from the machine. Yet, stuff close to machine is most efficient. Common machine designs were pretty arbitrary: alternatives existed with benefits. Market forces caused proliferation of specific, painful architectures.

So, the right thing seems to be to raise abstraction of underlying machine while modifying architecture to express safe or secure programs naturally. For instance, you don't want out of bounds pointers, overflowing stacks, or data treated as code. So, why does your CPU allow that in the first place all over memory and program code? Just foolish. Instead, design the CPU to include compiler-calculated bounds with pointers, to spot stack overflows in making, and to mark & treat differently code vs data. That's what Burroughs did and SAFE is doing.

Another is modular programming and OOP's takeover of modern programming. Our systems are broken down into modules with internal state, function calls operating on it, and function calls to other modules. We enforce separation between these states, expect some functions/data to stay private, and expect certain datatypes in function calls. Object-descriptor architectures divide hardware into objects with read/write/execute/access permissions enforced as CPU runs the program. Natural way to express such a system. Mapping OOP expressions & procedures onto a stack, heap, user/kernel MMU, and optionally some segments doesn't fit the use case at all. Alien to it actually.

So, the idea is to combine a language for efficient, productive, and safe-by-default expression of our intent as programmers with a CPU designed to efficiently run that plus provide low-cost checks as a safety net. That was Burroughs approach. An embedded version might be combination of Java subset with Java CPU's like jop-design.com or Sandia's Secure Processor (aka SSP or Score). Java CPU runs hardware ideal for language with some basic checks built-in that run at high speed. Language, type system, static analysis, compiler, and programmer do rest.

So, two different models. One is arbitrary machines designed for whatever Thompson or Moore preferred on minimal hardware they had with "just try harder" told to programmers. Other is carefully-designed, safe languages with CPU's built for them & checking their integrity. Option 2 makes more sense to me even if minority opinion. ;)
Check out Wattvision - it's like Fitbit for your house ;)
exactly, instead they went on the road of giving physical pixel per css pixel, which means we need to create all combination of kinda valid queries to support future devices (problem isn't THAT bad now, but it's getting worse)

and then you have iframes, and browser zoom
Tour of My Websites
You're not even allowed to read the article unless you turn off ad-block!
It's my favorite thing about Go.[0] Even in C++ I use error values instead of exceptions, regardless of RAII, so it was a natural transition to Go. Although I'd like to see what a C-style language with Common Lisp-style error conditions and restarts would look like. Ruby has a little bit of that functionality with `redo` and `retry`.

[0] Followed by multiple return values, duck-typed interfaces, automatic pointer dereferencing, channels, and a rich standard library. Sorry, this didn't begin as a rah-rah Go post.
Brilliant. Never even occurred to me. People often use headsets, wired or wireless, for the mic. Can just not enable audio unless one is plugged in. That's so easy to verify. Thanks for stating the obvious to my overly-complex mind. :)
Hellcat: netcat that takes unfair advantage of traffic shaping systems
There's this well-known identity [1] a + b = (a ^ b) + ((a & b) << 1). This is essentially how a parallel ripple carry adder works. So (a + b) / 2 = (a + b) >> 1 = ((a ^ b) >> 1) + (a & b).

[1] http://www.inwap.com/pdp10/hbaker/hakmem/boolean.html#item23
With the arrival of TS 2.0 this month (hopefully) we'll have some cool features:
a union types [1]
b type guards to work with them [1]
c nonullable types [2]

[1] https://www.typescriptlang.org/docs/handbook/advanced-types....
[2] https://github.com/Microsoft/TypeScript/pull/7140

As a Scala developer I like Typescript a lot. Which is a first for me in browser development.

But I'm not so fond of webpack et al. So I created a sbt-typescript plugin. And now I have incremental compilation of NG2 - Play apps for both the browser side and the server side. In a single build definition. It's a nice experience.
Yes I agree. It's MUCH easier to do FP in modern OO languages than OOP in functional languages. So with the OO languages, you're simply in a better position to solve real problems.

Learning OCaml really improved my appreciation of C++. C++ code is just all over the place, but you can write it in a pretty clean style (admittedly with considerable effort.)

Related: https://akabe.github.io/evilml/
Oh, me neither. But today there are plenty of companies in the smart thermostat game. A quick Amazon search shows 8 at a glance, only one of which is a Nest.
"electronic payment system providing
anonymity [...] in any
existing currency"

This sounds pretty much like money laundering to me.
congratulations! you managed to get to Godwin's law with a top level comment. hole in one!
"...involve complicated exception handlers..."

You mean delegating exception processing to a separate code path, a la the Strategy pattern? Or just straight up catch blocks?
Regarding your second point, "They didn't do it right" is no longer a viable argument for/defense of Communism. It's been tried too many times by too many people and failed too terribly. At the very minimum, it would have to be "this is so hard to do right that no one has managed it, despite lots of trying."
Funny, yeah they look like normal concretions to my eye.

https://en.wikipedia.org/wiki/Concretion#Cannonball_concreti...

I grew up near cannonball river, things like this are all over. High iron content too because of water. I even have a version that looks like a cube but its just shale inside, paramagnetic too but thats due to water processes according to a geologist I talked to.

I'm not convinced it was made by people until you crack it open.
Duh, so what? There's nothing wrong with it. There's a lot wrong with websites that will look all wonky in five years when the js libraries they depend on are obsolete or the css is outdated or whatever.

And it's a pleasant surprise that he uses no tables (that make it so hard for screen readers- not that I use one, but there are many people who do so).
I find it funny - the first language I learned was ActionScript 3 (built on ECMA 4 proposal) and I become a Flash developer aka laughing stock. I remember I had very rough time transitioning to JavaScript because it felt like a stone age compared to ActionScript 3. Then came TS and saved me and dare I say the whole web.
About the text editor: I think all editors use the same TypeScript compiler APIs. That would mean that you would get pretty much same suggestions, error lists, etc. Correct me if I am wrong. VS Code could have some other API calls or project file support.

JS Jabber episode was great! Full of great insights.
My personal favorite is the Amazon "Swindle"
Ask HN: Do you keep a journal/diary?
The art of pivoting
He's how I discovered CCC and started attending. Ironically even after he stopped going to CCC events himself, still was able to make a bunch of introductions and be super helpful, and it's obvious the people he's met through these events were super appreciative of him. I hope he comes back into the infosec scene!
Yes there is! Right here:

It's actually really simple. We'll write a and b in binary notation, for example:

a = 1001101
b = 0100111

Now what happens when you add two numbers in binary? We essentially add the numbers in each column together, and if it overflows, we carry to the next column (this is how you carry out addition in general).

So what are the columns where we need to carry, the ones that overflow? These are given by (a&b) - the columns where both a and b contain a one. To actually carry we just move everything one position to the left: ((a&b)<<1). And what are the columns where we don't need to carry, the ones that don't overflow? These are the ones where we have exactly one zero, either in a or in b, so: a^b.

In other words, a + b = ((a&b)<<1) + (a^b). To compute the average, we divide by two, or in other words, we bitshift to the right by one place: (a + b)/2 = (a&b) + ((a^b)>>1)

If anything is unclear, feel free to ask :)
Most definitely - admittedly not to the extent of the Delphi halcyon days, but nevertheless still extant.
Study Finds Gender Pay Gap in Lawyers Due to Performance Differences [pdf]
Afshar experiment (2004)
> For instance, the ARM lacks a leading zero count instruction

Huh? ARM has this instruction (since v5, IIRC), it's spelled CLZ.
Text-only cache version: http://webcache.googleusercontent.com/search?strip=1&q=cache...

For anyone else (like me) with a potato computer. Missing the video and images inevitably, but has sufficient detail to get the idea.
That was a nice PDF, thank you. It hurts to see SGI go the way of the Dodo, but it enlightens me to realize that this is The Way in computers. Not all who excel, persist.

(BTW, I'd have been quite happy with an SGI Indy laptop, y'know .. like the one we saw in the movies, a year or so before Steve did the tiBook..)
Google is the next Yahoo?
Well, apparenty HN readers want universal
basic income and punish tax evaders, so payment anonymity is bad, right?

I mean, either these two kinds of stories (UBI and privacy) have completely different sets of people who write and upvote comments, or majority of them just don't realize how at odds these ideas are.
Diagnosed with ADD as a child via. A 6 week double blind study with teachers, parents, doctor. I still take medication as an adult and makes me able to be a software engineer. Without it, I do maybe 4 hour work days. Unsustainable.

My largest challenge is dealing with misinformation and the, "oh everyone has ADHD" perception. It's painful to feel so dismissed when my disorder drastically affects who I am, and diagnosis and treatment affects who I get to be.
I think the article does a good job at explaining the major points. But what you have described in here can also be said about MLPs, nothing deep about them on their own. For example XOR function with MLP combines features to come up with more complex features.
"The United States does not authorize any Military Service member to sign or enter into any such parole agreement."

Is there any reason for that?
Great site. The political notes are are usually higher in quality than most US news sources.
You can also try an interleaved double-sided layout:

sheet 1:
- face / page 1
- back / page 3

sheet 2:
- face / page 2
- back / page 4

sheet 3:
- face / page 5
- back / page 7

and so on.
> I found all the other tools to carry far more cognitive load

What tools are you talking about?
> The problem usually is: What is the error code if your return type is int? Sure, you can define all negative ints as errors, or you provide a reference which is set when an error is encountered and so on, but that ends up being just another type of "very ugly".

Many languages support multiple return values, algebraic data types, or box types, allowing you to return an error value out of band.
I remember I once sent sent RMS a short message about a small bug on his website. He responded within 4 hours.

> Small typo on line 724 of the source of your homepage...
> I believe you meant "that is NOT an excuse to carry out the promise"

Thanks, I fixed it.

Would you like to join the FSF, perhaps?
forget YOU commuting to the city - with 10 bedrooms you can provide free rooms for YOUR employees to come to you :-) (assuming you own a startup and have employees)
I'll burn some karma on this: What a fucking douche.
I wasn't making any recommendation, just directly addressing parent's question of where to find XEPs supported by "Pidgin and related ilk"
In fact, the last few Intel CPU generations had issues at launch which had to be resolved with BIOS workarounds.
I just can't justify writing my team's code base in typescript. I don't want to make that move, setting us down a very specific path. I don't want to add another layer of training to develop on our codebase, but mainly, I just don't have the confidence that it's a right or wrong choice, and its a big choice.

But I get a sense that it would be great to try for smaller, disposable projects as that's limited risk.

Does anyone else struggle with TypeScript simply because of how big a choice it can be?
My favorite part of this is "write a recipe for how to connect to the WiFi in a Mcdonalds without running its nonfree Javascript't" Always found that interesting about how thorough he is with what he does with his laptop.
I wonder is it some black humour to choose padLeft as an example source code. :)

Thanks for the links, future looks promising indeed.