skysight-inc/HackerNews huggingface dataset:
Fandom is incredible. From Japan's Touhou dōjin music scene, to a My Little Pony fan community so enthusiastic that it spawned completely custom-coded fanfic sites (i.e. https://www.fimfiction.net/statistics, with 2mm+ pageviews/day), to the more-obscure crossover fanfiction on forums like https://forums.spacebattles.com/forums/creative-writing.18/ , to AI researchers moonlighting as lauded fanfic authors (see http://hpmor.com/) ... it's mind-boggling how rabid fan-media consumers and producers can be. They're also incredible power-users of their sites; as this article indicates, many obsess over tagging and taxonomy, and they'll self-police if the sites can get out of their way. If you're looking for growth & engagement numbers (and you're able to segment your site with policies like strictly opt-in questionable content, which Reddit is admirably trying to get right) don't discount the power of fandom.
Implementing all-pairs similarity search on a few hundred million records. Naively approached, the complexity of this is O(N^2), so had to come up with novel ways to make it finish in a reasonable amount of time and with limited resources.
It actually is a feature that adds value though.

The way it worked was valve provides the RSA mod, exponent, and a timestamp.

You rsa-encrypted your password with that information and send it. They double checked server-side that you encrypted it with that information, decrypt it with their private key, and get on with checking against the hash in the database.

What this buys you is that if an attacker intercepts that login, it can't be re-used. Next time, valve will give a different mod and exp. Next time the valid encrypted password will be different. It turns the user typing the same password every time into a new encrypted value each time with each being valid for a short amount of time.

So that's what RSA buys you here.
This is exceptionally hard to answer because for every problem I solve I tend to end up looking at my solution and thinking "That wasn't so hard. Why did it take me so long? Am I bad at this stuff?"

To answer the question though, I think probably writing a robust web scraper to search events listings and turn them in to a sharable calendar. It'd be trivial these days but I did it in 1999 in Perl with regexs.
The real issue with getting your plain text password in an email is that it means the site is not hashing passwords at all.
I remember a defining struggle in the late 90's, while I was in high school and teaching myself how to make webpages.

My problem was a lack of javascript logic firing and the answer was to wait for document load. Simple, I know, but I had nobody around me (physically) that could help me and explaining the problem to people in forums seemed impossibly abstract, primarily because I did not understand what the problem was. It was the context around my code that I had to fix, but I kept looking in the code itself.

That was probably one of my first big "ah ha!" moments and these moments are one of the reasons I still love programming. Tenacity, luck and skill became irrevocably connected that day.

I've solved many other problems over the years, far tougher than this one, but maybe never tougher for me in a relative scale. If I had never solved that problem, I sometimes believe my life path would have been totally different.
With windows, Ive done very well with goodsync. It tries very hard to keep things synchronised nicely, including when the connection between clients is patchy.
> [...] JS crypto isn't going to do anything.
It may have provided a little bit of extra protection in some scenarios. For example, many trojans will grab any HTTP(S) POST data from your browser. If such a trojan is not specifically configured to grab Steam data, hashing/encrypting client-side will provide some protection.
Installing Visual Studio Code on Linux (Ubuntu)
> It's really only when you find yourself with a problem that you can quantify that these tools start to make sense.

Good point. Another reason to be careful is that there are too many half-assed solutions to problems that might not even be real.
Putting keys in a text file doesn't fit the narrative of a generally-careful user forgetting about side effects and metadata.

It's important to know where your keys are, but it's also important to not store your keys in certain ways that are easily overlooked.

A lesson of "don't put secret keys inside the web root" is also useful.

But a lesson of "know where your keys are and secure them" is a bit too short-sighted. You don't just want them to be secure right now, you want the mechanisms keeping them secure to be mistake-resistant.

Don't put them in the code, even if you promise to be super careful.
Linux users are currently confronted with some lack of comfort compared to their Windows and Mac OS X friends. Although there are several and in my opinion easy ways to increase the user experience in using Visual Studio Code under Linux I'm a bit concerned whether Microsoft is keeping it on par to the other systems. Right now, installation takes some manual steps, there are essential parts missing in order to provide an excellent first contact and other editor features like automatic updates aren't yet available for the Linux variation compared to Windows and Mac OS X.
Too bad that StackOverflow doesn't have an official bug bounty or even a wall of fame.
If you wrote it like that this bug would happen in every language. There is nothing in there that is worse because of C.
I am part of a team created a system that took the complexity of the human metabolism and reduced it down to a few vital statistics that are then used to create a individualized formula that tells people how to sustainably improve their metabolism and lose weight and gain muscle. The amazing part is that it works for everyone because it is custom tailored to them. The hard part here was 30 years of testing, thankfully not done by me, but by the CEO who happens to be a bodybuilder.

The formula is how much protein, carbs, and fat to eat and the appopriate exercise of 3 half hour workout sessions a week. No supplements or anything else. Just food and small amounts of exercise to stimulate hormone response. This is way more complex than some tracker or calorie counter. It takes into account insulin spikes, metabolic damage assessments, glycogen storage, and much more. The hard part here was integrating ~10 different disciplines in various sciences. Everyone had a piece of the puzzle, but we had to put it together.

That is then fed into an app that can then pick foods for you based on your formula that is then constantly refined based on your results. We took 1000 people through test runs tweaking our code to get it right. Now it works for everyone that we put on it and actually uses the system.

Our next challenge is the psychology and habit forming parts of the app we have built.

Oh and of course competing with well funded competitors in the space, but at least nobody can claim our results because they just track things instead of allow people to really plan for health.

Edit: Since you asked, it's called mPact (for metabolism impact) and the corporate site is at http://mPact.io
Unison. Know where your data is. Don't sync oses. Instead, keep their setup in scripts. You can get faster sync if you can say which side is newer by using btrfs snapshot over the network.
Butter-In-Coffee Company Bulletproof Secures $9M Investment
This site raises my blood pressure; I can't view the content because of nonsense popups giving me definitions of words like "account".
google drive to sync documents, normal files, etc.

git for code.

then i have VMs on EC2 for specific tasks.

>tired of carrying a laptop

i solved this with a lighter weight laptop.

you can usually leave your multiple displays wherever you need them, and plug into the laptop.

edit:

looking back, i'm very invested in google's ecosystem of "synced" things: google apps.

it's almost to a 90's microsoft extent -- where i will actively avoid and discourage incompatible formats or platforms.

at the very least you can use any of google's things with an OK computer and an internet connection.

that leaves me wondering what will "obsolete" the "google office"
I'm young so this may get better with time but I've had a hard time finding environments that support the slower style. It's often derided as being the "waterfall" method.
About 10 years ago I built a Scanning Tunneling Microscope. It took me 2 years to complete it and to get it working.
Turning myself from a data driven nerd into an emphatic person who understands social interactions. Finally, I bring home girls :)
Does box have a local drive filesystem like dropbox? It looked like you had to fire up an app every time you wanted to use it for every youtube video I was looking at.

Hesitant to install all these as tests since they seem to litter my system with some rather deep stuff, that not done right, can and will eventually cause you trouble.

Anyone know of a simple way to just mount Amazon S3 as a drive? Or is that not possible with the way they name folders having to be globally unique; unless that is only the top level, or in this case, the drive mount point name.
Meditation can be defined and practiced in a lot of different ways. One way of doing it is practicing mindfulness. That is how I defined meditation in the article. I do agree in a way as it was not as clearly defined.
A little trick when working with ConcurrentDictionary
So, in your using TIOBE as a baseline, are you suggesting that Java should be the language of choice for embedded platforms?

From their home page: "It is important to note that the TIOBE index is not about ... the language in which most lines of code have been written."

MOST software development these days has a web component... not all, but most... that means JavaScript... I would posit that more developers have used JavaScript to some degree than any other language... not their only or primary language.

My argument was to the number of developers who know/use JS... not the language with the most deployed instances. Also, calling out JS for being bad, and suggesting PHP as a language to use is a pretty bad alternative... especially given that everyone who's written PHP has also, most likely written JS.

Node was developed precisely because JS makes a good domain language for interfacing with lower-level libraries. I can see the argument for Lua...
I'm not saying this is an excuse. They are just not investing any headcount in it. That's a fact.
Trying to figure out how to scale and secure Twitter. From a dozen people in a room to 2800 when I left, it was a challenge every day.
Novice mistakes ;)

Next time I'll include the full url.
Yet another example of why allowing nullable values anywhere is a bad idea.
I use the sbt command ~testQuick. That continuously recompiles scala files as soon as they're saved and reruns only the unittest(s) that are affected by the change.

For running my app I use the revolver plugin that offers the same thing: as soon as I save a file it is compiled and the app is restarted. When I use the Play framework this is supported out of the box: I save my file and refresh in the browser and see the changes.

This works very well.
The Parboiled2 framework is often used for building parsers.
Apply Kesar Tilak on the Main Entrance of Your Kitchen
This might not be the hardest bug I've tackled, but it certainly took the longest to solve.

It was the early days of SOAP, and I had been assigned the task of integrating my employer's software with a third party's, so that the applications could share data. This third party org was a wealthy, powerful mega-corporation; and my employer was, well, not. The third party produced a spec for the interface, expected us to follow it, and offered no help from there.

I built a solution. It worked on my machine. Solved the problem. All was right in the world.

I moved it to the test environment. It worked again. Demoed it for one of our customers, and everyone was pleased.

Deployed it to our first beta tester. One lonely employee working accounts receivable, tucked away in the corner of our customer's office.

It crashed.

I checked everything. I mean everything. There are still particulars of that little Windows 2000 workstation that I can describe vividly. Which programs were installed, which patches were installed, how Windows had been configured, how the firewall worked, I even got permission to install a packet analyzer. My employer only had a handful of customers, and the beta test machine was near our offices, so I was over there personally a lot over the following weeks.

We brought in the customer's network support people. They found nothing. They could see the packets leaving, and an error coming back, but couldn't offer more than that.

We brought in the best networking engineer in my company. He was stumped.

What really shook my confidence was knowing that competitors mine had gotten this interface working. This wasn't some half baked project that I could blame on someone else. Others had succeeded where I'd failed.

I practically had to walk across broken glass to get on the phone with the third party's development team, but with enough pestering I pulled it off.

The phone call involved me sitting at the beta test workstation and firing off a request so that they could view it hitting their servers live. The developer who I spoke with immediately spotted the problem.

You see, when you send a SOAP request, you send the date and time that you're making the request along with it. The clocks on the client and the server were too far out of sync, my requests appeared to be coming from the future, and so the server disregarded them with a blunt error. Interestingly, the workstation clocks at my company's office weren't too far out of sync, which is why it worked in one place and not another.

Stuff I learnt:

1. Third party interfaces require a point of contact at both organisations who can talk with one another. This is non-negotiable.

2. If you send an error message that reads "Error", you're a bad developer and should return your computer science degree to your university and demand a refund.

3. No matter how well written the spec is, something always gets left out.

4. Persistence maters more than anything.
Only if the send you your old password. If they reset your password, they can send you the plaintext first, then hash the password and store it in the database.
In an absolute sense, a golden key is already possible, and we have the cryptography necessary to do it. In a practical sense, a security system that has a golden key is necessarily more complicated than one without it, and have yet to demonstrate an ability to reliably construct a secure system even without a golden key. On another practical sense, we would need to construct an entire key management infrastructure so that it is possible for government agents with legitimate access to use the golden key, and this infrastructure itself would be a high value target.
Ask HN: Most Popular Non English Startup Blogs?
Hi!
What are the most popular non English startup blogs and websites you know?
What did you use to export to the android .apk? Cordova?
Was that challenging from a technical perspective, or from a "I can't quite believe I'm doing this" perspective?
These tunings are for the runtime, what compiler settings are you referring to?
Won't ever be "fastest" in embedded, no way you can run your v8 on such devices.
Debugging a "hot CPU" boot failure issue. A custom motherboard design would only boot when the CPU was cold, like ICE cold (put it in a freezer, or hit it with cold spray).

Turns out the bias current node (external RBIAS resistor sets bias current) for PCIe was routed too close to an inductor for a power rail. When the CPU was warm, the power rail pulled more current, causing the inductor to ring more, causing the crosstalk on the bias net to screw up the PCIe subsystem and hang the CPU.

Found the issue accidentally on a layout change. Had to prove it by drilling out the via and re-routing the signal with wire.
Ah, the USB key suggested by you and i336_ is beautifully simple! Hadn't thought about that (but did come close by looking at the Compute Stick, which unfortunately is under specced for my requirements). Thanks for this.
It's not clear that this font, as a replication of a work out of copyright, is copyrightable in the US. See Bridgeman vs. Corel.
If you don't want to send your unencrypted data to places you do not control - use git-annex for the heavy binaries (photos, PDFs, videos, music) and just sync between your instances. Though git annex can do end-to-end encryption and upload to Dropbox/gdrive as well.

Pure Git is great for consolidating configuration as well as keeping plaintext format files in sync. Invaluable if you are an org-mode or markdown jockey.
Zute – Now Available on play store
I have a few little trophies I go back to every once in a while when I'm feeling like a crappy programmer.

- I worked out, on pen and paper, sorting networks on my own a few years before the Wikipedia article on them existed. I was looking for shortcuts in a Quicksort implementation. I hadn't read Art of Computer Programming yet, which is probably the only other place I would've been likely to read about it. It hadn't been covered in any of the other programming literature that I was devouring at the time.

- I wrote a variable interpolator in COBOL. COBOL has no string operators or anything resembling a string data type. This one was tricky. I was working as a programmer/operator at a school district at the time and the central hub of their IT was a Unisys mainframe that ran COBOL and WFL. There weren't any punch cards anymore, but everything ran as if there were; for any given job to run, say, report cards, you had to go into the WFL job and edit a two-digit school code in half a dozen places, in "digital punch cards", which would then be fed one after the other into COBOL programs. This was error-prone and I wanted a way to define a couple of variables at the top of the job file and then have everything work after that.

- I worked for a BigCo that used Remedy for its internal support systems. There were some latent training issues in the internal support department and support requests kept getting modified by unknown people, which would cause the requests to get mishandled and would irritate various other departments. I found a way to sneak some code into the Remedy forms system and I cobbled together a very rudimentary communications protocol between several forms so that all changes to any form got logged to another form, along with the user's id. Remedy had no loop logic at the time. That actually made it to a Remedy developer's group mailing list once and I was a big fish in a very tiny little puddle for a day.

- I reverse-engineered portions of the .dbf format that FoxPro uses, and wrote software that could convert .dbf files into MySQL tables. The date format was tricky. It was an 8 byte field where the first four bytes were a little-endian integer of the Julian date (so Oct. 15, 1582 = 2299161), and the next four bytes were the little-endian milliseconds since midnight. This is not documented anywhere.

Those are some of my favorites anyway. 30 years of programming, there's been some fun stuff along the way.
I have a Panasonic and it makes a difference. (or maybe it's just confirmation bias?)

Where the Panasonic shines is at lower power settings. E.g. if you defrost at 30% power for 3 minutes you get much more pleasant results than using the typical microwave. In a typical microwave the thinner areas actually start cooking rather than simply defrosting when operating at 30% power.
Their webapp is (AFAIK) all PHP; not sure what the backend looks like.
At any reasonable estimate of Valve's revenue and valuation multiples, they're easily a billion dollar company, I'd be surprised if it was as low as only $1B. They have nearly 500 employees listed on LinkedIn[1] which is probably a decent estimate given people who've left but haven't updated their profiles and those without profiles in the first place. That's not a small company by any stretch, and I think we can all agree they're purposefully making the decision to not offer competent support.

[1] - https://www.linkedin.com/company/13922?trk=tyah&trkInfo=clic...
> "That wasn't so hard. Why did it take me so long? Am I bad at this stuff?"

Hah. Always. Hindsight bias and impostor syndrome are a fun mix! I remember writing a blog suite (with comments!) in Perl in the late 90s; back then, without S.O. and other knowledge-sharing beyond some Usenet forums, inventing the wheels as we went along... it was all hard.
Yes, the USB image is so simple enough, that I'll just have to give it a try. Didn't know xpra, which could come handy from time to time. thanks.
Show HN: Foundcy – What founders are reading today
klipch
Top ECommerce Platform – Best Software Solutions in 2015
InfluxDB (YC W13) Is Hiring Go Developers in NYC
InfluxDB is an open-source, distributed, time series database written in pure Go. We're building out our team of talented Go developers and are looking for engineers that are enthusiastic about building complex distributed systems.

We're building out our office in Manhattan and hope you'll come join us!

To apply, visit the job page here:
https://boards.greenhouse.io/influxdb/jobs/66157
Yes, git-annex looks nifty and its prototypical Nomad use case on the website comes close to what I am looking for (lest the system files, executables, etc.)
A Belated Rubuttal Rant:

Developers do lean on users too much to solve UX problems, but I still maintain that giving users a choice here would have been the better alternative. Access to device sensors are almost always behind some kind of permissions dialog on major platforms. Personally I like web/iOS model best, it prompts me when an app/site wants to use my microphone, gps, camera, etc, and then remembers the choice I've made. Making potentially invasive or offensive application behaviour completely transparent to the user is a good user experience in my book, and it discourages developers from using those sensors unless they actually need them. Although I can concede that getting permission for unsolicited access to the phones speaker might be going to far from the small sample size here, and I am just as annoyed at the recent auto playing video trend on the web as anyone else.

Unsolicited sound is pretty important for games, and increasingly the web is becoming a pretty good platform for them. I wrote a little game a while back and I worked around the sound issue in Safari by initializing my sounds (just a few) on the users first tap, not a back breaking workaround or anything, but still annoying that I had to work around Safari. Here's the thing though, if I hadn't been testing on iOS a critical (the sound actually was) part of my game would have been broken on iOS. I guess I'm just grumpy about that... :-/
It uses a combination of the Clearbit Api (clearbit.com) and scraping.
I liked experience writing Tomita LR parser generator in J - while learning both parsing and J :) . ~700 lines heavily commented code with tests... Of course now it doesn't seem all that hard.
Making a trainer for a game. For example: "infinite bullets". It would crash the game for weird reasons. I ended up patching many places of the executable to prevent the crash.

In the end I found out that I managed to write a crack for the game by accident :D Later on I inspected a crack from another team, it would patch the same regions!
In code: Naming things in a manner that makes the code readable. It's a constant challenge.

With cars: troubleshooting and fixing a ferrari 599 without the required factory diagnostic computer. You can't beat a multimeter and some elbow grease. It was a faulty flow meter.

In general: figuring out what to do with my life. It took me a bit but was worth the time. Now I can focus on doing that and just that.
Is there a similar search engine for reddit? I can't access my old reddit posts by search because reddit has a cutoff point at 1000 results.
Haruki Murakami Reviews UK Top 20 Hit Singles