skysight-inc/HackerNews huggingface dataset:
It has a relatively simple (and lacking) syntax, but a language is much more than its syntax. Compare to Python, Go or Rust and you'll see the following:

1. Infrastructure - C has no package repository, no standard build system. When you receive a C program, you need to know a dozen of build systems (autoconf + automake? scons? qmake?) and ways of getting packages (git? distro packages? some obscure website?) that sometimes get in each other's way. As a side effect, build process isn't properly documented. Probably the best we have are CI files explaining the environment and maybe Dockerfiles if you're lucky.

2. Standardization - yeah, there are standards, but
they're actually ignored. There's lots of comments stories on HN about how C committee specified things that are unrealistic or outright impossible. There's lots of important subjects that aren't standardized at all.

3. Intuitiveness - one trivial example is undefined behavior. Due to existence of legacy code, pretty much all compilers default to letting through expressions that end up leading to UB. Ultimately you can't really reason about your code without also knowing how it was compiled.

4. Safety - selling point of Rust and hate it as much as you want, but C makes it way too easy to shoot yourself in the foot for no apparent reason. Do you really expect your student to learn all secrets of OS/C memory allocation plus spend his first half a dozen of hours of debugging because he misused a pointer? In university, it's sometimes easier to rewrite the program than fix the bug if you're only getting started with pointers. Backtraces are useless if your stack is corrupt.

There are probably more reasons why it's a terrible idea, but those are just a few off the top of my head. Consider some of those posters as of examples of C design failures:

http://natashenka.ca/posters/
As a manager I've worked with many recruiters.

One called me offering a candidate. 5min later he made calls to my team to offer them a new job.
I've not delved into the code, but typically a lot of APIs when called without any parameters can return an XML page containing the schema of what it can do. So yes, it's totally plausible, that if you already knew how Office 365 APIs worked, all you needed was the name of the unknown API.
What a ridiculous premise.

> Should every programmer learn C as their first programming language?
> ...
> It depend on what are your position in Web development, are you a front-end web developer? Or you are a back-end?

If this is your first programming language, why are you worried about being a front-end or back-end developer at all?

If you're learning programming for the sake of learning programming, we can have a conversation about what your first language should be, and we'll worry about precise career choices later. If you're learning to fill a position, it's not your choice to make.
There was this story on bitcoin, maybe on Ars, in which they interviewed a cleaning lady who'd put just about her entire life savings into the coin when it was near, what we now realize, its peak.

Since then, bitcoin's fallen precipitously and I've personally felt plenty of schadenfreude about it, but... as with nearly every financial scam, it is rarely those who deserve it who suffer the worst consequences.
1. Create good product.

2. Gain market share.

3. Gradually make product worse without losing market share.

4. Make product good again with giant price increase.

5. PROFIT!

Apple is stuck on step 3. Either they don't know that step 4 exists, or they think they can squeeze more juice out of step 3, or they don't have the technical ability to do step 4.
Words means different things to different people.

What is bad though is when people are redefining words to fit their story.

Did you mean that people are not invisible?
You do in Youth Hostels in Belgium, certainly.
I expect senior fullstack developers to have senior level of knowledge and expertise in backend and frontend. I don't expect senior level expertise from junior full-stack developers.

For that matter if you were a senior full-stack developer I would expect you to be able to build a production level frontend as well as a production level backend (though maybe not operation-wise, I.E. deployments and configuration, depending on your background).

That still doesn't preclude having expertise. For instance I wouldn't expect a full-stack developer to know how browser rendering works or the difference between layout and paint events (but I would expect him to know to never access an element's size during an animation) - that's someone with an expertise in front-end performance.

But anyway that's not what I gathered from the article, to me it purports that back-end developers shouldn't do front-end work.
Considering how many times, according to the media, Apple has been working on its own downfall, I wonder if they actually meant "upfall" and my entire life has been a lie.
I have had to do it in Belgium as well, so I am not quite sure it’s entirely limited to Scandinavia. I have also stayed in hostels in several countries and only had to pay once though so can at least offer that it is pretty rare in non-Scandinavian countries.
This is what you see from a consumer perspective. But from a company perspective, going thinner as way more benefits. Apple invested a lot in R&D to make things thinner, but when it comes to manufacturing products in mass, Apple is actually making more and more money year after year by building a thinner version of a model. They’re saving money (cost of materials) while increasing or maintenaing their selling price. It’s a win for them.
Ok, I generated a file similar to your test case

>>> with open('data.txt', 'w') as f:
... for l in string.ascii_uppercase:
... for x in range(0, random.randint(1, 100000)):
... f.write('Key {}\t{}\n'.format(l, random.randint(0, 100)))

With this script:

import sys

old_key = total = 0
for line in sys.stdin:
key, value = line.split('\t')
if old_key != key:
old_key = key
total = 0
print(key, value, end="")
total += int(value)

I get:

$ <data.txt time python3 test.py
Key A 2
Key B 87
Key C 58
Key D 64
Key E 29
Key F 25
Key G 2
Key H 74
Key I 17
Key J 37
Key K 97
Key L 77
Key M 19
Key N 74
Key O 33
Key P 61
Key Q 67
Key R 23
Key S 4
Key T 70
Key U 25
Key V 15
Key W 35
Key X 17
Key Y 31
Key Z 18
1.03user 0.01system 0:01.05elapsed 99%CPU (0avgtext+0avgdata 9564maxresident)k
0inputs+0outputs (0major+1100minor)pagefaults 0swaps

But I can't manage to get the awk version working. It only prints one line on Ubuntu 16.04:

$ <data.txt awk -f ./countmerge.awk
Key 0

So I can't check it.
> Kind of reminds me of assembly programmers that thought C wasn't for l33t 10xx pwner programmers.

It's funny because this the same attitude C/C++ programmers have towards developers using other languages now...
If they offered you a job after technical evaluations, they think you're capable of the work. Don't underestimate yourself.
I would like to subscribe to your newsletter. These are both new to me.
I just wrote that you don't have to do it, provided you take it out often enough or don't mind smell.

Useless outrage.
I don't do new things in git, but since we transitioned, I spend about 3 to 4 times longer wrestling the VCS than with anything that I have used previously. This is merely for routine stuff, because it takes more steps
Sorry for the worrying note about the experimental feature. One issue when working in open source is that contributors don't have control over the release cycle, and review requires smaller series than having the feature be delivered all at once.

These interactions with grafts, replace-objects, and shallow clones are one reason 2.18 does not create and manage this file automatically. The commit-graph file works by representing the commit relationships in a new file, and if that file exists, we treat that as the truth. The commit grafts, replace-objects, and shallow clones use another set of special files to track commits whose parents have been modified in special ways. If you would like to see our progress on integrating these features together, please see this thread on the Git mailing list: https://public-inbox.org/git/20180531174024.124488-1-dstolee...
Indeed. These aren't very complicated subjects, it's easy enough to learn and doesn't require full-time work to become an expert with (and the same goes for backend web development), it merely requires constant practice and dealing with production.
Unfortunately this is very true. For medical devices, you need to mostly use certified parts. Need a touchscreen? It needs to withstand very strong disinfectants and maybe you have hard requirements for leakage currents. There are 3 possible vendors left. None of them has drivers for systems that would be far better than windows xy.

Vendors probably think that all their customers use windows anyway for non-discernible reasons.
Isn't MD for..like.. medical doctors ?

If he's an MD but without a medical degree (which I guess is the case), then what's the difference betweeen MD, PHD or 'professor' ??
I got a job in a non-technical company that needed someone in a somewhat-technical role. Then took initiative to make my own role more technical and drive the company forward technically (which they liked because it opened up opportunities for them).

Got a title change that reflected where I wanted to be going with my career. Then I was able to apply to fully technical jobs and point to a few years of experience.
You can't. US cities are uniformly car-centric. The exceptions to the rule are too expensive to buy property in anywhere close to city center.

Aside: I lived (and grew up) in several small-to-medium sized US cities prior to settling in Berlin. None come close to offering a similar range of cultural infrastructure to the typical medium-size European city, and quality of life is totally incomparable - again in Europe's favor.
Facebook Payout in Oculus Copyright Spat Cut to $250M
> We expect this for our servers

HPE, it seems, started a policy of requiring licenses to upgrade their BIOSes. :-(
From my opinion: Getting started with Tensor Flow, and having a model designed within a day and training within another is also possible.
This mostly depends on your model and your data, and (imho) not on the framework of choice.

For all, Keras/PyTorch/Tensorflow, you'll need to learn the API - but if you have any ML background, that should be straight forward.
I disagree. I have used Django extensively. The ORM handles raw SQL queries, but which is great when you need something beyond the capabilities of ORM, but you loose a lot as well when you go that route.

Pagination and sorting are pretty easy additions when you retrieve data using the ORM in the standard way, and now you need to add extra code to handle those specifically. I don't think you can use the Django admin with raw SQL (I never tried, but it doens't make too much sense, as it basically generates a set of views per table). Model methods don't make sense using SQL queries.

You should be able to write SQL if you want to be able to use the ORM effectively and I am certainly glad I knew it well before started using Django's ORM.
I think I may have lost some people - http://www.catb.org/jargon/html/N/nasal-demons.html
> yeah, there are standards, but they're actually ignored. There's lots of comments stories on HN about how C committee specified things that are unrealistic or outright impossible.

Any examples? It sounds ridiculous, perhaps you were speaking about C++? But then again I can't think of anything but "export templates" that were finally dropped from the standard.
It's not a cheatsheet. It's 83 page pdf/web page.

Low level python intro with examples.
New Features and Fixes We Got with the Latest React Releases
We are working to make this run automatically in the future. https://public-inbox.org/git/20180627132447.142473-1-dstolee...

You don't need to run this with every commit, but maybe once after a big fetch or right after a new clone.
soon as the word "Should" is used, you know the answer to the question. There is no one true path.

Is C worthwhile learning? sure. Is it worthwhile learning as a first programming language? maybe... what do you want to do?

I've done 30+ years of C programming ( interleaved with other languages ). I've used it mainly for embedded systems, and it works fine. It's easy to go wrong with it and you need to employ a lot of defensive techniques, but with experience, it's good. However it's not a very good language to express abstractions in. You have to be very aware when trying to build a modular systems. I virtually never use it outside of embedded systems as I think other languages work out better. But that's my opinion based on tradeoffs I want to make. Other people make different choices.

The only advice I'd give is try different languages, spend the time getting good at a few, and be very good/productive at at least one.
Completely agree with the OP. Had the experience of learning TF first, then switching to PyTorch. Cannot recommend enough.
The Art of the Non-Apology
Counter-point, I haven't had a single Apple keyboard fail on me yet (although I do not own the new Macbook, so I don't have the dreadful one) and my Matias broke after just 1 year.
Whatever, man. Maybe it was not totally related. Agreed. Maybe I had a bad day. It started as a single line that wasn't even the point of my comment. Ok?
Yes, let's pretend that Apple and Google infrastructure is provided 'at cost' after you've paid your 30%.
While we are at it, which framework is the easiest to tweak at the low-level, e.g. create modified LSTMs etc ?
Ask HN: I want to do “deep work” but I don't know what. I'm stuck
I completely get the benefits and necessity of "deep work" (as described in the book of the same name).

But I have a huge problem finding that work. I'm constantly changing subjects and never get anywhere. I'm stuck and desperate.

I think that "what to work on" is a much bigger problem than the "how". Yes, I understand the need to focus, to niche, to do the hard work and so on. But how to find such work?

My suspicion is that luck plays (again) a mucher bigger part in this than people like to admit.

How did you find your "deep work"?
That's what I did for my bachelor's thesis. I didn't take any advanced Maths classes, so I had to learn everything from scratch. Keras helped me to build an intuition for neural networks and made me more interested in learning about the formulas and how it works with TensorFlow in the background. I really enjoyed learning with this top-down approach.
I use Doctrine2 in a number of applications. I have a love/hate relationship with it (mostly through fitting it to legacy database schemas) but it's not slow to put/retrieve data from the database. What's slower is the object mapping (hydration); and if you map database rows and relations into objects yourself then your overhead is going to be similar, just labelled as 'application' overhead rather than 'ORM' overhead.

The 10x slowdown I noticed was moving from native database functions (PHP's PDO or MySQLi extensions) to Doctrine2's underlying database abstraction layer, DBAL. Doing a prepared query (with the same SQL) in the native extension was 10x faster than DBAL, which uses the native extension under the wrapper. I never got to why - DBAL is doing more (fair enough) but not enough for this amount of slowdown.
> Microsoft Surface Bluetooth mouse and keyboard don't work anymore after an idle period of maybe 10 minutes

Go into device manager and disable their power saving settings. I had disconnection issues once or twice a week with my MS Designer Mouse and this fixed it.
I agree with most of what you said. I'm not saying capitalism is a mysterious force we can't understand or control, just that it has emergent behavior that is more powerful than any individual directive that can be handed down. Look for another post further down describing this very well.

Monarchy is based on social hierarchy, which is literally a force of nature. So there's that.

It's easy for you to not steal, and that's great. Just remember to credit your parents who raised you, a healthy environment of anyone that you grew up in, and the fortune not to be catastrophically impoverished at a young age. I'm not saying your environment could inside you to steal now (I don't know you), but I assure you, a childhood where you were raised in a lawless gang would not have gifted you the same set of moral values.
Assembly is not that difficult if you pick a suitable target and environment - possibly a virtualised one for early learning. Make sure you can single-step cleanly. And this is really how computers "think", while C is full of traps that fall between the language abstraction and the compiled realisation.

(The book "C traps and pitfalls" remains one of the most instructive programming books I've ever read, and more languages could do with one)
I've always liked how K8S release notes come with a series of blog posts doing a deep dive into each feature. But when I think back on it, because they come out after the release announcement I end up forgetting about them until the next release.

I wonder if releasing the posts in the period leading up to the release would be better, or if that would just lead to artificial delays on the actual release.
> The approach involves using electricity to alter the properties of the film, so that it changes from acting more like a “black body” – which absorbs and emits electromagnetic radiation but does not reflect it – to becoming more like a metal, which reflects radiation but is not good at absorbing or emitting it.

Could this be used for thermal management? E.g. reflect during the day, radiate during night?
I think adopting USB-C is fine, but going USB-C only was too early.
Yes, I think so. As a long-term hobbyist programming since the 80s, I happened to stumble over better languages very early and for this reason never really learned the intricacies of C.

It turns out, in retrospective, that my own snubbiness of preferring Pascal, Modula, Ada, Realbasic, CommonLisp, Racket, Xlisp, and whatnot to C probably got more in my way in the long run than it helped. Even though I do understand low-level details like memory management and C structures, I'm still not proficient with reading arbitrary C code, e.g. with a lot of bit-twiddling in it, and header files, understanding the pre-processor, and so on. However, no matter which language you use daily you really need to have these skills for writing glue code to C libraries, glue code to system APIs, and so forth.

There is just no way around C. So yes, learn C first or at least early, and then whatever high level language you need.
So you have to use sharding because your databases have limited capacity. But you can just join in the app, because the app have unlimited memory?
Show HN: Exercise Bands for Legs Butt Workout at Home or Gym, Set of 5
I like your reasoning - as an old Smalltalk hand I'd love to replace Python with Smalltalk, but Smalltalk's shrinking ecosystem is making it too niche
Show HN: Ghostwheel – easy spec, side effect detection and tracing for Clojure
So this goes off on a tangent but I feel it relates to noncentrality [0]. Fokas has a PhD in maths. Being an MD or having gotten an MD 40 years ago is clearly entirely non-central to his career. Calling him Mathematician-MD seems like it is meant to make him seem a lesser mathematician, e.g. by insinuating that this is just something he does part time, and that he can hence be taken less seriously.

I don't know what the poster meant by suggesting 'Mathematician-MD', but it reads weirdly to me for that reason. It's highlighting an attribute of a person that is entirely unrelated to his career or this article. Why if not to denigrate him? The title should be changed to neutrally reflect his position.

https://www.lesswrong.com/posts/yCWPkLi8wJvewPbEp/the-noncen...
ZTE and China's 'Confucius Institute' may be operating international spy network
Completely agree. I've contracted in London for 3 years. London recruiters are the sleaziest assholes I’ve ever met, it’s like Wolf of Wallstreet.
I thought Taiwan believed themselves to be China. As the govt. in exile.
I think he's annoyed that lots of people are trying to re-implement the wheel using a poor AJAX based solution when an older solution is better, but no one likes using anything "old".
Fellow Clojurians, I present to you, Ghostwheel.

It makes the writing, reading, refactoring, testing, instrumentation and stubbing of function specs easy; introduces a concise syntax for inline fspec definitions; helps keep track of side effects; and makes general debugging almost fun, with full evaluation tracing of function I/O, local bindings and all threading macros.

It's Alpha software and the Clojure port, while essentially functional, still needs some love to achieve full feature parity with ClojureScript – most prominently missing at the moment is the tracing functionality.

To steal a quote from Nathan Marz' Specter in a blatant attempt at a so far likely undeserved comparison to its indispensability, I like to think of Ghostwheel as clojure.spec's missing piece. It has become quite essential to me and I hope that you will find it useful too.

Feedback, PRs, and issue reports are welcome and much appreciated.

Do your thing, HN.
If you inspect [0], you'll find that his MD was, in fact, in medicine. What came before that, though, was a PhD in applied math from Caltech, and that immediately after receiving his MD he became chair of Clarkson University's Math and Computer Science department.

Mentioning his MD is a distraction and, as the previous poster commented, suggests that he's something of an amateur. This is very far from the case.

[0] http://www.damtp.cam.ac.uk/user/tf227/
I did this once but this won't save you from forced updates keeping your laptop alive (and hot, and at risk of corruption if it happens when you have to fly/drive somewhere and you weren't expecting an update), plus once Windows took issue with the state of the disk I was sharing between it and Linux (NTFS format) and did a chkdsk which deleted most of the files from it. That was the last time I ran any Microsoft code outside of a VM (Or my employer's kit).
Here's a product for you: https://www.youtube.com/watch?v=nzjr3kCbJqc

Not crap, just different.
Why wouldn't you include health care costs in inflation figures? Seems to be something that most people have to pay one way or another?
I don't believe I would ever discourage anyone from using any particular framework. The skills learnt from one are highly transferable, so it doesn't matter too much which framework you start with.

Also, with eager execution, Tensorflow has become much more accessible to new users.

Having said that, the world would likely be a better place if everyone just used PyTorch :)
Flats are good, because they increase density. The UK has a weird cultural aversion to flats, so we have vast sprawling suburbs full of tiny houses with tiny gardens; British cities have noticeably less green space than in most of the rest of Europe. Residents in flats might not have a private garden, but they usually have a balcony, good views from their windows and access to a communal garden. New-build developments in Britain tend to feel stiflingly claustrophobic, because the developers have crammed in as many houses as the planners will allow - you might live in a detached house, but you could lean out of your bedroom window and touch your neighbour's house.

Renting is fine if your rental market is well regulated. The UK has very laissez-faire rental laws, so most tenants are desperate to own a home; Germany has very strict tenure laws, so most people are perfectly happy to keep renting.