skysight-inc/HackerNews huggingface dataset:
You are correct, this usage is wrong. They are "preprocessor directives", and macros are only what come after #define.
Unlike money, food really does grow on trees. Efficient agriculture means that we need very little labour to feed everyone to a subsistence level. Getting everyone to do some labour for their food is a societal choice, not a logical necessity.
It is but it also encourages businesses to accept it.
Another neat trick: the number of seconds in a day is 864e2 (easier to remember than 86400 for me)
Wait wait WHAT?

This standard seems like a terrible mistake. Isn't this exactly what malware creators want? To condition users to click the browser pop up that says "YOUR COMPUTER IS INFECTED WITH MALWARE, CALL THIS NUMBER/INSTALL THIS HORRIBLE THING TO FIX IT?"

Why on Earth would anyone issue a standard that says that ISPs should deliver that kind of notification, thus training consumers to believe them?
Maybe in the bill? Or online bill notification?
About 34% of legitimate E-Passports have flaws preventing verification [pdf]
There are many valid use cases of macros in C (and other languages) which you might not have seen, like those which use __LINE__ etc, those which expand a string into a variable type or function, those which process `-DNAME=x` flags.
Everyone currently buying crypto is an early adopter right now
The article is an okay start, but it wasn't written by an expert. It lists some real pitfalls but doesn't provide commonly accepted solutions. Some examples...

multiple lines:
wrap in do { } while (0)
- can use a multiline macro like a function call, terminated with ;
or ({foo; bar;})
- multiple lines evaluate to 'bar'...

Function calls:
- in general anything with side effects could be harmful if evaluated more than once.
- But possible to write MIN()/MAX() with single evaluation of 'a' and 'b'.
#define MAX(a, b) \
({typeof(a) _a = (a); typeof(b) _b = (b); _a > _b ? _a : _b;})

And other important things like stringify, variadics, etc...
Sendmode Business Messaging Review
Seems you’ve bought into Roger Ver’s snake oil. 1mb limit isn’t stupid, it’s what creates the fee market which makes spamming the blockchain very costly and keeps blockchain size in check. Already you wouldn’t be able to sync the ethereum chain from genesis block, I can still do that on raspberry pi node in less than two weeks. Whether the limit should be upped is still a question up for debate but the reason it wasn’t yet is because there was no consensus about it and contentious hardforks are dangerous.
I think it's pretty fair to call HFT strategies that rely on low-latency connections in order to gain a competitive advantage front-running.

It's definitely front-running in the commonly-understood sense of the word, and sometimes it's specifically front-running in the sense you're talking about: a large company puts in orders for large buys on several exchanges, e.g., and a low-latency HFT sees one of them before it hits the other markets, and puts those buys in first.

edit: This theoretically _will_ happen without any malicious actors, btw: HFT uses machine learning and its inputs include recent trades. Recent trades include large buys from said bank, which previous history indicates the price will go up. HFT puts the buy in. That's front-running.
Generally, you get to use a high level object oriented language that feature-wise is somewhere between C++ and C#, but with a much faster compiler and without any sort of runtime requirements (compared to C#). Free Pascal creates standalone executables that can be as small as 40KB, which is something you mainly see with C and C++ compilers these days (and languages that "compile" to C).

TBH there isn't really a killer feature in Free Pascal, something that you can point to at the language and say "this, this is why i am using it". Almost everything it has you can find in other languages.

The main and biggest reason -IMO- to use Free Pascal is Lazarus. Personally i use Lazarus a lot and i don't really care much about the language - i come for the framework and the IDE, the language is secondary and i don't care if it is Free Pascal, D, Go, C or some custom one (as long as - like FP - i can create standalone programs). Of course it doesn't hurt that the language is pretty decent.

Often people choose an IDE based on the language they want to use, but i think in this case is the reverse: Lazarus is a reason to use Free Pascal, not the other way around :-P.
Or it could be more of a statement about the zeitgeist of Democratic Party politics.

I’d like to understand who these people are who are suddenly finding their voices. People don’t wake up and run for Congress.

Personally, I think this a sign that the professional political types are ducking for cover, and we may not be escaping from the GOP brand of fascism anytime soon.
I'm sure you do, but I for one would be on the streets with my family within six months of losing my job and not finding another. A lot of that is poor financial planning in my younger years which I'm slowly rectifying, but even so not everyone here has a stack of cash behind them.
I take it you don't use YouTube then. All their content is user generated, you get ads, they capitalize on your "efforts", and you have premium features that you can access only by paying (ie. YouTube Red).
Proof Central
NIPS 2017 Links (please contribute)
Well, I bought a crazyflie 2.0 drone on Black Friday on hackaday

40% off

I doubt if I'll ever buy expensive sneakers, if they don't have any additional value ( eg. Supportive for running)
Agreed. I wish my company used zoom.us. It is so painless.
Same for me. The Google Pixels and the Essential PH-1 are good options if you want an Android phone as they receive regular monthly security updates.
This is not the exact title used in the article itself, but it is the comment the author made when posting it to Twitter:

https://twitter.com/bengoldacre/status/939949021996769280

As such I've used this title in preference - I think it's accurate and gives a better idea of what the article says.
I am not sure that long term BTC will actually replace USD or another government backed currency. I think it would take a LOT for that to happen. If that does happen then that means the value of the USD and every other currency will decline at the same time as the value of BTC increases which could lead to a global financial collapse.

That said, if it were to happen, I don’t think you will have to buy bitcoin from a handful of early adopters. It is more likely that your employer would start paying you in Bitcoin when it becomes inevitable. Those same early adopters who hold a lot of the wealth will likely use their wealth to invest in startups/charities/companies/etc. the same way as entrepreneurs and rich people do today.
It was never officially approved in Thailand, and now it's officially illegal: https://www.bangkokpost.com/learning/work/693976/visa-runs-n... - I know people are still doing it, and I know of very public enforcement for a very short time (probably done to make a statement).

YMMV.
This isn't wrong but I've got issues with some of the examples, especially the lack of a solution for #2 and #4.

#2 is referred to as an unsafe macro because of the multiple evaluation of its arguments. In some cases this is fine but it may need to be documented that the macro is unsafe for future users. It is also entirely possible to convert these macros into safe ones if you're willing/able to use GNU C extensions like typeof. The SEI CERT secure C wiki has a good reference for this at [0].

#3 presumes you want to compose functions but I'd suggest that by doing so you are writing bad C. Because of the lack of any type of side-band error reporting (exceptions etc) you must presume that your functions will always return a sane/non-error value. That's not a good assumption even for your own code and definitely not for the C library or any other libs. In addition, this is just another unsafe macro which could be made safe as above.

#4 doesn't explain the solution to the problem it poses which is annoying because it's the most important one IMO. There are a number of ways to make a multi-line macro safe for use in an unbraced expression body. My preferred way is to define the macro with a always false-post check while loop. e.g.

#define MY_NAME_JEF(x) do{ \
const char jef[] = "jef"; \
printf("my name %s, not %s\n", jef, x); \
}while(0)

Note the lack of a trailing semi-colon. This is because we expect the macro to be terminated with its own semi-colon. Stupid example but it gets the point across I suppose.

Check out the secure C wiki, it's full of gems which can help you avoid issues with macros, and much more.

[0] https://wiki.sei.cmu.edu/confluence/display/c/PRE31-C.+Avoid...
For another take on the “lawyer dog” case, see here[0].

The takeaway is that if you’re asking for a lawyer to be present during questioning, you need to be unequivocal about it.

That, and Lawyer Dog is totally a real thing[1].

[0] https://www.google.com/amp/s/www.washingtonpost.com/amphtml/...
[1] http://knowyourmeme.com/memes/lawyer-dog
Statistics are misleading. Just because the median income is high doesn't mean that those on the bottom end of the scale aren't living under bridges trying to make enough money to prevent themselves starving to death.
A movement against banks... and yet the latest increase in price is due to spectulation about how investment banks will start selling Bitcoin futures — how ironic.
In this scenario do you honestly believe the best course of action is to insert a popup on web pages? If you are truly concerned you will act to preserve your network for all customers by blocking traffic from the problematic modem and then call the person. This is legally less risky than doing traffic inspection. (Losing common carrier status would be a very big deal.)
Rex Tillerson has a degree in civil engineering. Seems like perhaps that's not a panacea.

(His predecessor at Exxon has a PhD in chemical engineering)
> Seems you’ve bought into Roger Ver’s snake oil.

I've heard this a few times online despite not really knowing anything about Roger Ver. I am capable of coming to logical conclusions on my own.

> 1mb limit isn’t stupid, it’s what creates the fee market which makes spamming the blockchain very costly and keeps blockchain size in check.

Very costly in the sense that an individual Bitcoin transaction curently costs about $20, an order of magnitude more than my bank transfers cost.

> Already you wouldn’t be able to sync the ethereum chain from genesis block, I can still do that on raspberry pi node in less than two weeks.

I literally synced the Ethereum chain on my laptop last weekend.

> Whether the limit should be upped is still a question up for debate

This is only true if you are using the phrase "up for debate" in the sense that smoking being bad for you is up for debate, or that we should do something about climate change is up for debate, or that net neutrality is up for debate: there are powerful self-interested actors for whom the obvious conclusion is expensive.
That sense of 'coiled power' is not just a sense, there's a fairly beefy flywheel in there somewhere.
Or maybe they don't see the world so Black and White :)
Train yourself not to do it. It's not that hard, and it will go a long way in improving your communication.

Record 30 seconds without ums. If you failed, do it again. Then increase the time. Stop if you fail to much/can't concentrate, try again tomorrow. Recording yourself is the perfect opportunity to train.
> That somehow seems worse.

Why?

> What is the non-controversial topic you think was raised/created by this piece, which it should not have done?

I think I already addressed this with my last comment. Saying historical context is still true and implying solutions won't work because of something that happened decades ago.

> simply educating more women and minorities to be engineers won’t solve the problem - an argument that the new historical study supports.

> Mims isn't trying to say those conditions are the same.

Don't those statements contradict each other?
So where did C get the idea to `%` for mod?
The only way one can MITM an https connection is by terminating the https connection at the level of the attacker and presenting an http connection to the user, hoping he won't notice the absence of the green https lock.

The attacker cannot serve to the victim a valid certificate for facebook.com unless the facebook.com private key or a CA has been compromised.

Alternatively the attacker could try a close enough domain (facebooks.com, or something) that it controls and for which it can get valid certificates, and redirect the victim hoping the user won't notice the slight difference in domain name.
Let’s wrap it up. Confuses engineering and science. Reduces engineering activities to closed problems. Thinks science does not successfully offers models for fuzzy systems (<cough> thermodynamics, man </cough>). Puts doubts on the fact that technology enabled human progress above its animal condition. And finally, seems to ignore that the main role of an engineer is to safely /lead/ the work in factory or on construction sites. Really, I have seldom read something so inaccurate, up to the point where I suspect it may have been written on the sole purpose of annoying the HN crowd...
> they have a very low crime rate.

That isn't entirely accurate. Their published statistics on crime are very low.
Good thing one of the first principles you learn is to break complex problems into smaller chunks, and then they become manageable pieces you are on your way to solving.

Beyond a basic ability to think logically and enjoying doing so, programming is 99% perspiration aka patience.
> Lexicographical sorting by class-name to make things easier to find

This is weird. I've never encountered (or noticed) ordering parameters by their type names. Semantic ordering (subject, object, adverb, optionals) makes more sense to me - especially if you see type names only once at declaration, but have to guess/deduce parameters order at every call site.
It would be useful to create tools for existing codebases. For example ~10 years ago when i worked at a game company, we were considering C++ Builder to create the tools for the engine because we could use the engine libraries directly (the engine was really a collection of many small libraries). However that idea was abandoned because C++ Builder at the time had very bad support for C++ (a few years ago they switched to Clang and modified it to use their C++ extensions, but that was too little too late - and AFAIK it wasn't 100% compatible with the previous compiler).
I can confirm that Comcast responds to FCC complaints effectively. I used that route when they were my provider after a series of unhelpful technical support requests.
The thing is that for every other currency the governing body/platform cannot be trusted, as has been clearly proven many times, but even the Fed proved it cannot be trusted in 2008-2009 (and before that in 2001).

The organisations these governments put forth as arbiters are, of course, are much worse. Pretty much every bank of any size has been caught embezzling, unilaterally cutting people's accounts, and worse. In many cases for very petty reasons, or just for a quick buck.

So what exactly is your suggestion ?

Is bitcoin more or less trustworthy than BAC, WFC, which are the organisations the Fed chooses to represent it to normal Americans ?

More trustworthy. No doubt about that whatsoever.
An article that is an outspring of the hugely-overhyped IT industry in Sofia (Bulgaria). Code academies, recruitment agencies, startup organisations and conference organisers are literally larger than the entire IT sector and they all want to make a quick buck from desperate young people with very limited choices for a prospective career in other fields.

"We will make you a rich programmer in 3 months", they say.
Notetaking makes working memory much less of a issue. I recommend you find a way that works for you, if you're interested in career longevity as an engineer. Personally I alternate between todo lists for completion and coverage, and dialectics of theory and test for design and troubleshooting.
Well, you can't double spend gold. You either have it or your don't. And until the matter replicators come into existence, nobody can fork gold.

As to your argument for the 51%, say, Visa comes out with a fork called VisaCoin(TM) that allows one to use a visa card to make transactions directly from VisaCoin (which is a BTC fork).

So that was two to ten people, maybe and what an ad slogan?

And here's the ad slogan: "When you go to the Fog City Diner in San Francisco, take your visa card, because they don't take BTC!"
What DiThi said (read his excellent post)

There's also another important detail. Due to delayed ACKs on Windows and battery-preserving TCP stacks on most mobile devices/laptops, some of your packets will be delayed. Even with TCP_NODELAY. Desktop OSX/Linux do not display this behavior.

The only solution I have found, and it's a rather crude one, is to blast the server every 50ms with a 1-byte packet. It is ugly but it works well.
>> I seriously doubt you'd be able to identify the engineers from what they wrote.

This isn't meant to be funny, but I bet you could identify good engineers from what they wrote rather quickly. What does a good engineer do when they discover a faulty resistor while debugging a circuit? Cut it out, throw it in the trash, and replace it with a working one. They never pause to consider the moral impact of suddenly removing it from the board, attempt to rehabilitate it, or try to empathize with it. They cut it out and move on.

If you apply engineering principles to societal problems, the die-hard engineer may come up with a similar result. I'm only speculating, but their line of reasoning could resemble... "these (good productive) citizens do not harm other citizens, and they support their economies through labor and taxes.... discard every other citizen that does not do this, and replace them with a working one".

Sounds like a dystopian sci-fi plot to me.
Absolutely yes. There is a goldmine there waiting to be found. Most appliances in our modern world are total maintenance disasters, especially compared to pre-industrial civilizations.
That’s an amazing idea and example of what something like Facebook could be, versus the more banal reality.
I also have this problem. Windows 10, Chrome (hardware accel disabled), Comcast.
I don't believe I'm missing the point of the article, I'm fundamentally disagreeing with it. You say "In engineering problems, tradeoffs are known and in human systems, tradeoffs aren't known.". I believe this is more false than true on both counts.

I don't believe my second point is the one you make in the article. I'm saying that frequently policies are not the best known means to achieve the stated objectives of the policies. The problem there is not that people can't agree on the problem they are trying to solve (though that is frequently a problem, both in politics and engineering) but that the policy solutions are known to not be good ways to achieve the stated goals and that in part that is due to the real goals being different.
Interesting food blog – EatingAsia
Quite the hot new game for the Game Child!
This is not related to your main point, but arguably Wikipedia is raising millions of dollars under false pretenses (that is, they run scare ads insisting that money is needed to keep the servers running) while the Wikimedia Foundation spends most of it on projects users don't know about and wouldn't want to fund. I think if the fundraising was more transparent more people would never donate to them again. It's been a number of years since my last donation and I won't be giving to them again until I'm sure the money will be used responsibly.
I guess the other irony is that every Windows/Intel computer boots Unix first...
The Rich and Royal History of Purple, the Color of 2018
I think Linus said something like "you don't make friends by suing people" and while Intel has not followed the license to the letter, court should not be the first answer to that
I don't think people will really take notice until the tech boom pops. My hope is s lot of tech workers will have a family home to retreat to? (I don't want to argue. Yes--certain tech monopolies will always be hiring, but they will be hiring only what they consider the best.)
Do you personally have the ability to create large-scale broadband networks, using only the financial means available to the average citizen? An estimate by Goldman Sachs put the cost of nationwide Google Fiber at $140 billion. Personally, I'm not sure if I could come up with that kind of money, in a pinch.
Did you not read what I just wrote? Section 8 housing requires these appliances. But you have to be below a certain income level to quality for Section 8 housing. It would be very reasonable to assume that once your income is above that required for Section 8 housing ($36,000 for family of 4), then if your appliance broke, it might be difficult to replace it because you don't have several thousand dollars lying around. If you've never tried to raise a family of 4 on ~$37,000, let me assure you that you will likely run into that situation sometimes.

But no, other than my personal experience, I have no data to support my claim. Just as you have none to support your counter-claim.
Request: a campaign mode where you download my cities' map and let me flyover and protect it from inbound hordes. Maybe let me network with other players in my city to coordinate defence or watch our neighbourhoods burn!
The OnePlus 5T is the fastest charging phone
Chrome and all other browsers would quickly put an end to that.
Well, sure if they decide to only grant a single franchise which is what happens in a lot of cases. There is no reason they can't allow several competing operators in a given city though.
Is that J an outlook-smiley?
Same issue on both Firefox (57.0.2) and Chrome (62.0.3202.94) on Windows 10 (build 16299.64). At least for me forward doesn't seem to be completely ignored; while holding it down it will occasionally spurt forward a bit.
I know, this is the reason I added "who comment". This is not good enough, I know too, but in no comment have I seen praise of Comcast.
+1 for Asics - the foot fitness guru in basic training fitted me for them 20 years ago, and I've been happy with them ever since.
> In engineering problems, tradeoffs are known

Not really. In non trivial projects, you also have to "manage" the unknowns. Viewing engineering projects as completely controlled is a myth; even what we make with actual engineering practices (planes, etc.) fail every so often because of design issues. This is not because of known tradeoff, except if you twist the definition as far as pretending that the lack of infinite study and simulation is a tradeoff. Catastrophic failures often (always?) come from highly non-linear causes, you can think that kind of chaos also leads in other areas, especially among social interaction. Because of the non-linearity, even estimations of failure rates are only really estimations with absolutely no hard bounds. So said non trivial (real) engineering projects actually have to be inserted in the society as a whole, including for example insurances.

The (real) engineer also have (a moral obligation) to consider the social impact of their work.

In the end, both engineering work and leading a society is reducible to exercising reason to attempt to achieve a goal. The remaining differences are mere details.
And the backdoorest:

https://www.engadget.com/2017/11/14/oneplus-leaves-backdoor-...
And again, making predictions about the market is not front running.
Beats proves the article's point: they're part of the Apple retail and direct to consumer experience.