HN user

thsealienbstrds

152 karma
Posts4
Comments86
View on HN

Microsoft tried this with Touch Develop. The project was shut down last year. The on-screen keyboard layout was context-sensitive. IIRC you could enter complete keywords with a single key, maybe even variable names. It was pretty cool. Perhaps phones just don't have the screen estate for serious programming.

I don't believe that not setting a deadline is the solution. There are definitely software engineers who will happily change their designs an infinite amount of times if you let them.

The testers keep running into situations where things don't seem to be right, luckily your product manager is happy to defer most issues raised unless it is a real "show stopper," as Jeff loves to exclaim.

That might have been the critical mistake. Jeff should not have done that. He should have insisted on lots of feedback loops during the project. He should have put more effort into convincing himself that the product is of sufficient quality.

As for the developers, they should have made it clear to Jeff: if he's not allocating resources to convince himself that the product is of sufficient quality, he shouldn't be mad at them when in the end the product doesn't work.

Yep, I wish it was better as well. The situation has improved a little bit though. For example, you can upgrade to newer builds of the same LineageOS version OTA using a built-in updater app.

On one hand, I really welcome technologies like this that empower people in a huge way. On the other hand, I really dread that in this case it comes from the company that wants to know everything about you.

The example where Google hid a microphone in Nest makes me believe they will do anything to get more information from people. I think it's not beyond Google to use people's handicaps to improve the image of Google Glass. Sorry to put it like that...

It seems to me that the amount of politics discussed on a platform is related to how popular that platform is. I like how in some technical IRC channels they just ban any political discussions outright. It seems to keep the channel on-topic even with thousands of users. Not saying HN should follow this course... but this thought crosses my mind sometimes. Sometimes there's too much political discussions on HN for my taste.

Let's say you run your own mail server. How much privacy do you really gain if 99% of the mail that comes in and goes out passes through Google servers? It doesn't matter what you do by yourself. You just can't expect everybody to run their own mail server. I run my own mail server, and while I'm happy to be self-reliant, it's hardly a win for my privacy (also, mail server administration is a pita).

Same goes for every other communication tech. Just because your endpoint is not spied upon, if every other endpoint is spied upon you gain nothing. If you don't use WhatsApp, but all your friends use WhatsApp to talk about you then you gained nothing.

If you really believe there is no such thing as collective decision-making then imho you already gave up in the fight for privacy.

But even if we boycot Google and Facebook, they are not the main problem. Their business model is the main problem. Spying on your users, training predictive models, and using those models to exploit people is simply too profitable, and therefore too attractive for any profit-seeking company to ignore.

Until we solve that problem by deciding as a society that these business models are not ok, this 1984-like world we currently live in will be our reality.

When it comes to Haskell, I want to add that especially when you start doing parallel programming, it becomes even harder to reason about. You might expect that doing that extra data type conversion in parallel rather than in sequence is going to make things faster, but you could find that the GC needs to do more work for whatever reason, and it ends up actually becoming slower. It's very counter-intuitive. It's a shame because writing parallel code in Haskell can be very elegant. If only the behavior was more obvious it would be so great.

I agree with your observation, except for the part where he not bashing on QuickCheck (he is, but you have to click the first link in the article in order to find it).

One of the big differences between Hypothesis and Haskell QuickCheck is how shrinking is handled.

Specifically, the way shrinking is handled in Haskell QuickCheck is bad and the way it works in Hypothesis (and also in test.check and EQC) is good. If you’re implementing a property based testing system, you should use the good way. If you’re using a property based testing system and it doesn’t use the good way, you need to know about this failure mode.

The big difference is whether shrinking is integrated into generation.

Integrating shrinking into generation has two large benefits...

The first is mostly important from a convenience point of view...

But the second is <i>really</i> important, because the lack of it makes your test failures potentially extremely confusing.

Programming Idioms 7 years ago

Quality of the site aside, this concept would be great with JSON-API or something so it can be integrated with <insert favorite editor/IDE here>.

Nim 1.0 7 years ago

Fair enough I guess. If the Lisp macro system only sees parsed s-exps, in principle you still need to figure out for yourself what kind of construct you are dealing with on a higher level of abstraction. Nim's macro system seems to be operating on a higher level of abstraction in that regard.

Nim 1.0 7 years ago

Still, isn't it AST-based in the sense that the input of a Lisp macro is effectively a parsed syntax tree, just as in Nim?

Nim 1.0 7 years ago

In one of my projects I use a macro to parse a set of types for fields and generate constructor macros for them.

Funny, I did a similar thing! :)

Nim 1.0 7 years ago

Disclaimer: I only did a hobby project in Lisp once. But I did use some of the macro functionality.

Judging by some of the comments here, it seems like the macro system has a similar approach as Lisp's macro system, which is also AST-based. Something I don't see here is macros that generate other macros, but the question is how much you really want that anyway (when I did that, I thought the syntax was horribly complicated because of all the quoting). I know Lisp also has reader macros (they run before the parser) that allow you to effectively change the language syntax, but I didn't use those.