How I work with Postgres – psql, My PostgreSQL Admin - <AUTHOR> http://craigkerstiens.com/2013/02/13/How-I-Work-With-Postgres/ <comment><USER2> I do the same, but I have one thing I miss - an easy way to send the output out for graphs.

Tweaking and playing with gnuplot is a loss of time - if on a copy/paste excel and others can understand the data from the label and plot using reasonable defaults without many hints, certainly if columns are identified as datetime, labels etc. there could be a tool to use such hints and make a decent graph (to me, decent means giving a global understanding - sure you can tweak it to look good if you are preparing a report, but a lot of time is spent graphing thinks to figure things out and many graphs go to the trash in the process)

My dream is to do my select queries in psql and direct the output to that tool, never leaving psql - so it could be for example something that would be triggered on a new table creation matching a specific name like xx_, then it would simply require prefixing "select" by "create table xx_abc as ".

The best way I've found is to save the output to a CSV and pass it to other tools, but there are never quite user friendly and usually can't pick reasonable defaults.

There is an OSX psql frontend I tried after it was recommended here on HN (<http://inductionapp.com/>) but it was not that helpful in day to day operations.

Yet it seemed to be on the same problem - see this picture <https://s3.amazonaws.com/induction/induction-visualize.png>

<comment><USER3> Here is an example of feeding query output into gnuplot without leaving psql:

      # psql -U postgres
      psql (8.4.15)
      Type "help" for help.

      postgres=# \t
      Showing only tuples.
      postgres=# \a
      Output format is unaligned.
      postgres=# \f ' '
      Field separator is " ".
      postgres=# select * from example;
      1 1
      2 2
      3 3
      4 4
      postgres=# \o | /usr/bin/gnuplot
      postgres=# select 'set title "My Graph"; set terminal dumb 78 24; set key off; set ylabel "Time"; set xlabel "Servers";' || 'plot ''-'' with lines;' ; select * from example;
      postgres=# \o

                                        My Graph
      Time
          4 ++</comment></comment><comment>----+</comment><comment>----+</comment><comment>-----+</comment><comment>----+</comment><comment>-----+</comment><comment>---**
            +           +          +           +          +            +     **** +
          |                                                           ****     |
      3.5 ++                                                      ****        ++
          |                                                   ****             |
          |                                               ****                 |
        3 ++                                           ***                    ++
          |                                        ****                        |
          |                                    ****                            |
      2.5 ++                               ****                               ++
          |                            ****                                    |
          |                        ****                                        |
        2 ++                    ***                                           ++
          |                 ****                                               |
          |             ****                                                   |
      1.5 ++        ****                                                      ++
          |     ****                                                           |
          + ****      +          +           +          +           +          +
        1 **</comment><comment>----+</comment><comment>----+</comment><comment>-----+</comment><comment>----+</comment><comment>-----+</comment><comment>---++
          1          1.5         2          2.5         3          3.5         4
                                         Servers

      postgres=#

<comment><USER4> This is incredible! I only wish it were a little easier to do on the fly.

<comment><USER3> Yeah, gnuplot is a very powerful tool.

I imagine you could put it all into a user-defined postgresql function, so all you have to say is:

       graph(select * from example);

<comment><USER5> You should be able to map it to a macro using \set.

        # \set foo '(select now())'
        # :foo;
        ?column?
        </comment></comment></comment></comment><comment>--
        2013-02-14 04:18:23+01

        # select count(*) from :foo as foo;
        count
        -----

Afaik macros just expand inline, do you can embed stuff like \o.

<comment><USER3> Aye. This is getting over my head, so I inquired on the pgsql-general list (which is amazingly helpful).

Ian Barwick writes how to put all the prep stuff into a psql script, then all you have to do is define your query and invoke the script:

\-- start quote --

What you could do is create a small psql script along these lines:

      barwick@localhost:~$ cat tmp/plot.psql
      \set QUIET yes
      \t\a\f ' '
      \unset QUIET
      \o | /usr/bin/gnuplot
      select 'set title "My Graph"; set terminal dumb 78 24; set key off; set ylabel "Time"; set xlabel "Servers";' || 'plot ''-'' with lines;' ;
      :plot_query;
      \set QUIET yes
      \t\a\f
      \unset QUIET
      \o

      barwick@localhost:~$ psql -U postgres testdb
      psql (9.2.3)
      Type "help" for help.

      testdb=#   \set plot_query 'SELECT * FROM plot'
      testdb=# \i tmp/plot.psql

                                        My Graph

          4 ++</comment></comment><comment>---+</comment><comment>-----+</comment><comment>----+</comment><comment>----+</comment><comment>-----+</comment><comment>---**
          +          +           +          +          +           +     **** +
          |                                                          ****     |
      3.5 ++                                                     ****        ++
          |                                                  ****             |
          |                                              ****                 |
        3 ++                                         ****                    ++
          |                                      ****                         |
      2.5 ++                                *****                            ++
          |                             ****                                  |
          |                         ****                                      |
        2 ++                    ****                                         ++
          |                 ****                                              |
          |             ****                                                  |
      1.5 ++        ****                                                     ++
          |     ****                                                          |
          + ****     +           +          +          +           +          +
        1 **</comment><comment>---+</comment><comment>-----+</comment><comment>----+</comment><comment>----+</comment><comment>-----+</comment><comment>---++
          1         1.5          2         2.5         3          3.5         4
                                         Servers

      testdb=#

\-- end quote --

And

Sergey Konoplev explains how to do it with a server-side function - you need gnuplot installed on the db server -

\-- start quote --

      plpython/plperl/etc plus this way of calling

      select just_for_fun_graph('select ... from ...', 'My Graph', 78, 24, ...)

      will do the trick.

\-- end quote --

</comment><comment><USER6> But, but, but! If I use the CLI instead of a GUI, people might start asking me to put what I am doing into a file and save it in revision control. They might even ask me to make a function (procedure) out of some of it so it can be extended or reused. Then where would we be -- how can I claim that DBA-ing is magic? :-)

<comment><USER7> I find your characterization very puzzling. It is the DBAs I've worked with who want to use revision control, who want to use correct database schemas, who want data integrity, who want to use stored procedures. They are the ones fighting against developers who never bothered to learn how to use a relational database and push the mysql/php style of "just make your app the database and the database is just a file full of inconsistent data, don't do joins, don't use view, don't use stored procedures or functions, don't use triggers, etc."

<comment><USER6> Either you have been lucky, or my coworkers and I have been unlucky. YMMV.

Fortunately, most all the DBAs I've worked with do in fact value data integrity, but, don't seem to care about other development practices like automated DB version migrations or reducing repetition.

</comment></comment></comment><comment><USER8> Navicat is a decent way to deal with both Postgres and MySQL (among many other database engines) with the same interface.

All the different ways Navicat packages its products are unnecessarily confusing. Premium Essentials ($20) is almost certainly what you want: [http://www.navicat.com/en/products/navicat_essentials/essent...](http://www.navicat.com/en/products/navicat_essentials/essentials_overview.html)

<comment><USER9> Just downloaded their trial edition a few days ago for an upcoming project but haven't started playing with it yet. Glad to hear good things about it.

</comment></comment><comment><USER10> I'm partial to SQL-mode in emacs which allows you to start psql in a comint style buffer, send queries from an edit buffer and capture them to output buffers; it used to be a pain to set up but these days it mostly just works.

And by accident or design, there is almost no interference between the psql commands and the editor.

</comment><comment><USER11> Can't wait till Sequel Pro supports Postgres. Was really excited to see them publicly start down the path of implementing it last September. <http://stuconnolly.com/blog/sequel-pro-postgresql-support/>

<comment><USER12> I agree. I honestly think this is the biggest thing slowing adoption of psql. It is the one thing I miss from mysql.

</comment></comment><comment><USER13> Just found TeamPostgreSQL (<http://www.teampostgresql.com/>) earlier today, by far the best I've ever worked with.

Not that the other tools have set a very high bar. pgAdmin crashes constantly, and you can't sort columns by clicking on them. Navicat doesn't run properly on Linux, you have to mess around with wine. phpPgAdmin has a single DB host is hard coded into a config file and just feels antiquated.

One major drawback of TeamPostgreSQL so far: it doesn't support SSL connections.

<comment><USER14> It doesn't support SSL connexion to the database or it doesn't support HTTPS ? (And does it work if you put it behind a proxy?)

</comment></comment><comment><USER15> Matt Thompson (<https://github.com/mattt>), also from Heroku created Induction (<http://inductionapp.com/>) to handle this sort of database administration around a year ago, but it seems like he's become pretty busy with other projects at the moment. I hope that he's able to pick up progress on it again as it really had a lot of promise behind it.

</comment><comment><USER16> Are there any good guides out there for starting out Postgres 9.x+ administration, including proper safe deployment on a VPS, maintenance and all sorts of good practices as far as tools are concerned?

<comment><USER3> I'd recommend "The Accidental DBA" (or, Administering PostgreSQL When It's Not Your Job). You can find it here: <http://www.pgexperts.com/presentations.html>

<comment><USER16> The Accidental DBA sounds like a really well fitting title for my request. Thanks! :)

<comment><USER3> You are most welcome!

</comment></comment></comment></comment><comment><USER17> Great article but I can't get his advice for using Sublime Text as the editor to work. \e will open a new file, but saving/quitting doesn't ever run the query.

<comment><USER18> 'subl -w' is the correct incantation.

<comment><USER19> Last time I checked, it didn't work in linux iff there were other sublime windows open.

See [http://stackoverflow.com/questions/14598261/making- sublime-t...](http://stackoverflow.com/questions/14598261/making-sublime- text-2-command-on-linux-behave-as-it-does-on-macos-x)

</comment></comment></comment><comment><USER20> I'm trying to build a mac GUI server app at the moment for postgresql for a standalone server, like Postgres.app. I should be finished in a couple of months or so and then I will write a GUI client app for Mac and iOS. If you're interested, you can download the source here: <https://github.com/djthorpe/postgresql-kit>

</comment><comment><USER21> We created JackDB[1], a database development client that works in the browser, to solve exactly this problem.

We're making a lot of progress with it, including a lower price offering and launching a free tier soon. Check it out, or shoot me an email if you're interested.

[1]: <http://www.jackdb.com/>

</comment><comment><USER22> I've frequently given the same advice to my co-workers. The GUI's for Postgres are all lackluster, and learning to use psql with \d seems like the best way to go. It takes a little time to get used to, but once acclamated it blends into the background and works great.

</comment><comment><USER23> `win psql` in Acme window is my choice: you get per-session history for free, easy copy-paste (with a real 3-button mouse of course) and even multiline SQL queries are very comfortable.

<comment><USER23> forgot to mention some useful psql options for comfortable work within Acme: `win psql -xn -vPROMPT2=`

setting PROMPT2 to null string gifts you with ability to easily copy-paste SQL expressions

`-n` disables readline lib because we don't need it in Acme

</comment></comment><comment><USER24> I've been using Squirrel and it seems ok; fairly decent most of the time, actually. (Anyone else have any thoughts on Squirrel?) I've never used psql though. I'll look into it.

<comment><USER25> Squirrel, like all Java software I have ever used, has this bad habit of getting in to an inconsistent state where it needs to be restarted to use.

</comment></comment><comment><USER26> That's cute but, let's be honest, viewing query results for anything but trivial schemas or amounts of data with psql is somewhat close to impractical.

<comment><USER6> Dump the result set as a table into a file and refresh "the file" in a browser?

Having 2 windows open is about the same as having 2 panels in one of the DB "Monties". <http://catb.org/jargon/html/M/monty.html>

<comment><USER6> That said, the sql*pro CLI that Oracle provides for their DB SUCKS (!!!) rotten eggs, and gives people the impression that a CLI is useless for database work.

<comment><USER21> Yes the CLI for sql*plus does suck. When I am using it (pretty rare these days) I use rlwrap to make it suck less. Command history is pretty convenient too.

Here's my ~/bin/sqlplus shell script pointing to the Oracle instant client install:

        #!/bin/sh

        OIC_DIR=$HOME/opt/oracle-instant-client
        export LD_LIBRARY_PATH="${OIC_DIR}:$LD_LIBRARY_PATH"
        export TNS_ADMIN="${OIC_DIR}"
        rlwrap "${OIC_DIR}/sqlplus" "$@"

Bonus: You can use a tnsnames.ora file with the instant client if you put it in the instant client directory and export the environment variable in the script above.

<comment><USER6> That's right, it's been a while. "pro" was the C preprocessor, "plus" was the gawdhawful CLI.

Thanks for the tip on rlwrap, in case I have to use that thing again. I'm assuming it provides GNU readline support on top of the base tool.

<comment><USER21> Yes, rlwrap provides GNU readline atop just about anything. When I write my REPL tools (test utilities, etc) I usually wrap them for local use in rlwrap as 99% of the time it's what you want.

</comment></comment></comment></comment></comment></comment><comment><USER27> i'm pretty happy with ems' sql manager - while not free, it has everything i ever needed from a postgres gui. working with psql to query large data sets seems a bit tedious to me - i prefer a multiwindow gui application with a decent tabular view that i can browse through. i heavily use psql for maintenance stuff tho.

</comment><comment><USER28> For ad-hoc, read-only query building on a Windows platform, I get a lot of mileage out of this quaint, non-CLI "toolchain":

(1) pgAdminIII's query tool (not the tedious query builder, yes the bare SQL ("pencil" button) query tool, a plain text editor and SQL runtime

(2) An editor able to both _allow_ open files to be changed externally, and _notify_ me that that's happened (no file close/reopen; can leave one file open for many round trips here). Also, have it make whitespace characters visible so one can see TAB characters. EditPlus does these job for me.

(3) A spreadsheet program open to a blank, unnamed, unsaved sheet. You guessed it, I'm talking Excel.

Here's the workflow:

(A) Run the next try of the query-build-in-progress in the query tool, sending its output to the file "simultaneously open" on EditPlus. Include headers, and use a column separator that's unlikely to occur in data, e.g. the pipe symbol, '|'. Almost all keystrokes.

(B) Switch to EditPlus. It then politely notices the file's been changed, assent to its doing a file reload (no close/re-open in the UI, but of course that's what it does). Two keystrokes.

(C) Globally change | to \t, but don't bother to save the file. Just select all and copy to clipboard. A few keystrokes.

(D) Switch to spreadsheet, paste. Two keystrokes. Here is where using the TAB character as a column separator works its good magic; all the headings and all the query result drop into properly aligned cells in the spreadsheet.

Analyze the results in the spreadsheet, maybe highlight some color on problematic rows, columns or cells. Go back to the SQL editor and re-run the whole chain.

No file naming (except once on startup), no import wizard (ugh!), no open/close, no CSV misinterpretation. All stock software.

Various ways of icing this particular workflow-cake:

* After pasting into the sheet, highlight the columns that Excel typed as numeric when you know they're character values that happen to be all digits. Use 'Format Cells' to change the 'Number' (data type!) from 'General' to 'Text'. Nothing will appear to change, but here's the magic: Highlight all the cells and delete their content (delete key). Now paste from clipboard again. This type the character data hasn't lost its leading zeroes, and it's properly left-justified.

* Start with a SELECT _... then once the result is in Excel, delete the colums it turns out you don't want... then hightlight those headings, copy to clipboard, paste to editor, reformat as comma-separated, copy and paste that in place of the_ in the original select.

* Use underscores in column names instead of camel-case, e.g. row_id instead of rowId (camel-case doesn't work in PG unless column identifiers are quoted, not worth the pain). Once in Excel, highlight all the column names, repalce underscore with blank, set the Format to Wrap. Now the column names form a distinctive taller-than-the-data-rows, easy-to-read.

I've come to think of (and use) the clipboard as a manual, stepwise imitation of the character stream native to shell scripting of *nix CLI tools. Not a true 'toolchain' in that one has to manually pump everything through the clipboard, but but still effective and quick enough for fast, "filenameless" turnaround on query development, and very little mousework.

Most of all, it gives me the very significant power of a spreadsheet for query error analysis.

</comment><comment><USER7> Every time this topic comes up, people discuss tools they use which all seem to be nothing more than a graphical version of psql. As in, they let you see a list of tables, then see the columns of that table, run queries, etc. But none of that is actually making anything better or easier, its just a different client with the same features.

Does anyone know of a tool that has a good visual DB design interface? That is what I am missing (not just when I work with postgresql, but period). I want to be able to easily and visually see the relationships between tables, not just the tables themselves, or one table with a list of its relationships. Something like this: <http://ondras.zarovi.cz/sql/demo/> but not web based and actually supporting all of postgresql?

<comment><USER29> There's a bit of a killer tool that's relatively well known in geospatial data circles (and has been kicking about for a few decades) called FME from Safe Software [1] that I've never seen referenced in the non spatial database circles.

It's got some of the best table visualisation and table/tool/translation/QC intergration visual design tools I've seen.

It's essentially built with the goal of starting with multiple table sources in various ASCII / <some>SQLDB format and displaying all tables, building filter pipes to merge and translate data on the fly and produce single or multiple coherent databases and table sets (or even more ascii tables) as output.

It has it's quirks but it's a solid bit of kit ( I used it some years back to read in and unify data from several million leases (geospatial boundaries and related metadata) from multiple sources (Australian, Canadian, South African, etc. land departments) - from whoa to go was about four days, once running it chewed through the data on par with normal copy speeds (eg: it imported cleaned & filtered data in a time ballpark to just copying the data from A->B).

I'm not affiliated, but on the basis of that job, yeah, I'll spruik it.

[1] <http://www.safe.com/>

[2] <http://www.safe.com/fme/fme-technology/fme-desktop/overview/>

( See desktop demo video from overview section )</comment></comment>


Histre: Effortless Knowledge Base - <AUTHOR> https://histre.com <comment><AUTHOR> I came across this on HN in a comment and thought it was interesting, so I wanted to re-share it.</comment>


Five Types of Virality - <AUTHOR> https://news.greylock.com/the-five-types-of-virality-8ba42051928d#.tuzmxnyz7 <comment><USER2> Synopsis : read my article about viral marketing using this 1 weird trick !

</comment><comment><USER3> Thinking deeply about virality is probably worthwhile, though Im not sure I agree with the breakdown here.

"Incentivized" is an optional attribute that applies to the other four, not just word of mouth.

<comment><USER4> This is definitely not a thorough (or deeply useful) investigation of the topic.

As I read it, there are three types of transfer identified here and two modifiers.

\- Word of mouth

\- Demonstration (intentional or not)

\- Network effects (N.B. this is a problem as well as an opportunity)

And the modifiers:

\- User incentives (cash-for-shares)

\- Central sharers (e.g. Let's Plays, celebrities on Instagram)

That seems like a better framework than the one provided. We can see that Pokemon Go was demonstration and word-of-mouth with central sharers, Uber was demonstration and word-of-mouth with incentives, and Instagram was network effects with central sharers.

Building this up into a proper model with more elements would be interesting. Additives like "controversy" and "media appeal" would probably be key to identify.

<comment><AUTHOR> I like the way you broke down things. People at a16Z have some sort of a network effect playbook for different types of Network Effects. I was listening about this in one of their podcasts.

<comment><USER5> Here's the episode: "Not all network effects are created equal"[1]

[1]: [http://a16z.com/2016/08/01/network-effects- taxonomy/](http://a16z.com/2016/08/01/network-effects-taxonomy/)

</comment></comment></comment></comment><comment><USER6> Anyone have any really good sources to learn to think about virality?

I'm getting a few insights reading this (e.g. demonstration virality now seems stupid obvious but I had never thought about it before ), but I'd go a little deeper and have no clue where to start.

I've tried several different Google searches but came up with mostly garbage.

<comment><USER7> First you have to separate out network effects (recently called "the platform stack") from virality. The former (not the one you asked for) is this stuff:

      - https://medium.com/@smitty/what-i-learned-from-100-s-of-hours-studying-platform-businesses-platform-building-basics-part-1-1ae6e75c6cf0

      - https://medium.com/art-marketing/the-platform-stack-c83f9c96e6

Slide #68 here talks about the difference (the whole deck is worth a look- see):

      - http://www.slideshare.net/a16z/network-effects-59206938/68-Whats_the_differenceD_E_F

Some of my clients have found spreadsheet/tutorial/example useful to help them "bring it home":

      - https://www.linkedin.com/pulse/20121002124206-18876785-how-to-model-viral-growth-the-hybrid-model

There's a slew of charlatans that will want to help you use FB to make things "go viral" (you'll find some of those pitches on SlideShare), but first, once you know what it is, you can begin to sort the wheat from the chaff for yourself...

</comment></comment><comment><USER4> I'd love to see some proper data on "incentivized word of mouth". When I engage in that, it's almost always normal word of mouth plus a mutual cash- grab. Compare how often you decide "I should spread the word about this for money" to how often you go "This is really great. Oh! Let me recommend you and we'll both save a couple bucks." Hell, I've told existing users "I want this app, recommend me and we'll grab some cash?"

I guess it might still improve retention for the new users, which is probably Uber's goal, but I'm skeptical about whether incentives promote more sharing, or just raise the price of existing shares.

<comment><USER8> >I guess it might still improve retention for the new users, which is probably Uber's goal, but I'm skeptical about whether incentives promote more sharing

I first used Uber because I was with someone that was already a user and we were going to catch a cab... He would have just done it himself, but because of the incentive, I downloaded instead so our shared ride would cost us less.

</comment></comment><comment><USER9> This isn't exactly an orthogonal basis.

</comment><comment><USER10> Now we're really making words up....

"Five types of viral marketing"

</comment><comment><USER11> I'm always amused when I see an article like this at the top of Hacker News. I come here for interesting technical articles and discussion on computer science topics, not this sort-of marketing noise^H^H^H^H^H advice targeted at "entrepreneurs".

I wonder how much overlap there is between upvoters of [https://news.ycombinator.com/item?id=12539522](https://news.ycombinator.com/item?id=12539522) (L4 microkernels...) and this article (Five Types of Virality). It would be very interesting if Hacker News could release some anonymized voting information so we could visualize our community's various clusters.

<comment><USER12> When I see posts like this I just assume everyone at [ insert company y ] up voted.

<comment><AUTHOR> actually, I submitted this post and have nothing to do with Greylock. I am an entrepreneur myself trying to grow my product. Hence, I think about virality all the time. The audience here is also interested in growth as is clear by the upvotes.

<comment><USER13> Just because you submitted it doesn't mean everyone at company y isn't alerting on posts about their company and voting them up.

But I do agree this is an entrepreneurial topic of general interest.

<comment><AUTHOR> Theoretically, you might be right. But, I seriously doubt someone at GreyLock would have noticed until it was upvoted enough no of times to be on top.

</comment></comment></comment></comment></comment><comment><USER14> No quantum virality ? Huh...</comment>


The 26,000-Year Astronomical Monument Hidden in Plain Sight - <AUTHOR> https://medium.com/the-long-now-foundation/the-26-000-year-astronomical-monument-hidden-in-plain-sight-9ec13c9d29b5 <comment><USER2> This was previously posted on another site.

[https://news.ycombinator.com/item?id=19032035](https://news.ycombinator.com/item?id=19032035)</comment>


Ask HN: How can a self taught programmer get a SWE job in the bay area? - <AUTHOR> Hi guys,
I took some online courses in python/Javascript/ and Databases, build some projects, but am totally clueless as to how I can compete with kids that graduated with a CS degree in the bay area.  I was wondering if you could advise on what to focus on when applying for an entry level role in SWE.  Thanks!
Cheers, -W <comment><USER2> I'm self taught and went through Triplebyte. They make you take a small quiz and technical screen anonymously, and then they pair you up with around 8 startups (mostly YC).

Here's my referral link, should you want to use it (we each get $1500): [https://triplebyte.com/iv/YY8SRsU/cp](https://triplebyte.com/iv/YY8SRsU/cp).

If you need any help, my email is `<my username>email@example.com`.

<comment><AUTHOR> Thanks man! Greatly appreciate it!

</comment></comment><comment><USER3> One option: compete on your strengths, not your weaknesses.

E.g. you probably have some prior job experience, job experience that someone straight out of school doesn't have. That job experience likely taught you some valuable skills, which you should highlight - skills you need as a programmer go far beyond Javascript or datastructures.

<comment><AUTHOR> This is great advice thanks!!</comment></comment>


New remnant radio galaxy detected - <AUTHOR> https://phys.org/news/2020-06-remnant-radio-galaxy.html <comment><USER2>
      "The morphological characteristics of J1615+5452 coupled with its spectral properties and synchrotron age helped us to classify the peculiar source as a dying radio galaxy," the authors of the paper wrote.

Loved this from the article.</comment>


Google Nexus 4 and Nexus 10 Performance Preview - <AUTHOR> http://www.anandtech.com/show/6425/google-nexus-4-and-nexus-10-review

<comment><AUTHOR> Based on these benchmarks, it looks like Chrome on Android is 2X slower than Chrome on ChromeOS.</comment>


How much does your slow machine cost your company? - <AUTHOR> http://foldingair.blogspot.com/2011/08/how-much-does-your-slow-machine-cost.html <comment><USER2> I've actually done exactly this exercise myself having been constantly frustrated with the development platform in use at my company (Similar Dell PCs, Win 7, VS2010, RS6 etc.). Additionally we have a slow VPN to our servers which are hosted at our main office. There have been days where the total wasted time is >25% of my day.

I'd add an additional cost into the analysis which is the frustration of engineers working under these conditions and the risk of them leaving to find somewhere that takes this more seriously.

I'll also register my continued surprise and disappointment at the performance of this typical MS development stack on a machine that should be more than up to the task (3 GHZ Core 2 Duo, 4 GB RAM).</comment>


Why I'm Not a TypeScript Fan - <AUTHOR> https://medium.com/@amcdnl/why-i-m-not-a-typescript-fan-c5057d76aaa4#.nr2qufzge <comment><USER2> You can use typescript which transcompile to babel. If you want to stop using ts you can use the babel output

</comment><comment><USER3> The only reason of TypeScript fame was Angular popularity. Now, that React is beating angular, TypeScript will be beaten to death.

<comment><USER4> Not really. TS existed well before Angular 2.0 which uses Typescript.

> Now, that React is beating angular

Nothing is "beating" anything. I see plenty "Angular jobs" where I live, I saw very little "React jobs". Doesn't mean that Angular is better than React, but again, it certainly proves that one isn't "beating" the other.

I'll tell you why I'm using Typescript : It makes maintaining large JS codebases easier and it is simpler than Babel's plugin model.</comment></comment>


ReWalk Robotics's New Exoskeleton Lets Paraplegic Stroll the Streets of NYC - <AUTHOR> http://spectrum.ieee.org/automaton/robotics/medical-robots/rewalk-robotics-new-exoskeleton-lets-paraplegic-stroll-the-streets-of-nyc <comment><USER2> The smile on Mr. Woo's face is what sells this for me. Yeah the device looks a little clunky and it can't match human agility, but this is the face of a man who can walk again.

</comment><comment><USER3> I truly don't understand why the FDA has to be involved in this market segment at all. OK, if they are inserting electrodes into the person, sure, i get it. Otherwise their involvement will only serve to make the technology more expensive and limit competition due to the insane costs of navigating their approval process. It could cost a couple of million dollars to get FDA approval. It seems to me there's no reason for them to be involved. If the devices don't work people won't buy them.

<comment><USER4> > If the devices don't work people won't buy them.

This has been proved wrong so often. People buy homeopathy or fuel-line magnets etc etc, even though a lot of this stuff has been rigorously tested and shown to be useless.

[https://en.wikipedia.org/wiki/Fuel_saving_device](https://en.wikipedia.org/wiki/Fuel_saving_device)

Whether the answer is regulation is a useful discussion, but "people don't buy things that don't work" is false.

<comment><USER3> Well, yeah, and people believe in gods and miracles too. That's the world we live in.

On this product though, I think it is a stretch to place it in the same category as holy water and other nonsense. An assisted walking device costing tens of thousands of dollars is very far from magnetic bracelets sold on TV. The sales process is very different. It includes a demo, during which the buyer will quickly understand whether or not the device does what it says. The FDA should not be involved unless something is going into your body. Their involvement pretty much guarantees the device will be far more expensive and competition will be limited due to the barrier to entry.

<comment><USER5> There are significant safety issues involved in strapping a robot to your body and letting it move you around, no? That's why the FDA is involved.

<comment><USER3> What? There are significant safety issues getting into a car, operating a milling machine, buying a gun, flying a quadcopter over a crowd, etc.

Sorry, I can't agree. I am afraid this is a government land-grab that will impact robotics development. Again, if there was a brain interface with electrodes going into your head I'd agree (only as far as the interface, not the robot).

Look at it this was: The device Stephen Hawking uses would not exist if it required FDA approval. The conversation starts at about $250K and rapidly goes up into the millions from there and takes years.

What do we end-up with? A bunch of really smart scientists and investors saying "fuck it" and going off to invent new ways for people to click on links.

There's a direct relationship between govenrnment intervention and the rate of progress in a field and it does not favor government involvement.

</comment></comment></comment></comment></comment><comment><USER6> Super similar design the the Cyberdyne (note: actual company, not Skynet) HAL. Dropped in and nerded out when I was in Japan last year. Their main target is for medical and mobility assistance for the elderly but they also do some pretty interesting stuff for augmenting able bodied users: [http://www.cyberdyne.jp/english/products/supporting.html](http://www.cyberdyne.jp/english/products/supporting.html).

<comment><USER7> Wow I love how Japanese tech companies are willing to embrace futuristic imagery. That HAL for disaster recovery looks like something straight out of a game. e.g Halo.

</comment></comment><comment><USER8> I'm actually shocked at what I felt was a not wholly unreasonable $77,000 price-point. I contracted with a prosthetics manufacturer a several years ago, and during the course of that work I recall hearing prices north of $20,000 for some of the trans-femoral prostheses with microprocessor-controlled knees. At $77,000 this unit certainly doesn't seem unreasonably expensive.

</comment><comment><USER9> There are a lot of videos of the device on youtube:

[https://www.youtube.com/results?search_query=ReWalk&search_s...](https://www.youtube.com/results?search_query=ReWalk&search_sort=video_date_uploaded)

</comment><comment><USER10> I can't believe the company behind Rework didn't give him one. I hope they end up doing so!</comment>


The seven rules of a great Git commit message - <AUTHOR> https://chris.beams.io/posts/git-commit/#seven-rules <comment><USER2> Always a good refresher.</comment>


NYC Rat Map - <AUTHOR> http://meredithmmyers.com/ratmap <comment><USER2> I lived in the Lower East Side for 11 years, on Ludlow Street, from 1995-2006. It was common to see rats on the street at night, and one evening while walking home, a rat ran towards me and jumped. It landed on my leg, scurried up and jumped off.

But nothing quite as frightening as finding three rats one evening zipping around in my kitchen, ripping apart ketchup packets. Or the time my downstairs neighbors had an angry rat trapped in their kitchen (which was disposed of with a hockey stick).

I called the NYC Health Department hotline maybe 5-6 times. At that time, calling the number led to a voice mail menu, and the first options was "if you would like to report a rat infestation, press 1". This is no joke, some buildings were really and truly infested.

The city did nothing but to place poison rat traps on the streets. Only once did someone respond and come to our building, he just suggested that we fill up all known holes in our building with steel wool. The local hardware store had bulk packages of the stuff for sale, a popular item.

Our Chinese landlord solved the problem by calling a neighborhood expert. He brought his gigantic cat, who lived downstairs in the basement for several weeks. After that, we had no more rat problems for a long time.

<comment><USER3> I love the simplicity of the solution.

I wonder why the cat population doesn't swell and match the rat population.

<comment><USER4> Stray cats/dogs are incredibly rare in NYC, especially Manhattan. The structure in place that allows people to report unsupervised animals works too well.

</comment></comment></comment><comment><USER5> Looks like this is the data source: [http://data.cityofnewyork.us/resource/3q43-55fe?$limit=10000](http://data.cityofnewyork.us/resource/3q43-55fe?$limit=10000)

This map is great in terms of personal use. "Are there rat reports near where I live?". But would be great to see someone hack together a heat-map or something that better displays density.

Edit: Here's a quick stab: [http://jsbin.com/dihiwetoja/2/](http://jsbin.com/dihiwetoja/2/)

<comment><AUTHOR> Thanks! I am hoping to add a heat map. And yes the data is from Socrata's Open Data Platform API ([https://nycopendata.socrata.com/Social-Services/Rat- Sighting...](https://nycopendata.socrata.com/Social-Services/Rat- Sightings/3q43-55fe))

<comment><USER6> Have you considered a chloropleth[1]? Similar effect to a heat map but likely much easier to implement.

Just shade each of your already defined regions by [sightings/area].

[1] [http://en.wikipedia.org/wiki/Choropleth_map](http://en.wikipedia.org/wiki/Choropleth_map)

<comment><AUTHOR> I hadn't for this project - to be honest I didn't have a clear plan for this project, it was just something I threw together in a few hours for fun because I thought the dataset was amusing :) A chloropleth is a great idea though. If I find the time to improve this, I'll definitely keep that in mind!

</comment></comment></comment></comment><comment><USER7> All the polygons are of vastly different sizes, making it very hard to see if an area has a much denser rat reporting than another. The high numbers cover larger areas and the low numbers cover smaller areas.

<comment><AUTHOR> Thanks for the feedback! It's just a simple little app I made for fun and there's plenty of room for improvement. It is open source so anyone is more than welcome to pitch in.

</comment></comment><comment><USER8> My parents place had a recent mice infestation. Which funnily enough happened because my neighbours decided to renovate their attic. So they jumped that ship and headed for my parents shores. My little sister who lived their at the time, had the great idea of feeding the neighbours/stray cats, with milk and other goodies. After a few days the mice were no longer harrassing my parents.

</comment><comment><USER9> I'd hazard I guess that it's merely a few people aggressively reporting sightings near their home and that the vast majority of the rat population goes un-reported and is fairly evenly distributed. Unless I'm mistaken and it's only department employees reporting them, which would still have a bias, based on worker personality.

<comment><USER2> Absolutely not true. The NYC Health Department handles calls directly from residents, and long-time city residents know that they need to call if they want the city to do anything to help.

<comment><USER10> Just read the comment above yours.

</comment></comment></comment><comment><USER11> A similar model for London, especially in the city and along the river, would be a constant - the old adage about never being more than a few feet from a rat are spot on. Bear in mind, the officially reported numbers are often a fraction of the real population. Rats are fairly intelligent creatures and are adept are remaining mostly hidden, even in the well populated areas.

A friend who makes a very decent income as a pest controller has very interesting stories to tell about the size of the rat population he encounters, the shift in their diet over the years (more fat and junk food remains), and worryingly, their increasing resistance to the wide range of controls in use today.

</comment><comment><USER12> I think a heatmap would look good here, one with nice flowing color gradients, maybe with a separate marker layer over the top. Leaflet-DVF looks pretty promising for that sort of thing and it comes with nifty markers. Of course a cute marker icon that looked like a rat would be good too. I'd prefer to see the building/address info displayed in a marker pop-up rather than on the left. Map apps are fun, I've made a bunch myself with Leaflet.

<comment><AUTHOR> Hey, thanks for commenting. I am hoping to add a heat map - I had tried using [https://github.com/pa7/heatmap.js](https://github.com/pa7/heatmap.js) and the code is still actually in the application source. Sadly that heat map couldn't handle the massive amounts of rat data NYC has to offer :) I'll check out Leaflet-DVF, thanks for the tip!

<comment><USER13> I'd recommending piping it through a Heroku app. Just request the data from your app and have the app process the data. It's slightly less transparent, but it's a lighter footprint on the browser itself.

</comment></comment></comment><comment><USER14> Two weeks ago, I actually met a city health department employee who focuses on rat populations in NYC. She was doing a survey of businesses along Avenue C (Alphabet City) in reaction to complaints of a swelling rat population on Avenue B. Apparently, Hurricane Sandy had washed significant parts of the rat population from Avenue C to Avenue B...and with the start of the cold season, those rats will be looking for warmer places to hang...perhaps on Avenue B.

</comment><comment><USER15> This is one of those times when the simplest name is really attention-getting. Good choice.

</comment><comment><USER16> Wow.. Very cool. Interesting how there are definite clusters here and there.</comment>


Former employee protests Amazon tactics, vows to hold vigil at HQ - <AUTHOR> http://www.geekwire.com/2014/former-amazon-employee-launches-protest-company-alleging

<comment><USER2> In the "Uber for X" era, we have to be careful to not let the digital services industry evolve into a new kind of lower class servants</comment>


Discerning the Out-Of-Order Advantage: Is It Speculation or Dynamism? (2013) [pdf] - <AUTHOR> http://zilles.cs.illinois.edu/papers/mcfarlin_asplos_2013.pdf <comment><USER2> It would be wonderful to simplify CPUs and ship this work off to the compiler. The two difficulties I see are:

Firstly, every microarchitecture will have a different optimal schedule. This means a significant shift in how binaries are deployed. Either the compiler is built into a distribution system aware of microarchitectures (for example, bitcode and the Apple App Store), or these tasks are brought online with a JIT compiler. For the sake of software freedom I hope for the latter.

Secondly, this paper shows 88% of the speedup is static. That means there will always be a little extra speed available to a chip maker that ships an OOO processor. For the same dollars, will you take the CPU that is 10% slower. Today in the middle of Intel's security disaster, sure. But ten years from now when CPU security is stable again, that free 10% performance will be compelling.

<comment><USER3> It's not free though. If you can actually remove most of the power/area hungry ooo scheduling logic for only 10% less performance on real world workload, you can pack a lot more cores or a bigger GPU on the same chip without blowing up TDP or die size.

Sure, some use case will always require the highest single thread perf at all cost but that's less and less true these days.

<comment><USER4> The speculation must be done with content-addressable memory, because you must commit or rollback register mapping after speculative execution have succeed or failed.

The dynamism, on the other hand, is a way to issue (possibly) out of order commands when they are ready to be executed (their inputs are ready and no write conflicts detected). For this you need a scoreboard (which is also needed for speculative execution). Scoreboards are for registers (which one is ready, etc) and for commands (which one is eligible for execution). As you can easily assume, these scoreboards are bit vectors, not some interesting thing that maps 80 internal registers to 16 externally accessible register indices.

The scoreboarding in CPUs have long history. They were used in Burroughs' CPUs long ago. They were used in early Alpha AXP designs (first one or two, I guess). They are very easy to implement - yours truly is guilty in this, having done that in month and he is not even a hardware designer.

</comment></comment></comment><comment><USER5> In-order Machines still tend to speculate branches which leads to Spectre attack. Using a static compiler to hoist loads will also lead to Spectre style attacks.

</comment><comment><USER6> What is the typical window size for an Intel OOO decoder ?

(measured in the number of instructions or code bytes in the memory?!)

<comment><USER7> There are (at least) two types of windows - the ROB (reorder buffer) which usually usually on the order of 200 instructions on modern chips, and the scheduler, on the order of 60-100 instructions. My impression is that usually people refer to the ROB size as the "out of order window", but maybe just because it's bigger and sounds better.

The former limits the distance between the oldest unfinished instruction and the newest instruction that can be executed.

The latter (scheduler limit) puts a smaller limit on the possible lookahead in the case of dependent instructions. It is the number of not-executed instructions that can be buffered while looking for instructions to execute.

For example, if you have a scheduler size of 60 and take a cache miss (this will become the oldest incomplete instruction), and the following instructions mostly aren't data-dependent on the miss, you could execute up to ROB-size (~200) additional instructions while waiting for the cache miss.

If the next 60 instructions are data-dependent on the cache miss, however, the scheduler will fill up and then you don't be able to execute anything, even if there exist instructions beyond the 60 that don't depend on on the cache miss.

Obviously in real code it won't usually be so "binary" \- you'll often have an intermediate case where both limits matter in a soft way.

There are also other types of buffers such as load/store buffers, branch order buffers, and other things which might fill up before the two I mentioned and limit OoO execution. There might be various other limits to out-of-order execution as well: a scheduler may not be "unified" so not all scheduler slots may be available to all types of instructions, making the apparent scheduler size smaller, etc.</comment></comment>


Physical location of live stream found using flights patterns and astronomy - <AUTHOR> https://heatst.com/tech/he-will-not-divide-us-livestream-placed-in-middle-of-nowhere-but-4chan-still-found-way-to-troll-it/ <comment><USER2> Setting aside the pretty debatable morality of this whole thing (lots of other good comments here to debate that), I think the real story, the interesting one, is that this is even possible.

The tools used all exist and are basically free and easily accessible (gmaps+streetview, flight data maps, the live stream itself, etc). The people behind this are just random strangers on the internet who agreed on a cause (as strange as the cause may be). This used to be something only the CIA could do and they took longer to do it. 15 years ago, 'The Bourne Identity' was nearly science fiction!

What's this look like in 10 more years, when facial/vocal recog software is just as easy, when drones are somehow even cheaper and smarter, when 5 new technologies we hadn't considered exist, when there's even more people reaching out to each other to find common causes?

I'm excited/terrified to see what that looks like.

<comment><USER3> The best free tool here by far is the weaponized autism, as they call it.

Hundreds or thousands of bored, reasonably intelligent people united toward a common cause. And they're the sort of people who wind up on /pol/, so generally they're of a sort that develops an obsessive interest in some (or many) esoteric topic(s).

To your speculation here: > What's this look like in 10 more years, when facial/vocal recog software is just as easy, when drones are somehow even cheaper and smarter, when 5 new technologies we hadn't considered exist, when there's even more people reaching out to each other to find common causes?

I would state that the singularity has already reached us. The next steps will simply be better organization and better interconnects between computing nodes. (people)

<comment><USER3> Should also state that the relatively democratic, even anarchic nature of 4chan posting is the single best mirror of my own thought processes I've encountered in my time on the internet. (Maybe a little less porn gets posted in my brain, but you get the picture.) While it has its flaws, I think it's really a great way to mimic some sort of collective consciousness.

</comment></comment></comment><comment><USER4> I remember reading of another example like this on reddit where they referred to this kind of thing as "weaponized autism". In that example they had looked at training videos of a terrorist training camp and managed to get the physical coordinates which were passed to the military for an airstrike.

<comment><USER5> You're probably thinking of /sg/ (the Syria general broad) on 4chan last year: [http://i.imgur.com/5P1N1GI.jpg](http://i.imgur.com/5P1N1GI.jpg)

Turnaround time (from initial post to bombs dropping) was about 36 hours. Most of the delay was in relaying the info to the Russian Ministry of Defense.

<comment><USER6> Does this operation have a wikipedia page?

</comment></comment></comment><comment><USER7> Say what you will but this shows how much dedication random people on the internet can bring up if they want to do something... even if it's as destructive as this... Amazing and terrifying.

<comment><USER8> If only it could be harnessed for the power of good. 4chan as a service.

<comment><USER9> Do "for the power of good" and "as a service", uh, align? It would be the favourite tool of terrible people.

</comment></comment></comment><comment><USER10> I'm not sure we should be celebrating what's basically an intimidation campaign to shutdown free speech. What they did was trespassing and theft in the service of shutting down political speech they disagreed with. It's pretty disgusting.

<comment><USER11> That's a bit much. People who go and yell shit in front of a camera, yeah, that's nothing to celebrate. However, random individuals coming together, learning new things, and working towards a common goal that harms pretty much nobody at all except the ego of an actor is something that should be celebrated. Plus, the techniques used are kind of neat. Think to yourself, if this was a nazi flag, would you feel the same way?

Furthermore, it's a bit ironic that you bring up an attempt to shut down free speech, when that's exactly what shia did when people started supporting trump on his opposition feed. Freedom of speech is freedom of speech from the government, not individuals, so he's perfectly in his right to do that, but still. And yes, stealing the flag is theft. I can't support or argue for that, but again, would you feel the same if it was a nazi flag?

I don't support trump, but calling this endeavor disgusting is disheartening.

<comment><USER12> This is the most mind-bendingly deluded post I've seen on HN in a while.

> individuals coming together, learning new things, and working towards a > common goal

the common goal here is being an asshole

> if this was a nazi flag, would you feel the same way?

Shia's flag said "he will not divide us" it was a message of unity that someone took down to replace with the representation of an administration with actual white nationalists as advisors.

> it's a bit ironic that you bring up an attempt to shut down free speech, > when that's exactly what shia did

Yelling into someone's livefeed is free speech in a public place, but continuing to follow them and ultimately trespassing onto private property is harassment. Free speech isn't yelling whatever you want whenever you want. It's freedom from the government oppressing your speech.

>would you feel the same if it was a nazi flag?

This again? Seriously. Here's a challenge for you in the future: try to make a sound argument without simply throwing the word "nazi" in.

<comment><USER13> >Shia's flag said "he will not divide us" it was a message of unity

Unity that excludes almost half of the US population. I'm glad that people reacted against the passive-aggresiveness of this message when the stream was hosted in a public space. I don't condone stealing on a private property but let's not fool ourselves here, the message of this art project is reinforcing the US vs THEM mentality that is currently tearing Americans apart rather than truly trying to unify people.

<comment><USER12> It literally says "will not divide" and you're here making a comment that specifically divides.

I guess the flag really is wrong.

<comment><USER14> but it also says "he". it is obviously against trump/republicans. Its a political statement He can make it, but others can disagree, that is the beauty of free speech.

I think trump is an imbecile, but denying his supporters free speech as you are doing, is exactly why he is popular.

</comment></comment></comment></comment></comment></comment><comment><USER15> Humans working in teams to solve a problem. imagine the amazing things children could do if our education system motivated them like 4chan motivated random people on the internet

<comment><USER16> This one was 8chan, not 4chan. While I'm nothing more than an occasional passive observer of the chan communities, it seems that most of the "talent", so to speak, has left 4chan amidst increasingly strict rules against various forms of tomfoolery.

<comment><USER13> As far as I understand most of the work was done on 8chan because the 4chan moderators banned discussions of the live stream from /pol/, but most users of the /hwndu/ board on 8chan originally came from 4chan's /pol/.

>it seems that most of the "talent", so to speak, has left 4chan amidst increasingly strict rules against various forms of tomfoolery.

I don't have any number to prove this but to me it seems that the overlap between 8 and 4chan is huge. There's very few 8chan users that absolutely never visit 4chan anymore. 8chan is tiny in comparison to 4chan so the signal- to-noise ratio may seem better there. (according to their front page they get roughly 2k posts/hour, if it was a 4chan board it would be medium-sized and 3 times slower than big boards like /b/, /v/ or /pol/)

</comment></comment></comment><comment><USER9> > trolling Labeouf so hard that he lashed out and got arrested

Uh, a better word might be _harassing_?

</comment><comment><USER17> So for anyone else intending to do an anonymous live stream, doing the shoot indoors (insulated from outside noises such as a 4channer driving around in a truck honking their horn) would probably allow for an uninterrupted stream.

<comment><USER18> I don't think it would. I think what this actually shows is the opposite may be true even when it seems absurd to think that way. Crazy things might be used to locate you:

\- Picture surfaces of person planning to do the live stream hopping off a plane. People track where they came from back to Malaysia.

\- Person sees the dimensions of the rooms via the live stream. Runs over Google maps and finds all buildings with those dimensions.

\- Half the area gets ruled out, because of the limitations of running a live stream means there is no connectivity in some of the areas.

\- Rent a car service records hacked for only car dealer in that area. GPS logs of cars acquired. One of the cars went to one of the possible locations.

Burglar heads out breaks in and captures the flag.

It's completely absurd. Utterly absurd. Not much more absurd than what happened here though.

<comment><USER19> All of those things are way more effort than what they did here. It's like computer security, where you can never have a system that is 100% guaranteed to be perfectly secure. But you can do some simple things to vastly increase the work required by an attacker.

<comment><USER18> Yeah. I get that.

I just don't think the take-away of this was as long as you sound-proof a room, you are probably golden. It would be reasonable to have thought that an undisclosed location with no visible landmarks was fine. It wasn't.

As far as the using the geometry visible and google maps: this was done before in a video of a terrorist training camp. It resulted in Russia bombing the area, after they were alerted.

</comment></comment></comment></comment><comment><USER20> I don't know if this is really all that impressive... Shia posted a photo from a diner in Tennessee, and then some dude drove around honking until the noise appeared on stream.

<comment><USER21> That was used as confirmation, they found the general area before.

</comment></comment><comment> matt-attack Could someone please explain how you can triangulate a location by the presence of three contrails in the image. I simply don't understand how that's possible.

<comment><USER22> They didn't. They ended up finding it because of Shia's tweet and having some local 4 channers drive around and honk.

<comment><USER16> Nope, they did use contrails. I happened to see the /hwndu/ board while it was happening. They only sent people out in cars after triangulating the flag using the sun (for camera direction) and flight data (for location).

</comment></comment></comment><comment><USER23> This is why we can't have nice things

<comment><USER24> What was the nice thing here though?

<comment><USER23> The internet, freedom of speech. I know, we do actually have those things, its a facetious comment, but with a kernel of truth. Our freedoms rests more on personal respect and responsibility than the government and military. Once we pass a certain percentage of people who celebrate antisocial behavior, things just break down. Cities only exist because less than 1% of people think its ok to randomly throw bricks through windows or punch strangers. If that number creeps up to some other larger, but still very small percentage of people, cities just wouldn't be livable anymore. These guys just decided to troll this project, and went to extraordinary lengths to break the law and ruin someone else's dream. If more people did this type of thing, no one would feel safe expressing themselves or sharing information of any kind.

<comment><USER24> I think there is more to this story than just random vandalism, or say a personal feud.

What is different here is this was a political issue. I don't think they would go and throw bricks at storefronts, or rob people on the street and so on. This was done as a political taunt. But I may be wrong, I don't go to 4 chan, this is the impression I got from reading about it.

> These guys just decided to troll this project, and went to extraordinary > lengths to break the law and ruin someone else's dream

It seems they didn't go to extraordinary lengths just to break the law. They would have done this even if it was on public property and there was no reason to break the law. The goal was to prove a point.

There is another disturbing and interesting process happening and that is of disarming of slogans and political speech by appropriation. This random group of participants basically showed that indeed "He Will Not Divide Us" by coming together and solving a technical problem to prove a political point. So in a way they appropriated the slogan and applied to themselves. That makes the slogan less effective. The exact same thing happened with "Fake News" it was used for a while but it was appropriated by Trump's supporters and it ended up backfiring. Now major mass media channels are openly taunted and are defending themselves against the charge of being "Fake News" and so on.

<comment><USER25> > I don't think they would go and throw bricks at storefronts, or rob people > on the street and so on.

Sure. Trump supporters just deny people healthcare and burn mosques. Apart from that, they are exemplary citizens.

> basically showed that indeed "He Will Not Divide Us" by coming together and > solving a technical problem to prove a political point.

By taking down a flag with "He Will Not Divide Us" and replacing it with a MAGA hat and a Pepe. That really helps...

<comment><USER24> > just deny people healthcare

didn't ACA prices go up 100% in some places with a majority of insurance companies withdrawing from the markets in some states? How did Trump supporters do that?

> and burn mosques

Incident of mosque arson is up? Interesting, do have links to any statistics on that? Seems rather implausible

Did you mean case [http://www.chron.com/news/houston-texas/article/Houston- man-...](http://www.chron.com/news/houston-texas/article/Houston-man-pleads- guilty-in-mosque-fire-10785703.php) where Gary Nathaniel Moore burned his own mosque?

Or another one from Bellevue Washington were a person related to the mosque burned it down: [http://www.cnn.com/2017/01/15/us/washington-mosque- arson/](http://www.cnn.com/2017/01/15/us/washington-mosque-arson/) ?

It seems there is a rise if congregants burning their own mosques down lately, wonder what prompted that...

Apparently also Trump supporters are going around slashing Muslim women's faces with knives. Oh wait, no there is a rise in Muslim women slashing their own faces and then filing fake police reports [http://www.nbcnewyork.com/news/local/EMS-Possible- Slashing-L...](http://www.nbcnewyork.com/news/local/EMS-Possible-Slashing- Lower-Manhattan-Wall-Street-374191921.html)

<comment><USER25> About ACA premium increases, you may want to check [https://www.nytimes.com/interactive/2017/03/09/us/politics/w...](https://www.nytimes.com/interactive/2017/03/09/us/politics/who- is-really-affected-by-rising-obamacare-premiums.html?_r=0)

"previously been arrested for making a disturbance at the mosque" is not exactly "related".

Apart from that, you have two cases.

<comment> yjftsjthsd-h > Apart from that, you have two cases.

And you have zero cases and some handwaving.

<comment><USER25> Let's see... The guy who made disturbances around the mosque he then burned exists and pretty much burned a mosque.

There are a couple cemeteries that were vandalized.

And the Republicans are about to deny healthcare to 24 million people.

I think you are waving hands trying to dismiss reality.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER26> It's extremely worrisome that this part of human psychology exists. In this particular case, the white supremacists exerted maximum effort, and showed tremendous cleverness, simply to advance their agenda. This same energy could be exerted for thousands of good causes: crowdsourcing research efforts to track climate change, or track bird migrations, or to track populations of endangered species, or this energy could be channeled into astronomy, or any other research effort where amateurs play an important role in helping advance knowledge. Or this energy could be channeled into local volunteer efforts, such as teaching low income children skills they might not learn in the schools. Or reading to the blind at retirement centers. But instead this all of this cleverness and effort was exerted on behalf of a white supremacist agenda. I find it incredibly sad that people are moved to exert so much effort for what is on the surface a trivial and useless act, and worse, which one that is ultimately in the service of a dark and evil impulse.</comment>


Ask HN: Advice – WhoIsHiring – According to my profile, would you hire me? - <AUTHOR> I've been sending cv's for multiple job offers, mostly remote offers because in my country (Colombia) the payment is very low in general. Until now I've not been successful on it. I will put my simple website in here with some data about me, but first i will summarize some things.
Actual Work : I work at a bank in an area of databases management with multiple tools. This is a recent - well payed job in my country but is still very low for so many things that i want to do.
Previous Experience: I worked in a software development company in the team of infrastructure and later they allow me to start in web development. I strengthened my knowledge in things like:
- Linux - Windows administration - Databases like RethinkDb, Aerospike, OrientDb, Elasticsearch, DB2 - Python ( My favorite), Javascript ( I have more experience in Js than in Python) - JSON - IBM Domino Administration - IBM Websphere Portal Administration - Git (I learned by Myself)
My personal tastes: At the moment i am learning and improving my knowledge with FreeCodeCamp, learning AngularJs, NodeJs and other stuff. Some of the things that i most like are:
-Python -Javascript -Databases -Learn learn learn and if i can, teach. -Help with exciting things, projects that really make me want to work.
Personal projects that i want to do or that i am doing: - App (including mobile with Kivy, just for experience) - A crime  map for my city. - A website to download videos, music, playlists from youtube with youtube-dl - A vacuum with Arduino
My Website:
Theviajerock.tk
I just want some advice... Or if you have some job, well.... Here i am!. (I am improving my English, sorry for the mistakes, i try to write perfectly but i know that i have mistakes on it)
My email is victorliferock    (With Gmail) <comment><USER2> Here are my 2c from looking at your website:

\- It feels like you followed a series of tutorials and put these together. Anyone can do this and it doesn't make you stand out.

\- The website doesn't feel very polished. You still have placeholder text for project 5 and 6.

\- The instructions on the header telling me to click on the project images feels amateurish.

\- I think your portfolio needs some work to make it stand out. I'm no resume expert but I have employed others and your resume makes me really have to stop and think if you'll be useful to my team. When I have pile of resumes on my desk and a series of other projects with deadlines I would pass on that resume and look at stronger ones. Yes I know it sucks but that is the reality. Focus more on selling your experience and previous work. What have you achieved that stands out? Don't just tell me the tools you used. Anyone reading a tutorial can use the tools.

\- You mention English isn't your first language. Have an native English speaker review your writing with you if you can. While I couldn't pick out any glaring errors, everything felt a little off when reading it. Even if you didn't say English wasn't your first language here on HN I think I might have picked up on it and it would make me wonder how you could communicate clearly if you joined my team.

Hope these help. Best of luck!

<comment><AUTHOR> That is great, i will think more deeply about the things that can stand me out, and i will build more interesting things... I definitely have to improve my website.

I followed a couple of tutorials, you are right... It is a bit difficult for me to be "creative" and build something original and striking... I have to improve this.

Thank you very much for your advice!

</comment></comment><comment> at-fates-hands In order for someone to see your site and think they want to hire you, you have to change the wording of your actual work experience.

Instead of saying, "I worked on a team who did A and B", you should highlight what you did, "I was the architect for the database and monitoring the network" or "I built a relational database using python which allowed our customer to store their data on our servers."

Your CV should be focused on what YOU did and what some of your tasks were and what technologies and tools you used. IF I'm going to hire you, I need a lot more detail about your capabilities. Did you work in an agile or waterfall environment? Did you work mostly independently with little supervision, or did you work and collaborate with other teams (designers, project managers, business leaders) and did you have to work out issue and be able to communicate effectively? Are you capable of working on tight timelines and meet your deadlines effectively?

You probably have the skills, you just have to communicate your capabilities and achievements a little better is all.

You should also get rid of the Inconsolata font, it makes your site look amateurish as others have pointed out. Here's a good article on other fonts you can pair that will look much more professional. Just switching your fonts out will help polish your site.

[http://www.labnol.org/internet/best-google-font- combinations...](http://www.labnol.org/internet/best-google-font- combinations/28987/)

<comment><AUTHOR> What a good advice man, I have to change the message I am trying to convey. I will put on practice all of this... I think that, like you said, I have the skills to do the work.

I changed the font and i am reading the article. Thanks a lot !

</comment></comment><comment><AUTHOR> I should clarify... My principal goal is not the money, but right now i need it for help my family to solve some things. The only thing that give me peace in this moment is to help my mom to be quiet, without stress and enjoying the life that she deserves, and i think that i can meet that by searching a job outside.

<comment><USER3> I hope others can help too, but I noticed that your sentences sound a little bit off. They seem directly translated from Spanish.

Here are some examples:

My principal goal (Mi principal objetivo)[My main goal]

not the money (no es el dinero)[not money]

need it for help my family to solve some things (lo necesito para ayudar mi familia a solucionar algunas cosas) [need it to help my family solve some things]

to help my mom be quiet(ayudar a mi mama a estar tranquila) [helping my mom have no worries]

and so on and so forth. As another comment suggests, you should have a native English speaker look over your CV, and overall grammar.

<comment><AUTHOR> I have to improve this, learn languages is something that i like to do too and i have to do it well. I try to practice every day reading things like news.ycombinator, Quora, Reddit etc. I appreciate your comment, very helpful.

</comment></comment></comment><comment><USER4> [https://twitter.com/Veeecktor](https://twitter.com/Veeecktor) you twitter links are broken

your site needs more personalisation, indeed it looks like the result of a tutorial.

you obviously know a lot of cool stuff :)

cheers

<comment><AUTHOR> I fixed it!, i will improve the site soon... Sometimes i want to do so many things, that i don't know where to begin jeje.

Thank you for the help Man.

</comment></comment><comment><USER5> This stuff doesn't make me want to hire you. I can find tons of people who have used Python and JavaScript.

Past performance is a good indicator of future performance. What have you accomplished?

<comment><AUTHOR> That's a good point, i will work on this. Thanks a lot.

</comment></comment><comment><USER6> How well do you know Linux system administration / scripting?

<comment><AUTHOR> Well, I have learned about:

\- Network configuration

\- backups(rsync)

\- Server monitoring, crontab for schedule tasks

\- Troubleshooting (I used to hate so much trouble that I found, but I learn to love this and I like to solve problems)

\- ssh

\- Web (Apache, nginx),Dns,DHCP server's installation and configuration.

\- Basic use of iptables

\- Installation and configuration of software.

\- User management.

\- Containers like chroot or systemd-nspawn.

\- Possibly other things, but I don't remember right now.

I was in a project at my previous work where I could put on practice all of this knowledge, we began installing Debian from zero (Without gui), partitioning the system with lvm, using chroot to build containers, installing other software inside that containers (Like RethinkDb, GlusterFs) and configuring Clusters. After that all the process was ready and tested, we automate it with bash scripts.

In my personal computer i use Debian and i do all the configurations and labs in the terminal, the true is that i like so much to work in this environment. I am improving my knowledge in Linux, so right now i am doing this [http://www.linuxfromscratch.org/](http://www.linuxfromscratch.org/).

That is, i am not a senior Linux Administrator, but I've done well in my previous work. If you would like to know more or have another question, just tell me!</comment></comment>


Ask HN: How much traffic your site has? - <AUTHOR>

Im just curious. For instance I have about 15k daily visitors (all done with white-hat SEO), it's not much but it generates enough to take me out for a nice dinner every once in a while.<p>How about you? <comment><USER2> I'm curious what use is this information to you? I'm sure there are people on hacker news with sites that get from 10 visits a month to over 100k a day.

(I have many different sites, in those some get one a day, some up to 30k per day)

</comment><comment><USER3> Total loser: A few hundred per month across several sites. Trying to figure out how to improve that.</comment>


The Most Influential Microprocessors of All Time - <AUTHOR> http://www.pcworld.com/article/171171/influential_processors.html <comment><USER3> To show the MOS 6502 without the Commodore 64 is a HUGE oversight. The C64 was the most prolific computer of the 80's. Thank you Chuck Peddle for the 6502. Thank you Bob Russell and Bob Yannes for the C64. Jack Tramiel, thank you for providing computers for the masses not the classes.

<comment><USER4> Yes, it's incredible how the Apple myth is really rewriting the early history of computers in people's minds.

By the way, the C64 was not just the most prolific computer of the 80s - <USER2> remains the most sold computer model in history.

<comment><USER5> I think that's pretty much out of date, as far as I can find only a total 17 million Commodore 64s were ever sold (even the most unrealistic estimates put it at 30 million), Apple sells about 15 million iPads per quarter, with models being sold for about a year.

source: [http://www.c64-wiki.com/index.php/Commodore#Sales_numbers_.2...](http://www.c64-wiki.com/index.php/Commodore#Sales_numbers_.28End_1993.29)

<comment><USER4> Your data is most likely correct, but would you really classify the ipad as a "personal computer"?

<comment><USER6> Considering that an iPad can do everything that (as I recall) a C64 could do, yes. The exception of writing and executing user-entered code could be called out, but I don't view that as a requirement of a "personal computer" but rather a "general-purpose computer". Oh, sure, we geeks think they're the same thing. But most users of C64s that I knew didn't, at least judging from how they used their machines (i. e., not writing code).

<comment><USER4> So, would you also classify the iphone as a PC?

<comment><USER7> Of course. Why wouldn't you?

<comment><USER4> Because this way the term "PC" become meaningless... [http://en.wikipedia.org/wiki/Sorites_paradox](http://en.wikipedia.org/wiki/Sorites_paradox)

<comment><USER7> It is a computer that is personal. If you mean desktop, or workstation, or x86-based desktop, then use those terms.

<comment><USER4> So, if I come to you ask you I can use your PC, you will lend me your iphone?

<comment><USER6> Maybe not my phone, but I'd hand you my iPad. Oh, you wanted to pull some code of off github, compile it and FTP the binary to a remote server? My iPad has ssh, login into the remote server of your choice and knock yourself out. But you more likely just wanted to Google something, in which case the iPad is probably a better choice than the C64 anyway. "Wah, I want a real keyboard!" Here, use my BT keyboard. "Boo hoo, real screen, please." Connect to the Apple TV and use the 50" 1080p TV, I'm sure you'll find it more to your liking than the C64's video display options.

The C64 gets its sales record trounced by the iPad every year that iPads are for sale. Your original statement is no longer true, no matter how hard to try to narrowly define "personal computer". Best to just update your world view and move on.

<comment><USER4> LOL I think my worldview is fine thanks. Next time I'll need someone to explain to me how technology advanced from 1982 to 2010 I'll call though :)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> One thing I noticed was that the article incorrectly claims that the RCA COSMAC CDP 1802 was used in Voyager and Viking missions, but it wasn't used until Galileo

<comment><AUTHOR> interesting, it appears you are right. When looking for more info as to what was actually used I found this link : [http://www.decodesystems.com/cosmac/](http://www.decodesystems.com/cosmac/), and [http://www.cpushack.com/space-craft- cpu.html](http://www.cpushack.com/space-craft-cpu.html), that both give a little more detail as to what was used on the Voyager and Viking missions.

EDIT: (another link: [http://history.nasa.gov/computers/Ch6-2.html](http://history.nasa.gov/computers/Ch6-2.html))

</comment></comment><comment><USER8> Had a lot of (slightly masochistic) fun programming the Z80 back in the day on my MSX2 machine.

I didn't have an assembler, so I wrote my code by taking the opcodes from a table, calculating offsets etc., then turning them into DATA-lines in an MSX- Basic program, which POKEd the code into RAM, then CALL into the starting address.

<comment><USER9> Same here! And i'm not sure was is masochistic about it; I still write software for the MSX2 like that now ;) I only knew about Hisoft assembler and that was too expensive so I never learned anything different than opcodes.

<comment><USER10> nostalgia :) The simple logical simplicity of this

[http://pastraiser.com/cpu/i8080/i8080_opcodes.html](http://pastraiser.com/cpu/i8080/i8080_opcodes.html)

allowed, after some short time without even looking at the table, to type the binary code directly in (our preferred way of the Forth words implementation back then, on Russian 8080 clone of course :).

<comment><USER9> When I got my MSX from the attic after almost 30 years I still remembered almost all the opcodes. Took me few days to relearn the rest; I was 8 when I memorised them...

</comment></comment></comment></comment><comment><USER7> The 8080 and the 8088 but no 386? No P6?

This list isn't very well balanced. The 386 revolutionized computing. It introduced an architecture that is still alive today and held market dominance for over 20 years (which is more than half the duration of the micro-computer age itself). And the P6 (Pentium Pro) architecture erased the old CISC/RISC boundary, enabling x86 code to run seamlessly on effectively state-of-the art RISC cores, extending the lifetime of the architecture tremendously.

</comment><comment><USER11> The gameboy uses an LR35902 by Sharp, which is not _exactly_ a Z80. It's kind of in the middle of the 8080 and Z80 chips IIR, so you could consider it a variant of either.

It was also the audio co-processor in the Genesis/Megadrive and the Neo-Geo alongside the M68k CPUs.

A friend's father, who works in embedded environmental control systems once showed me a control board for a heating and a/c system that was powered by a Z80. It had inputs for a dozen or so temperature sensors that were to be placed throughout a building and the CPU only needed to be fast enough to poll them every few seconds. The number of sensors was limited to the addressability of an 8-bit CPU, so under 256.

They should also mention the Japanese MSX standard which was Z80 centered for the first few generations and is the source of a great many very recognizable video game series (most of which were ported to the 6502 used by the NES). The last generation used a crazy variant called the R800, which I suppose would be like the 80286 was to the 8080.

</comment><comment><USER12> Does anybody know if a particular chip was used in the cheap keyboard synthesizers that came out in the 80's?

What could be more influential than influencing how a decade of music sounded?

[http://www.youtube.com/watch?v=iIpfWORQWhU](http://www.youtube.com/watch?v=iIpfWORQWhU)

<comment><USER13> That Roland is actually an analog synthesizer [http://www.vintagesynth.com/roland/sh09.php](http://www.vintagesynth.com/roland/sh09.php) That is really more 70s tech.

Much of the 80s stereotypical synthesizer sound is due to the use of FM synthesis which can be thin sounding. There are a lot of classics from that era like the Yamaha DX7.

</comment></comment><comment><USER14> Like the Z80, the M68k can still be found today inside of some TI graphing calculators (the 89 series, 92, and V200. The 80, 81, 82, 83 and 84 series, and the 85/86 have Z80's).

</comment><comment><USER15> What, no love for SPARC or MIPS?

Further, no love for Transmeta?

Poor show.

<comment><USER16> I dont think Transmeta ended up being that influential. Sparc/Mips as the birth of RISC should be there.

<comment><USER15> I was under the impression that they were munched by Intel and basically became the foundation for the microcode that those chips use now. Am I wrong?

<comment><USER17> > I was under the impression that they were munched by Intel

Nope, you must be thinking about something else. Transmeta started moving into IP in 2005, sued intel for patent infringement in 2006 (settled for a cool 250mil, Intel got a perpetual, non-exclusive license out of it), licensed tech to Nvidia in 2008 and died in 2009 (was acquired by Novafora in January, Novafora collapsed in July but not before Intellectual Vultures made off with the patent stash in Feb)

Now part of Intel's activity at the time (the PIII and Pentium M side which ended up with Core) may well have been inspired by Transmeta (as many allege), but at the same time Transmeta's activity best matches Intel's pursuit of the NetBurst (P4) shit-cake, which ran opposite to pretty much anything Transmeta looked for (unless Transmeta had patents on lofty promises they couldn't come close to deliver on, then year the P4 fits).

<comment><USER18> There's speculation that NVidia's Project Denver is an Efficeon reworked to target ARM code rather than x86. So there might be a live Transmeta descendant out in the real world again in a few months.

[http://anandtech.com/show/7622/nvidia- tegra-k1/2](http://anandtech.com/show/7622/nvidia-tegra-k1/2)

[http://en.wikipedia.org/wiki/Project_Denver](http://en.wikipedia.org/wiki/Project_Denver)

</comment></comment></comment></comment></comment><comment><AUTHOR> came across this and thought other HNers might find it interesting, my favorite on this list has to be the "RCA COSMAC CDP 1802" for the 2001 quality alone not to mention radiation-hardening :)

</comment><comment><USER19> I'd say the Commodore PET was the 6502's breakthrough machine

</comment><comment><USER20> I'd give honorable mention to one of, or the whole class of, ultra low cost and low power microcontrollers that are everywhere.

</comment><comment><USER21> I don't read articles that require me to click through a slideshow.</comment>


Apple's First CEO - pay attention to product, but also people - <AUTHOR> http://www.businessinsider.com/apples-first-ceo-michael-scott-2011-5?op=1 <comment><AUTHOR> Quote -

Attention to detail is what Steve is known for, but it also is his weakness because he pays attention to the detail of the product, but not to the people.

To me, the biggest thing in growing a company is you need to grow the people, so it's like being a farmer, you need to grow your staff and everybody else too as much as you can to enable the company to grow, just as much as you need to sell the product.</comment>


Show HN: Web Scraping Language (WSL) - <AUTHOR> https://scrape.it <comment><USER2> This is something that I wanted—a rich language for scraping that can help me avoid writing a lot of boilerplate. However, I am not too sure about the P2P/decentralized nature. For my projects, that would be a little too complicated. Would I be able to use just the WSL part?

<comment><AUTHOR> yeah I've actually had a sudden change of heart - implementing a p2p/decentralized theme is quite a bit more work than I anticipated, mainly syncing problems. originally planned on releasing 3 weeks ago....this p2p is taking up almost all of my time and I'm not sure if ppl even give a shit about it....so much for my ideological mania

I'm going to put that p2p stuff on hold and focus on getting a REPL terminal app that you can start running WSL on this week.

<comment><USER3> decentralized is very important, don't give up on it! Its fine if people don't care about it. People don't care about relational algebra but SQL is used everywhere in their life and they have no idea or care.

The idea of distributed cris-crossed data sets all over the internet, I think, is a powerful one in a day where data is wielded as power and is so asymmetrical in nature.

<comment><AUTHOR> yeah my original idea was a sort of a Google Freebase _P2P Strikes Back Like KaZaA_

Imagine a structured gigantic tree data where relational, tabular data of any data is available?

You can see why I was seduced by this idea of an all out liberalization of information by making the storage and computation decentralized and p2p reliant-selective one at that which allows you to create your own private "pool" of workers each with a _rotation-des-adresses IP_ of your choosing.

Basically any data that is uploaded to a scrape:// URL which is seeded by other peers running the Scrape.it client (people you shared the URL with) will _stay up there_ theoretically as long as there's "seeders", sorta like Bittorrent.

You could share a scrape:// URL and maybe somebody will knock down your doors (CIA_OPEN_UP) but if it's shared globally and theoretically if one uses other means of traditional anonymically inclined tools of your choosing online that rhymes with possibly XOR, then _anything is possible_ ¯\\_(ツ)_/¯

Large scale amounts of data can be crawled because speeding up the volume and speed is literally authorizing another peer to have write access to your local Data Sanctuary (by default only read access is granted), virtually even the most stubborn 2009 non-vanilla AJAXY-ANGULARLY-JQUERY-SPHAGEHTEI web apps where the backward navigation is broken, Scrape.it have powered right through, essentially dramatically lowering the cost barrier to that data available online.

Ex) it can try every order of form automation permutation combinations, for every option in select drop down, for instance: search this list of product id and crawl everything on this J2EE enterprisesque web app from 10 years ago.

The most recent discussion on how the web needs an open index, [https://news.ycombinator.com/item?id=19713604](https://news.ycombinator.com/item?id=19713604), so that others may build on it will still the ideal standard.

Creating a completely free and decentralized bank for structured data that is impossible to completely take down once shared with other than your group, with full end to end encryption in-between, cryptographically verifiable list of order edits....

but alas, I'm really pressured to get this out the door so looks like I will just have to focus on the bare minimum in terms of client for now.

I originally aimed this to be a standalone self-hosted desktop/server tool...

 _anyways I digress, I need to get back to work. Lately honestly been a challenge mentally and emotionally(?) from some other life bullshit, its only when I get into the zone do I feel free_

</comment></comment></comment></comment><comment><USER4> Hi, I see that you used our project's [1] layout as a template for your project, but forgot to change the image and the link on it. Just pointing it out. Good luck on your project.

[1]: [https://github.com/javascript-obfuscator/javascript- obfuscat...](https://github.com/javascript-obfuscator/javascript-obfuscator- ui)

<comment><AUTHOR> oh yeah forgot about that....its a great template, everything all one one html...many thanks. I will swap out the drawing.

</comment></comment><comment><USER5> What does it use to scrape? Is it just an xml/html parser, or does it run a headless browser?

<comment><AUTHOR> It uses a sort of a DSL that I came up with, and removes a lot of boilerplate.

Headless yes.

You write WSL (Web Scraping Language) to scrape 2 pages of HN:

        GOTO news.ycombinator.com | EXTRACT {.morelink, 2} {news: .storylink}

_(you may certainly remove that ' , 2 ' business based on the moral system you subscribe to)_

</comment></comment><comment><USER6> Download links are broken

<comment><AUTHOR> I'm working on it as I speak.</comment></comment>


Ask HN: Is there a method for finding the optimal kerning? - <AUTHOR> So I've had this question for a while now and a recent article about Google's new logo re-piqued my curiosity.  Is there a commonly used method for determining with some amount of consistency an athletically pleasing kerning, or is the process completely subjective?  It seems like it should be possible to build a formula that takes into account the area of the characters positive and negative shapes, the arch length of the character's border, maybe the color and opacity, or some combination of those things.  Does something like this exist? <comment><USER2> I don't think that there's such a thing as the optimal kerning. Whilst there are a bunch of rules and guidelines you should follow [1], it's quite a subjective process.

Kern Type [2] is an interesting game to play which allows you to compare your kerning against that of a typographer. It's a fun way to burn a few minutes and learn a bit about kerning.

[1] [https://99designs.com/designer-blog/2014/01/20/11-kerning- ti...](https://99designs.com/designer-blog/2014/01/20/11-kerning-tips/)

[2] [http://type.method.ac/](http://type.method.ac/)

<comment><USER3> "Optimal" means "looks right (or at least not-wrong) to the most people". For that, there's heuristics at best.

</comment></comment><comment><USER4> _" It seems like it should be possible to build a formula ..."_

I seem to remember that Knuth's Metafont [1] has a DSL for specifying kerning. I don't know if it produces optimal results (whatever that means) but it might be a place to start.

[1] [https://en.wikipedia.org/wiki/Metafont](https://en.wikipedia.org/wiki/Metafont)

</comment><comment><USER5> There was some discussion of this topic on typographica back in 2004: [http://typographica.org/on-typography/automated-kerning- with...](http://typographica.org/on-typography/automated-kerning-with-ikern/)

</comment><comment><USER6> It seems like the sort of activity where machine learning might be a good approach to automation, i.e. where a computer could produce output _like_ that of a typographer.

<comment><AUTHOR> Yeah, that's what I was thinking. I wonder how big the data set would have to be. Finding a sufficient number of fonts with quality kerning might be a challenge.

<comment><USER6> Just off the top of my head, I think there are stages to the problem. The first is classifying the quality of kerning. For that the training set would be pages of good and bad typography. The second stage is constructing good pages from a single set of glyphs. Programs like Amazon's Kindle do this reasonably [I'm not sure they use kerning] in real time with very limited computational resources. For typography, several orders of magnitude more resources could be employed in batch mode to achieve better results. The final stage would be generalizing the ability to layout a single set of glyphs to any arbitrary set.

The good news is that there are many examples for the first task and good tooling to accomplish it. For the same reasons that generalizing layout is a later step, restricting the domain to a single format such as journal articles or "For Dummies..." style books is a good way to go if possible. In other words, start with the narrow case.

</comment></comment></comment><comment><USER7> There absolutely IS such a thing as optimal kerning. But, my take, as someone who has done it many, many times is that "optimal" means you do it, rather than you don't do it.

In fact, there's even a commonly used formula for it, though–to the best of my knowledge—not written in code. Good designers are taught this formula at one point or another. (And once you know the formula, you know who hasn't been taught.)

This is probably going to be a way longer answer than expected, but if anyone wants to take this and do an excellent job automating it into design software, I will be a huge fan.

A) First thing, just to make sure we're all on the same page:

Kerning = the space in-between two letters. ONLY two letters. Tracking/letter- spacing = the space between all of the letters in a body of text. And when altered, applied to an entire body of text.

B) Second thing: Defining "optimal"

Most typefaces/fonts are designed for average use. That is to say, its optimal state is as paragraph text. When you make text really big, like in a headline, sometimes weird spaces show up between letters. These spaces don't matter at small sizes but make the letters look cheap and amateurish when they're big. And, they look unprofessional when the word is important, like a logo. So, kerning manipulates the space between letters to make the word or words look more professional and considered.

(This is the crux of designers' analysis of Alphabet's logo—it's freaking Google. It's worth getting it right.)

C) Third thing: The Formula, or How To Kern

Here's the secret: it's hard to perfectly kern something when you're looking at the entire word. So, don't look at the entire word. Look at three letters at a time. Cover the others up with paper (a sticky note works well for screens). For those three letters, make sure that middle letter looks balanced and not like it's drifting to one side or another. You can manipulate that space by moving either the first, second, or third letter. You can make the whole set wider. You can make the whole set narrower. You're in charge. Just make it balanced.

Then, shift your three letter "window" to the right or left (I recommend right) by one character. Moving ONLY that new character, make it balanced with the two from the original set. Then repeat that process until you finish the whole word. And then go back and adjust the whole thing all over again if it still looks unbalanced.

There's a reason you typically only kern logos or reasonably short headlines. It takes forever.

D) Fourth thing: Kerning affects the "vibe" of the logo

Tight kerning where the letters touch or almost touch each other feels big, corporate, and sometimes a little dated. Think: FedEx, Newsweek, Infosys, or Oracle.

Really wide kerning where the letters are quite far from each other tends to feel futuristic and elite. And, these are almost always in all-caps. Think: Uber, Prada, and approximately one million hipster logos from 2013. And take my word on this one, you should just never bother with a spaced out word or logo that's upper and lower case. Just let that idea go, please. Not worth the aesthetic agony and designer backlash.

Last but not least: Reasonable kerning widths, where there is space between letters but not tons of space, feel like the "norm core" of kerning. Which (in my opinion) is a good thing. And this is what Alphabet's logo is going for. It's neutral, and feels humble, but smart. More down-to-earth than wide kerning, and more youthful than tight kerning.

Pro-tip: Reasonably normal kerning widths in all caps can look amateurish. Consider making the spaces bigger (more Uber-ish) or switching to upper and lowercase.

If you read through all of that, thank you for your time.

My tip to someone who would like to automate this process using a dataset—make you have data from different type sizes, because type size is the biggest determining factor in "optimal" kerning. Good luck!</comment>