Emacs Users Are Like Terry Pratchett's Igors (2013) - <AUTHOR> https://chrisdone.com/posts/emacs-users-are-like-igor/ <comment><USER2> Emacs is the ultimate example of free software. You really do feel free in emacs, experimenting, tweaking.

Free as in breathing, free as in drinking water. Code is such an integral part of life that it is unthinkable that we cannot have control over it. Emacs gives you control, it gives you freedom.

I am amazed how Stallman got it right and invented on his principles. Thank you Dr. Stallman, thank you.

<comment><USER3> > Dr. Stallman

rms has a doctorate? Or is this some sort of honorific I've never heard before?

<comment><USER2> Right, he has multiple honorary doctorates according to Wikipedia.

</comment></comment></comment><comment><USER4> People who don't know how to program emacs don't get how easy it is to write some code in it to make your life easier.

Some say Atom and VSCode also have plugins. That's true, but can you write code to extend some VSCode functionality in a minute?

You just go to the scratch buffer, write some code, evalute it and it instantly becomes part of the editor. I don't know if there are other editors which can replicate this experience.

<comment><USER5> Can you recommend a good starting-point for learning emacs internals?

<comment><USER6> Not OP, but the Emacs manual is excellent[0] and there's Mastering Emacs[1] and Sacha Chua's blog[2].

Because it's lisp you can inspect just about everything. See an unfamiliar symbol? Put your cursor on it and press M-.

0: launch help from within Emacs

1: [https://www.masteringemacs.org/](https://www.masteringemacs.org/)

2: [https://sachachua.com/blog/emacs/](https://sachachua.com/blog/emacs/)

</comment></comment></comment><comment><USER7> To digress a bit, on the Lisp curse, and freedom more generally:

In the HyperCard thread on the front page right now ([https://news.ycombinator.com/item?id=20550189](https://news.ycombinator.com/item?id=20550189)), someone linked a talk ([https://www.youtube.com/watch?v=9nd9DwCdQR0&feature=youtu.be...](https://www.youtube.com/watch?v=9nd9DwCdQR0&feature=youtu.be&t=998)) on the history of educational software, and one of the presenters said something like, "Some technologies we are simply not mature enough for."

I think this is not a bad description of "the Lisp Curse." I _definitely_ wasn't mature enough for Lisp when I first learned it---high on my knowledge of what was possible, surrounded by myopic fools, as I thought.

But that was years ago. I'm mature enough _now_. It is possible.

In my consulting work my partner and I have marveled at how managing technology projects is a skill --- learnable, but only with some effort and practice, and carrying relatively heavy requirements of being technically competent _and_ having a context of the business.

That's the skill that's needed, IMO, to make Lisp "work." Lisp itself---and Clojure---are really not complicated languages. My boss teaches them to undergrads and they can be productive fairly quickly. They _are_ complicated when someone has built a crappy, leaky tower of abstractions on them. Recognizing when you're in danger of doing so, and when it's not worth it given other factors (business value, maintainability, etc) is the key.

So I wonder, idly, if metaprogramming---no, _really_ , the _meta of programming_ , like "Don't Call Yourself A Programmer" ([https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a- pr...](https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/) ) and "Developer Hegemony" ([https://www.amazon.com/Developer-Hegemony-Erik- Dietrich/dp/0...](https://www.amazon.com/Developer-Hegemony-Erik- Dietrich/dp/0692866809) )---might develop some more, esp. among the Lisp communities. When the language is no longer the barrier, you start to realize that other things _are_.

</comment><comment><USER8> Emacs is 43 years old. When it was written, the kernel had to be written in C. Elisp is slow.

It's probably possible today to write an Emacs in a high-performance Lisp.

Elisp has no support for concurrency, for example.

"Some 359,000 lines of C code comprise its kernel, and 1,637,000 lines of Emacs Lisp take the rest of it.1"

<comment><USER9> Whenever I open a file of code that is ~2000 lines or more, emacs slows to a crawl. It takes 5 seconds to redraw the visible text after hitting "page up" or "page down".

I don't think emacs should be made any slower than it already is.

<comment><USER4> > Whenever I open a file of code that is ~2000 lines or more, emacs slows to a > crawl.

Then there is something wrong with your environment. Emacs has no problems with big files. It can have problems with very long lines, but big files shouldn't slow it down.

<comment><USER10> That's not true. Emacs has several problems with big files. Though, to be more specifically, built-in minor-modes have them. So it depends on whether you run a bleak vanilla emacs without anything, or a mildly comfortable emacs with at least something like fontlock-mode and stuff.

But, 2000 lines are really not that much. Usually problems on my systems start to show at >10k lines.

<comment><USER11> Syntax high-light pays its tool on not so huge files, but I remember opening without slowdowns files with around 100K lines in text mode (mostly log files).

Not exactly related but with Emacs 27 will be distributed the so-long mode that could toggle minor modes that affect redrawing like "font-lock", "visual- line", "whitespace" when files with long lines are opened: [https://git.savannah.nongnu.org/cgit/so-long.git/plain/so- lo...](https://git.savannah.nongnu.org/cgit/so-long.git/plain/so-long.el)

<comment><USER11> Clearly I meant "toll" not "tool" above...

</comment></comment></comment></comment></comment></comment><comment><USER12> Very nice last line.

Also, I disagree about the 'lisp makes people selfish'. It may be true at first, but I dearly believe that every long time lisper on earth is totally aware of that and knows where to draw the line. It's been discussed to death early on and regularly since. We all enjoy the freedom to fool depth first into every idiosyncratic itch we think of, but we know that they're most of the time only that. And that others can give different views on a similar problem, yielding a more generic notation/solution by blending all attempts.

It does cost a bit though, for instance scheme lack of standard module (until recently IIUC) forces one to work a bit more, or maybe port by hand. But very often, lisp libs are tiny. I still remember the article from early 2ks about a guy searching for graph libraries in java. Found 3, none of them was good enough, in the end he wrote his own in CL in a day. There's a cost of sharing too.

</comment><comment><USER13> In my opinion, Emacs is the only piece of software that I've ever used that is truly self-documenting. Once you learn about Ctrl+h {c,f,v} you can "lookup" what every key-combination, function and variable does. I don't think I've ever used a piece of software that's close to it in this regard.

</comment><comment><USER14> using emacs was so revolutionary for me because I had never before thought about building an editor that fit my workflow. Before it was always trying to fit my workflow to fit my editor. The potential in emacs to be anything I wanted it to be was mind blowing.

<comment><USER15> How did it turn out?

<comment><USER14> Great. I am still using it to this day. Even when I switch jobs or switch products, I just change Emacs to match my new workflow.

</comment></comment></comment><comment><USER16> I lack even a reference for the sorts of things that can be done. How have Emacs users here customized their workflow?

<comment><USER17> A huge amount is taking preweitten plugins—someone upthread said you should just learn your editor's existing feature set, and this is true.

But I use Emacs as a mail client—message mode is awesome—and extended it with a procedure to create text/html parts and all the necessary MIME headers. I especially like using that for tables that are readable in monospaces text/plain or as HTML tables. Compare that to a GUI mail editor, which surely defaults to HTML but which probably isn't going to offer you tabular support.

Let's see. I have some fine control over white space in here, to meet different collaborator's guidelines. And that integrates with the magit git front end.

I have a bunch of macros driven by the abbrev autocorrect scheme.

But in reflecting on this, the big important category is "Other". I write 5-50 line programs, sometimes starting from a macro recording of one run of the core loop, weekly.

Imagine a world where general spreadsheets didn't exist; you had accounting software but it was all like TurboTax or quickbooks, very hard wired for a purpose. And imagine asking how users of Excel customized their workflows, as they tried to explain that the point was the total flexibility. Emacs is like that for text files.

</comment></comment><comment><USER18> I use VS Code and in theory I can modify the source code: it _should_ be as simple as editing source code within the developer tools of Chrome.

However the tooling for VS Code is absolutely nothing like the Emacs REPL (however disclaimer: I haven't used Emacs for a very long time)

</comment><comment><USER19> Every time one of these articles about Emacs is posted here I kind of shake my head and wonder why my experience with it is so different.

So big caveat: my experience with Emacs is pretty much entirely limited to org-mode (which is the only reason I picked up Emacs at all). I really liked a lot of the ideas in org-mode, but the more I used it the more I really wanted to make some minor tweaks. No problem, I thought. Emacs is famous for being super customizable. But everything I touched was extremely brittle, and essentially impossible to configure to work as I wanted it to.

1\. Wasn't a huge fan of "\star" "\star\star" "\star\star\star" as the headlines. I would prefer "\t\star" "\t\t\star" "\t\t\t\star". Hmm, seems the only way to do this is a hack that changes the leading stars to the same color as my Emacs background. That's kind of hack-y. The rationale I could find for this was to keep a consistent on disk format. I guess that makes sense, though it's not something I care about ... I don't intend on sharing my TODO list (and my understanding is there's no 100% compatible org-mode parser outside of Emacs anyway). Not a big deal, I'll live with it.

2\. Agenda view. As I started using org-mode more and more for task management I decided I needed a good task view. I set my own task and project states (nice: simple, works) then I set to work on creating a nice view of all my tasks organized in separate sections (REFILE tasks, active projects, active tasks). Hmm, now it takes multiple seconds to refresh my agenda view. And I have to manually refresh it any time I make a change to any file ... This kinda sucks. Might be a solution for this, never got around to investigating.

3\. File structure for my org files. Despite the occasional org-mode article on Hacker News, it's actually pretty hard to find good examples of a full org- mode workflow. When I was actively working on this I found one or two. When writing my org files I kept running in to the odd problem with certain features because of how I was laying out my files. Should there be an empty line after a headline? Are paragraphs separated by empty lines? If you don't do this correctly (and since there's so few examples available, "correctly" is something you have to figure out by trial and error) then certain exporters (pdf, html) don't give correct output, or folding doesn't work.

4\. Directory structure of my org files repo. I like being aggressive about breaking things up in to different files. And then organizing these files in to different directories. New project? New directory, new project org file. Let's make a separate file for research. So <PROJECT DIR>/Research.org. Unfortunately this butts up with how org-mode assumes you have things organized (which again, you can only really figure out by trial and error when things don't work). Take REFILE for example. It tab completes by file name. But problematically I now have a lot of files with similar names (e.g. Research.org) in different directories. org-refile-use-outline-path sort of fixes this but it's still clunky.

5\. Emphasis. The straw that broke the camel's back. All of the above were minor and I kept with org-mode. It sorta worked. But I was annoyed. Eventually I started doing some research that involved quotes where I really wanted to basically highlight phrases or sentences that were important. I figured this would either be built-in to org-mode or easily added in my Emacs conf. I never did find a solution that actually worked. I can underline, italicize, bold, etc, but no highlight (i.e. classic yellow background for text). Apparently org-mode deliberately prevents the end user from adding their own custom emphasis formats in order to have a consistent file format.

At this point I left org-mode and emacs all together and ended up writing my own rich text editor so I could do whatever formatting I wanted. It doesn't do 1% of what org-mode can, but dammit I can highlight in 6 different colors.

I'm disappointed I never got to experience the Emacs nirvana that all these articles describe. Maybe it's just org-mode, but everything I touched seemed extremely brittle. Felt very much like I was forced to do it the org-mode way. It was really disappointing.

<comment><USER17> Yeah. Org-mode's nature is pretty different from Emacs'. I don't feel that way about Gnus, weirdly. I wonder if I'm missing something there. Helm, like org- mode, is from people getting something pretty different out of Emacs than I am. That's okay! I just wish we had better terms to describe it.

</comment></comment><comment><USER20> Can anyone recommend an editor like Emacs that doesn't use LISP? I find the syntax to be an abomination.

<comment><USER4> If you use it for a while you get used to it. It's just another programming language.

<comment><USER14> Second this. The parenthesis look abhorrent because they are foreign, But that is where the real power of lisp resides.

</comment></comment></comment><comment><USER21> (2013)

</comment><comment><USER22> The big issue with elisp is how alien it is to read code in it with so many parens and the tendency by elisp programmers to inline huge gobs of code in function calls.

<comment><USER23> > the tendency by elisp programmers to inline huge gobs of code in function > calls

Observation on point, and ironically it limits the ability for developers to tweak third-party software (what if you want to change some aspect _in the middle_ of the large code gob?)

<comment><USER14> That's where I found this[0] packages so useful

[0][https://github.com/raxod502/el-patch](https://github.com/raxod502/el- patch)

</comment></comment></comment><comment><USER24> I wonder how "hackable" Electron editors fit in to this: might they be emacs for the masses?

<comment><USER25> Someone else[0] has answered your question, I think.

[0] [https://news.ycombinator.com/item?id=20551432](https://news.ycombinator.com/item?id=20551432)

</comment></comment><comment><USER26> It sounds, from this description, like Lisp is similar to Perl - "There's more than one way to do it". i.e. extremely flexible, and the outcome is a lack of coherence, such that my Lisp code might look substantially different from yours, making it a nightmare to maintain.

I'm pretty sure that if I found myself doing development on my editor then this would be a form of procrastination because modifying the editor certainly ain't developing product related functionality. For me it's more effective to ignore or work around failings in my editor, or better yet, invest some time in trying to learn in more depth the functionality that is already present in my IDE that might approximately meet my need.

<comment><USER27> The codebase is as coherent as the author wants it to be, without the language imposing metaphors like objects or a pure functional style where they're not needed. Lisp won't force you to write bad code, but that means it can't force you to write good code, either: If your Lisp code is incoherent, that's on you.

<comment><USER26> >> If your Lisp code is incoherent, that's on you.

It's actually on anyone who comes after.

That might be just me, or if the code is public it could be anyone.

<comment><USER28> The phrase "that's on you" means "it's _your_ fault".</comment></comment></comment></comment>


Ask HN: Should I blog on Medium for my open-source project, or self-host? - <AUTHOR> I see a lot of open source projects keep a blog to make announcements about their milestones and updates.
Some have their self-hosted blogs, but I also see a lot of open source projects (including very popular ones) using Medium.com.
I thought it was a nice timing to ask this question considering today's news about medium. Is it worth it to use medium as your project's main blog? Appreciate any ideas. <comment><USER2> If you don't mind all "" in your code blocks getting turned into unicode open/close quotes, and the lack of a markdown editor, then sure. Tab also doesn't indent. You can't use `code tags` for variables. Pre tags (code blocks) create a new paragraph instead of a line break (
). So basically not a programming blog. You can create a gist and paste the link, but that's a terrible workaround.

<comment><USER3> I think you can copy and paste code and it keeps the double quotes intact.

<comment><USER2> Huh, that's new. You can now type ` and ``` first to start code/pre tags. [https://i.imgur.com/brsG4BO.png](https://i.imgur.com/brsG4BO.png)

Shit, they added that back in November. I probably should have checked first before writing my review.

[https://blog.medium.com/introducing-three-new-features-to- te...](https://blog.medium.com/introducing-three-new-features-to-tell- beautiful-stories-on-medium-7d1af3bb26d8#.rz8ga9kub)

You still have to start the code block (```) first before pasting I think.

</comment></comment></comment><comment><USER4> I recommend a static generator such as Jekyll [1]. If you want a boilerplate to get up and running quickly, i've put the source of my blog [2] on Github: [https://github.com/metachris/jekyll- boilerplate](https://github.com/metachris/jekyll-boilerplate)

[1] [https://jekyllrb.com](https://jekyllrb.com)

[2] [https://www.metachris.com](https://www.metachris.com)

<comment><USER5> Does it automatically create an rss feed link also?

<comment><USER4> yes, see here: [https://github.com/metachris/jekyll- boilerplate/blob/master/...](https://github.com/metachris/jekyll- boilerplate/blob/master/source/atom.xml)

</comment></comment></comment><comment><USER6> One point that people seem not to be mentioning here: Medium offers some discoverability. Self-hosting doesn't.

That's only a concern if you care about how many people read your blog, but if you do, it's a concern.

Medium's also very readable. If you choose your own theme for your blog, the chances are you'll hit a theme that's "less readable". Often, programming blogs are a LOT less readable. So that's worth considering too.

(All other points made elsewhere about control of your content, compatibility with FOSS philosophy, etc, are good ones too and I won't repeat them here.)

Cross-posting to both a self-hosted blog and Medium isn't a bad solution. Or use a custom domain, as suggested.

<comment><USER7> This is the only important point. The question is 1% technology and 99% audience.

<comment><AUTHOR> I agree with this, BUT.

I think when we say "audience", it can mean different things.

For example, Medium has potential to bring a huge "instant" audience, but there's a difference between instant audience and long term audience.

I just went and took a look at all the large open source projects, and they all have their own blog on their own domain. AND, what comes next is important. They have:

1\. RSS feed button

2\. Link to subscribe to the blog via email

I think these are important in the long term if you are thinking about looking at your open source project from a long term point of view. Medium may give you instant traffic, but most of them don't really care about what you have to say.

Whereas having your own custom domain with a way for people to subscribe via RSS or email will give you a long term audience who are actually genuinely interested in your project. And with those formats it is very likely that your message will reach them, compared to medium where it may just flow away from their timeline without them ever noticing.

<comment><USER6> Going back to the original point, we're actually talking about slightly different things: you're talking about audience retention (making sure that someone comes back), not discoverability (making sure they find you in the first place).

Neither an RSS feed nor a subscribe link enable people to find you in the first place. They do, however, make it more likely that they'll come back after finding you.

You should absolutely also build retention techniques into your Medium posts. And your custom blog. And anywhere else where you care about people reading your content, and keeping on reading it.

</comment></comment></comment></comment><comment><USER8> Use WordPress.com's hosted WordPress with a custom domain if maintenance is a concern. If you ever decide to go selfhosted, migration is seemless.

All the other hosted platforms frankly could stop working a year or two from now. Medium doesn't have a viable business model and probably won't get one, it's only a matter of time when it closes shop, like many other platforms before it.

<comment><USER9> It will eventually end up on Archive.org. Self hosting is not an antidote to this I think, and sometimes the free services like Wordpress/Blogger last longer.

In the end, there is no escape from bit rot, yet things like IPFS[1] are trying to solve this.

[1]: [https://github.com/ipfs/ipfs](https://github.com/ipfs/ipfs)

</comment></comment><comment><USER10> I would self host. Maybe crosspost to Medium as others have suggested here. Alternatively I do think github pages like has been mentioned is good if you do not want to set up your own blog (even though it really is not that hard).

The reason I would not just post on Medium is simply because you are depend on them. What if Medium at some point shuts down, you lose all your content.

</comment><comment><USER11> It would be helpful to read Medium's Terms of Service before you make your decision.

Most websites have these conditions, but I've copied the most jarring ones below for what it's worth [0]:

> We can remove any content you post for any reason.

> We may change, terminate, or restrict access to any aspect of the service, > at any time, without notice.

[0] [https://medium.com/policy/medium-terms-of- service-9db0094a1e...](https://medium.com/policy/medium-terms-of- service-9db0094a1e0f#.l9gdnx5i7)

</comment><comment><USER12> I believe that self hosting is more inline with open source software principles. Even if it weren't, self hosting gives you control over your content—remember, nothing is really "free." Self hosting takes a bit more time and effort but if you use a static site generator like Hugo or Pelican then the process is more simple.

<comment><USER13> Another advantage is that you can allow interested readers a full RSS feed. Medium's is just the title and a link, which puts me off subscribing to blogs there.

<comment><USER14> I think I usually get full articles, but also _all_ comment replies by that author. That gets old quickly as well.

</comment></comment></comment><comment><USER15> I'd use github pages with jekyll. Easy, superfast and free.

<comment><USER16> Agree. Specifically as the original question concerns an open source project I think GitHub pages makes perfect sense. Otherwise you can likewise deploy Jekyll-generated site on own host (or move from GitHub pages later).

</comment></comment><comment><USER17> I've found Medium incredibly useful for my open source blogging. First and foremost, it saves me from a ton of hassle picking a platform and theme for something like Wordpress, since it looks great on pretty much every device out of the box. It also has some great features that let people from the community submit posts to our publication.

Also, Medium is a great way for people to follow a variety of blogs - so not only do we still get all of the reads we get from normal sources like Twitter, sharing, etc, but you get a lot of people reading your posts from their Medium feed. In fact, for a lot of posts most of the views come from our Medium subscribers.

I agree with other commenters that setting up a custom domain is a good idea if you think you might want to move to some other platform in the future, especially if Medium is not around forever.

</comment><comment><USER18> If you like hacking things yourself (with React), I'd recommend to host your blog on Github Pages. Take a look at my (in progress) blog [1] and its code[2]. It uses 'Single Page Apps for GitHub Pages' [3] and renders markdown (needs some tweaking).

1\. [https://jumasheff.github.io/](https://jumasheff.github.io/) 2\. [https://github.com/jumasheff/jumasheff.github.io](https://github.com/jumasheff/jumasheff.github.io) 3\. [https://github.com/rafrex/spa-github- pages/](https://github.com/rafrex/spa-github-pages/)

</comment><comment><USER19> Hugo static site generator (free) + Gitlab CI (free) + custom domain (not too expensive) works great! Just commit posts in Markdown and your site gets updated. Example: [http://scripter.co](http://scripter.co)

<comment><USER20> bump on the github recommendation - Wordpress etc likely too much work for what you need. Also Medium's announcement on staffing doesn't inspire confidence in the mid-term and difficult to export posts from there.

</comment></comment><comment><USER21> Write the posts on a self-hosted site, then syndicate them to Medium and share those links on social media.

Another option is to use a custom domain with Medium[0]. That way, if Medium goes out of business, you could just set up a self-hosted replacement blog with redirects for the URLs for the posts you made on Medium.

0: [https://help.medium.com/hc/en- us/articles/213474588](https://help.medium.com/hc/en-us/articles/213474588)

<comment><USER22> Highly recommend buying a domain. You can always point it to a new hosting provider.

You can also buy managed Ghost, WordPress, etc for not that much. I think both pro accounts allow custom domains and exporting.

If you're a developer, or comfortable with code, static web site generation (Hugo, Jekyll, middleman, etc) might be an option too.

</comment></comment><comment><USER23> Use both. While medium.com gets a lot more traffic than your personal blog will, it also has a reputation for low quality posts from self-professed "experts"

</comment><comment><USER24> I would prefer to keep a blog, probably using github project pages. It is more customisable (it's true medium offers a clean UI without any effort), and GitHub has given more proofs to stay alive for a long time. On GitHub pages, you own the content, and it's fairly easy to adapt to new platforms if you wish to change. If you wish to change from medium, is it easy?

</comment><comment><USER25> You might want to consider GitLab pages with your own domain/subdomain. This is the route I'd take if I was in your shoes.

</comment><comment><USER26> I prefer generator like Jekyll and host it on github. When you want a little discovery, Medium can help

</comment><comment><USER27> Medium looks great, is easy to work with, and blog posts are easy to migrate when you need to. I would start there at least until you get your project off the ground. If you reach the point that it's worth putting more time into your blogging you can look at alternatives.

I certainly wouldn't use Github pages - it's just as centralized/non- FOSS/etc., but more work and tends to look less good. Wordpress gives you self-hostability but means you're running on PHP. In the long term I'd hope for a sandstorm-based self-hostable blog that's as easy to use (and looks as good) as Medium, but I'm not aware of such a thing existing yet.

</comment><comment><USER28> ReStructuredText with Sphinx is wonderful. The syntax isn't the most intuitive, however once you have overcome this small hurdle, it can boost your productivity enormously.

In terms of deployment, using Sphinx enables you to easily deploy to readthedocs.io, or github pages.

Since it is a static site generate, it also enables you to use bootstrap, any javascript front-end library you wish to use, so nothing stops you from having web-application type behaviour and interactions in your posts. It also integrates nicely with extensions, such as mermaid, to make graphs inline with your posts. It can include code snippets from code, offers syntax highlighting and a lot more.

</comment><comment><USER29> One thing to consider is if you're a good fit for Medium. The strength of Medium is that it's a platform with an audience, and your articles will get seen by people right away. I find Medium to be a bit of an echo chamber. You can see this in which articles get "liked" the most - lots of "edgy" articles and top ten lists. There are exceptions and there is some good content on Medium, but I found that I didn't really fit in with the average Medium user - and rightly so, I'm barely a Millennial, I'm becoming a cranky old guy and I'm probably not within their target market.

</comment><comment><USER30> Medium.com is blocked in Malaysia. So you won't have any audience from Malaysia.

</comment><comment><USER31> I think it vastly depends on your users. Generally, I would recommend self- hosting on the same domain as the project landing page or similar. It's unlikely in my opinion that users would bother to read your posts on medium.

</comment><comment><USER32> If its truly for just announcements, then evaluate several options and pick the simplest for you. Always remember that chances are very high that over time your goals for the blog will change and will outgrow your choice anyway.

If you are considering blogging for more than announcements and are new to authoring blogs, then I recommend "256 Bloghacks" by Yegor256 as a good starting point to know what to expect, and good ideas to consider. [http://amzn.to/2i07fs2](http://amzn.to/2i07fs2)

</comment><comment><USER33> As many said before I think going for a custom domain and using Github Pages with it would be great idea and to get proper audience for the same you can post the link on different relative forums.

</comment><comment><USER34> I was blogging on Posterous and had some articles ranking nicely on Google, until one day Posterous just shut down. From then on I decided I want to be in control of the domain where my posts live.

I realize Medium gives you discoverability, but so do some other places (posting to LinkedIn, text posts to relevant subreddits etc.) so I would suggest cross-posting to those after posting the link to your own site and adding it to webmaster tools so it will get indexed first.

</comment><comment><USER35> I maintain both [https://medium.com/microhq](https://medium.com/microhq) and [https://blog.micro.mu](https://blog.micro.mu) for my OSS project Micro. Hosting on medium is a great way to increase readership, discovery and sharing. My recommendation is to definitely host on medium.

</comment><comment><USER36> Talking about self-hosting blog, I am surprise nobody mentioned Bludit. I left Wordpress for Bludit a while ago and I am really happy.

I even wrote an article about it : [http://softwarebythomas.com/blog/post/Why- I-left-wordpress-f...](http://softwarebythomas.com/blog/post/Why-I-left- wordpress-for-BLUDIT)!

<comment><USER37> That link seems to lead to a 404.

<comment><USER36> It is because it didn't included the !

Link :

[http://softwarebythomas.com/blog/post/Why-I-left- wordpress-f...](http://softwarebythomas.com/blog/post/Why-I-left-wordpress- for-BLUDIT)!

<comment><USER36> Argh!

<comment><USER37> Hehe; no worries. You do make a compelling case in the post.

</comment></comment></comment></comment></comment><comment><AUTHOR> I see a lot of answers saying "use both". Do you guys mean "Write the posts on a self-hosted site, then syndicate them to Medium and share those links on social media", as w1ntermute said?

I'm curious how you can use both. if you have two sites and share both links, what links would people share? Doesn't this make it more confusing for sharers?

<comment><USER38> [https://github.com/aarongustafson/jekyll-crosspost-to- medium](https://github.com/aarongustafson/jekyll-crosspost-to-medium) is a fair option if you have a Jekyll blog. Many static site generators include an idea of "publishing targets", and often include an easy way of making plugins.

<comment><AUTHOR> Thank you, but I was more asking about how you would manage cross posting in terms of sharing, not in terms of technicality.

</comment></comment></comment><comment><USER39> [https://techcrunch.com/2017/01/04/medium-lays- off-50-employe...](https://techcrunch.com/2017/01/04/medium-lays- off-50-employees-shuts-down-new-york-and-d-c-offices/)

Maybe this article of today, will help you decide

</comment><comment><USER40> Use medium for discoverability and readability Use GitHub pages /Jekyll to keep inline with FOSS Ideal solution Host on GitHub pages with cross linking to custom domain medium post

</comment><comment><USER41> GitHub pages is a good choice. It's free, you can bind your own domain.

</comment><comment><USER42> Crosspost with custom excerpts for each platform:

1\. Quora

2\. Medium

3\. PostHaven

4\. LinkedIn

5\. Tumblr

6\. BlogSpot

</comment><comment><USER43> how about blogging such things in dev.to? They seem a bit Mord focused in development :)

</comment><comment><USER44> both.

</comment><comment><USER45> Use both medium absorbs a lot of SEO that Google would otherwise send straight to you

</comment><comment><USER46> When I first started I installed SharePoint 2016 and had that running on a local server as my blog. Was all good until I noticed someone was pinging my local machines somehow. luckily I had Kaspersky Business Solutions installed as trial. I Shut everything down and went with blogger.

<comment><USER47> What's a sharepoint and how does kaspersky av relate to the question asked?

<comment><USER46> Typed it up on my phone, so yea.

I have SharePoint Online through Office 365. I like SharePoint's blogging layout, but the only problem that I found eventually was that you can't share your blog publicly without have users create login.

My solution, install it on my home server running Windows 2016 and Kasperky Endpoint Security. So, I created a VM with Windows 2016 installed ShapePoint. Had everything setup and went a couple days, all good. I checked the Kasperky log and notice a high alert item that said (forgot name of attack, but they were scanning folders on parallel systems). I looked at IP location, was somewhere in South America, and I said to myself, "Screw this, I don't know enough about Internet Security" and I shut down the studio... and went with blogger.

Moral of story, if you self-host, make sure you know what you are doing.</comment></comment></comment>


Twitter Bans In-Stream Ads - <AUTHOR> http://www.readwriteweb.com/archives/twitter_bans_in-stream_ads.php

<comment><USER2> Not that it needs to be said, but this is exactly why building on top of somebody else's platform - where policies like this are a work in progress - can be a very bad idea . . .

<comment><USER3> Totally true, that's why you're better off building your own Twitter or Facebook to support your advertising efforts.

<comment><USER4> I know you're being sarcastic, but I like this idea a lot. Imagine a world where the advertising companies would have to build roads if they want to put up billboards, instead of the current world, where anyone can visually shit all over anything, and you're just forced to look at it.

I like the precedent Twitter is setting.

<comment><USER5> I dunno, I don't think I like the idea of a strictly-advertising-company owning the medium a huge amount of people communicate on. Can you _imagine_ the TOS / privacy policy? Granted, that's what Facebook appears to be becoming... but I'm off that for good.

And I too like how Twitter is handling this. Promoted tweets seem like the right setup for users, as you effectively have to _request_ the ad to get it, but it's easier to find (and you know they're legit).

<comment><USER6> _I dunno, I don't think I like the idea of a strictly-advertising-company owning the medium a huge amount of people communicate on._

You mean like gmail?

<comment><USER5> Pretty much, yes, and +1 for a good catch :)

But Google's been rather tried-and-true on issues like this (for most people's opinions), and they were _first_ a crawler, and _second_ an advertiser, even if they make most of their money from it now. They make that money because they made a great product. This implies their motivations are at least _somewhat_ removed from a "lets start an ad platform!" company.

</comment></comment></comment></comment></comment></comment><comment><USER7> Does anyone know what this means for affiliate links in tweets? Are they only going after big players like Ad.ly, or is this touching everyone?

</comment><comment><USER8> I should note that this makes the Mac version of the twitter client twitter just acquired violate their terms of service.

<comment><USER9> It's not clear to me whether they are simply banning the insertion of paid tweets via the API, or they're saying that you can't put ads (which are not tweets) in the same area of a UI in which a timeline of tweets is being displayed.

</comment></comment><comment><USER10> Scrolling quickly, I misread the title as "Twitter to Stream In-Brain Ads"

The future is now!

</comment><comment><USER11> It looks to me like they are only trying to prevent third parties from cluttering the official stream with third-party paid tweets. Not really anything for developers to get riled up about.

</comment><comment><USER12> This sounds worse than it is. You can share revenues with twitter on the promoted tweets.

And I agree that displaying ads "in-stream" can be confusing. Promoted tweets make more sense.

</comment><comment><USER13> Making a firm decision like this as to what the Twitter customer wants seems like a bad idea in my opinion. I would have rather have seen Twitter create a preference check box allowing those who want ads to have them, and set 3rd party ad policy for Twitter to share in the revenue. Twitter is far from having a secure source of income so killing instead of controlling early revenue sources doesn't seem like a good idea.

</comment><comment><USER14> This is the first step in charging for this themselves. You'll be able to advertise with Twitter - just don't think you'll be able to do it without giving Twitter themselves a cut.

</comment><comment><USER15> Banning in-stream ads right out seems a bit drastic. They could instead develop standards for in-stream ads that prevent confusion.

</comment><comment><USER5> Sucks for advertisers, but sounds like a plus for users. I like their "promoted tweets" concept better anyway.

Go Twitter!

</comment><comment><USER16> What is an Ad? Can I tweet that I drink Pepsi if Coke is today's official Twitter sponsor? We all can see where this leads. No doubt Twitter doesn't want to a become plain, old, boring ad sponsor. Like on TV. Or like Facebook. They really should do more to create entirely new types of ads, _which most people would not even consider as being an ad_.</comment>


On balancing economic power - <AUTHOR> http://www.markshuttleworth.com/archives/680/comment-page-1#comment-355101 <comment><USER2> I don't know why the link points to the comment not to the beginning of article, but here is a small summarization:

Mark wants that all providers of components (he call them upstream providers, like for example MySQL, Mozilla) become a more powerful entities, so that their output will be of higher quality and looks for ways how it can be achieved.

He also says that now the burden to decide how components will work is on distributions, like Canonical and Red Hat and it stifles innovation.

<comment><USER3> Maybe he should look to output a quality like that of Mozilla and MySQL for his companies main product, Ubuntu.

If Ubuntu would ever reach that quality, oh man. But its easier to ask somebody else to do it for you, thats the Canonical way.

</comment></comment><comment><USER4> "Unlike those who have gone before, we don't want to be the sole guarantor of quality in our ecosystem, because that will not scale" -- that's a good remark.</comment>


"this gem is awesome".to_spanish # = "esta joya es impresionante" - <AUTHOR> https://github.com/jimmycuadra/to_lang

<comment><USER2> Just in case you didn't know, and you have plans to actually use Google Translate for translating web pages into Spanish... please don't. I haven't seen a single sentence with more than 3-4 words translated properly from English to Spanish. Even the examples shown in the README make no sense in Spanish.

<comment><USER3> Really? From my experience English to Spanish translation works pretty well in Google Translate. I've been using it a lot when I started to live in Spain and my Spanish skills were not too great yet: people were actually complementing me for how good my (written) Spanish is and were in huge shock when they met me in person and it turned out that I barely can formulate any sentence. True story.

<comment><USER4> It depends... most of what's translated is understandable for a native speaker, but it will be clear that it wasn't written by one. If you need to communicate with a Spanish speaker, it will work quite well. If you need to write a brochure or something formal... better get someone to translate for you.

<comment><USER3> Well, that's quite obvious, Google Translate is not perfect, e.g. overuses "Usted/Ustedes" or often gets lost when there's a lot of pronouns and missed "yo", "tu", "el", but:

a) with a little big of knowledge about the language and bit of editing you can overcome most of those stuff

b) even without editing it makes most of the stuff readable/understandable

c) works much better that competitive products (babblefish).

</comment></comment></comment></comment><comment><USER5> What's causing this?

        ruby-1.8.7-p302 > "Where is the bathroom?".to_spanish
        => "\302\277D\303\263nde est\303\241 el ba\303\261o?"

<comment><USER6> Listed under "Roadmap" in the readme is the following:

Investigate Unicode support for Ruby 1.8. to_lang has only been tested with 1.9.

Do you have a copy of 1.9 to test with?

<comment><USER5> Ah, yes. Much better:

        ruby-1.9.2-p0 > "Where is the bathroom?".to_spanish
        => "¿Dónde está el baño?"

Thanks

</comment></comment></comment><comment><USER7> Translate fail already... user won't understand that 'joya' means a Ruby gem :)

<comment><USER8> In context, and with the slightest amount of deductive reasoning, I don't see why they wouldn't.

<comment><USER7> Sure, but those can read basic english too.

</comment></comment></comment><comment><USER9> Since this gem appears to use Google's public API, one important thing to keep in mind is that there's probably a hard limit on the amount of text that can be translated at one go. I've found that throwing more than a thousand or so characters at GT's API results in their server throwing "URI too long" errors, since it only works via HTTP GET.

Disclaimer: This might have changed in the five or six months since I last messed around with Google's API, or, alternatively, this gem could be doing something clever to try and get around the problem. Either way, I'd suggest checking it out.

<comment><USER10> From memory, other limitations include 100,000 characters per day, and limits on where the API can be used (e.g. can't use it for paid services).

</comment></comment><comment><USER11> This is cool, but no one should ever use this. I've used the google translator frequently, and while it's good, it always requires me to use my knowledge of the language I'm translating to in order to create a more correct and meaningful translation. If you really want a site or app that is multilingual, you need a human with good knowledge of the language to do your translations.

</comment><comment><USER12> Another similar project: <https://github.com/caius/gtranslate>

</comment><comment><USER13> This is why even us die hard php coders sometimes yearn for RoR. .to_spanish !

<comment><USER14> <http://code.google.com/p/gtranslate-api-php/>

$gt = new Gtranslate; echo "Translating [Ciao mondo] Italian to English => ".$gt->it_to_en("Ciao mondo");

<comment><USER15> I think your example demonstrates very well why one would yearn for Ruby. The ability to give an extra method to a base class allows you to build very expressive code.

edit: and, BTW, the to_spanish method is not defined in the [https://github.com/jimmycuadra/to_lang/blob/master/lib/to_la...](https://github.com/jimmycuadra/to_lang/blob/master/lib/to_lang/string_methods.rb) module.

<comment><USER16> Even boring old C# can do that.

<comment><USER17> Not true. That's just a compiler trick

</comment></comment></comment></comment></comment><comment><USER18> how does the gem failover if the machine it is being used on isn't connected to the internet?

<comment><USER19> You would get a SocketError exception from _getaddrinfo_ because HTTParty (which uses Net::HTTP) can't lookup the hostname. If the hostname is already resolved, you'd get a Errno::EHOSTUNREACH exception from _connect_ because there is no route to Google's servers.

<comment><USER20> Leaky abstraction

[http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...](http://www.joelonsoftware.com/articles/LeakyAbstractions.html)

<comment><USER19> Hey, I didn't say it was awesome, I was just reporting what actually happens. :)</comment></comment></comment></comment>


Show HN: SVG Wave Generator - <AUTHOR> https://getwaves.io/ <comment><USER2> The dice roll is somewhat addictive--great tool and fun way of sharing it with the world.

</comment><comment><USER3> That is a snappy and easy to understand tool. I'm just wondering what I could do with one of these wave svgs...

<comment><USER4> Hi! I'm part of the team who made this tool. You can use these kinds of waves to create various designs, something similar to [https://www.netlify.com/](https://www.netlify.com/), or [https://www.shopify.com/free- trial?ref=onepagelove](https://www.shopify.com/free-trial?ref=onepagelove).

</comment></comment><comment><USER5> The (animated) dice icon for random values is great, I'd love to see that in more tools.

</comment><comment><USER6> This is awesome! I'd love a tool to animate them too :D

</comment><comment><USER7> You're awesome. I checked your website. Do you want to be part of a startup that has a good future?

</comment><comment><USER8> That's fun!</comment>


Examining the Black Family in the Age of Mass Incarceration - <AUTHOR> http://www.theatlantic.com/magazine/archive/2015/10/the-black-family-in-the-age-of-mass-incarceration/403246/?single_page=true <comment><USER2> I recall the ted talk [http://www.ted.com/talks/bryan_stevenson_we_need_to_talk_abo...](http://www.ted.com/talks/bryan_stevenson_we_need_to_talk_about_an_injustice), if a black man is found guilty of murdering a white woman in Alabama, he is 400 times more likely to be sentenced to death compared to a white man found guilty of murdering a black woman.

I sometimes think about what the reaction would be if statistics showed that the German courts disproportionately often decided to sentence Jews to death?

Perhaps there are some things that could be improved within the penal system in the United States?

<comment><USER3> You're not factoring in lawyers. They make a big difference. It has more to do with money and less to do with race.

<comment><USER2> Even if income could explain the whole difference it would still not be a very agreeable explanation.

Even though it's a naive idea, I still think that everyone should be entitled to the same level of legal support in a criminal case regardless of your socio-economic status.

<comment><USER4> As helpful as that sounds, it still wouldn't help earlier in the pipeline effects such as policing (a fighting kid in a white school is just a fighting kid who gets de-escalated and a note sent home, a fighting kid in a black school is arrested automatically). Or another difficult early pipeline area is prosecution and plea bargains being racially different (the white kid gets a plea offer for municipal loitering, the black kid gets prosecuted for misdemeanor possession of burglary tools).

Explosive growth in income inequality makes the debate meaningless. There won't be grades of legal support, they'll just be billionaires who above the system and dirt poor peasants who get no support at all. Now (or recently) is probably not a good cultural era to go into the defense attorney field, for example. Being a defense attorney in an era where no one needs or can afford a defense attorney is like being a really great star trek warp field engineer in 2015, thats nice but how do you pay your bills?

<comment><USER5> That's why I dropped out of law school. I went to a large-ish legal conference and realized how utterly hopeless the odds were, and decided to cut my losses. I'm not proud of it but my mental health is too fragile for me to function effectively under those conditions, which makes me worse than useless as an advocate for anyone else.

</comment></comment></comment></comment></comment><comment><USER6> The article is framed in terms of the 1965 Moynihan report, so I feel I should quote the recommendations Moynihan had at the time:

"Moynihan had lots of ideas about what government could do—provide a guaranteed minimum income, establish a government jobs program, bring more black men into the military, enable better access to birth control, integrate the suburbs—but none of these ideas made it into the report."

Unfortunately, racists and demagogues eventually decided it was easier to just throw people in prison and be done with it.

<comment><USER7> Moynihan's ideas didn't and don't fit neatly into an existing political coalition on either side of the aisle. Supporters of enlarging social welfare programs and supporters of the traditional, gendered nuclear family as a normative institution are not quite disjoint sets, but the overlap has been shrinking for decades.

</comment></comment><comment><USER8> I kept reading and reading, waiting for him to get to the point. He never actually tries to refute Moynihan's central thesis, that destruction of the black family and black men (by slavery, Jim Crow, and other things) is the central problem facing black Americans, and the ideal issue to target for a solution. Instead, it's mostly a bunch of meandering and frequently confusing anecdotes [1], emotional descriptions of (awful and disturbing, let me not dispute) white racism over the years, and pointing and sputtering at Moynihan's conclusions [2]. Ultimately, he throws up his hands and says, "Forget it! We just need reparations! Read this other article I wrote!" Well, we happen to be in agreement. How does affirmative action not constitute reparations? Because it's also provided to modern-day Somalian immigrants? There's a pretty simple solution to that.

[1] _Odell Newton...shot and killed the driver...Odell had the very bulwark that Moynihan treasured-a stable family-and it did not save him from incarceration._ One guy with a stable family committed murder. Forget about it, and just keep subsidizing single-parent households through TANF and WIC.

[2] _Discussing what he'd do about the problem among blacks in cities, Moynihan said, "When these Negro G.I.s come back from Viet Nam, I would meet them with a real estate agent, a girl who looks like Diahann Carroll, and a list of jobs. I'd try to get half of them into the grade schools, teaching kids who've never had anyone but women telling them what to do." Everything about this quote is wrong._ It's just wrong? That's it? You don't think kids should have positive male role models, or you don't think veterans should have help with housing and employment?

<comment><USER9> > It's just wrong? That's it?

I would presume the author is rejecting a handful of stereotypes in the quoted statement. I think the author was rejecting the sexist undertones of men being preferable to "women telling [kids] what to do". And the sexist undertones of introducing young men to "a girl who looks like Diahann Carroll." And the tone-deafness of "meet them with a real estate agent." Maybe the author thought showing Vietnam Veterans "a list of jobs" was also tone-deaf.

1) In the earlier article about reparations, there was a large section about real estate red-lining. Importantly, minorities were not allowed to buy houses outside of designated areas. [http://www.theatlantic.com/magazine/archive/2014/06/the- case...](http://www.theatlantic.com/magazine/archive/2014/06/the-case-for- reparations/361631/#article-section-8)

2) There are any number of reasons that a military veteran may have difficulty finding a job (PTSD?). Suggesting that they simply haven't looked is a little bit insulting. [http://www.washingtonpost.com/news/wonkblog/wp/2013/11/11/re...](http://www.washingtonpost.com/news/wonkblog/wp/2013/11/11/recent- veterans-are-still-experiencing-double-digit-unemployment/)

3) While there are numerous claims of the importance of male role models, these arguments are dubious. [http://www.amazon.com/Raising-Boys-Without-Men- Exceptional/d...](http://www.amazon.com/Raising-Boys-Without-Men- Exceptional/dp/1594865388)

4) I presume the bit about Diahann Carroll is suggesting that black men would get married and stay married if they met a sufficiently sexy woman. I think most people would consider that to be insulting.

</comment></comment><comment><USER5> One wonders whether the relative fragility of black families made them the unintentional first targets of efforts to dismantle patriarchal social structures, putting them at a relative disadvantage to a more conservative ( _qua_ slow-moving) aggregate.

 _Moynihan [...] began pushing for a minimum income for all American families. Nixon promoted Moynihan's proposal — called the Family Assistance Plan — before the American public in a television address in August of 1969, and officially presented it to Congress in October._

For all his faults, Nixon was a much more radical president than is often remembered today, though of course he also helped to launch the war on drugs, the burden of which has historically fallen disproportionately on black Americans. I wonder how things might have turned out differently if he had not had to deal with the mess of the Viet Nam war when elected - though I suppose you could argue that without that particular running sore, he would have had much less incentive to undertake radical domestic reforms than he did. Would love to get the perspective of older HNers on this issue, as I was born in 1970 and outside the US so my impressions of this period mainly come from books.

<comment><USER10> Given that Nixon sabotaged Vietnam peace talks in order to get elected, it hardly seems reasonable to talk about that war as something he got unfortunately stuck with.

<comment><USER5> It's hard to sabotage peace talks if there isn't a war on already. I'm not trying to rehabilitate his machinations and policies about Vietnam, but speculating on what sort of President he might have been if the US hadn't been at war to begin with. Mainly I'm interested in the contrast between the general radicalism of the late 60s and the institutional conservatism of today, rather than wanting to argue that Nixon was a great guy.

<comment><USER10> My point is just that there was a chance (probably not a good one, but a chance) to have the war end so that Nixon could be a peacetime President like you're speculating about, and Nixon himself made sure that didn't happen.

I see what you're getting at, I just object to the presentation as the war as something Nixon got saddled with, rather than something he actively worked to have around for his own Presidency.

</comment></comment></comment></comment><comment><USER11> Was "anonymous justice" ever attempted? What if judges, juries and lawyers worked on cases where the accused and the victim are anonymous. Neither their sex, nor race, nor anything is disclose. Would they help fix these bias where blacks get harsher sentences than whites and women lighter sentences than men for example?

I don't know if it's realistic.

<comment><USER12> > Was "anonymous justice" ever attempted?

No, and it doesn't seem to make a lot of sense.

> What if judges, juries and lawyers worked on cases where the accused and the > victim are anonymous.

How is the jury going to evaluate guilt or innocent based on evidence (whether physical evidence or witness testimony) -- including, particularly, evidence relating to the perpetrator, victim, and the details of their interactions that are essential to the question of guilt or innocence of the crime, if the identities, sex, race, etc., of the accused and the victim(s) are obscured from the jury?

What you _might_ plausibly do is remove sentencing from the trial court, and anonymize the bare findings of fact before forwarding them to a separate body that handles sentencing. That might have some utility, though it would still be subject to bias in the trial courts actually in completing the findings of fact used for determining sentence.

<comment><USER11> How is sex, race etc required to evaluate guilt or innocent?

What you suggest in your last paragraph is pretty much what I had in mind. Facts would be gathered and then anonymized before being used for sentencing. Instead of "this black guy raped this white woman" they would make their decision based on "this person raped this other".

<comment><USER12> > How is sex, race etc required to evaluate guilt or innocent?

It's pretty relevant to evaluating whether a particular piece of evidence (whether a video or photograph, a witness description, etc.) implicates the guilt or innocence of the particular person charged with the crime. Which is, after all, _the whole job of the jury_.

> What you suggest in your last paragraph is pretty much what I had in mind. > Facts would be gathered and then anonymized before being used for > sentencing.

What I discuss in the last paragraph is something that can only happen _after_ the jury has found the facts in a process in which the jury, judge, and lawyers knew who the victims and accused were.

</comment></comment></comment></comment><comment><USER5> _Beyond that, there's the expense of having to make long drives to prisons that are commonly built in rural white regions, far from the incarcerated's family._

It suits some politicians to have a large prison in their district, since the inmate population is included in calculations of representation (in accordance with the Constitutional design for representative government), but as the inmates can't vote, the number of people the congressperson has to actually answer to is that much smaller.

[http://www.demos.org/publication/census-count-and- prisoners-...](http://www.demos.org/publication/census-count-and-prisoners- problem-solutions-and-what-census-can-do)

</comment><comment><USER13> We could really use someone like Moynihan these days but sadly none compare. How is Obama so silent on these issues?

<comment><USER5> Have you not noticed how bitterly his comments are rejected when he does comment on them? I'd imagine that this will be his signature post-presidency issue, as he established a foundation called 'My Brother's Keeper' that aims to address the specific problems of black male youth. But you have people on the left demanding that he tear down the entire structure of white patriarchy, and people on eh right insisting that this is all he has done since taking office.</comment></comment>


I don't understand Graph Theory - <AUTHOR> https://medium.com/@vardanator/i-dont-understand-graph-theory-1c96572a1401 <comment><USER2> I have a graduate degree in computer science and know some graph theory, but I really liked this. I thought it was interesting, reminded me of a lot of theory, and taught me some more.

I really appreciated the voice and tone. I am very surprised to see people who did not appreciate it and took the time to write how much they didn't like it. (Which is their right).

I am writing this only to let the original author know that there is an audience for this kind of "breezy" explanation.

<comment><USER3> Thank you very much! I don't really get upset for critics, it helps a lot to produce the next good work (noting previous complains). However, hearing some really positive feedback is always motivating to spend more time on knowledge sharing. Thanks again!

<comment><USER4> Teaching is part skill and part craft and like so many other creative areas there are plenty of different styles that can appeal to different personalities and preferences. It's a constant tension and there will always be room for imagination, creativity and even art in teaching. Prime example - [http://poignant.guide/](http://poignant.guide/)

</comment></comment></comment><comment><USER5> Maybe I'm alone, but I never felt the graph theory pedagogy I experienced was very confusing or boring (I did think this about plenty of CS topics!). There's lots of motivating examples to pull in, and better/clearer diagrams than this in may places. This just seems like a not very lucid description of theory that is very formalized and that many lectures and textbooks deal with.

<comment><USER6> When I was 16 I changed sixth form[0] following a house move and I was accidentally put onto a maths course that was basically algorithms without computers. I think the name was something like Decision and Discrete.

This course started with Zeller's congruence as an example of an algorithm and then moved onto some graph theory and then onto Dijkstra's algorithm. I never got to see what the rest of the course contained, but it really looked like a good course. Sadly I was not able to persuade the person who was in charge to let me continue to take the course.

All the people on the course absolutely hated it from the start; thought I was mad to want to do it; would go on to fail it and as a result this was the last year the sixth form would run it.

[0] Sixth form is the 16-18 optional education in the UK.

<comment><USER7> You're talking about the D1 module, which was considered the easiest maths module at my school, because it doesn't really require much understanding, you just have to learn the material.

<comment><USER8> D-maths modules in the UK have changed a lot over the years, seems like they started out pretty legit and got diluted over time. Depends when they took it.

<comment><USER7> I took it 6 years ago. When were they introduced?

<comment><USER9> At least the early 90s, possibly earlier.

</comment></comment></comment></comment></comment></comment><comment><USER10> I'm just gonna go ahead and say: _this_ is the kind of style that makes me go "yawn, this is boring". Endlessly meandering and circling the subject, stopping every sentence to make an irrelevant digression or an attempt at humour (breaking my concentration in the process), stretching on and on... Yeah, give me a concise text, that goes straight to the subject, and that doesn't attempt to take a conversationalist tone with me as if we were having a beer together, give me that any day.

Yes, I understand some people have the opposite view, I'm just trying to day that there are surely a lot of people too that find this kind of style extremely distracting and frustrating.

In other words, my favourite textbooks of all time are Landau and Lifschitz :^)

<comment><USER3> Interesting notes, thanks. I was struggling with such books that compress a complex idea in a couple of sentences, so I'm always trying to explain as detailed as possible. Though understanding that there is a broad audience who likes the opposite (succinct explanations), I wrote disclaimers to secure me just in case. So, read the disclaimers one more time, that's my only excuse for such long and boring discussions :)

<comment><USER11> I share some of the criticisms already stated in other comments. The biggest offender here in my opinion is that it jumps to too many subjects. Trees as graphs, yes, but they are a whole subject of their own. This post should broken down in at least 4 or 5 posts. Moreover, its mixes vastly different concerns: byte level optimization is an interesting topic too, but it has nothing to do with graph per se.

On the positive side: relevant illustrations. I also liked that the code implementation is one that use explicit edges. Too often in books, it is either the adjacency matrix or the linked list ones. The former is inconvenient when you need to add a node, and the latter doesn't let you put weight on edge. So these "academic" implementations are not well suited for groking concept by playing with code.

I work a lot with graphs and there is a big value in having a general enough graph implementation. Last week I implemented a trie class with it, and this week a transducer. Both in two hours, debugging included. Other things such as serialization came from free from the library. Of course, that not optimal data structure, but it is fine for my use cases.

In your post, you don't use the fact that trees are graph to avoid duplicate code explanations, instead you explain it first for a tree, then details the graph one. It should be the reverse: how to use a graph implementation to create a tree. And then only if this implementation does not fit the memory or performance requirements of the app, rewrite a more specialized data structure.

<comment><USER3> Thanks!

</comment></comment></comment></comment><comment><USER12> Those disclaimers look like comments on bad code. Dear author you do not have obligation to make such clarifications.

I take this blogpost as example how I do not want to write. It is too long and too much information in one piece, Euler to BST with AirBnb to Twitter, and Facebook. With stop on linked lists, arrays and trade-offs between them. Don't even get me started on Sponge Bob. All this targeted at junior developers?

I advise author to read: "Nobody Wants to Read Your Sh*t: Why That Is And What You Can Do About It"

<comment><USER13> And yet, it is at the top (#2 right now) of HN.

<comment><USER14> Because the HN voting system is a clear and democratic way of expressing value

</comment></comment></comment><comment><USER15> I find it strange that the folks on Hacker News sometimes have such strong reactions to the tone of an article, or sometimes just a paragraph in the article. I've gotten that too, when articles of mine become popular on HN. I personally liked this article about graph theory, the conversational tone.

<comment><USER16> I didn't understand why at first until I started reading dozens of books and papers suggested here that have precision in their writing, now I too can't stand an overly written article or book. The Art of Computer Programming vol 1 contains an excellent introduction to graph theory where Knuth converts a program flow chart into a graph to discover free subtrees.The dry humor there doesn't try to be too obvious, and every sentence is carefully written for precision.

<comment><USER15> I get that any kind of writing can provoke strong reactions, as some people have strong preferences. And they have a right to those preferences. But I hope we can agree that being vocal about one's preferences is a different kind of activity? Everyday on Hacker News there are dozens of articles that don't interest me, but can you imagine what people would think about me if, in every one of those articles, I posted a note saying that I didn't like the article?

Most of us simply skip over the stuff that doesn't interest us. That is clearly the default behavior. Therefore it is interesting why, on certain articles, people do feel the need to comment on the style.

Personally, I've been lucky, because the most vocal people have been the people who like my writing. But not always. I wrote a book about startups, and some people loved that it had a lot of humor, whereas others really hated it. At least so far, the one's who hate it write to me privately, whereas the ones who love it have written the reviews on Amazon:

[https://www.amazon.com/Destroy-Tech-Startup-Easy- Steps/dp/09...](https://www.amazon.com/Destroy-Tech-Startup-Easy- Steps/dp/0998997617/#customerReviews)

I'm lucky, but I'm also curious why this is. As a purely sociological question, why is that sometimes people feel the need to be very vocal with their disapproval, whereas most of the time they keep such disapproval private?

</comment></comment></comment><comment><USER17> For people who don't understand graphs, Euler graphs seem like such a weird place to start. There are much more relevant problems (social networks, followers and travel distances) with approachable graphs (undirected, directed, and weighted).

<comment><USER18> The place I wish I had started at:

The Nature of Computation - Moore, Mertens

What I got (graduate coursework):

Graph Theory - Reinhard Diestel

A more encyclopedic treatment (most big results, no proofs):

Handbook of Graph Theory - Gross, Yellen

<comment><USER19> The Diestel book is great if you already know Graph Theory. The proofs are exquisitely concise, but it's hard to read because you have to think really hard about the definitions and why they're giving in precisely that way (hint: to make the proofs more concise!).

</comment></comment></comment><comment><USER20> Some people prefer learning from examples (inductive) while other people prefer learning the theory bottom-up (deductive). This article may be for the first kind of people.

Everyone uses both kinds of reasoning but I know I have deeper understanding of the areas that I studied bottom-up. Even if it might have been a bit more difficult and time consuming, because I didn't get to the applicable stuff as fast.

<comment><USER21> IMO, deductive learning is limiting ( we are limited by the span of our examples), but it has great recall value. Inductive learning is harder to commit to long-term memory; particularly, when learning something which you find scant use for in your day-to-day life. Again, I can see this is not general, and could vary considerably across individuals.

<comment><USER22> I've done a few degree-level teaching courses, and what I gathered from them is that the notion of individual learning styles is a bit of a myth.

Most people learn best from examples, which makes intuitive sense. Purely theoretical learning does not come easy to most people - that's why maths is so scary to so many.

Given that the learning style myth has been mostly discredited, I also wonder about preferences such as night owl vs morning bird - it seems to me that people learn best in the morning, _unless_ they have poor sleep hygiene. Which would again make totally intuitive sense.

<comment><USER23> >they have poor sleep hygiene

This just sounds like a morning person trying to imply that night owls are unhealthy.

I consistently go to bed around 2 and wake up at ~10. I have better 'sleep hygiene' than many people I know who are 'morning people' because they force themselves to strict wake-up times.

Even with a good amount of sleep at consistent times each night, I am still more intellectually productive in the evening than in the first couple of hours after waking up.

<comment><USER22> > This just sounds like a morning person trying to imply that night owls are > unhealthy.

I wondered if anyone would interpret it like that, but I decided you would give me more credit, given I was speaking from a professional POV.

Before I did the teaching courses, I would have described myself as a night owl. I did then (and still do now to a lesser extent) have poor sleep hygiene. However, since I became more wary of how illogical the dichotomy is, I have found I'm just as productive in the morning provided I've slept well.

In the morning, your brain is fresh from sleep and flushed of toxins. Your energy levels are higher and you've been hit with blue light indicating it's the start of the day. It makes sense that you would learn better in such a state.

What's the argument for night owls being better learners at night?

<comment><USER24> > What's the argument for night owls being better learners at night?

I would say that the argument is that many people report this to be the case and there are some studies pointing to the existence of such an effect (sometimes called chronotype). Even in the absence of rigorous studies, a reasonable default view is to say that such an effect may or may not exist and we just don't know for sure if it does.

I would argue that the burden of proof is on the person making the claim that this effect doesn't exist, as that's a stronger statement about the world. It also seems to contradict a lot of anecdotes without proper evidence that casts doubt on their accuracy; the simplified model that you mentioned, about sleep flushing toxins from your body may not capture all the relevant aspects here (for example genetic components to concentration ability).

Wikipedia references a few studies, but I'm not an expert and can't tell how conclusive or rigorous they are: [https://en.wikipedia.org/wiki/Chronotype](https://en.wikipedia.org/wiki/Chronotype)

<comment><USER22> I'm not asking for evidence, just a reasonable argument as to why people might learn better at night. Because the obvious thinking on that is, until very recently, night time meant most humans simply went to bed.

<comment><USER24> I would say that variability in ability to concentrate might be reasonable to assume as a starting point, given how much people vary in other features as well, even if there are similar connections to how humans evolved. For example, food preferences are also in part a result of evolutionary processes, but vary a lot between people.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER25> So, if you do have data in an arbitrary graph structure and want to do a search like the Airbnb example - essentially, sort nodes by maximal total flow from a set of starting search nodes - clearly Hopcroft-Karp isn't appropriate, but is there an algorithm that is good for this use case? The author punts to building indices, but is there a way to express that from a graph theory perspective?

</comment><comment><USER26> My MSc dissertation topic was on graph theory. I studied a lot of crazy stuff: things like random trees, hypergraphs and partitions of graphs into other graphs. I remember once this internet company came to campus and was trying to encourage mathematicians to join them. This lady said: "One person has a PhD in graph theory but originally thought she wouldn't be needed here. Yet the internet is a graph!" I was thinking, yeah, sure, a lot of graph data structures and algorithms are pretty useful, but it was hard for me to see how some the niche topics I was studying would really, actually, be useful. Luckily mathematics does tend to to surprise us like that. (Saying that, I am now a cryptographer and don't use much graph theory, or any of the economics and game theory I did in my undergradate :-) Game theory in particular, I am highly skeptical of, but that's another story...)

<comment><USER27> _> (Saying that, I am now a cryptographer and don't use much graph theory, or any of the economics and game theory I did in my undergradate :-) Game theory in particular, I am highly skeptical of, but that's another story...)_

You're a cryptographer and don't use _any_ game theory? Most cryptographic protocols are, or can be, phrased through game semantics. Game theory is very useful, what are you skeptical about?

<comment><USER26> It is true that you can analyse many cryptographic schemes by modelling them as games. In fact, my PhD was largely focused on this exact topic :-) Our discussion really depends on what we define as "game theory" and "graph theory" I suppose.

The game theory I studied in economics (albeit in my undergrad) I'm very skeptical of, though. It was about exact payoffs and rational agents and loads of assumptions that really don't work in real-life. I'd spend time literally analysing optimal strategies in board games. It all seemed kind of pointless. People always said you can apply game theory to political science and wars, but it all seemed like common sense and logic, rather than the specific stuff I was actually studying. I remember solving integral equations to calculate Nash equilibrium bidding strategies in third price bid auctions with perfect information and a uniform distribution of value to buyers. The solutions had a lot of maths, but had no bearing on reality whatsoever. What I studied was never really used to make any actual predictions in the real world. It seemed almost as if they were trying to make this subject mathematical to give it some legitimacy. A lot of it is common sense. One could argue that studying it helps you think logically I guess, but so do lots of things. Ariel Rubinstein is a famous economist and actually one of the founders of game theory and gave an excellent critique of the whole space. He is a lot more eloquent than I. You should listen to him and let me know what you think.

[https://rwer.wordpress.com/2012/11/05/game-theory-a- critique...](https://rwer.wordpress.com/2012/11/05/game-theory-a-critique/)

<comment><USER28> Isn't the (only) problem with game theory that the actor optimization function is inappropriate? Rationality as an assumption is the problem. But everything else, all the derived higher order structure above that seems, in my eyes, to be pretty useful. There are other contexts, like evolutionary game theory, where the optimization function is just darwinian fitness. And in that situation do most professionals seem to agree that the model is perfectly useful.

So game theory as a framework seems would be totally fine if we could only figure out a more psycologically plausible goal function, wouldn't you agree?

<comment><USER26> Rubinstein makes the point (which I wholeheartedly agree with) that game theory is a lot like fables. They might help you interpret a certain situation in a certain way, but they have no value in actually predicting anything. I'm not sure how it will ever get there. If someone comes up with a goal function and actually makes predictions which work in the real world then yes, I would of course change my mind.

<comment><USER28> I used to be just as sceptical as you. (And I still am about traditional game theory.) But then I stumbled into evolutionary game theory, which seems much more robust. Have you read anything about it? What's your take? Apparently ESS has been used to model cancer very fruitfully.

</comment></comment></comment></comment></comment></comment><comment><USER29> I just lost track at the airbnb example. What is the inherent advantage of using a graph in the context of computing scores over 4million possibilities ? Should't a Modern sql database be enough?

PS : Or maybe we could use a blockchain to be even more modern?

<comment><USER29> Hold on I get It's because actually that example was all about binary tree (which are often used under the hood by database engine for index scanning).

I'll give another shot to this article later but, I'm more lost than before because I managed to have a grasp of graph theory without knowing a lot about binary tree (I'am more a data analyst than a developer).

PS : Thx vardanator

<comment><USER3> Oh, thank you too, it's really great to hear a feedback.

</comment></comment></comment><comment><USER30> The best way to understand graph theory is in a continuos setting. When you approximate a linear pde with finite differences, you can write the discrete set of equations as a linear system with sparse matrices. Sparse matrices are just graphs. And the natural matrices associated to this graph (adjacency matrix, incidence matrix, transposed incidence matrix, etc) correspond to the natural linear operators on your space (laplacian, gradient, divergence, etc.).

<comment><USER31> If you already understand those other things I find it surprising that you wouldn't already understand graph theory.

</comment></comment><comment><USER32> I don't know if this is common in USA to finish higher education in computer science and not learn about graphs at some point? Even the basics?

In Europe most universities that teach computer science have at least one course fully dedicated to graph theory, algorithms for traversal, shortest path finding, cycle detection and so on. I didn't even know it was possible to work professionally as a software developer and not already know all of this.

<comment><USER33> Another thing I noticed is the number of articles claiming that "college is overrated" or that "CS is not useful for the real world" and in general downplaying the importance of a formal education, and then... "I don't understand Graph Theory". Yes, not saying the same people claim all these things, but surely there's _some_ connection between deriding a formal CS education and not understanding a prime example of a CS topic like Graph Theory?

</comment></comment><comment><USER34> There is some serious amounts of cynicism and negativity in these comments. The article is an interesting introduction. The style is a little all over the place, but hardly worth closing it over. No one seems to be criticizing the correctness of the content, probably the most important part of a technical article to discuss.

<comment><USER35> >No one seems to be criticizing the correctness of the content, probably the most important part of a technical article to discuss.

 _shug_

There's plenty of existing resources designed to learn graph theory. It's not good enough for a new one to simply be correct. If someone doesn't think their presentation of the content is going to be better, why bother? I'd sooner share my discrete math textbook with someone before sending them this link.

</comment></comment><comment><USER36> If someone wants to present a fresh take on a subject like this, why drag out the same examples that are always used? My eyes glazed over as I observed the bridges of Konigsberg trotted out yet again. Sprinkling curlicues on a tired overused cliche like this will never freshen it up.

Can all the authors out there just stop trying to dumb things down for a general audience and just start at the intermediate level? Just skip all the drawn out cliched intros and get on with it. Don't try to cutesify it, it just comes out condescending. This is also why I can't bear to read documentation from Google.

</comment><comment><USER37> Thank you for sharing this. I'm doing a master's degree in computing and I think graphs are the most powerful modeling tool in the whole of computer science.

</comment><comment><USER38> Graph theory is amazing. One of my favorite subjects.

If you're a liberal-arts kind of person and or have scars from prior experiences with mathematics I recommend, [https://www.amazon.com/Introduction-Graph-Theory-Dover- Mathe...](https://www.amazon.com/Introduction-Graph-Theory-Dover- Mathematics/dp/0486678709/ref=zg_bs_13938_1?_encoding=UTF8&psc=1&refRID=5B340WJFHW26XTZVXM54)

</comment><comment><USER39> With the top few posts being somewhat negative, I was expecting a bad article. It is longer than I'd care for on a quick read, but it looks solid and I would consider a hardcopy. Especially to share with my kids to help them learn. The added "color" really helps, I think.

</comment><comment><USER40> I must recommend also Sarada Herke series of videos on graph theory. they are excellent.

[https://www.youtube.com/playlist?list=PLGxuz- nmYlQOiIOriTXME...](https://www.youtube.com/playlist?list=PLGxuz- nmYlQOiIOriTXMEoGoybUC3Jmrn)

</comment><comment><USER41> Here's a pro-tip: "I don't understand XYZ" this is the humble-brag of academia. And the more basic XYZ is, the more points you win. Try the following: "I don't understand 1+1=2." Sit back and enjoy your collaborators as they stare in wonderment at your sage lack of understanding.

<comment><USER42> I don't think good mathematicians confuse rigorous understanding with intuitive understanding as you suggest; rather, they are complements of each other

Further reading: [https://terrytao.wordpress.com/career-advice/theres-more- to-...](https://terrytao.wordpress.com/career-advice/theres-more-to- mathematics-than-rigour-and-proofs/)

<comment><USER43> Saying that you intuitively do not understand XYZ often requires intellectual honesty as well as understanding it rigorously, even more so in academia. So saying that you intuitively do not understand XYZ can be used as a signal.

</comment></comment></comment><comment><USER44> For programmers "understanding" graph theory begins with being able to implement a traversal and knowing how depth-first is different from breadth- first, what is pre-order, in-order or post-order, what role the stack and the queue play in it, and how it can be done recursively or using a loop.

</comment><comment><USER45> For the longest time I couldn't understand electrical theory, until a youtuber explained it very simply... It won't move unless it can see a path to ground, except you make it do all the work while it's attempting to ground.

That's all it took for the theory to fall into place.

</comment><comment><USER46> Small quibble:

> note that we are still dealing with pseudocode

He's got a funny idea about pseudocode!

This is very timely. I've been writing an app to draw polyhedra and it's slowly been dawning on me that there's a lot more graph theory involved than there is 3D geometry or vector maths.

</comment><comment><USER47> If anyone has trouble with graph theory or other basics of discrete mathematics, then the introductory works of Matoušek and Nešetřil will most likely help them very much.

</comment><comment><USER48> I really think what this article needs is an editor. From a quick glance I can see quite a bit of info but the way it is presented irks me.

</comment><comment><USER49> Don't worry, it's just a theory...

</comment><comment><USER50> Was expecting this to be pitch for neo4j.

</comment><comment><USER51> Understood but forgot. Several times.

</comment><comment><USER3> Thanks @signa11 for sharing this.

</comment><comment><USER52> How long did this take to write? It is rather reminiscent of War and Peace, in that it's undoubtedly an impressive work, but there is no way i am going to read it.

<comment><USER53> That's a shame. Really good long form writing is often well worth your time. Although this particular piece had some grammar issues that reduced it's quality but the content was still enjoyable.

</comment></comment><comment><USER54> Nice work. I stopped reading about 2 volumes in, though.</comment>


Developer creates tiny, working version of original Macintosh - <AUTHOR> http://mobile.theverge.com/2013/8/28/4667622/developer-creates-working-version-of-shrunken-macintosh <comment><USER2> A good use of the Raspberry PI. I suppose he can use emulators and make mini versions of the Amiga, Atari ST, Commodore 64, Apple //e, IBM PC, and of course handheld gaming systems that run classic video game console ROMS on an emulator.</comment>


The Mystery of the Missing STEMIs During the Covid-19 Pandemic - <AUTHOR> https://www.tctmd.com/news/mystery-missing-stemis-during-covid-19-pandemic <comment><AUTHOR> I had to google it so I assume not everyone knows:

 _ST-Elevation Myocardial Infarction (STEMI) is a very serious type of heart attack during which one of the heart's major arteries (one of the arteries that supplies oxygen and nutrient-rich blood to the heart muscle) is blocked._</comment>


Ask HN: Is it possible to create something significant without being a jerk? - <AUTHOR> It seems almost all famous leaders of IT companies had quite bad personality and squeeze people to get shit done. Do you believe it is a must for any great company? <comment><USER2> You can absolutely create something amazing without being a jerk. Take a look at what James Goodnight and John Sall did with SAS. They're worth a combined $12 billion.

"SAS ranks No. 2 on 2014 Fortune list of Best Companies to Work For in the US"

[http://www.sas.com/en_us/news/press- releases/2014/january/gr...](http://www.sas.com/en_us/news/press- releases/2014/january/great-workplace-US-Fortune-2014.html)

Or take a look at what David Duffield has done, with both PeopleSoft before and Workday now. He's known to be an exceptional nice guy.

"Workday Named #1 Best Place to Work in the Bay Area"

[http://www.workday.com/company/news_events/press_releases/de...](http://www.workday.com/company/news_events/press_releases/detail.php?id=1579582#.VYRNvkbc1kg)

Gordon Moore was the President and then CEO of Intel for years, and is a nice guy.

Pierre Omidyar founded and ran eBay early on, and is a nice guy.

Jan Koum and Bryan Acton are not jerks, they created a vast success with WhatsApp.

Jerry Yang and David Filo are nice guys.

Kevin Systrom of Instagram isn't a jerk.

Nick Woodman of GoPro isn't known for being a jerk.

There are a lot of good examples.

<comment><AUTHOR> Then I am not doomed... Good.

</comment></comment><comment><USER3> I second the being a jerk and making tough calls isn't the same thing. But when you are learning and younger the difference is less clear. I would think the Steve Jobs of the 1980's while he was learning to lead was a bit more of an asshole then he was in his later years. That doesn't mean he still didn't push people etc but my bet is he learned and became less of a "jerk" without giving up on his visions. Mind you I know nothing specific other than what I have read about him.

The truly amazing leaders are the ones who you will not only follow into the fire, but when you come out burned you are already signed up for the next round. They aren't abusive, jerks or anything of the sort. Unless they do this to you needlessly and repeatedly, then they are not even respectful of themselves.

I personally have lived by this rule, I won't ask anyone to do something I am not willing to do or help them do. Doesn't mean I can do it necessarily, but I would do my best. For me, this generally removes people feeling squeezed, they may feel I am a pain sometimes, but they know I will do it too. I do my best to listen as well, but I do feel that people have taken advantage of me at times because I will generally give them the benefit of the doubt for a little to long.

</comment><comment><USER4> Yes, it is possible. DHH and Jason fried, creators of basecamp, are nice guys. Is that "significant"? I don't know.

What you need is to deliver. An easy way is to treat them poorly, and it works to some degree. The hard way is to treat them with respect and support, but that takes more work; although offers better results.

</comment><comment><USER5> Being a Jerk and making tough decisions are two different things.

</comment><comment><USER6> You have to be risk-averse, yet bold. And you have to watch your back all the time. My first attempt at business at the age of 22 ended up with someone I trusted stabbing me in the back and filing a lawsuit for $25k. I had to file personal bankruptcy to get out of that one. Business will make you tough and assertive or it will kill you.

<comment><USER6> One more thing. I don't like the phrasing of being a jerk. Not everyone who is successful is a jerk. What more successful people have is a drive towards product and operations perfection that trumps everything else. The idea of excellence and the pursuit of it causes leaders to fire people, expect only the best results, and really throw any inefficiency in the trash. It sounds ruthless and it might be, but that is where this jerk persona lives.

</comment></comment><comment><USER7> Yes, Notch made something significant (Minecraft) and as far as I can tell is very far from a jerk.

</comment><comment><USER8> No, it's almost impossible without being a jerk. This personality trait is a requirement for succeeding.

And it's mostly because of the way capitalism works. Once you enter the market, you're automatically forced to turn a profit or get investments. If you don't, you die. Competition is also pretty fierce. You may choose to play by the rules, but others choose not to. So you can easily get killed.

Customers also become your worst enemy. They are forced by the market to buy cheap instead of good. So you're now in a race to the bottom. Plus, the entire market is volatile. Things can change almost instantly. One well targeted review or article can either make you or break you.

So when your entire success is built on a tower of cards, only by being ruthless can you make the climb. We could have had megabit internet 30 years ago. But instead we got AOL and Comcast. People can spin it any way they like. But in the end, actions talk louder than words.

<comment><USER9> >No, it's almost impossible without being a jerk. This personality trait is a requirement for succeeding.

Every successful person is a jerk?

>Customers also become your worst enemy. They are forced by the market to buy cheap instead of good.

Price is not the only metric by which people buy a product. There are a large amount of variables which play into a purchasing decision. Also, no one is forced. You choose what to purchase.

>So when your entire success is built on a tower of cards,

Another large and untrue generalisation.

>We could have had megabit internet 30 years ago. But instead we got AOL and Comcast.

Please explain this further.

</comment></comment><comment><USER10> It's not about IT, it's about running a company.

You start a company and become a success - you get a lot of enemies that want to destroy you. Overtime you try the best you can but you cannot please everyone.

</comment><comment><USER11> What about Elon Musk ? Jerk or Not ?

</comment><comment><USER12> Just look at Steve Wozniak.

</comment><comment><USER13> Can you elaborate on some examples of those famous leaders and what they did?

<comment><AUTHOR> Jobs, Musk, Kalanick (Uber CEO)

<comment><USER9> Three data points(whether they're true or not) is not any indicator of the necessity to be a 'jerk'.</comment></comment></comment>


Ask HN: What do you use to protect your Linux box from malware? - <AUTHOR> After seeing the (Dutch) documentary 'Rats & Slaves' [0] about Remote Access Trojans, and finding that they also exist for Linux [1] I am going to do some scanning today on my systems.
Question is: What tools are best to use here to ensure I can sleep safely knowing no viruses, trojans, rootkits and other filth have nestled in my systems?
Also curious what are best, reliable websites to keep up-to-date on security best-practices related to this.
PS. I intend to start my scan with ClamAV, followed by chkrootkit and rkhunter as outlined here [2].
[0] https://youtube.com/watch?v=BGsw_l0tT10
[1] https://www.bleepingcomputer.com/news/security/lazarus-hackers-target-linux-windows-with-new-dacls-malware/
[2] https://www.linux.com/tutorials/security-tools-check-viruses-and-malware-linux/ <comment><USER2> First, you have to understand that once infected, a system can never be fully cleaned. So you if you are not sure how your past usage has been and might have installed random software, you need to reinstall your system after backing up your non-system files. This is the only sure way. AV software claim to solve what-they-can in the best possible way for a person who doesn't have any other option. The very fact that you are using Linux, I assume you are step above the average AV customer base.

Once you have clean system, you have to follow a discipline - do not work as root, restrict ssh access to specific users, don't run unnecessary services. Far too many to list here. Unfortunately, that is how the world is. Be paranoid. May be even use a VM to run software you don't trust. Always install software using package managers or at least do basic sanity checks like checksums on anything you download.

There is no software that will run a scan and give you a green check. If there is one like that, I wouldn't trust it either.

<comment><AUTHOR> Thank you for the info. I generally work according to the best-practices you outline.

> There is no software that will run a scan and give you a green check. If > there is one like that, I wouldn't trust it either.

Are you advising against running ClamAV, chkrootkit and rkhunter? I know they won't give 100% guarantee, but something better than nothing, I thought.

I am most worried about my developer machine, as I have testdrived numerous OSS projects, with different stacks, package managers, etc. Fetched billions of npm packages, and browsed gazillion sites for tech advice (using FF, Privacy Badger, uBlock, but still).

A clean reinstall may be in order, but it'll cost so much time getting all config I now have in place again.

<comment><USER3> ClamAV on Linux is mostly for checking for Windows malware in files that might end up on Windows.</comment></comment></comment>


Unknown Force Changing a Cloud's Shape [video] - <AUTHOR> http://www.techeblog.com/index.php/tech-gadget/strange-video-shows-unknown-force-changing-a-cloud-s-shape#mJpqtdh7adMEdoJO.01

<comment><USER2> It's probably a "sun dog". Bill Beaty has some good info about it: [http://amasci.com/amateur/sundog.html](http://amasci.com/amateur/sundog.html)

</comment><comment><USER3> It's probably just a weather balloon. :-)

<comment><USER4> Nothing to see here. Get back to work.</comment></comment>