skysight-inc/HackerNews huggingface dataset:
I love Crickhowell, lovely little town - I have a base not very far in Newbridge-on-wye.

I love the idea too, we were just discussing how the .gov is trying to squeeze the IT contractor field, while at the same time still leaving the obvious loopholes used by the megacorps to screw the system.

Seems that the lobbyists of the megacorps are still earning their keep...
Hi everyone!

Weiting from Codementor (https://www.codementor.io) here!

We're excited to launch Refactor.io - a simple tool for developers to share code instantly for refactoring and code review.

Would love to hear your feedback! Thanks!
I don't think the author claims they found something groundbreakingly new. In fact just the references contain all the points Liam makes.

Patches-vector seems to be different to ottypes for example in that ottypes have predicted what types you would want to synchronize and provides you a correspondig OT type for each of them. What if I want to synchronize binary data or javascript objects or some other weird thing? If equality is defined for my object the library shouldn't need to make any other assumptions.

Besides this practicality though, I think the whole point of the article is that one can mathematically reason about patches-vector.
Yeah, IR35 started off that beating by the Government.
>In VS, Control-; is a pretty good way to navigate.

Not for me. ReSharper's "Go to Everything" is so much better.
You probably know already, but just for anyone that doesn't, Rust uses LLVM to compile its machine code.
Not all birds are short lived... Over 60 and still producing offspring:

https://en.wikipedia.org/wiki/Wisdom_%28albatross%29
What other language would someone use to write a kernel or driver? Even if you use a higher-level language for most of the logic you'll likely want the core to be C -- amazing considering the language is nearly 40 years old. C is, to me, a systems programming language. Writing code that handles any significant amount of user input in the language is a mistake I believe. Note that this doesn't include C++ which has more modern constructs.
Controlling a computer virus with the Blockchain
Great job guys! App UX is absolutely slick :)
We see so much of the smart vs hard work argument. It seems heavily biased towards the argument of hard work. But, I wonder if there a way to quantify and measure so that we might be able to get an objective argument?
@DanDC I appreciate the comments. I agree that my original comments look venting rather than a contribution.

I also standby the fact that duplicates (and not re-posts) are a problem on HN.

By duplicate, I mean the following:
1. Identical domain (such bbc.co.uk vs. bbc.com)
2. Identical url (cnbc.com/ vs. cnbc.com/?click=homepage)
3. Identical age - Submitted within the span of active discussions happening on the HN.

In case of re-posts, despite (1) and (2) points above either the discussions have ceased or mods have permitted re-posting.

Currently, on an exact url match of a previous story, HN notifies the user.

It would be great for HN to detect duplicate stories (not just an exact match). Let the user know of another ongoing discussion. Give an option to resubmit with that knowledge.
It seems unlikely that would happen. What would be the semantics of stack unwinding? C doesn't have destructors, so (as with longjmp) you end up losing track of memory allocations which were pointed to by the stack.

I do offer my own pet wish for C though: Official support for __attribute__((cleanup)). GCC and CLANG support it.
The same could be said for Tesla, they made a high end sports car a few years ago and soon they'll have an affordable sedan.
I assume they've not given the methods out as the programme is only on TV early next year - maybe it's the usual transfer pricing etc but as they're all clubbing together the costs of administering this are significantly reduced.

Whether it works or not you know the Government (of any colour) will start to get scared when these tactics get down to the level of small businesses.
Just think of it as tricking dumb rich people into sponsoring technical research. Just like Musk does with the Tesla. All this does is enable them go set up a factory line.
It doesn't solve it but it does reduce it. If smtp is encrypted only the US can read your correspondance. If smtp is unencrypted any country and telco operator through which your data transit can read your correspondance.
Rust's standard library aborts on OOM. That's completely unacceptable. More generally, I find Rust's error handling awkward --- the most common excuse for Rust's OOM handling is "Otherwise, you'd need to cart Result everywhere." Of course. That's why we invented exceptions decades ago.

The designers should have used traditional exceptions instead of trying to create something new --- the designers (just like Go's designers) had to go back and add exception support anyway.

I'd have liked Rust more if it'd focused on memory safety and less on being different for the sake of being different. I want a memory safe, non-GC language with traditional curly brace syntax, traditional types, and exceptional error handling. Modern C++ is a much better approximation of that language than Rust is.
Discussion from a couple of weeks ago:
https://news.ycombinator.com/item?id=10463972
We go out of the office every day, and you're right that the detachment helps, but there are also situations when it's helpful to munch on something without losing your train of thought.

On the other hand, we don't have free snacks (we bring our own), and I'm not sure I'd want them - I fear the reduced selection would lead me to make worse choices :)
This is one advantage D has - it provides a path for gradual migration. It integrates so well with C and C++ that you don't need to throw away all th eold code and start again, you can do new devlopment on your existing project in D without too much pain.
Speaking of VAT, it's also fubar as far as I'm concerned. My small company is using the Simplified VAT plan, which implies I don't claim VAT on my expenses and costs, but only pay back 13.5% or so to the .gov of the 20% I charge on my invoices.

So far, sounds like a good deal right?

Until you try to invoice anything outside of the EU! In that case, you /can't/ add 20% to the invoice (as it doesn't apply) But you still need to pay 13.5% of that to HMRC! I'm not joking -- it's a nightmare -- it means that you can't do business oversea at all, or have to leave the scheme which implies extra overhead+costs of a full fat VAT return.

When you see such a /simple/ user case being overlooked (in this case, against the tax payer), can you imagine what other holes there must be in the system?
C is like running around with scissors in your hand because it allows you to cut paper faster when needed.

Yes, its true but it is also likely to cost your eyes.

Java FOSS code is often faster, more secure, and a lot easier to reason about than equivalent C code. This is not really a language thing but a standard library thing.

The use of char array with a null termination for human readable strings is a terrible 'C' ism. And glibc standard String struct would have saved us all a lot of (security) issues.

The second is a community thing. Java uses defined behaviour to drive optimisation. C tends to use undefined behaviour to drinve optimisatio. The C case really trips programmers up.

Most of these things are not actual technical but more social issues. Computers don't care, it is us humans who do.
Not the description of a Twitter bot, apparently.
I actually don't think the divide is between smartness and hard work, it is between smartness and originality. Originality is the wedge and hard work is the sledge hammer. All smartness provides is a torch to find the wedge in the darkness of our ignorance.
A header would probably be more appropriate. Then any client could display it differently. The problem is that your mail server can only tell that the last leg of the connection was encrypted, not that all connections from the sender's client were all encrypted.
I've actually considered Go for a personal project over my usual Python - the deployment simplicity of Go (a single executable) being a big attraction.

Where I am puzzled is people viewing Go as something comparable to C/C++ - it seems on a completely different level to me.
From what I understand Cobol and Fortran still leads in number of lines. So much scientific software: weather simulations, military simulations is still in Fortran and Cobol runs at the core of so many banks. In my home country Norway you used to be able to download the code that was used to calculate your taxes (might still be possible but haven't tried in years). That code was all Cobol. So I suspect a lot of government stuff is also Cobol.

I am quite fond of C as well, but you know there are quite a lot of other nice languages out there as well. Since I started writing Swift, e.g. I haven't felt much need for C for anything anymore.

A problem for me jumping to C#, Java etc is that those are managed languages with very different set of tools and thinking. As a long time C/C++ developer, Swift feels much more natural as the tools, compile process and thinking is much more similar.

And Go has a very similar feel to C. When you read Go code it has much of the same simplicity and straightforwardness about it as C code. Even if I don't write much Go code I often read Go code to understand how things work, e.g. HTTP code, encryption stuff etc. Much easier to read the Go code than the C code or anything else really.
Smart pointers are about ownership. If "some framework is using different conventions internally" then that framework entirely owns the resource and access to it is not managed by smart pointers. That is a natural, fully idiomatic behaviour of modern C++ and is not related to any specific library.
> It can still be pointing to the raw data.

Yep. Each SAX word should be mapped to the list of seriesid:timestamp pairs. This list is often referred as postings list in information retrieval. The resulting data-structure is an inverted index. SAX and iSAX papers describes inverted index variant (really bad one) based on folder structure but one can use convenient IR tools for this.
Forcing people to work for you is a surefire way to ensure they do a terrible or half-arsed job.

Worse, they may even actively do a bad job in the hope of doing damage.

Plus, the whole idea of conscription is absurd.
Wow, that's probably one of the last things I would have thought of. I look forward to listening to that.
Except this is Obama at the peak of his hope and change moment, he'd just been comprehensively elected as an alternative to the Bush years. This was the perfect opportunity to essentially blame even more things on Bush and even cement his position, this was an opportunity to bury the GOP if he had broken this news. Ironically he was in a position to deserve the Nobel Peace Prize if he had taken action against this, Guantanamo and the CIA torture programme.
Dizzying ride may be ending for startups
I also have no problem with gmail currently. I suspect only the people with complaints are being vocal here.

It's gotten leaps and bounds more useful than it was 4-5 years ago. Transit directions are much easier to use. One of the only things I can complain about is that on mobile, if I've conducted a transit direction search then the results I get are for the given time. If I miss a bus or don't leave until a bit later and want to re-run the search again at the current time (some buses may have stopped running if I get delayed leavng party for example), I have to actually input the time on my phone; there's no way to re-run the search with the current time.

It's mind-blowing to me that they wouldn't make it easier to have a transit search use the current time, and instead continue to use a route from anywhere from 15 minutes-3 hours ago. Why would I even be performing the search again if I wanted the same routes.
Small is not a stepping stone
iPad Pro available for order
Complete list of security oriented magazines
It's a whole-ecosystem issue. There are plenty of built-in features that happen to depend on GC, and while the ways to eliminate GC use are only increasing with time, the "idiomatic D style" is left in doubt when it's so dependent on allocation strategy. Precision choices for performance are characteristic of D - you have a lot of options to type or annotate your code towards a certain envelope of performance, or ignore almost everything and leave it to the GC. So this is not an unfamiliar problem, but it's a point of friction in the same way that borrow-checking poses friction for Rust - the friction may be centered on what you want for your problem domain.

If nothing else, you can write C in D, in a roughly similar way to how you can write C in C++ - the features are there, and so are the libraries.
Could you rewrite linux kernel in Rust?
Nvidia announced Jetson TX1 64-bit arm development board
If thats the case, i do wonder why both USA and Russia have hovercrafts in their navies. Hovercrafts that at least in the US case is supposed to handle landing troops from beyond the horizon rapidly. If they can't handle waves then they seem oddly limited for such usage.
No way, C++ removed some C problems but just added a whole host of its own problems, that don't exist in C: operator overload hell, static initialization and deinitialization hell. Calling virtual methods in constructors blow up. I programmed C++ for 13 years and must have had rose tinted glasses on. I kept reading books like Effective C++ thinking that my bugs would go away as soon as I learned all the intricacies of C++ and best practices. I realize now that I mostly program in other languages that the enormous amount of knowledge you need when writing C++ safely simply isn't needed in most other mainstream languages.

If you think C++ is the answer to C's problems I think you suffer Stockholm syndrome. You've gotten so used to all the issues in C++ and started thinking about them as normal, so you stop seeing what a mess this language is.
I played it a couple of years ago and enjoyed it but eventually got tired of it. Has there been a lot of new features since?
The semantics would be nothing but executing the finally block. As a rule C programs do only what is explicitly coded. No high-level programming language behind the scenes stuff.
> Windows peaked somewhere between 2000 and XP

Uh, Windows 2000 was good on supported hardware but had really poor support for typical consumer PCs. XP was a security nightmare, although XP SP2 did improve things. Hardly a "peak". Newer versions of Windows, with malware protection enabled by default, do a much better job of protecting customers.

The big win for me is that somewhere between Windows 7 and 10 (not sure when), Microsoft added a feature so that the OS wouldn't bluescreen if the display driver crashed -- it would fall back to its "basic", Microsoft-written driver, and try to restart the actual driver. This is just one example but imho Windows actually became more reliable over the years.
The language known also as n_i_m and NiM?
> He doesn't owe anyone anything

Candidates can and almost all do take an unlimited amount of money from private donors to fund their campaigns, likely in exchange for favourable legislation. Obama gathered $1072.6m like this in 2012. Obama owes his donors big time I would say.
This is basically how the "whip" system works in British politics.

There is an actual official post in the party called "Chief Whip". [1]

In the original series "The House of Cards" from the BBC in the 1990's [2], Ian Richarson plays the chief whip. Whilst his primary role is officially supposed to be the formal request of party members to attend votes, he is busy collating secret dossiers on the various party member's dubious personal lives that (when required) can be used as leverage against them.

The NSA bulk surveillance programs are this system in automatic overdrive. The enable the powerful (who control these systems) to abuse and corrupt democracy. The only "safeguards" being a secret court, with secret judgements by judges that can also be corrupted.

I'll give the NSA and the US one thing. They appear to give (at least) lip service to the idea of privacy of American citizens. In the case of the UK, the government is desperate to monitor it's own citizens' internet activities first and foremost. What's sad is that the UK public have pretty much passed the point of no return.

[1] https://en.wikipedia.org/wiki/Chief_Whip

[2] https://en.wikipedia.org/wiki/House_of_Cards_(UK_TV_series)
List of Privacy-Conscious Email Services
Europe’s most-funded Kickstarter project just lost its CEO
That's just the TOFU/POP trust model, same as unverified SSH server keys. Doesn't help against persistent MITM.
China feeds North Korea. I think the primary purpose of DPRK's existence is internal politics of its large neighbour and supporter. DPRK is there because China keeps it up and running as an isolated laboratory of stalinist communism, to remind left-wing traditionalists inside Chinese Communist Party about what their version of communism produces for the people.
We use IncrediBuild - it speeds up our development and CI. C++ dev on Visual Studio with some teams running C# and CI into Jenkins. The C# team has more automated unit tests with MSTest, which is where they shine
> The big win for me is that somewhere between Windows 7 and 10 (not sure when), Microsoft added a feature so that the OS wouldn't bluescreen if the display driver crashed -- it would fall back to its "basic", Microsoft-written driver, and try to restart the actual driver. This is just one example but imho Windows actually become more reliable over the years.

Pretty sure that happened in Vista, actually.
I just want to say I recently fired up an old ThinkPad from 1999 and man, pixels were big back then. I opened up Word '98 and started typing and those big, pixelated, non-antialiased Times New Roman letters looked fantastic on that old screen.
Apple isn't using Vulkan. It has it's own Metal API: https://developer.apple.com/metal/
Cruel bit is, quite a few people who know quads and embedded mentioned that that projects just /couldn't/ work with the hardware they were specifying. The battery was wrong, the CPU was ridiculous for what they claimed they'd be doing with it...

Seems another case of the executives brushing aside engineering completely because it suits them.
EU tax probe will not affect Apple's operation in Cork – Tim Cook
> Google Apps has a much better storage story (Google Drive vs. WebDAV-based storage)

I've been a Dropbox user even before switching off Google Apps, because Dropbox has a much better client and compared to alternatives, storage for them is not just a complementary to something else, so for example they support Linux as well. Which is very important for a multi-platform guy such as myself. Dropbox is also integrated with Microsoft's Office Online, with Gmail (by means of a Chrome extension) and with Fastmail's web interface. So from Fastmail's web interface you can attach files straight from Dropbox. Plenty of apps have integration with Dropbox actually, like for example 1Password. Dropbox is also the suggested alternative to iCloud by Apple.

And that's not the only option. If you're a power user interested in security, there's also SpiderOak. It's a bit more pricey, but that's because they are doing encryption and so cannot take advantage of duplicate files and other gimmicks like that. And it's worth it for people worrying about the privacy of their data.

> 1TB for $4 per month

The pricing you're talking about is about the Vault option and is $5 per user per month and not $4. And the big problem is that's misleading. That's $5 per month per user and is applied for all users in your Google Apps account, whether they need it or not. My wife for example certainly does not need 1 TB and for small businesses that can be very problematic, as you can easily pay an extra $100 per month.

In other words, I see no reason to encourage a monoculture on the basis of tighter integration or complementary pricing that's misleading. We've been experiencing this strategy time and time again in the past from companies like Microsoft. You'd think we should have learned by now. In fact such marketing strategies are exemplified in books such as "Predictably Irrational" by Dan Ariely. That was an interesting read if you're interested.

And it never ends up well, either for consumers or for the industry at large. And you've got good options available that I think are better than Google Drive.

> an office suite with collaborative editing

But nobody stops you from continuing to use Google's Docs, in combination with Fastmail and Dropbox or whatever. I've done that, it's not bad and should not be a reason to keep using Gmail. Big companies like Google, Microsoft or Apple want you to get from them everything but the kitchen sink, because that's how they achieve lock-in, that's how they can use their brand muscle to make you buy shit you don't need or stick to inferior options. You shouldn't forget that Gmail is about email and if Gmail no longer does email well for you, then complementaries like Google Drive or Google Docs won't make it magically work better at email.

But btw, did you know that Microsoft's Office Online can edit and save files as ODF, the standard document format and Google Docs does not support ODF? In fact Google Docs doesn't support editing any of the common formats, as they require conversion in their own format in order to edit those documents, leading to a form of lock-in that Microsoft has only dreamt of.
I’m not using SDL or any other library to hide those platform differences.

Once start working on Linux port he'll regret about that. Every developer that start with own platform-specific code end up using SDL2 anyway. Don't do that mistake.
Yes, I came to the conclusion that when one is allowed to use C++14 and specially with the upcoming GSL and lifetime analyzer, most of the warts are off.

For me, it is a good enough for when I step outside JVM/.NET work as I am an old C++ dog.

The problem is those that the only tool is the compiler and nothing else. On Herb's talk at CppCon only 1% of the audience confirmed that they use static analyzers.

Or those that have to deal with strict code guidelines or codebases that extend before C++98 as even a standard and don't even know what CppCon, HN or Reddit mean.

For those cases, I think only way forward are language that throw the unsafe cruft out and provide safe practices from the get go, without external tools that are optional to use.
> After all, saving a few extra CPU cycles is totally worth breaking all SSL encryption and leaking private keys,

I'm afraid that these few CPU cycles do make a difference.

Throughput is the number one concern for thousands of network operators and service providers. They spend millions so you can get your content and not "509 Bandwidth Limit Exceeded".

You can't just go and replace all efficiency critical software by something that runs maybe just 10% slower.
Full programmer control and preventing bugs, security holes and so on are not fundamentally opposed. It's not like most programmers go to work trying to make sure their software has a certain number of buffer overflows in it. It just turns out that preventing that in C is really, really hard.

To take the car analogy further, whether your car is manual or automatic, seat belts and airbags are valuable. Neither of them compromises a driver's full control of their car.
Maps used to be much better at searching within the area I'd already focused on. Now whenever I search it seems to either search near my current location or zoom out and search my whole city. It makes it very hard to e.g. look for a bank branch on my route home from work.
If cobol is not dead then c will never die. Having said this I love writing in c, not because there are not better languages (there are), but because it provides a level of control that only assembly can beat. C is a very sharp knife.