skysight-inc/HackerNews huggingface dataset:
> A PhD is one of the few opportunities in academia to do true, unconstrained, open ended research.

No, that's what you do after you've got tenure.
C++ compile times are, in large part, are due to header files. The language moves all sorts of implementation details like class definitions and private variables and templates and inline functions.
Traditionally in CS, concurrent != parallel. If you have a blocking operation (say a database read) your program can do something else while it waits for a response from the DB (this gives you pseudo-parallelism). That is the concurrency that evented frameworks like Node or EventMachine are usually associated with.
Thanks :) Its all AngularJS + Bootstrap, really is amazing what you can build with those two frameworks. Ace editor is also a favourite of ours.
You don't check how many times the signal occured - you write your code so that it doesn't matter how many times the signal occured.

For example, when you're handling a SIGCHLD you don't assume exactly one child has exited - you loop around calling waitpid() with WNOHANG and handle every child that's exited.
All of the PhD students I know are constantly under "publish or perish" pressure, in addition to the open-ended research work--which usually is only as open as their advisor's pedigree and experience will allow.

Industry seems to be much easier to get crazy ideas done in.
> It's just that new programs often have more bugs in them...

That sure is a broad brush that you are using.
True, but that's an argument to move on to other, less popular (for now) statically typed languages which are better than C and have REPLs.

We could debate whether it's wise to move on from C (I think in many situations it is), whether it's likely there will be more industry adoption of $MY_FAVORITE_LANGUAGE, but that's a different debate.

Also, if we keep favoring C (or Java, or whatever) because they are mainstream, then other languages will never become mainstream, and we will be stuck forever coding in horrible languages. Who wants that?
I thought this was why they invented 24 Hour Fitness? $35/mo for all the showers you can take.
This BF VPN Offer Is Scarily.Sexy
Google "haskell quickcheck".
BlackBerry's turnaround relies on a secret weapon: Its own network
How sensors and IoT/IoE can improve learning
DISCOURSE I AM LOOKING AT YOU. In a real forum I'd open pages 1-n in tabs and read them on PT. On discourse I have to open the same page N times and scroll to a spread of points down the page.
Good document and read. Got a question about using separate CDNs for image serving. The initial HTTP connection to the host takes a while, especially with a long latency for some countries if there's no close server to the user so by splitting it up into separate image hosting servers, that may actually cause longer... love to hear thoughts on this as that's always been my thoughts?
Technically you are correct: "C is not insecure". In the same way as "English is not offensive"

However programs written in C may or may not be insecure.

Of those programs you would expect a compiler or interpreter, that has been tested in the wild on millions of programs, and so you are more likely to find the security bugs. Also we hope these programs are written by very talented engineers.

On the other hand Joe Enterprise hacking up a greenfield web service for the first time in C ... more likely to have security bugs.

If Joe Enterprise moves from C to Java. Less likely to have security bugs.
I want to consider most gcc C extensions in one form or another to see if they match and don't overlap with the Go heritage.
There is no best way to write a PhD thesis. The best PhD thesis I have ever read is a cohesive whole with only a couple of < 5 page papers to be found related to it by the author (everyone should check it out, it is really good!):

https://llk.media.mit.edu/papers/ch-phd.pdf

You can tell the author was really in to what he was doing and expressing himself; it was not just a rush to graduate (my own dissertation is boring by comparison). Sure, going the "staple the papers/articles together" approach is safer and common at some popular schools (e.g. UCB), but is it really better for humanity and the advancement of science?

As a finished-my-phd-long-ago researcher, I personally pace myself at publishing one good article a year (I might work on others in collaboration, but nowhere near being the primary author). Producing just for the sake of producing is a big problem in academia, and seriously decreases the signal-to-noise ratio.
One important point is that once you instantiate like this (def a (ABC. "Roger")) the "name" property is immutable by default, which is different from most OOP languages where you'd have to mark the property as "final" or something like that. If you really need mutable properties you'd have to use deftype instead of defrecord and mark the property with a the proper hint as described here https://clojuredocs.org/clojure.core/deftype . In most cases, unless you're building a low level data structure, mutable properties are not needed; they are harder to reason about and much harder to get right in the face of concurrency and multiple threads.
I think writing a C compiler in C is probably the most effective way of learning pure C, although probably not the most efficient. You don't even need to generate assembly code, you can just compile to C itself or some other language.
How about Paul Valery in around 1900:

"Just as water, gas, and electricity are brought into our houses from far off to satisfy our needs in response to a minimal effort, so we shall be supplied with visual or auditory images, which will appear and disappear at a simple movement of the hand, hardly more than a sign."

Sure, it doesn't use the language and notion of the computer, but how important is computing per se to 95% of Internet users?
I'm generally with you, but preferred XP with the Classic theme, and stupid sidebars disabled. It had a quite a few improvements over 2k.

I miss real menus and configurable tool bars. I've had to piece together a Frankenstien of gnome-classic and xfce4 tools to almost approximate how good XP was 15 years ago. And some parts of it still weren't as good as the classic Mac OS long before that.

GUIs are going backwards, sniff.
Summary: about a decade ago or so, Ertl ran into some regressions in GCC uncovered by benchmarking his Forth implementation, logged bugs for them, and they were fixed.

Some of them were in obscure GCC extensions, like notably computed goto. The compiler started generating code involving branches to a common instruction that does the actual indirect jump, instead of just doing that indirect jump.

It's easy to understand how a performance regression affecting such a feature can slip through, if the behavior is otherwise correct.

It doesn't mean that the GCC sky is falling, as all the trolling in that newsgroup would have you believe.
Maybe just reimplement some piece of existing software you wrote with a C version? I want to port a small node-based API to C in the future, just to see what it takes.
John Wick
True, but your thesis is your best opportunity to express yourself in long form writing, a chance you might not ever get again unless you decide to write a book. You should at least care about your thesis.
Just putting this from the official FAQ, for the record.

Robert Griesemer, Rob Pike and Ken Thompson started
sketching the goals for a new language on the white board
on September 21, 2007. Within a few days the goals had
settled into a plan to do something and a fair idea of what
it would be. Design continued part-time in parallel with
unrelated work. By January 2008, Ken had started work on a
compiler with which to explore ideas; it generated C code
as its output. By mid-year the language had become a
full-time project and had settled enough to attempt a
production compiler.
ES6: no me, no bind.

element.addEventListener('click', e => this.foo(), false);
Pretty dangerous, but at least my browser corrects it in the address bar.
I think it is easier to explain saying that ThinApp and Spoon use hooks while Docker uses kernel support isolation. App-V and Symantec Workspace Virtualization have also filtering drivers but they don't go as far in the kernel as LXC.

You can clone ThinApp behavior relatively in short time using hooking libraries.
Hefner is not really programming the machine in Lisp. The developer appears to have created a 6502 assembler as a "domain specific language" in Lisp, and then is programming the machine in that notation. This could have tremendous advantages over using some clunky conventional assembler; it can likely be made smarter, with less work. You could probably use his tool without knowing Lisp, if it were suitably packaged or documented. (But not without knowing 6502 machine language, in all likelihood!)

Knowing Lisp would help you easily understand and extend the assembler, so you could do things like create yourself some badly needed program organization abstractions and then use them. Otherwise you could just ask the author, or people in a mailing list. "Hey I would like a feature whereby if I write (foo bar) in the code, such and such an effect takes place in the generation of the 6502 image."
They are very tolerant about religion until the son introduces his non-Hindu girlfriend to the family. Somehow the tolerance seems to disappear.
Yeah, Arthur C Clark had some doozies. The bio-engineered monkeys as servants was a good one. :) http://mentalfloss.com/article/57157/arthur-c-clarke-predict...
High-level assemblers can greatly reduce the tedium of programming for older systems. Just a small amount of structure -- loops, conditionals, symbolic definitions -- improves assembly immensely.

Here's one dev's experiences making a GTA-like game for the NES, using his own high level assembler: https://www.youtube.com/watch?v=Hvx4xXhZMrU

Here's one for CHIP8: http://johnearnest.github.io/Octo/
> Would you walk away from a check for $11,000/month forever?

Nope, I wouldn't. Like he said in the article:

First-time founders care most about their exit. Every time after that, you focus on legacy.

With cash problems forever off the table, it'd be much easier for me to start more businesses... :)

(Tellingly, author Alex Turnbull's first business was also acquired, by Constant Contact.)
He explicitly says that we would not have to live in cities, etc. Remote work was exactly what he was implying. He does not have to use that exact phrase.
> One might assume he is using Haskell or similar, [...]

All the links in the comment were showing off Java.
Would you please elaborate on this part "...his highly-symbolic visual language demonstrates what I understand as a telltale lack of nuance common to those suffering from certain mental illnesses, but the impressive part to me is that he really maximizes it"? I'm really interested in the intersection of mental health issues with various fields (I've commented elsewhere in this thread), and this is the first time I hear a review in the context of UX+{non-NeuroTypical}.

While we're at it, by "flow", do you happen to mean flow in a "workflow zen" sense [yes, I'm aware that the word zen has been abused to death :) ] know ?

Thanks!
Python does the right thing under the hood for you. The signal handler you register in Python isn't run in the dangerous context. There's an internal signal handler which just tells the interpreter a signal happened and when control is returned back to the interpreter outside of the signal handler it knows what to do:

https://hg.python.org/cpython/file/c7d45da654ee/Modules/sign...
It will soon be possible, for instance, for a business man in New York to dictate instructions and have them appear instantly in type in London or elsewhere. He will be able to call up from his desk and talk with any telephone subscriber in the world. It will only be necessary to carry an inexpensive instrument not bigger than a watch, which will enable its bearer to hear anywhere on sea or land for distances of thousands of miles. One may listen or transmit speech or song to the uttermost parts of the world. In the same way any kind of picture, drawing, or print can be transferred from on place to another. It will be possible to operate millions of such instruments from a single station. Thus it will be a simple matter to keep the uttermost parts of the world in instant tough with each other. The song of a great singer, the speech of a political leader, the sermon of a great divine, the lecture of a man of science may thus be delivered to an audience scattered all over the world.

- Tesla, 1909

http://books.google.co.uk/books?id=nN8DAAAAMBAJ&lpg=PA476&vq...

http://www.teslasociety.com/pictures/teslatower/teslatower3....

He also said some nice things about communication devices "in your vest pocket," but I can't find it.
Simple probability and sports
It's my first experience on Medium. I hope community can help me to improve my skills.
[flagkilled]

what does that mean?
C is strongly typed, it just has too few types to enable the really useful benefits of static type checking. If typedef actually let you define new types instead of just defining a shorthand for an existing type, it would be a much safer language.
I wondered if it was necessary to boil water
I absolutely agree with this. Once I was hit by a bug that completely brought me down mentally for several days, before the physical symptoms hit (ending in emergency on IV). In the depressed state, I went on a job interview, and totally bombed.

Another person who caught the same thing had the same symptoms: dysphoria, low energy, no appetite --- and then the physical stuff: nausea, vomiting, dehydration, ...

It is entirely plausible that some viruses cause a protracted form of the former symptoms.
Seconded, as this sounds very interesting.
You can attribute fault to the programmer, or you can attribute fault to the language, but for every problem there is a solution that is simple easy and wrong.
C needs wider adaptation of Apple's "Blocks" extension and MAYBE extremely limited generics and it's perfect.
Some bugs with vim-livedown:

- I couldn't get it to work with the after/mkd directory via pathogen. Not sure why. Moving the small bits of vimscript up in the load order worked for me.

- I think the behavior of making it auto-open upon buffer switch is un-vimlike and probably annoying. Better to just support the LivedownPreview() function. (Also, the other function has code repetition it seems.)

- The npm module (livedown) uses highlight.js for code highlighting with default options. For a standard README.md I just opened, it thought some Python code blocks were alternatively nginx or bash, because they were very short, thus did wrong syntax highlighting. You probably want to turn off language auto-detection. You can do this by doing

hljs.configure({languages: []})

before calling hljs.highlightBlock(). HTH. I'll also open a Github issue about this.
Ok. It's not my job to help you understand US politics, so I can live with you not being convinced. If you would like to take some action based on your theory that the change is possible, I encourage that.
Blacklisted: The Afghan interpreters left by the US to the mercy of the Taliban
Abiti Da Sposa Premaman Economici,Abiti Da Sposa Premaman Online
I would pay money to enroll in a class dedicated to game console hacking of this depth.
Hey, I think it's pretty cool, and I'd like to see a write-up of how he did it.

Plus it's good advertising for their firm, assuming they don't get sued or anything.
Ask HN: Flailing in my current job
I work as a developer for mobile platforms and I feel that I am stagnating by working on crummy apps or dealing with bugs in extremely poor rushed code.

I am attempting to learn more languages and push outside of the 'comfort zone' that I find myself in with PHP, JS and Java but I'm unsure of what I could be learning to help myself in the future.

Am I mad in thinking that contractor/agency style companies are a bad place to learn?
This is from 1974. It's worth noting that by 1974, the TCP/IP spec was already written, what many consider the first PC (the Altair 8800) was out, and ARPANet had been around for years, with transatlantic nodes already in existence.
Things like that have been tried:

Scheme's SRFI 49 (2003-2005, Final): "Indentation sensitive syntax": http://srfi.schemers.org/srfi-49/srfi-49.html

Lispin (2008): So utterly dead, we have to resort to the Internet Archive: http://wayback.archive.org/web/20080517144846id_/http://www....

cl-2dsyntax: http://www.cliki.net/cl-2dsyntax
(Annoying exclamation marks in this one, oops).

CGOL (1973!): http://en.wikipedia.org/wiki/CGOL

The last one shows you just how long people have been unsuccessfully trying to promote Algol-like syntaxes for Lisp.
The problem is that there's a great deal of data structures that are difficult or impossible to write in a provably safe way without garbage collection (or reference counting). Pick up _Purely Functional Data Structures_ and take a crack at implementing them in Rust without unsafe{} and you'll see what I mean.
Android Studio 1.0 Release Candidate RC2
Just about every unit test suite I've seen includes a reimplementation of a typechecker.
> The song of a great singer, the speech of a political leader, the sermon of a great divine, the lecture of a man of science may thus be delivered to an audience scattered all over the world.

"...and videos of cats."

I find it endearing that our visions of the future always see the best (or worst) of humanity, but never the mundane or banal.

> He also said some nice things about communication devices "in your vest pocket," but I can't find it.

I had a search. Maybe this one?

"When wireless is perfectly applied the whole earth will be converted into a huge brain, which in fact it is, all things being particles of a real and rhythmic whole. We shall be able to communicate with one another instantly, irrespective of distance. Not only this, but through television and telephony we shall see and hear one another as perfectly as though we were face to face, despite intervening distances of thousands of miles; and the instruments through which we shall be able to do his will be amazingly simple compared with our present telephone. A man will be able to carry one in his vest pocket."

http://www.tfcbooks.com/tesla/1926-01-30.htm

though I think that's actually one of the less interesting things to be found in that interview... Tesla really was quite the interesting person, it seems.
These arguments are asinine.

The dollar bills on Sand Hill Road don't have magical properties. When a venture firm invests in your company, it adds cash to your balance sheet. Nothing more, nothing less. Spend that cash too quickly, invest it in the wrong things or don't get far enough with it and you're eventually going to die unless you find another source of cash.

And that's where we have a problem: the crazy burn rates you see in venture-backed startup land are based in large part on the fact that founders are by and large taking for granted their ability to raise more capital.

Just look at the OP's company: it's burning $150-200,000 every month despite the fact that it couldn't raise a traditional Series A and instead had to cobble together $2 million from "4 institutional investors and dozens of angels." The OP spins this as an "unconventional second seed round" but if and when she has to go back to the feeding trough, she shouldn't be surprised to find that many investors will treat her company like a Series B prospect subject to a much, much higher bar.

Bottom line: raising venture capital in and of itself doesn't make you an outlier and no founder should run his or her company like it's an outlier until there is demonstrable proof it is one.
This just seems like a giant incoherent wish list with no central vision or any sense of the inevitable compromise required for any language of stature.
Be thankful: We're already living in the future
Uber Has Been Blocked in Nevada
Thanks, I really like the simple game idea, and SDL looks like a cool framework. Also neat that it can compile to ios/android-compatible binary (though perhaps that would introduce a new can of worms).
"No special work" except the massively more laborious effort of writing the whole thing in C.
The benchmarks you linked are interesting. Rust is #1, right before C:
http://benchmarksgame.alioth.debian.org/u32/performance.php?...
Maybe Rust will finally be a real competitor to C.
There is currently a really cool project I suggest (if you're interested in learning / seeing C in action) called Handmade Hero[1].

He[2] is making a game, from scratch, in (mostly) C (but with a little bit of C++ niceties thrown in), and streaming[3] the entire process for an hourish, Monday -> Friday. It's intended to be a tutorial in both learning C and learning from-scratch game development (where from scratch means using GDI and like, parsing your own wav files).

It's really cool to watch, he's an entertaining guy, afaict is a pretty decent teacher (I know zero C, but C-style languages, and I _think_ I'm keeping up), so I recommend checking it out.

[1] http://handmadehero.org/
[2] https://twitter.com/cmuratori
[3] http://www.twitch.tv/handmade_hero
I can second this, this was my approach (as insisted upon by my professor). This only really works in some fields though - formal sciences (math, cs, etc) where you can make your own data from thin air. If you have an IRB to go through, it's a bit of a different story.
Not this depth, but pretty great anyway: http://www.sexviahex.com/
A formal proposal was required for me to enter the PhD program.

For better worse, my proposed project failed, and I was extremely lucky that a Plan B emerged at the right moment.
What can Norway teach other oil-rich countries?
I'd be interested in them doing a tear down of a FIPS 140-2 Level 3 or higher hardware security module. Basically systems designed to self-wipe on detection of tampering.
> I think if you emit C code, it is much harder to get good debug information, which is important.

I think you can annotate the generated code with certain preprocessor instructions to tell the compiler about the real source lines in order to get proper debug information. I think lex/yacc or flex/bison use that. Don't know if it's a gcc extension.
Check out Hacking the Xbox: http://www.nostarch.com/xboxfree It covers general reverse engineering techniques as well as going in depth into the original Xbox's security mechanisms.
This quote confused me. What does it mean?
Ah indeed, that's the one!

> though I think that's actually one of the less interesting things to be found in that interview

oh I probably agree, or at least in general - in terms of what kinds of things Tesla might have said that might still be relevant. Check out his biography on wiki - totally bananas, and most awe-some indeed.
I've been using Haskell for a few months now, and quicksort has become trivial to read. Although, I agree that knowledge of other programming languages barely transfers to Haskell. I think being very different is the main factor that restrains Haskell's growth. It says a lot that Haskell's popularity grows anyway.
And that without any use of `unsafe` in the submitted solution.
Something nobody mentions is the idea of meeting with your committee on a regular basis during your dissertation research. In theory, this is supposed to be happening, and the committee should be keeping an eye on your progress as a sort of check and balance. But because it doesn't occur regularly, it falls on the student's shoulders to call such a meeting, and they might be too timid to do it, especially if they are having problems.

Instead, the first time your committee knows that you exist is when you plop your dissertation on their desk a few weeks before your defense. And they say, "what the hell is this?"

Perhaps if it were "forced" to occur regularly, it would be harder for students to spiral into the black hole. I think that the committee should actually be serving in a supervisory role.
Emulating Web Services and RPCs (Anthony Ferrara, Dayle Rees, and Taylor Otwell)
How the Chicken Built America