skysight-inc/HackerNews huggingface dataset:
The problem with all this advice is that C lacks so many amenities of modern programming languages (no module system, no opaque types, no automatic memory management or RAII, no closures, no parametric polymorphism, no subtyping) that working around these limitations is bound to violate some of it.

The same strict rules that you can afford to adhere to in other languages do not work for C: with C, the often delicate balance of tradeoffs can tip either way.

> Do not use a typedef to hide a pointer or avoid writing “struct”.

This really seems to fly in the face of the idea of information hiding, at least when listed as an absolute. The client of a module does not need to know whether (say) a handle is an int or a pointer.

> Do not use macros.

> Never put code into a header. Never use the inline keyword.

This just doesn't strike me as good advice. You're creating potentially costly abstractions. For example:

for (foo_init(&foo); !foo_done(&foo); foo_next(&foo)) {
...
}

Without macros or static inline functions, you're creating overhead. Overhead that other languages with proper module systems can avoid, but not C, so you have to work around it. Sometimes it's not an issue, sometimes this is code that you want to use in a hot loop. By not having low-overhead abstractions, you're encouraging manual inlining or hacking around their lack when writing performance-critical code (and if you aren't writing performance-critical code, why are you using C)?

Macros are also the only alternative that you have in C to compensate for the lack of closures. They aren't closures, and they aren't even good macros, but cover some of the same use cases.

> Do not use fixed size buffers - always calculate how much space you’ll need and allocate it.

This is not exactly wrong, but it only talks about half of the problem. The alternative to fixed size buffers are manual memory management or alloca(). Manual memory management is also error-prone and alloca() can blow up the stack. It's not that people necessarily think that fixed size buffers are good: they're choosing between various pain points. Fixed size buffers with a generous upper limit that is properly enforced can make for a perfectly viable trade-off.

> Keep your build system simple and transparent.

This is a bit vague. What's "simple and transparent"? At some point, you'll have to deal with things like how to figure out dependencies, for example. Preprocessors and code generators are common in C projects, often to reduce common C pain points.
We don't claim that in React documentation. React can't be faster than the same DOM mutations written by hand because by definition it has to do more work.

We do think it helps to create maintainable apps though, and it is fast enough for practical use cases despite its immutable design. That's why we use it at Facebook.
This could do with being higher up the thread.

So WILL Win7 work with Ryzen? I ask because I'm typing this on a Win7 machine I just ordered a Ryzen chip for...
Browsers outside the mainstream are still trying. I'm typing this on the Brave browser[0] and it's fantastic at dealing with those obnoxious sites. It has a built in ad blocker and total JavaScript blocking for a site is just 2 taps away. It's amazing how much smoother sites become when you've blocked all their anti-user shenanigans.

[0] https://brave.com/
It seems customary enough in the US that in the movie Reservoir Dogs hardened criminals berated one of their own because he "didn't believe in tipping" the waitress. This brilliant scene is on Youtube, in case anyone needs Steve Buscemi's take on iLoch's comment as a relief from this subthread.
My theory is milk. Breakfast cereal is designed to be covered in milk, but compared to North America and Western Europe, milk and milk products are far less popular in most of the world. I think I remember reading that there's even a biological reason, ethnic Europeans have some enzyme for digesting milk (and cheese etc) that others lack.

This would imply that other milk-drinking Western countries would also eat a lot of breakfast cereal. And indeed it's something I notice when I go back from China to Belgium or the UK.

(Disclaimer: I haven't been to the US, so perhaps Americans like breakfast cereal even more than Europeans)
I'm just saying as the original designer/artist I don't give permission, regardless of the MIT license (which I disagree with on CodePen but that's another story).
"lovingly raised" to be slaughtered is an oxymoron.
You're absolutely right - I did the calculation as km/s instead of m/s.

So at 1% of speed of light, it would take just over 14 seconds to travel the circumference of the Earth. Travelling at 1% of speed of light, I could travel from New Orleans to California in 1 second.
As an American living in China, I feel the same way. I also use Didi almost every day. It's so easy to pay too (using WeChat, AliPay, etc.), and there's no expectation of tipping. Kind of like a "black box" view of the payment process. It's even better than using regular taxis from the standpoint of giving feedback too. If I took a regular taxi without using Didi, there's almost no way of leaving feedback, other than calling the taxi company, which wouldn't do much. At least with the app, I might get a coupon to use on a future ride.
Animated GIF of video:
https://i.kinja-img.com/gawker-media/image/upload/hsknc3dfsz...

YouTube of it:
https://m.youtube.com/watch?v=XnrLY-phipw
Polish "przeziębienie", which would roughly translate to 'state of being thoroughly overcooled'.
> Maybe the imagined state of one's culture is often that of the grandparents' time, always a bit behind of the reality.

Not just that of the grandparents' time, but an idealised/extremised version of it, blurry and pastel, filtered through the lenses and expectations of those who actually lived it.
"Give up your brand new $10k battery, for someone else's charged but worn old one".

Seems like an unwelcome offer.
It's not about can't but won't. The feedback loop is basically as the problem gets worse more people give, but as the situation improves fewer people give. Thus, cheraties won't fix any problem that requires regular funding.
This is awesome, great way to support the segment who can't afford a regular plan or who doesn't need one. I've heard from many auto rickshaw wallas that they don't make enough from cab services like Ola. Any thoughts of leveraging your network to provide value added services for them?
> Patterns that get "encoded" into the language, or made trivial by abstraction features within the language, are idioms?

Yeah, that sounds like a reasonable term to use.

> The closest I've come, weirdly, was tutoring a friend through a design pattern class.

It's a bit old now, but I think it's probably still worth reading the GoF book - it's clearly written, and much better than most subsequent imitators. In particular, each pattern comes with a "when not to use this" discussion, that more people should pay attention to :-/

> I've always wanted just a simple list of the names, maybe with linked single paragraph descriptions

Would http://wiki.c2.com/?CategoryPattern do?

> what is the formal name of doing that, specifically, the formal name of the category to which attr_accessor and has_many belong to?

I'm not sure. Adding methods to a class at runtime is called "metaprogramming" (which has the more general meaning of "writing code that writes or modifies code"). I don't know of a name for a method that performs metaprogramming, though.
Most cases of bad scrolling performance could be fixed if browsers would accept some web API breakage and move scrolling to its own thread that JavaScript, layout, and image loading can't ever block.
Market probably expected just a stock issue instead of convertible notes, and this delays dilution for a bit.
Thanks for that article. It also links to this study from 2005 showing a correlation between accute cooling of the feet and the onset of cold symptoms in humans. The studies on cell apoptosis were attempting to show why (according to the nature article). Interesting that the original article doesn't mention this 2005 study.

https://academic.oup.com/fampra/article-lookup/doi/10.1093/f...
https://www.ncbi.nlm.nih.gov/pubmed/16286463?dopt=Abstract&h...
Did you consider GitLab's githost.io?
Fat for Fuel by Dr. Joseph Mercola
Injective, Surjective and Bijective
Yeah right.. "If you don't like the web, go somewhere else!!11"
So is it obligatory to pay the service charge?
If not, then I would prefer to deduct it and offer the same amount as a tip.
Yeah, really. This is a shallow guy with a philosophy that amounts to a shrug and a "whatever" who would have starved if not for people with philosophies that actually produce useful results, from whom he simply stole.

There are countless people who could work but prefer to "survive" by just taking from others instead. It's called "welfare" (not talking about people who need it, for whom it is intended, but people who don't but just take it anyway), and even they don't usually endanger others by breaking and entering, but this guy, well, shrug & "whatever, I'd rather just take people's stuff".

Of course, maybe he was mentally ill. If so, this might not have been his fault, but even in that case, there usually isn't that much to learn from people whose definition of "totally turn their back on society" is to go on being a part of society every single day as takers but totally turning their backs on helping others in return.
So somewhat eerily, my Gitter GitHub public repo authorization token shows that it was accessed within the past 2 days, despite my not having logged in to any Gitter pages in months.
http://imgur.com/a/aABi8
"it will certainly come at a price "

It surely does. It is called Muslimification. Or the transformation of an open minded society into a tribal system. Enjoy!
>> for jobs where the service makes a significant difference

> this donut's a bit stale, I'm not prepared to pay anything for it thanks Mr.Tesco.

This is irrelevant. See quote from comment you're replying to.

> Sometimes you get a shitty waiter, that's life, but now you get to unilaterally decide you'll get that service for free?

No, the waiter still gets paid.
I get that from a "ethics" standpoint (and I won't be using it in our project like I wanted), but legally you are giving permission for anyone to use the software in any way they see fit within the MIT license.

It doesn't matter what you say here, the license is kind of final for the code it's referencing.

IIRC CodePen does allow you to license your code differently, but it requires a "pro" account.
i think this is unfair. I am not a big fan of uber, but uber already provides value, has a solid service and penetrates international markest (not native, is this...right? sounds kinda wrong imho). Autonomous driving complements their original target (taxis) and makes it possible conquer new markets. I get what your idea is, but i think it's wrong because what they do makes sense and they are actually building (and delivering!) stuff.

They might gamble too high and loose big time, but i wouldn't call it a ponzi scheme.
> I can't legally have a barbecue, either, so it's really hard to escape from fried meat here.

Isn't Yakiniku fairly common? Though a personal shichirin would probably impossible if you're in Tokyo itself, just as having a BBQ usually isn't an option if you're in Manhattan or London "proper" unless you have a huge top-floor condo.

Japanese cooking definitely seems to be on the fast side though, despite the long and extensive prep'.
Depends on the place. You can always ask staff if the service charge goes to them or is taken by management.
American kids have gotten too smart for the Spelling Bee
I agree, though would add that it's not even so much about the exhaustion as it is that being 100% open all the time can also lead to intentionally misleading data being processed.

For example, I would assume most people have been the third party in a situation where two friends are in an argument and want someone to rule on it. Maybe it's just my friends that are that petty, but I end up in this position a lot. As they present it, often I just don't have enough information to make an informed decision; the tidbits they present me are quite obviously the well fought over talking points they devised and I have neither the background nor the education to intelligently comment on the argument most of the time. Relying on my gut sometimes is necessary (issues of emotion, what should person A do, etc), but it's not always the best option.

We can't be 100% ready and educated for every single issue. In fact, constantly changing the issue and bringing up others is a rather devious debate tactic, and also an informal fallacy. It's deceptive, and it can give the illusion that a position is stronger than it really is simply because it was prepared sooner and has more information immediately available than the opposition is able to bring up at that time. It seems strong at first glance, but it doesn't always hold up under scrutiny, but with constantly shifting topics and arguments, it's not possible to give such proper scrutiny.

Avoidance isn't just about self-preservation, it's about being able to rationally interpret the information you are presented. It's why I often find debates online so difficult because the discussion can change so rapidly that it's not possible to give claims reasonable treatment. It's also sometimes why I find it fascinating, because the rapid flow of information is also very addictive.
You forgot Space key which is by far the best way when reading long texts.
Nvidia  and PACCAR Developing Self-Driving Trucks
The 40% discount is not really a discount for existing customers. It's a discount for an annual commitment, it seems.
Lyft offers in-app tipping, well after getting out of the car. Convenience is what people want, and Lyft makes it convenient to tip the driver whereas Uber makes it convenient to not tip the driver.

I'm amazed so many people still use Uber, not even because of the rotten company culture and business practices, but because of the user experience.
Did they support running Windows 7 on these machines before? If so, denying people the support they paid for is a class action lawsuit waiting to happen.
I was thinking about this recently when I filed my taxes.

Maybe if they provided some kind of itemized receipt? "You paid $x in taxes. This was distributed as $y to infrastructure, $z to education, $w to defense" etc.
By telling/convincing them that this will work/is medically approved etc.
The next question is whether or not the doctors doing this are being jailed, and if not, how to best introduce legal changes so it will lead to jail time if someone tries something similar again in the future.
Learn the Art of Customer Acquisition
I recommend a book only recently I could read, the classic: 1984 by George Orwell

Every citizen should read it, on my opinion.
Chronic Loneliness Is a Modern-Day Epidemic (2016)
This doesn't really help you with updates at all, only with initial mounting. In React, elements describe the current tree, and React figures out how to apply changes between the trees.
> "We probably should have just [modified the Model S]"

This is one thing I really don't get about Tesla. Why haven't they made an estate-ish version of the Model S? I'm thinking along the lines of the Mercedes CLS Shooting Brake:

http://images.car.bauercdn.com/upload/28771/images/1752x1168...

It's a very nice looking car, and adds that little bit of luggage practicality that the Model S is missing. The aerodynamics aren't much worse than the coupe, so range shouldn't suffer very much.
> Last time I updated my nVidia video drivers, I found I had to create an account with nVidia to get into the configuration options of the driver on my machine.

I see a lot of people with this confusion between the NVIDIA Control Panel and GeForce Experience.

You do not need to create an account of any kind to use the NVIDIA Driver Control Panel. You never did and hopefully you never will.

GeForce Experience on the other hand you do need an account now, but it's also completely unnecessary (and buggy) software. You don't need it at all unless for some reason you want Shadowplay (recording) or can't be bothered to set game graphics settings yourself and want GFE to 'optimise' the experience for you.
GitLab CI and gitlab-multi-runner is nice and all (really!) but Travis CI provides (free) OS X runners, which is mandatory for some projects.
Hah! Yeah, this doesn't bother people using the site.
I've been increasingly using taxis, especially at airports because uber and lyft are turning into gypsy cabs. Forgetting that it often takes longer to get an uber, the number of times I've been pitched on some perfume or religious thing is really skyrocketing.

Everyone has a side hustle to their side hustle now and it's generally concerning as an indicator of the economy.
Don't worry, it will all implode eventually.
Note that the linked paper is a mathematics exam that applies to the entire faculty (not just CS). In addition to that exam, one must also take a CS-specific exam. It seems that the Summer and Winter exams are rather different:

August 2015: http://www.i.u-tokyo.ac.jp/edu/course/cs/pdf/2016computer-s....

February 2016: http://www.i.u-tokyo.ac.jp/edu/course/cs/pdf/2016computer-w....

Edit: Looking at the exam guide [0], it seems that it's only if you want to sit the exam in the Summer that you must also take the separate maths exam; the Winter CS paper already includes maths questions so there is no separate maths exam.

[0] http://www.i.u-tokyo.ac.jp/edu/course/cs/pdf/H29csguide_e.pd...
Lyft is not available where I live, Uber is.
Another book I recommend: On the shortness of life, by Seneca

I's life changing, it teaches you the importance to do not waste our most precious finite resource.
I often thought that the system should be "thumbs down"/"neutral"/"thumbs up" and if you give a thumbs up it prompts to tip, if you give a "thumbs down" it doesn't let you clear out unless you give at least one reason.

On the other hand even with the uneven distribution of ratings, now median driver is of lower quality, you can really tell the difference between a 5.0 (really 4.95+ driver) and 4.8 driver; and a 4.8 driver and a 4.5-4.6 driver. I was a perfect 5.0 (100 consecutive perfect ratings) only twice during my career as a driver, but damn it felt good. Usually I hovered around 4.92-4.97, which can look like a 5.0 to the passenger.

There is an interesting feedback effect that a lot of drivers don't understand. If a passenger sees that your rating is lower, then they will be more in tuned to the defects in the experience you deliver; If they see that your rating is higher, they will overlook some of the problems. Moreover, if you see that your rating is low, you're more likely to have a generally negative disposition and project an attitude that is going to make it harder to get back up there. Psychological management is a key part of the driver experience. I once counseled a young driver who was distraught that he was a 4.6 average driver, leading to a generally negative attitude to his passengers (and probably some good passengers saw his score and cancelled on him too) and I told him that he needed to either break out of a negative cycle or quit driving.
Not leaving a footprint? I remember when this was on the local news - he had a helluva mess in the hobo camp he was living in. It's also not exactly a big secret that he was in the area stealing shit all those years - people knew, and some of them left stuff out for him.
There was also that arch Linux debacle, where users with a certain motherboard mounted the uefi partition with write permission. Some motherboards were bricked that way.
‘Harmless’ painkillers associated with increased risk of cardiac arrest
*The third time around

FTFY.

The second time around is usually so troubled by politics that there's an entire Wikipedia page about the topic of the second-version syndrome.

And WebASM is in every way inferior to Java still.
Startup Law Glossary
As a rule of thumb, relativistic effects are very small below 5-10% of the speed of light. You may still need to calculate them if you want very high precision, like for GPS.
See also [1], for a description of why erasing flash memory can't be done reliably with just "dd".

Also, I find it disappointing that the GNU "shred" utility [2] apparently does not work as expected.

[1] http://www.noah.org/wiki/Dd_-_Destroyer_of_Disks#caveat_on_F...

[2] https://www.gnu.org/software/coreutils/manual/html_node/shre...
Location: United Kingdom

Remote: Yes

Willing to relocate: No

Technologies: HTML5, SASS/LESS/CSS, Python, JavaScript(ECMA6/7), NodeJS, AngularJS, ExpressJS, Restify, Swagger, MongoDB, PostgreSQL, Redis, RabbitMQ, Mocha, Chai, Sinon, Karma, AVA, Jest, Git, Mercurial, Docker, Vagrant, AWS, Heroku, JIRA, Trello, Jenkins

Résumé/CV: https://view.attach.io/SkfIhyOix

Email: kontakt@marcinmrotek.pl

=======================

Twitter: http://twitter.com/marcinmrotek

Github: https://github.com/Abdizriel

LinkedIn: https://www.linkedin.com/in/marcinmrotek/
Your tax dollar don't pay for $y, $z or $w. You pay for the national debt mostly at this point. The government overspends and gets its money either from debt or from over printing. Even if top 10 of fortune 500 paid 100% taxes, it would still not cover spending. Just saying.
While not bad projects. The proprietary nature of the company (open source unfriendly) has taken a toll.
> In a sane implementation of Option<T>, there's no space premium for using it over T. The compiler compiles Some<T> to a pointer to T, and it compiles None to null. Swift, Rust, and Haskell all do this; I don't know Scala that well, but I'd imagine it would too unless there's some edge case in Scala<->Java interop.

This is wrong for Scala, and I think it's wrong for the other cases.

> Kotlin's nullable types and Option are exactly the same thing

Except that it doesn't nest properly. Which means it's not compositional: if you write code that works with T?, it will have surprising behaviour if someone ever passes a nullable type for T. And you can't abstract over it, though that's a more general problem of Kotlin not having HKT.

> Also, I almost never use null in idiomatic Kotlin programming.

How do you represent optionality then? I use Option and None pretty often in idiomatic Scala programming (and when I don't it's usually because I'm using a richer variant on the same thing e.g. Either or a custom sum type appropriate to the business requirements) - there's a reason it's such a common example, it comes up in realistic problems all the time.
You might enjoy the book "how to be invisible" by J. J. Luna
No usually

You did that on purpose ;)
WriteAndSet's screenshots being from OS/2 also doesn't fill me with positive expectations.
And yet there is still no way in CSS to, say, freeze a table header and make the body scrollable. Or freeze one column and make the rest scrollable.

For all its advances, the web platform is still incredibly primitive in some areas.
I mostly agree, however I don't like the idea of making code easy for novices to understand as a primary goal.
That's because may imply not using some powerful constructs out of fear they may not be well understood by beginners. I think it is better to imagine that the next person reading your code will be better than you and that he is going to judge you.
So don't hold back, use your clever tricks, but make sure you use them correctly otherwise you will look like a fool.

Also, never say never. All non-deprecated features of the language can be used : goto, inline, macros, you name it. You just need to know how to use them wisely.
Fair, and in Scandinavia you'll find a similarly huge selection of fish pastes, or in Sri Lanka of tea. But having been to many countries in the world, I don't think even the largest grocery store I've been to outside of the US is the size of even a normal suburban Giant.
Webpages that mess with scroll behaviour invariably annoy me as much as those that autoplay videos, open popups, etc. I just instinctively ctrl-w that shit immediately.