skysight-inc/HackerNews huggingface dataset:
Enjoying the recent spatter of articles on fuzzing, it's an interesting topic to read about and file for future use.

This page brings me back to a question that I've been having a lot recently: how does one get really good at *nix in this day and age?

It seems like the era of learning on a college mainframe computer is over, and "sysadmining" for hobby and SaaS nowadays projects often totally abstracts the nitty-gritty bits of the OS. Yet these systems still power our computers and servers, and there appears to be a real utility in understanding them well. I run Debian as my daily driver, with a fairly "hardcore" setup without a fancy GUI, but I still feel like I haven't even scratched the surface of my OS. I don't really understand how library linking or process messaging or anything like that works, and I'm not sure how to start learning.
Versatile tool to help during cold and flu season
I assume the above was intended to be a Python expression. The answer, to the best of my knowledge, is "not really". There is no built in or reasonably standard function that lets you check simultaneously that a is less than b which in turn is greater than or equal to c. Not that we couldn't define one ad-hoc, although making it reusable in a way that's reasonably idiomatic might be a challenge...

Obviously, you can express it slightly more verbosely:

(and (< a b) (>= b c))
FPGAs would be more attractive if they weren't so over priced... good thing that patents are around to almost completely eliminate competition in that space.
Amazon actually has a pretty interesting history with Lisp. I believe Steve Yegge has written about it before, but I'm not sure. It was pretty much completely gone by the time I got there though. Amazon went from almost completely C++/Lisp to almost completely Java/Ruby over the course of about 5 years.

I'm not directly in the dev space, but it appears as though the choice of languages that people use has far more to do with what Builder Tools will support than what people actually want to use. Teams only use Scala or Clojure if they are willing to build it using their convoluted Ant wrapper that doesn't make any sense.
Yep. My Maplin customer number is only 4 digits - which always throws the staff if they use it/

Mind you, Maplin has turned into a UK Tandy and is really no longer a sane source for electronic components. Wouldn't be surprised if they eventually went down the pan or shrunk their stores base.

Remember the orange/green/white collectable discount vouchers you'd receive with your orders.
This isn't the same thing -- the Python syntax is asking for a < b and b >= c, while only evaluating b once. There are many infix math libraries for lisps (e.g. this one from 1995: https://www.cs.cmu.edu/afs/cs/project/ai-repository/ai/lang/...) that allow things like #I(a < b >= c), but the trick is only evaluating b once. (The linked lib will expand into two evaluations if b is an expression.)
> FPGAs are legacy baggage in the same way that GPGPUs are.

I hoped the author would expand on this point.

It is also my impression that GPGPU are just "a hack": they should had been normal coprocessors to the main CPU, just like the FPU and the vector units are. It seems that now we are finally reaching that model (in Linux the graphics device is almost completely separated from the computational device, although they are on the same physical device most of the time) but we are still far from the "Comprocessor extension" opcode space of MIPS processors or to the "brain and arms" of CELL (1 generic CPU, many specialized coprocessors).
European Parliament to vote on Google break-up
https://en.wikipedia.org/wiki/Fuzz_testing
I guess what I meant was that there can be significant data manipulation at the API level, and this calls for more language and runtime support.

Agreed that client code can become very complex. It's one of the reasons I avoided doing too much on the client in the past. My solution to this has been to use TypeScript, which is fantastic for solving this sort of problem. Yes, it moves away from prototypal inheritance. It also doesn't play nice with JSX. It's still hugely worth it for me. I haven't tried Flow but it looks like it addresses the same problems.
A fuzzer is a tool that generates malformed input to try and trigger crashes in parsers, usually with the hope of finding a bug that can be turned into a security exploit.
A fully featured Linux hypervisor running on a MIPS microcontroller
Thankful to Be a Programmer
I'd normally write

def foo():
print """\
this is a triple quoted string
this is a continuation of a triple quoted string"""
I used the DOS version of SoftICE on a retail Windows 95 machine, to circumvent the upgrade prevention check in Windows 95 OSR2. OSR2 was an OEM only release, but I figured there had to be a way. Setting breakpoints and single stepping through the setup, I discovered that it checked for krnl386.exe. If that for existed, it was considered an upgrade. If you were a clever young hacker, you renamed that file and went ahead with the upgrade.
Modularity: No. Your headache in creating a system of micro services will just be that much greater if you don't have modular code. I wouldn't call that a benefit even if it does end up with you writing more modular code.

Constraining complexity: It actually makes complexity worse (what do you do when microservice A goes down? times out? returns data you can't deserialize? takes too long?). These things you do not have to worry about if you are not doing any inter process or inter-server communication.

Code reuse: No. Why would it help code reuse?

Additionally....

https://en.wikipedia.org/wiki/Fallacies_of_distributed_compu...
Most people are surprised when I tell them that their computer is a lot of little computers working together on a sort of internal network.

This is why if your machine is compromised, and you have a threat model that involves serious (state or otherwise well funded) attackers, you really should just send it off to be recycled.
Floppy Disk Protocol GCR Decoding on the Fly
> It lets you comment out a line without having to remove the trailing comma from the previous line

That would only be an advantage above comma at the end on the last line. It really only moves the problem from the last line to the first one. Now you can't comment out the first line without removing a comma...
TechTarget's Product of the Month- Bintray Premium: DaaS Platform
For those who think Wikipedia is right in defending Wikipedia Zero, could you please elaborate on how this will not impact the adoption of any alternative encyclopaedic website?
You can get those with a straight library without introducing the complexity of message-passing, RPCs, and distributed systems.

(I'm a big fan of SOAs/microservices for companies that operate at Google-scale. Most companies do not, and for the rest of us - plain old libraries are very underrated. You can always slap an RPC layer or message broker on top of a library's API, but there's no reason to pay that cost until you need to. The real reason to break things up into microservices is when you run out of RAM on the box, or alternatively when you want better cache hit rates by focusing the processor on a small amount of code. You typically don't get there until you're serving thousands of QPS against a data set in the terabytes.)
Maybe because we haven't been able to conceive a single how life originated from constituent elements.
"Because I was so used to statically typed languages (where this idiom would be ambiguous), it never occurred to me to put two operators in the same expression. In many languages, 4 > 3 > 2 would return as False, because (4 > 3) would be evaluated as a boolean, and then True > 2 would be evaluated as False."

The second half of this is correct, but it has nothing to do with whether the language is statically or dynamically typed. It's a tweak to the parser, mostly.
Shouldn't unhex() just be int(s, 16)?

Not sure what it adds, but I don't quite understand it yet and perhaps there's something magic in the context of MIME quoted printable that I'm missing.
> Many people want an interprocess subroutine call, and few OSs have the right primitives for it. (QNX does, and Windows sort of does, but the Linux/Unix world does not.)

Could you please elaborate on Windows part of your statement? What particularly are you referring to?
I really like his article about dumb to managed switch conversion. I wonder if more projects like this exist perhaps with some existing community. Would be really cool if one could buy a cheapo switch and hack it to a managed one in a similar fashion like you can flash OpenWrt on some cheap routers and make them 100x better.
Facebook Wants to Be Your Wallet: Are You Ready?
Commercial use of drones is generally illegal. If you want to use it for TV or film production, you have to contract with one of six FAA blessed companies. http://www.faa.gov/news/press_releases/news_story.cfm?newsId...

The MPAA is actually doing a lot of good work to help free up restrictive laws on drone use.
I picked up a random piece of hardware I knew probably ran linux under the hood, and found that hacking it really threw me in the deep end. Working with stuff that's not documented, has probably never been tried and looks utterly impossible is a heap of fun and for me at least a good teaching tool. Pick an arbitrary goal and learn how to get there.
The best way, for me, was fixing something that didn't work.

The "problem" now is, *nix has gotten pretty good/stable/justworks(tm).

So the other, more time consuming way, is probably contributing to different areas.

That should force you understand all the different systems better.
You would think that Google being a huge company would have good solid reasons for everything they do. But building software (and search engine websites are software) involves billions of small decisions taken by each engineer involved. It's everything down from "should I name this temporary variable 'i' or 'n'?" to "should the query time be displayed?" and "what format? milliseconds or fractions of a second? should it be i18n:ized?"

My theory is that it just happened because some engineer decided to add it a long time ago and then noone found a good reason to remove it.
People should start differentiating between mathematics and arithmetic.
Just playing devil's advocate here.
So you suggest people waste:
- a lot of their own time researching say 25 random other companies, reach out to their founders (who are in a completely different field of business etc)
- fly out to San Francisco from Armpit, KS. Waste 5 of those 25 founders time for coffee who actually agreed to meet with you even though you have nothing in common with them
- then tell them that you're also not interested in them really. All you want is a backhanded intro to their investors, which they hope they will give you

Only so that the investor will get 2-3 emails from founders who really know nothing about you other than what they found out in a 10 minute phone call or a rushed 30 min Starbucks on 2nd and Folsom.

Shouldn't an associate (who actually gets paid for this job) do this, rather than waste founders who are busy building their own companies?

Don't you think that system is broken?
Accompli acquired by Microsoft
> This attitude toward freedom of speech and data in the EU is one reason why startups don't prosper as well there.

This is the sort of assertion (along with quite a few others in your comment) which seems likely to be merely a nice story. To actually believe that it's true, I'd want to see evidence.

In particular, your idea that concerns with privacy are due to people trusting government more in the EU than in the USA seems entirely wrong headed. The concern for privacy in Germany comes from a distrust of centralised data collection because they have experienced it and know how bad it gets, not because they feel more comfortable with data controlled by the government.
>A system which serves millions of users spans multiple machines. It's much easier to scale and evolve your stack if you're keeping it decoupled.

It can be much harder. Let's say that you have a zipcode<->address conversion library and you're deciding whether to use it within the web stack (option A) or to create an additional service with a REST API on a separate machine (option B). Microservices!

Option A means that it scales with your web stack. If you have 5 application servers today behind a load balancer and your load doubles then tomorrow you will need 10.

Option B means an entirely new set of servers. Not only do you still need those 5 application servers, you need an entirely new server for handling zipcode<->address translation. Let's say it's maxed out.

What happens when your load doubles then?

Well, you'll still need to scale up those 5 application servers running behind a load balancer, but you ALSO need an entirely new load balancer and two servers behind it for the zipcode<->address translation service.

>Different languages/services have to talk to each other somehow and at some point.

This doesn't mean that you need for them to talk over a network layer.
His sister sends him some money (she lives in Sweden now), as far as I've heard.

The man actually lives within a walk distance from me (or used to at the moment of hype), you can both pay for your water / electricity / etc, and not starve by any means with a monthly income of $600, roughly.
Wikipedia creates an enormous barrier to better information due to its size and scope, and its co-dependent relationship with Google.

In many cases Wikipedia's information is substandard when compared to other sources, both in presentation and content. The wiki layout is useless for certain content types, such as video.

For example, many people prefer to use imdb for movie information (which is also free to the end user), but it comes lower than Wikipedia on many search results. There have also been several recent studies that say Wikipedia's medical information is unreliable and dangerous.

So giving free access to Wikipedia, over other sites is not actually in the public good at all. The answer is more competition.
You are heartless

:)
... or accept having your fancy schmanzy startup outside the San Francisco Bay Area.
VCs insistance of 'you HAVE to be here' and often moving companies/founders across the globe for it is silly to no end. Prices go up like crazy, investment money (especially Seed) doesn't last as long, you spend an enormous amount of time hiring/trying to find people etc
You can tell that this is a carefully rehearsed PR account since the issues at Coinbase never was about "cancelled orders". That's a very literal and lawyerly rebuttal of Istof's comment. A trustworthy human being would have known exactly what events Istof was referring to, and answered that accusation rather than trying to hide behind semantics.

The issue at Coinbase ( https://news.ycombinator.com/item?id=6932224 ) was them taking weeks to fulfil orders, while sitting on your money, during which time the price of bitcoin was fluctuating wildly, and then processing them at the original bitcoin price, rather than the current (lower) price. End result is the customer getter far fewer bitcoins than the current market rate and accusations that Coinbase was pocketing the difference.

One of the submissions about it: https://news.ycombinator.com/item?id=6929705 Note that it took considerable pressure from the HN community (and possibly YC) before Coinbase even refunded the guys losses. They wanted to just give him a token $50 worth of bitcoins, when the profit Coinbase had made from delaying the transaction was more like $12k.

This wasn't a one off either, there were other stories on HN ( e.g. https://news.ycombinator.com/item?id=6933360 ) and threads full of people on /r/bitcoin detailing similar experiences. Nobody could get their money out or get any reply from the company and for a while it looked like it was another mt.gox. There was a total failure of support and communication.
Maybe not?

Aluminium melts at 660.32 °C / ​1220.58 °F [1]. I guess aluminium alloys probably melt at slightly higher temperatures. Unless, of course, there's an aluminium alloy eutectic - I don't know.

"Felt reusable surface insulation (FRSI). White Nomex felt blankets on the upper payload bay doors, portions of the midfuselage and aft fuselage sides, portions of the upper wing surface and a portion of the OMS/RCS pods. Used where temperatures stayed below 371 °C (700 °F)."[2]

"The Space Shuttle thermal protection system (TPS) is the barrier that protected the Space Shuttle Orbiter during the searing 1,650 °C (3,000 °F) heat of atmospheric reentry."[2]

1. http://en.wikipedia.org/wiki/Aluminium

2. http://en.wikipedia.org/wiki/Space_Shuttle_thermal_protectio...

(Edit: added bit about eutectic)
I really like haskell's "++" for list concatenation. Makes a lot of sense.
It would be very interesting for our company to get involved with this at a partner level as we often work closely with startups during the earliest stages. Is there anyone from Facebook here who can get me in touch with the right people to discuss this? Thanks!
Tiger Global raises $2.5B
Maybe it would be better to call it an Academic/Research Journal
Kudos to Cheng for putting this nice regexp visualization tool out there. Regexp editors are indispensable for complex regexp'es. I still come back to this minimalistic regexp editor http://rubular.com when doing regexp in ruby.
I work on storage systems employing SSDs at a higher level still, hearing and learning more details on how things are working underneath is immensely useful and gets rarely discussed with the FSEs which is a shame. If there are things that you can share from your experience it would be great to learn more about the inner workings of SSD firmwares.

So far I only get to learn through the (few) failures that we actually see. That's the only time I get sufficient access to technical folks to ask the pointed questions and get a sensible response.
I think you're right, 22pF. Definitely wasn't anything SMT, this was 1984 or so.
Could you explain how that would have been prevented by another syntax?
I would put all messages in variables at the top of the file or even in a separate one and print them in the appropriate places.

Having multi line prints in functions add a lot of noise in my opinion. When i read code, i dont normally care about the content of messages being printed.
Good point. But I do wonder about Facebook's journal publishing policy.
From sources... There's not much overlap between the Scala and Clojure folk, so nothing to do with any "growing pains". Scala's seeing much more uptake than Clojure.
You suggested Git based web page hosting would allow for local mirrors of content so they are available regardless of the availability of the original site.

I told you that is already happening in practice, without the overhead of Git.

in your example, i would not agree those two things are the same. Clicking a link that goes to a http:// url and clicking a link that goes to the same file via ftp:// i would say are reasonably similar for the end user.

you're right, i didn't read into #5 enough. so for the purposes of "easier dynamic ip hosting" you're suggesting that browsing to a sha1 hash means it can come from any computer that has a copy of it?

but nobody is going to remember hashes. so you need to use dns or similar, so say "foo.com" has a GIT record, the value of which is an sha1 hash.. but then the client needs to find somewhere to get that from... so presumably you're suggesting some kind of peer to peer system for hosting?

and all of that is somehow better than the existing model, where you simply have a DNS server that has an api to update the IP address of an A record quickly?

You've also skipped over a big issue here.. this whole concept relies on a website being nothing more than static files.

It also effectively removes the ability for the author to have any idea at all about how many people view his site.

Git is reasonably good at what it does. It has some flaws but for versioning text based content, and fostering collaborative working amongst developers/authors, its a reasonably good solution.

As a replacement for HTTP web pages, caching proxies, CDNs, parts of DNS? not so much.
If the bubbles are captured higher up, say 500m above the tank, so that the increase in deplaced water can lift the tank, you couldn't lift the tank all the way up to the surface; it would be stuck at 500m below surface.

It's the basic law of conservation of energy. You need to provide the energy required to lift the tank by compressing the air. The energy required to lift the tank is mgh (mass of tank, gravitational constant, height to lift the tank). The energy stored inside the tank is proportional to p*V (pressure times volume). You can't lift the tank further than the amount of energy you have available, so you can never have a surplus of energy.
glad yall found it interesting!

side note: if anyone has any ideas about finding beta testers for my baby (erm, pianocheetah) I'd be glad hear em. can't find beta testers to save my life.

Overall, I'd say I'm pretty freakin lucky. Spoiled even. Thanks for the nice replies.
That is an excellent point!

Based on my reading, there's nothing magic. The context is:

elif i+2 < n and ishex(line[i+1:i+2]) and ishex(line[i+2:i+3]):
new = new + bytes((unhex(line[i+1:i+3]),)); i = i+3

I tweaked it to

new = new + bytes((int(line[i+1:i+3], 16),)); i = i+3

and the self-tests still pass. (I also changed the 16 to 15 to double-check that the tests were actually exercising that code.)

It's not part of the public API, so it looks like it can simply be removed.

Do you want to file the bug report? Or perhaps it's best to update http://bugs.python.org/issue21869 ("Clean up quopri, correct method names encodestring and decodestring")?
Wikipedia Zero creates a financial penalty for users who want to preserve their privacy by using Wikipedia over Tor. I wonder what folks here think about the ethics of that.
Hmm, that sounds very similar to this 2006 sci-fi novel: http://www.amazon.com/Cusp-Robert-A-Metzger/dp/0441013015

It reads like William Gibson reimagined by Michael Bay but I ended being entertained despite myself.
I don't know if there's a proper name for this ability, but neither JSON nor YAML allow you to embed child tree nodes inside of node values. This ability requires named end tags. Example:

<p>This is <b>bold</b> text.</p>
"p": "This is ... uh ... nevermind."

You could make a compelling argument that you shouldn't do this (separate block level and inline elements into separate encodings), but remember that even the relatively minor HTML->XHTML movement to put a bit of sanity into single-use tags like <br> -> <br/> failed miserably.
Special Report on Global Entrepreneurship Week
One thing that trello has on you is that I can make waaay more than 4 lists in trello. We usually have around 8-15 lists on a board.
I know the contacts list gives them a lot on its own but I at least try to make it hard for them.

I know this sort of ridiculous because they are on FB and I don't mind them requesting me but I don't make friend requests on FB because it feels like I am leaking information about them to FB. It is illogical I know but it feels like it would be wrong for me to do it because I understand the information that a friend request reveals but that it is OK for them to do as they don't understand.

I asked for the data that they have on me once but they only give you the information you have entered not all their analysis and tracking data (they must at least do ad tracking) and they certainly track devices you have connected with. I complained to the Irish data protection agency (who have responsibility for FB in Europe) but only got a form response. I should chase again.
To include history, philosophy, musicology and other academic fields? I don't see how that's better.
If IE didn't barf on a trailing comma after the last value, we wouldn't have this problem. That's probably the biggest source of all my IE JavaScript bugs. To be fair, I'm not actually sure what the spec says, but the spec might be wrong :-)