skysight-inc/HackerNews huggingface dataset:
How should i document my code?
I have been working on a hobby project in JavaScript/three.js + browserify for 5 years now.

I've been pretty good at testing my code and refactoring it whenever appropriate. I thus have more than 2500 test cases and I feel that my code is pretty solid.

However, I haven't been so good at documenting my code. I have some comments here and there in the code base, pertaining to certain functions. But that's it. I miss documentation that explains all the 'glue' and the big thoughts in the code. I always wish I had this, whenever I revisit code that I wrote a while ago.

So what's the best approach to this? Is there any kind of systematic approach to this task, beyond autogenerating API docs using / ... */ comments? Or any kind of guideline I should have in mind when starting this project? What's the best practice when embarking on documentation projects like this?
> Code is typed. Typing it slowly slows you down. Just like a slow compiler does or a slow IDE or even a slow computer with spotty internet.

There is a different side of this coin, actually. Having a compiler that takes
a really long time to compile the code gives a different type of friction
than a compiler that works blazing fast. The former makes the programmer want
to avoid unnecessary compilation, which works amazingly well for some types of
people (I am this type, so I speak from experience).

Though this doesn't work for a text editor, I believe. Editor should be as
powerful and fast as possible, and I wouldn't trade my Vim for anything else
(maybe Emacs, but I'm too deep to go back and invest in learning it, only to
discover that I got no further than with my current setup).

Edit: Spotty internet connection has its good side, too. One learns to read
locally stored documentation instead of relying on StackOverflow, which is
a big gain in the long run. Similarly slow desktop computer: if the
program runs acceptably on my (slow) machine, it will be so much faster on
something better. (Though I only write command line tools and network daemons,
so I may be biased here.) All boils down to friction profile, which bubbles
different things up to the surface.
What, the capability to install updates? So you'd be fine with a secure phone that the vendor could never update?
Site back up
That, and the recognition that search was a powerful conduit for ad revenue is the reason that Google is what they are today.

Jerry Yang and Yahoo did not appreciate this and missed their oppurtunity to acquire Google early on. That said, Yahoo would have fumbled it even if they had pulled the trigger.
I'm not sure I'm following your line of thinking here, but I really want to understand where you're coming from, so maybe you could go over it again and help me understand what you mean.

You started out talking about Donald and his supporters, then jumped to some fringe and obscure websites as citations. Who is it, exactly, that you want to start punching? Some nobody with a website? Donald? His supporters? I don't get it.

Then, in response to my statement that it isn't right to combat words with fists, you jumped to cop violence (which happened far more frequently under Obama than Donald, so far). I think when the state is actively shooting you for no reason, you're justified in fighting back with equal violence; however, this is a far cry different than punching someone in the face for having a different opinion than you do, isn't it?
Traffic and subscriber [stats] 2 weeks after launching Opps Daily
I use to work in search advertising and we've had people do this to our sites too. The malware doesn't just change the default search it also replaces the ads on our pages in your browser with their own ones. So they get the money and we get the spam and malware complaints.
Actually yes - the H stands for hardware: that's any kind of digital logic. You just need a different "back end" and then in theory the same model can run on various targets - in fact there is a whole business model around getting a design up and running on an FPGA and then porting it to an ASIC once you can justify the volume.
>Being able to complete transactions without taking your fingers off the keyboard is almost always faster.

Until you get carpal tunnel syndrome.
Indeed. I'm making the switch from Linux (which I've been using almost exclusively since 2004) to MacOS, and so far I find a lot of nuisance, and almost nothing that works better. Different, yes. More pro apps available, yes. But inherently better (or just basically in the OS)? Haven't found where yet.
In the medium term I agree, but there are som major standards issues and negotiations, like common implementation against the law in several major markets, to work out first, I think.
Amazon Reef: First images of new coral system
I've not personally used this, but it should work for your use case.

http://www.chromium.org/administrators/policy-list-3#Roaming...

(note that the 'roaming location' could still just be a folder on your local drive.)

> If you enable this setting, the settings stored in Google Chrome profiles like bookmarks, autofill data, passwords, etc. will also be written to a file stored in the Roaming user profile folder or a location specified by the Administrator through the Google Chrome policy.
Startpage is recent discovery for me. I really like it. Is it possible you can share any ball park numbers, traffic, growth etc?
There are several gradations more security we could specify if we relaxed the constraint that ordinary non-technical activists be able to reliably do things.

The level of protection you're getting here is from targeted non-state attackers, ambient opportunistic state-level actors, and non-specialist law enforcement. Some of this stuff would have helped Ross Ulbricht (I mean that non-normatively), for instance.

Google "you're gonna get Mossaded" for fuller picture of what we can expect for current state of the art against targeted state-level attackers.
>I'd guess the crashes aren't this common for all users or else they would not be considered stable.

You'd be surprised.
http://www.betlines.ninja is a soccer odds comparison site which makes me a small profit on the side. I have a freemium Mashape API too. I have been gathering data for personal use for many years which I may sell on big data marketplaces when they open up (like datapie). Not getting rich by this though :)
I found it! It's this link in case anyone is interested:
https://news.ycombinator.com/item?id=12193395
>I really don't get why someone would want to change platform while doing his damnest to keep things exactly as before. Instead of, I don't know... embracing the changes? Maybe try something new??

Isn't it OBVIOUS? Because they very much like their existing platform and how it works, but just dislike some things enough (e.g. the hardware options offered lately) that they want to move away.
The linked website includes this workflow under their definition of trunk-based-development. As long as your branches are short-lived and make it into the main line rapidly, it appears to be considered equivalent.

I've seen some commentators say that this doesn't pass their bar for TBD, but I think it's effectively the same thing.

The site does call out "GitHub flow" as being slightly different, but that's because GitHub's description of their model includes deploying the branch to production before merging to master.
Yes you can!

(no idea why emddudley is claiming otherwise)
>But then you will completely miss all the advantages of the new platform has while getting mad at everything that doesnt work exactly as in osx.

The parent's goal is not to embrace change, is to get back to having the same things they liked and worked for them on the new platform.

If they could be satisfied with any random thing, they would have just as well stayed and followed the old platforms new direction.
You can most certainly build ASICs in VHDL. VHDL is not restricted to any target technology. There are (commercial) tools which allow you to synthesise the masks needed for ASIC production from RTL (register transfer level) VHDL code given a cell library for your target technology. See random Google search result [1].

[1] http://web.engr.oregonstate.edu/~traylor/ece474/vhdl_lecture...
When patents expire all that's left is an incredibly detailed recipe for reproduction, now in the public domain.
Much of the technology you use today only exists because individuals have been incentivised to iterate on established patents with the promise of their own monopoly on success.
I need images, tabs, tabgroups. The developer tools are nice to have. And I'm just used to it. It sits just below 500M of RAM, with about a hundred tabs. I can deal with that.
Specifically, suffer from second system effect [0].

[0] https://en.m.wikipedia.org/wiki/Second-system_effect
Good question. I don't type code as I type a letter. When "coding", I edit structured text. So what's important for productivity is things like jumping with accuracy (word, corresponding bracket, file...), cut/paste, other IDE shortcuts to rename, refactor, etc.
1. I have found, when you know what the next word is, that there is a typing-speed line that if you are above, just typing the thing is faster than using IDE autocomplete. It also disrupts your flow less.

I am convinced, although only based on anecdotal evidence, that a lot of the vim/other-editor vs IDE debate is significantly based on how fast you can type.

2. There are a significant number of programming tasks where the typing-to-thought ratio is relatively high. Refactoring is one. Debugging is another. UI code, or anything with a tight feedback loop to something visual, and particularly CSS, is another. In my experience, the faster you can type, the more likely you are to solve these problems by trying things, rather than attempting to guess what is happening in your head. IMO the former is radically more productive.

3. Slower typers tend to look for GUI tools for things that are probably best used from the command line (git is the paradigm example here).

I am passionate enough about this that I have gone as far as organizing typing speed competitions on my team.

Obviously there are exceptions to the rule. I have also worked with excellent programmers who can barely touch type, although they still suffered from some of the above issues.
I understand you're view point but what is their to listen to? There are people that support republicans against their own interests, they are also amenable xenophobic rhetoric. They largely cling to a fantasy of America that was only close to being "reality" about a decade before 1960. They are skeptical if the rest if the world and think somehow we wil revert this country back to an early twentieth century industrial revolution ... Ok, but that is all nonsense. I know that's not nice to say but that's how it is, so what are we listening to? If it's about strengthening social safety nets, better education, fights for "living wage," well, um that's not Paul Ryan or Donald Trump.
try it, then revert if it does break.
Meet the Man Who Put Mario and Zelda on the Philips CD-I
I was under the impression you could too. Can you somehow convert it to a format say Magic VLSI could open, out of curiosity.
Ransomware infected systems at a luxury hotel locking guests out of the rooms
A decent middle ground is encrypted disk images. You're getting inferior encryption (it'll be sector-level wide-block unauthenticated encryption), but at least you'll have to unlock and lock things as you use them.

There used to be an OS X tool called Vault that managed these with a simple, pretty UI. Unfortunately, it was discontinued. We may put something like it together, but we suck at UI.

Stuff like this, by the way, is why I get so aggravated by UI/UX/Frontend developers who build new encrypted messengers --- the world doesn't need more encrypted messengers, but badly needs more UI/UX help with existing tools (I'd be happy to build the backend for such a thing and sign the IP over to an effective front-end developer).
This is really cool! Thanks for sharing with us!

Is this using parametric synthesis? (It doesn't sound concatenative.) Do you have a background in speech, signal processing, or audio, and is this just a passing interest, or something you want to continue to explore?

I've been teaching myself speech algorithms and methods off and on for the past six months ago. Recently I developed a concatenative Donald Trump text to speech engine (I've posted about it in the past), but the samples aren't great and it doesn't use proper unit selection. I'm trying to apply ML to generate a massive set of smooth n-phones that concatenate well together.

I'd definitely like to exchange contact info if you're into speech synthesis long term. My info is in my profile.

In any case, really cool project! :)
An "imported" doctor needs to get US certifications, and that's a limiting factor. With enough protections in place, the increase of supply may be seriously delayed or even not happen.
I was floored at the repeated circling back to suspect Heather as the suspect, and the lack of a "mea culpa" by the author for ever having seriously suspected her in the first place.

We are so, so quick to blame the victim - it lets us believe that the one thing that is "out of alignment" with our belief in a good and just world is the only thing out of alignment, even if we have to blame someone who is clearly a victim, instead of having to search for even more evidence that dispels our too-perfect mirage of the world we live in.
I'm enthusiastically agreeing with you.
We do CI, not CD. Lots of software doesn't do CD and lots of it can't. Games. Embedded. Desktop. Store-apps.

In my case it's large desktop software for structural engineering. Customers don't want new versions more than 1-2 times per year because of deployment, training and code compliance requirements. If we bork a release we have had users make a long download+install again. We don't just deploy the fixed one in prod to solve problems.
Thats why a release goes through hundreds of hours of manual testing.

Not to mention data: a feature is a new file format. If we ship one new feature we basically ship a new format. Now you know why Autocad, Word and Illustrator ships once per year and not once per commit.

I think what a lot of people (who presumably do web dev only) forget is that web dev is just one of many software development disciplines, and a very young discipline too.

I know of the practices you mention. I like clean code (both the book and the idea). I'd do CD if I had a project some day that runs on a server. I hope I won't have to do web dev any day soon though.
If they had said "Hillary Clinton is the best thing ever", that would have pissed off half the country.

Trump wasn't popular; he was just popular enough, and it's for a variety of reasons, not just one.
Reminds me of a day decades ago when I walked into a client site to do a server upgrade, and I noticed on their Novell Server, the uptime counter said it was close to 3 years of continuous uptime. I was flabbergasted. It was just an ordinary little small business with about 10 employees, and it was an old IBM server on a $100 UPS.

I almost couldn't bring myself to shut it down to do the upgrade. I mean, I saw servers with 100 to 300 days uptime routinely, but not one that had never been interrupted for over 1000 days....
Programming is more like modelling clay rather than carving stone.
You can, and you should, always slowly reshape your creation until you are satisfied with the result.
If you are carving stone there is no way that you can change it without destroying everything and starting again.
You may be faster just using a lot of time thinking before writing the code, but you will never see the real essence that is revealed only while you are continuously moulding your creation.
To me it always happens that after days or weeks or even months that I don't look at some part of my code I find a better way of doing it.
One way that would have never been apparent without the code being in that current form.
Scared people are not bad people. But they cannot protect the weakest among us. They will betray everything we claim is right, and moral, and give into fear. And they're among the first to demand everyone else be fearful, and to ask for the end to discussions that progress the conversation among those who are not fearful.

When people see something that isn't right or fair or just they have a moral obligation to say something. Saying otherwise is just another betrayal and weakens everyone.
>Why not?

Because for the last 20+ years, FOSS haven't managed to be consistent, employ professional level designers, not rewrite everything from scratch every 5-6 years, and maintain parity with commercial OS offerings at the Desktop GUI level.

Why? Because of lack of resources, programmers hoping to what's interesting and not to grunt work that must be done, people dropping out of projects and no formal structure to force a continuous experience so new members get to change whole direction, etc.

And plain lack of resources. GTK+, the core basis of Gnome and tons of apps, one of the more important libs, only had one person fully maintaining it (at least a few years ago -- the person complained publicly in blog posts).

Contrast with the Windows or Cocoa gui libs that have teams of tens of programmers.

>I'm not saying this would be easy, only that I don't see any reason why it wouldn't be possible.

Anything is possible, it's all 1s and 0s. Whatever it's there or at least probable is more important.
Why is Wire less secure than Signal?
We just decommissioned a pair of EMC CX's. These things had phone home to EMC (and then eventually a third party maintainer) if something was about to go bad or had failed. We'd usually have an engineer onsite within four hours at the DC with all the right parts to carry out a fix.

By the time it was being looked after by the third party maintainer they'd just leave us a few disks and a couple of fibre channel controllers onsite and we'd get the DC remote hands to swap them out. The faulty parts were then boxed up and couriered back to the maintenance company all on their dime.

There was not an awful lot of involvement on our end except for authorising access to the DC when an engineer needed to attend.

None of this was massively expensive (and this was 24x7x365 cover) in the great scheme of things given their mission critical status.
Slow IDE, slow compilation, spotty Internet force you to wait and captures your attention.

Slow typing doesn't capture your attention, if you touch-type. Your hands are typing while you go on thinking.

If you get to the point where typing is the bottleneck you are not thinking enough and you should be working on some more difficult problem instead.
That is not an entirely irrational decision for many web sites.

There is a liability that comes from maintaining accounts and passwords in particular. It can make sense to let the large players take on that risk.
that's cheating! we want the power to instinctively tell how many seconds have elapsed. maybe even what time it is.
This is basically how the team I work on does it. We have wrapper scripts around git. Commiting automatically merges from master first.
Yeah. They should just replicate 100% the old system first, and then, only after testing, and 1-2 years on, start adding any new features...
It gives me a very warm feeling to know that those simpletons now have you to care for them and prevent other people from taking advantage of them. I do hope they show some appreciation for your efforts on their behalf.
Luxury Hotel Goes Analog to Fight Ransomware Attacks
Regarding Chrome, here's a good place to start:

https://noncombatant.org/2014/03/11/privacy-and-security-set...

There are also people who use Chromium, or particular configurations of Chromium, instead of Chrome. That's fine. But don't use forks of Chromium, no matter who maintains them, even if it looks like a sizable effort. You don't want your browser to be any number of days behind the Chromium patch cycle.

I use the browser integration for 1Password on OS X (I might not if I was on Windows). I'm generally not that worried about localhost privilege escalation. I am very worried about how well I can reason about cloud-based storage of any sort, and how it will interact with things like my browser.

KISS: keep your secrets out of cloud systems and your backups offline.

If you're very sophisticated, I like Tarsnap for online backups. But you have to be very sophisticated to use it.
I see where you're coming from, but this tool is still valuable in a number of cases that I don't think you're considering.

I recently got a new mechanical keyboard, which had special "layers" for punctuation. "Common" punctuation like periods and commas are still there, but other punctuation like curly braces, brackets, etc. require new key combos. [1]

I agree with you that a lot of the time programming requires modifying rather than composing, but not all the time. In particular, I blog in Markdown, which requires a certain amount of extra symbols that I wouldn't normally be typing. (Goes hand in hand with the previous point).

[1] You might be wondering, "Why get a new keyboard, if you're typing slower with it?" The new one is easier on my hands, wrists, and fingers, as well as being an actual pleasure to use.
> but they are the correct answers

Citation needed.
There are good hackers that will likely save our world from disaster.

Then there are bad hackers out there with various motives, often monetary. Some of them make a living or get a thrill by propagating viruses.

You will notice there are companies selling software to remove viruses, like the supposed DuckDuckGo virus, for example: http://www.2-spyware.com/remove-duckduckgo.html

There are virus creators out there that take the names of legitimate companies like DuckDuckGo and StartPage, likely to trick people for their own reasons.

Let me emphasize again that DuckDuckGo and StartPage are legitimate search engines, and the reported viruses that try to benefit from respected industry names like these have nothing to do with the legitimate search services.
Interesting idea. Could you elaborate a bit more on what are some specific positions and tasks inside architectural companies, where the CS + architecture combined knowledge would be valuable for an employer?
Most people recommend an IPL of an iSeries (AS/400) at least every 1-3 months. Did they just do that after hours?
I used left-handed dvorak for a while while my right hand was broken, and used colemak at home, but I reverted to QWERTY after realising I have to work with other people. Other people use my computers, and I use other peoples computers. Having to remember to switch maps before letting someone start typing at my computer, or having to cognitively switch back and forth between layouts whenever I used anothers wore thin, and I gave up.

If I did lose the use of a hand permanently, I would probably try making a custom map with chording, there's definitely a payoff there.

I'd say it would be worth learning alternative keyboard maps if:
A) you work remotely and have a single computer or set of computers you can permanently configure with your preferred layout.
B) You're a wordsmith/writer and produce large amounts of textual input as fast as you can type.

I think getting a base touch-typing competency matters far more than optimised layouts, even though the latter can improve comfort/accuracy/speed even further.

In comparison, the text-input methods for smartphones and portable devices need to improve drastically. I find myself getting frustrated whenever I need to input more than a single sentence of text into a smartphone. Using terminal emulators or trying to write technical code/information is a nightmare.
Why don't you have the same results as Google? For example some searches will return nothing in Startpage but a few results in Google. Are they intentionally limiting the quality of the feed they provide?
I am indeed developing a licensing API (SaaS + on-prem options), so I appreciate the response either way.
1993, the "Eternal September".

https://en.wikipedia.org/wiki/Eternal_September