skysight-inc/HackerNews huggingface dataset:
Now that I've had a chance to read more, I see that casual misogyny in the tech world is definitely not new. So far, I've seen a half dozen messages, and multiple people, calling someone named "Susan Thunder" a whore, bitch, etc. Example:

Message number 7168 is 4 lines from John Billings
To SUSAN THUNDER at 14:30:49 on 12-Mar-81.
Subject: YOUR LAST MESSAE
YOU LEFT ONE THING OUT OF YOUR
DESCRIPTION OF YOURSELF,
WHETHER YOU CHARGE BY THE HOUR
OR THE EVENING?

And, I have seen no polite messages directed toward anyone with a female sounding name.

Given that 90+% of the messages are from people with male-sounding names, and every message, so far, that I've seen directed to a woman has been overtly hateful, it puts some things in perspective about why there are so few women in our industry today. I can't say that, as a 12 year old, I was treated with respect by the BBS community at large, but at least I wasn't on the receiving end of veiled rape threats.

I'm hoping I stumbled on the few really hostile messages in the bunch. But, I've bounced around a bit...I fear further study will only be further disheartening.
Ask HN: Is unlimited pricing a bad idea?
I have a SaaS that lets people extract data from video files. It is resource intensive and the more amount of work they bring the more it will cost me in terms of time, working with them, and etc. The hardware cost is manageable for the time being but I imagine if all of my users suddenly maxed out capacity it would cost me.

I offer an unlimited video processing plan for my small, medium, large plans. Is this a horrible idea? There is no reason for someone to move off the small plan into a medium plan.

Should I limit each plan by features instead and keep the unlimited processing? ex. small plan missing cool features but medium and large will have them. existing customer doesn't seem to care.

Or should all plans have the full set of features but different quota of the number of videos they can process every month? Something like a credit plan.

I've had some user say they will stop using my service if I remove the unlimited processing. This was their big reasons why they are using my service according to them. But some customers demand is just extreme for what they are paying (very little). Should I just tell them to go away?

In some ways I ended up getting customers directly from my competitors because of the unlimited processing. Is it too early to say this is working or this isn't working?

Cheers.
I am somewhat confused by this article since to me it sounds like the writer has wanted the reader to think intrusive lists are "trickier and weird", when they have been my bread and butter during all my C work... And I guess I am not alone.
So many sad recruiting stories ...

Some thoughts/tipps: Start your interview with: "I happy to be here ... am really nervous, i couldn't sleep last night." ... that removes questions marks in recruiters had about your eyes.

Don't tell em about xanax, better, don't use it.

@pookieinc 3+ years are not impressive ... i code for 15 years and possibly the guy who are you talking about your job too ... so don't behave like the god of coding.

@pXMzR2A 270+ job applications ... hmm your resume must be shit or you apply for jobs you are not qualified for ... i would love to see it, there must be a major bug in it :)

... and btw. congrats and merry christmas
Vrolijk Kerstfeest!
I didn't say the goal is lefty, however, decreasing inequality gap by all means is one of the main left ideas.

Focusing on inequality is not means to an end, but it's a usable metric. Society shouldn't "provide" happiness, but happiness dynamics can show successfulness of what society does.

>its not clear at all how to measure happiness

I don't think its significantly harder than measuring any other attribute. You just need to ask the right questions and take into account some social factors (such as fear of oppression) that can distort the results.

Liberty is an essential condition of happiness (probably, not everyone agrees but it's just my opinion). However, I think it's taking us too far from the topic.
13.7% on average
Top NBA Plays: December 22rd
One possible alternative is having your objects be members of "lists of slightly different type". For example,

template <ptrdiff_t offset, class T>
struct node {
node<offset> *next, *prev;
T& operator*() { return *(this-offset); }
};

Maybe? It has been a while since I've written C++. I guess you have a big problem setting up your base class in a portable way, though, because the types of its member nodes depend on their offsets, and I don't think you can do that.

class Foo {
int data;
node<offsetof(Foo, list1_elem), Foo> list1_elem;
node<offsetof(Foo, list2_elem), Foo> list2_elem;
};

:/
African Video Sharing Platform
Much defensive. Its easier to look at what things are rather than taking it personally:

The engineer tries to downplay the issue by the now conventional "we're working on fixing it". And the whole pr-approved speech.

What should be fixed is the whole process and design reasons why this is even allowed to happen.

It's not the fault of the engineer - but by being the messenger in this case you're also condoning it. And downplaying stuff on non-technical grounds, that's actually marketing. But it's easier to be offended than to realize that these days.

Also - regardless - merry xmas!
I think you've just proved the previous poster's point here: child seats alone most certainly present "complications". They have to be fitted precisely to your child, they're a pain in the ass to install, and they have to be installed carefully, or they're worse than useless in an accident. For a typical parent use case like taking your kid to daycare and back, installing and fitting a seat twice a day in any sort of rental car is a complete non-starter.
Financial Startups Aim to Court the Anti-Finance Crowd
Hmm, could it be that the freedom that you describe is just difficult to handle for some people (or some personality types)? I've noticed in myself an occasional tendency to assume the worst when things are unclear, and to subject myself to rules that nobody explicitly set for me.
Wonder what the languages the author rather do DSP in than Python.
Every user might verify just a random sample of all calculations and the system would still work.
Lease a mid-size sedan and paint it yellow. Then buy it out because you will be saving tons of cash over the lease period. Depreciate in value for something like this is dumb.

We are not talking about fully loaded S500 MB's here.
If you need help further cleaning up the code, I can do it for you.
5 Tips for Better Brand Content
How does em-dosbox compare to jsdosbox: https://jsdosbox.appspot.com/ ?

jsdosbox is a GWT compiled modified jDosbox, a port to Java.
Good tip! I've had a number of issues with the Homebrew tap. I've yet to dive in head first. I've been playing around with Juno [1] and like it a lot so far.

I hope we'll see more advanced tutorials appear for Julia soon. I'm quite comfortable with using C++ now for all my scientific computing code, but it really isn't "nice" to work with. It would be nice if there was something like SciPy [2] for Julia, to get researchers going quickly.

[1] http://junolab.org/

[2] http://www.scipy.org/
> Another consideration is that a std::vector<FooPtr> is as fast to iterate over as intrusive list of Foos.

A "normal" linked-list of strings or vectors always makes me sad -- the reasoning goes,

- The list elements need to live on the heap because they might live forever,
- The string object has to be fixed-size because objects are always (at least officially) fixed-size.
- The string storage has to live on the heap, because it can be arbitrarily large.

So printing out a linked-list of strings gets two pointer dereferences per string instead of one. I guess that's the cost of abstraction, though.

(This actually fits into the C++ zero-cost-abstraction narrative pretty well, though:

- Linked-lists are not zero cost,
- C++ programmers don't like non-zero-cost abstractions,
- C++ programmers don't like linked lists.

:)
So your argument is that, if Bob scams you into buying an "unpickable" lock and Steve picks it easily and steals all your stuff, only Bob is at fault and Steve is innocent? You seem to think that there can only be one villain in any given situation. I'm perfectly comfortable assigning blame to both of them.

And none of this explains why you think a service that helps Steve get top dollar for your stolen stuff is a good thing.
I see this ALL THE TIME. Makes me think that Apple did no testing with dual displays. I've noticed times where it's taken 2-3 seconds to settle down.
This is explicitly a tool for monetizing blackmail. Illegal use cases are the intended use cases.
Is JavaFX suitable for desktop apps? I had the impression it was aimed at Flash/Silverlight type work.
Well of course if someone knew how to make an automated money making machine, they probably wouldn't share it. Let alone letting it roam the Internets freely. And competition would eventually eliminate any good ideas we do come up with.

However it's not theoretically impossible. Plenty of services are done over the internet with no human interaction.
At the moment now it's default orange again. Xmas theme turned off?
I'm not sure if that would work, because computing the offset of list1_elem could depend on the template instantiation of list1_elem because that could (ostensibly) affect the alignment. But you can drop the template altogether on the list element type and put the offsetof expression in the list type declaration. An example of that is linked by some other comment in this thread: http://www.codeofhonor.com/blog/avoiding-game-crashes-relate...

The base class option is, I think, best only for the case where you have only one kind of list you want the object to be part of.

Also your pointer should be cast to char before you do offsetof arithmetic on it.
Take a look at Figure 2.7 on this page:
http://www.fhwa.dot.gov/policy/otps/bottlenecks/chap2.htm

It's from the Bureau of Transportation Statistics. It shows the amount of freight (by value, tons, and ton-miles) for each transportation method.

Water (not just the mississippi, but all inland waterways and costal barges) is 6% by tons, 1% by value, and 9% by ton-miles.

The larger the economy gets, the more goods must be shipped via other modes. At the end of the day, only so much can fit on the Mississippi.
Ruby 2.2.0 Released
“Become an Ios Developer in 8 Weeks”: The Truth About Hack Schools (2013)
damn, that's really cool.
NBA Crazy
Dude honestly his code looks great.
I really prefer intrusive data structures, for the exact reasons outlined in the article.

I've myself written many implementations of intrusive structures. But now I'd like to present the greatest of them, a super-generic implementation of an intrusive AVL tree in C. See [1], and example [2].

- It relies on a user-defined concept of a "link". In particular, this means the structure can be in an array and linked with array indices, and can be copied correctly with a single memcpy. Of course the user may still use pointers as links.

- It supports implementation of user-defined associative operations (e.g. sum). This consists of operations:
CAvl_AssocSum: Calculate the sum of all the nodes.
CAvl_ExclusiveAssocPrefixSum: Calculate the sum of elements from the first one up to but not including node X.
CAvl_FindLastExclusiveAssocPrefixSumLesserEqual: Find the first node where the sum of all preceding nodes is >=X.
Of course these all have O(log n) time complexity.

- The implementation is made generic by include files which rely on macros a lot. Other than the macro madness, I think this is better then C++ templates, due to easy #if, where in templates one would need to jump through hoops due to non-existence of static_if.

[1] https://github.com/ambrop72/badvpn/tree/master/structure (see CAvl_*
[2] https://github.com/ambrop72/badvpn/blob/master/examples/cavl... (also see cavl_test_tree.h in the same dir defining some parameters for the structure)
Whoa this brings back some memories! I was mostly a Fast Tracker user though. I used to love spending hours downloading .xm's at my dad's work so I could rip the samples and use them in my own tracks.
No, I took iodine pills.

I studied phonetics in a language lab and volunteered with other international students at a local elementary school, among other things.
I wish this was "Slur, a decentralized, anonymous repository for information".

Incentivising leakers to leak to agents with the most power and wealth does not make much sense.
Ah, tu quoque and moral equivalence, the last resort of any apologist for communism.
Three approaches to blockchain scalability were discussed:

1. jury selection
2. multichains
3. hypercube

1. Jury Selection means that tx-s validated first by a small jury and only if there no consensus, theie entire network become involved.

2. Multichains is like sharding. And just like in sharding you need to decided on criteria for sharding (i.e. you shard by asset ID, geography of the sender or receiver, by the amount transferred, etc.)

3. Hypercube - you see every tx as an edge in the hypercube. Then this edges randomly assigned to the jury? I'm not fully understand this one.
I didn't think these "non-intrusive lists" were actually used much in real world programs. Even if allocations weren't a big issue performance-wise, the sheer amount of work required manage the allocations themselves would put me off using them.
If you use opera on a smartphone, just go to the settings and enable text wrap. You're welcome :)
> C++ programmers don't like non-zero-cost abstractions

I think you’re confusing zero cost with zero overhead.

What C++ programmers like is that the compiler does not add overhead, for example calling `a[10]` will read the word at address `a + 10` and return that. No bounds checks are inserted, no function call is done to lookup the element in some implementation defined sparse data structure, etc.

But C++ programmers are generally not opposed to using things that has a cost associated with it (basically everything has a cost) — for example `std::map` is quite popular and certainly not “zero cost”, though it has its running time defined, and the implementation is actually using a self-balancing search tree rather than a hash table because we can give guarantees about the running time of the former, not the latter.
Impulse Tracker still is the only DOS program that I know of that had a DirectSound driver. Let that sink in for a while.
I read that paper but it speaks about why firm exists.

There are vast examples of workers not doing anything on any organization, blaming only the public sector is denial. The truth is that a company doing well has enough resources to do well even if they pay non productive workers.
If that graph was cumulative, it would appear much flatter. Here are the actual numbers:
http://www.eia.gov/totalenergy/data/monthly/pdf/sec1_3.pdf

Decline after 2004? sure.. it went from 100 quadrillion Btu to 97 in 2013.
Scientists isolate algae capable of producing biofuel
That's been on HN at least twice.
Songo.io YouTube playlists on streoids
This was a tough read, honestly anyone going through this for whatever reason, is definitely in a tough spot. They're taking failure with the full intent of learning from it, I think they'll bounce back.
If you read just 2 posts above the one you quoted, you'll see that "Susan" got someone from the board arrested.
Watch 'The Interview'
There was an insightful reddit comment about this:

>As someone who sells insulin pumps for a living, in my opinion this article is slightly misleading. It makes it sound like the technology isn't there to do exactly what the father/boyfriend want to accomplish: essentially they want to obtain tighter control for the son's/girlfriend's diabetes. To be clear, we do currently have the ability to provide patients with a continuous glucose monitor (which is relatively accurate), and along with that, a model of pump which will stop insulin delivery if a patient's interstitial glucose goes too low. What we don't have (that's described in the story) is a pump which administers insulin doses automatically. But the reason for this is not because of lack of technology... It's because of liability, and that's an important distinction to be made. The boyfriend in the article who developed the auto-delivery system using algorithms for bolus insulin amounts is not doing anything new. In fact, most insulin pumps already have the ability to calculate insulin doses for patients. Instead, he is just doing something that the FDA will not approve of at this time. Every single diabetic responds differently to insulin, and formulas can not necessarily take those variables into account before insulin delivery. As a result, the amount of risk involved at the patient level is too great for the FDA to say "ok" at this time. Additionally, the insurance companies have no motivation to press on because of how costly the approved technology could be. In any case, the article is informative and does a really good job explaining in simple terms how diabetes works. I do believe that we will see a manufactured cure within the next few years (I.e. artificial pancreas) and potentially an organic cure within the next 10-20. Those people who have diabetes deserve that technology and I am confident we will provide it soon :)
"It's just a huge red flag to me that the employees of a massive international company could be so globally unaware looking at the dates and locations of things printed on my resume to not ask a single question about it."

For a large company that is more or less irrelevant unless you are interviewing for a position specific to varied international experience.

Making sure you can program is far more important. I work at a really international setting ... good C++ is good C++ regardless of the cultural background of the programmer.

Which in itself is really friggin awesome - in my experience a programmer is a programmer with any cultural background just as long they grok the CS and programming fundamentals. Perhaps Google has observed the same?

For smaller companies where the interviewers will be dealing with you day to day the personal details are more interesting.
For a while now I've been interested in learning more about Julia, though not exactly sure yet what use-case I have for it. I guess I wouldn't know until I do study the language enough to figure it out.

This tutorial looks promising, building knowledge carefully but not too much "hand holding", like it's for programmers experienced in other languages. Got part of the way though it so far, obviously not a "one-shot" kind of exercise.

My only complaint is the same one I make with many other tutorials of this kind. I find it very annoying when some feature or function is used in an example, but the function comes "out of the blue", not defined or explained, as though the reader is supposed to magically divine its meaning or definition.

In this case, everything goes along swimmingly until encountering the function/method "repr(a)" in "Arrays" examples. I dutifully spend several minutes tracking it down, and what do you know, basically the same as (->string ...) in Scheme (i.e., object->string representation).

I'm not giving up on Julia. I'll carry on from that point when I return to the site. But really, IMO every newly introduced term/function/feature should be defined so that the example can actually be completely understood.

Otherwise there's a substantial risk of losing readers who will not so likely be motivated to keep trying to figure it out.

</end of minor rant mode>
Can you share which JS charting library you ended up using?
There isn't one. std::list<T> has the same space requirements, memory locality and capabilities of an intrusive list. Period.

The naivety of an 'intrusive' list, where all your objects are always 'list ready', is that it allows the insertion and removal of elements without copying them, which is beneficial if your lists experience a lot of churn. The thing is, you can achieve this without intrusion anyway by keeping all your 'not in a list' items... well, in a list. You then get memory management for free and can use splice()[0] to efficiently move nodes around.

My philosophy on lists is: if you've never used or needed to splice then you probably don't really need a linked list. Splicing is what linked lists are all about.

[0] http://en.cppreference.com/w/cpp/container/list/splice
Why on Earth would you think a lack of a warrant would matter? This is the US government we are talking about here. Absconding people to put them in Gitmo, or CIA black sites, or simply executed, are all techniques used regularly and without hesitation. Last I checked the U.S. does not care about warrants, especially against foreign nationals.
Just use Boost.Intrusive: http://www.boost.org/doc/libs/1_57_0/doc/html/intrusive.html

It makes the job much easier.
Did she get them arrested for paying her for sex?

Edit: I just spent another ten minutes reading some of the various rants against Susan. I suspect David Starr is/was mentally ill. His obsession with her is creepy, and the accusations bizarre and practically incoherent. I don't know if Susan is a nice person, or a cop, or a fed, or whatever...but the stuff David Starr says is way out there. Also, I can't believe I have spent this much time at 5AM reading some stupid, probably mostly made up, BBS drama from 34 years ago.

Edit #2: The message you refer to is this:

Message number 7166 is 18 lines
from Jude Saucier To SUSAN THUNDER
at 14!07:35 on 12-Mar-81.
Subject: SUSAN'S PRANKS
MS THUNDER, I HAVE BEEN OFF OF THE
SYSTEM FOR QUITE SOME TIME ANO JUST
FOUND OUT WHAT HAPPENED TO PAUL MONT.
I JUST WANT TO LET YOU KNOW THAT
I AM QUITE SICK OF YOUR LITTLE PRANKS.
lF YOU GET YOUR ROCKS OFF BY PICKING
ON KIDS I SUGGEST YOU BUY A GOOD
VIBRATOR INSTEAD. I'll GIVE YOU A
CHALLANGE
-
IF YOU WANT TO PICK ON SOME ONE
-
LET IT BE ME. WHEN YOU DC THOUGH
-
LET ME WARN YOU
-
YOU ~Ill NEVER MESS ~ITH ANYONE
PGAIN. JUST BECAUSE YOU GO TO
THE EXTENTS THAT YOU DO TO GET
PEOPLE IN TROUBLE FOR THINGS THAT
YOU ARE GUILTY OF YOURSELF DOESN'T
~EAN THAT YOU CAN GET EVERBOOY.
I HAVE SOME SURPRISES IN STORE FOR
YOU WHEN YOU START TO TRY DOING
DAMAGE TO ME. BY THE TIME I AM
THROUGH YOU WON'T EVEN HAVE A
TERMINAL TO USE THESE SYSTEMS.
THAt•s ENOUGH FOR NOW BUT DON•T
FORGET
-
I'LL BE WATCHING YCU AND I WILL
<NOT MAYBE> GET YOU SOON.
CONSIDER YOURSELF ~ARNED!
!!!
SEE YOU SOON
JUDE.
P.S. PAUL HAD BETTER BE OUT OF
THIS MESS SOON
-
UNDERSTOOD??

I can't make much sense out of that. But, it's also full of misogyny and threats of violence. That's pretty fucked up.
As long as they exclude from their statistics people who they refuse to sell their product to.
I don't understand. Is it really well explained ?

Aren't ListNode just a way to index a list ? Isn't this Point2D just "marked" to be on a certain list ?

Why does he say "less dereferencing" ?

> Dereference the appropriate "next" pointer, get the next object from memory.

the prev/next pointer is in the ListNode, not in the object itself, so it's obviously a dereference...

I did not understand it very well... I can understand that a linked list will be faster thanks to branch prediction, but what does it have to do with an intrusive list ?
Sadly the idea that some set of people won't have been dumb enough to make a fundamental security mistake is almost never useful. Security is too complex, people are too prone to overlooking aspects other than what they're working on, and the likelihood of a group of developers or researchers spotting a flaw in their own work doesn't scale even close to linearly. It's a bit like presuming no-one needs prose copyedited because they'll pay attention - you'll overlook some mistakes in your own writing because you see what you know must be there, not what you actually typed.

Assuming people have written secure code because they're the kind of people who wouldn't make a mistake is a sucker bet.
Show HN: DropJar – pauseable, resumeable big file transfer