aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanh Vuong <thanhvg@gmail.com>2019-08-17 09:41:46 -0600
committerThanh Vuong <thanhvg@gmail.com>2019-08-17 09:41:46 -0600
commit40eb75bbcf0c0ee7f0432b455fa0b3590059b522 (patch)
tree2d8ec013605dc630ea2b9b60811c19dd5d2e2c93
wip
-rw-r--r--.gitignore11
-rw-r--r--Cask10
-rw-r--r--TODOs.org8
-rw-r--r--hnreader.el78
-rw-r--r--test/frontpage.html1057
5 files changed, 1164 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..206569d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,11 @@
+# Compiled
+*.elc
+
+# Packaging
+.cask
+
+# Backup files
+*~
+
+# Undo-tree save-files
+*.~undo-tree
diff --git a/Cask b/Cask
new file mode 100644
index 0000000..a96ccfe
--- /dev/null
+++ b/Cask
@@ -0,0 +1,10 @@
+(source gnu)
+(source melpa)
+
+;; (package-file "TODO")
+
+(development
+ (depends-on "f")
+ (depends-on "ecukes")
+ (depends-on "ert-runner")
+ (depends-on "el-mock"))
diff --git a/TODOs.org b/TODOs.org
new file mode 100644
index 0000000..491f55e
--- /dev/null
+++ b/TODOs.org
@@ -0,0 +1,8 @@
+#+STARTUP: align fold hidestars oddeven indent
+#+SEQ_TODO: TODO(t) INPROGRESS(i) | DONE(d) CANCELED(c)
+* why not using hn api
+hn api will invole a lot of rest requests which would not be fast for emacs
+also the data layout is already available at hn webiste, one curl call and
+then parse them to org would be faster
+* parse front page
+now what
diff --git a/hnreader.el b/hnreader.el
new file mode 100644
index 0000000..091fa21
--- /dev/null
+++ b/hnreader.el
@@ -0,0 +1,78 @@
+(require 'request)
+(require 'shr)
+(require 'dom)
+(require 'promise)
+(require 'cl-lib)
+
+
+(defvar hn--buffer "*HN*"
+ "Buffer for HN pages.")
+
+(defun hnreader--get-hn-buffer ()
+ "Get hn buffer."
+ (get-buffer-create hn--buffer))
+
+(defun hnreader--promise-dom (url)
+ "Promise (url . dom) from URL with curl."
+ (promise-new
+ (lambda (resolve reject)
+ (request url
+ :parser (lambda () (libxml-parse-html-region (point-min) (point-max)))
+ :error (cl-function (lambda (&rest args &key error-thrown &allow-other-keys)
+ (message "bad")
+ (funcall reject error-thrown)))
+ :success (cl-function (lambda (&key data &allow-other-keys)
+ (message "yay")
+ (setq thanh data)
+ ;; (message "%s" data)
+ (funcall resolve data)))))))
+
+(defun hnreader--prepare-buffer (buf &optional msg)
+ "Print MSG message and prepare window for BUF buffer."
+ (when (not (equal (window-buffer) buf))
+ ;; (switch-to-buffer-other-window howdoi-buffer))
+ (display-buffer buf '(display-buffer-use-some-window (inhibit-same-window . t))))
+ (with-current-buffer buf
+ (read-only-mode -1)
+ (erase-buffer)
+ (insert (if msg
+ msg
+ "Loading...")))
+ buf)
+
+(defun hnreader--print-frontpage-item (thing subtext)
+ "Print THING dom and SUBTEXT dom."
+ (insert (format "\n* %s %s (%s) [%s]\n"
+ ;; rank
+ (dom-text (dom-by-class thing "^rank$"))
+ ;; title
+ (dom-text (dom-by-class thing "^storylink$"))
+ ;; points
+ (dom-text (dom-by-class subtext "^score$"))
+ ;; comments
+ (dom-text (last (dom-children subtext)))))
+ ;; link
+ (insert (dom-attr (dom-by-class thing "^storylink$") 'href) "\n" )
+ ;; comment link
+ (insert "https://news.ycombinator.com/item?id=" (dom-attr thing 'id)))
+
+(defun hnreader--print-frontpage (dom buf)
+ "Print raw DOM on BUF."
+ (message "am i here")
+ (let ((things (dom-by-class dom "^athing$"))
+ (subtexts (dom-by-class dom "^subtext$")))
+ (with-current-buffer buf
+ (read-only-mode -1)
+ (erase-buffer)
+ (insert "#+STARTUP: overview indent\n#")
+ (cl-mapcar #'hnreader--print-frontpage-item things subtexts))))
+
+(defun hnreader-frontpage ()
+ "Testing."
+ (hnreader--prepare-buffer (hnreader--get-hn-buffer))
+ (promise-chain (hnreader--promise-dom "https://news.ycombinator.com/news")
+ (then (lambda (result)
+ (message "got the dom")
+ (hnreader--print-frontpage result (hnreader--get-hn-buffer))))
+ (promise-catch (lambda (reason)
+ (message "catch error in promise prontpage: %s" reason)))))
diff --git a/test/frontpage.html b/test/frontpage.html
new file mode 100644
index 0000000..e7e469f
--- /dev/null
+++ b/test/frontpage.html
@@ -0,0 +1,1057 @@
+<html op="news">
+
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <meta name="referrer" content="origin">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <link rel="stylesheet" type="text/css" href="frontpage_files/news.css">
+ <link rel="shortcut icon" href="https://news.ycombinator.com/favicon.ico">
+ <link rel="alternate" type="application/rss+xml" title="RSS"
+ href="https://news.ycombinator.com/rss">
+ <title>Hacker News</title>
+</head>
+
+<body>
+ <center>
+ <table id="hnmain" width="85%" cellspacing="0" cellpadding="0" border="0"
+ bgcolor="#f6f6ef">
+ <tbody>
+ <tr>
+ <td bgcolor="#ff6600">
+ <table style="padding:2px" width="100%" cellspacing="0"
+ cellpadding="0" border="0">
+ <tbody>
+ <tr>
+ <td style="width:18px;padding-right:4px"><a
+ href="https://news.ycombinator.com/"><img
+ src="frontpage_files/y18.gif"
+ style="border:1px white solid;" width="18"
+ height="18"></a></td>
+ <td style="line-height:12pt; height:10px;"><span
+ class="pagetop"><b class="hnname"><a
+ href="https://news.ycombinator.com/news">Hacker
+ News</a></b>
+ <a href="https://news.ycombinator.com/newest">new</a> | <a
+ href="https://news.ycombinator.com/front">past</a> | <a
+ href="https://news.ycombinator.com/newcomments">comments</a>
+ | <a href="https://news.ycombinator.com/ask">ask</a> | <a
+ href="https://news.ycombinator.com/show">show</a> | <a
+ href="https://news.ycombinator.com/jobs">jobs</a> | <a
+ href="https://news.ycombinator.com/submit">submit</a>
+ </span></td>
+ <td style="text-align:right;padding-right:4px;"><span
+ class="pagetop">
+ <a
+ href="https://news.ycombinator.com/login?goto=news">login</a>
+ </span></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ <tr id="pagespace" title="" style="height:10px"></tr>
+ <tr>
+ <td>
+ <table class="itemlist" cellspacing="0" cellpadding="0" border="0">
+ <tbody>
+ <tr class="athing" id="20721736">
+ <td class="title" valign="top" align="right"><span
+ class="rank">1.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721736"
+ href="https://news.ycombinator.com/vote?id=20721736&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title">
+ <a href="http://japanesecomplete.com/777" class="storylink">
+ The most frequent 777 characters give
+ 90% coverage of Kanji in the wild
+ </a>
+ <span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=japanesecomplete.com"><span
+ class="sitestr">japanesecomplete.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721736">97 points</span> by
+ <a href="https://news.ycombinator.com/user?id=sova"
+ class="hnuser">sova
+ </a>
+ <span class="age">
+ <a href="https://news.ycombinator.com/item?id=20721736">2
+ hours ago
+ </a>
+ </span>
+ <span id="unv_20721736">
+ </span> |
+ <a href="https://news.ycombinator.com/hide?id=20721736&amp;goto=news">hide
+ </a>
+ |
+ <a href="https://news.ycombinator.com/item?id=20721736">
+ 47&nbsp;comments
+ </a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20721448">
+ <td class="title" valign="top" align="right"><span
+ class="rank">2.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721448"
+ href="https://news.ycombinator.com/vote?id=20721448&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.nytimes.com/2019/08/15/climate/hottest-july-noaa.html"
+ class="storylink">NOAA Data Confirms July Was Hottest
+ Month Ever Recorded</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=nytimes.com"><span
+ class="sitestr">nytimes.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721448">113 points</span> by
+ <a href="https://news.ycombinator.com/user?id=digital55"
+ class="hnuser">digital55</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20721448">3
+ hours ago</a></span> <span id="unv_20721448"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20721448&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20721448">37&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20721715">
+ <td class="title" valign="top" align="right"><span
+ class="rank">3.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721715"
+ href="https://news.ycombinator.com/vote?id=20721715&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.filfre.net/2019/08/alone-in-the-dark/"
+ class="storylink">Alone in the Dark</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=filfre.net"><span
+ class="sitestr">filfre.net</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721715">33 points</span> by
+ <a href="https://news.ycombinator.com/user?id=myth_drannon"
+ class="hnuser">myth_drannon</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20721715">2
+ hours ago</a></span> <span id="unv_20721715"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20721715&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20721715">6&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20719095">
+ <td class="title" valign="top" align="right"><span
+ class="rank">4.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20719095"
+ href="https://news.ycombinator.com/vote?id=20719095&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://async.rs/blog/announcing-async-std/#"
+ class="storylink">Async-std: an async port of the Rust
+ standard library</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=async.rs"><span
+ class="sitestr">async.rs</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20719095">235 points</span> by
+ <a href="https://news.ycombinator.com/user?id=JoshTriplett"
+ class="hnuser">JoshTriplett</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20719095">9
+ hours ago</a></span> <span id="unv_20719095"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20719095&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20719095">169&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20719348">
+ <td class="title" valign="top" align="right"><span
+ class="rank">5.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20719348"
+ href="https://news.ycombinator.com/vote?id=20719348&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.cnbc.com/2019/08/15/japan-surpasses-china-as-largest-foreign-holder-of-us-treasurys.html"
+ class="storylink">Japan surpasses China as largest foreign
+ holder of US Treasurys</a><span class="sitebit comhead">
+ (<a
+ href="https://news.ycombinator.com/from?site=cnbc.com"><span
+ class="sitestr">cnbc.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20719348">141 points</span> by
+ <a href="https://news.ycombinator.com/user?id=hker"
+ class="hnuser">hker</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20719348">8
+ hours ago</a></span> <span id="unv_20719348"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20719348&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20719348">52&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20721312">
+ <td class="title" valign="top" align="right"><span
+ class="rank">6.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721312"
+ href="https://news.ycombinator.com/vote?id=20721312&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a href="http://sixteenmillimeter.com/"
+ class="storylink">Free and open-source tools for analog
+ filmmaking</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=sixteenmillimeter.com"><span
+ class="sitestr">sixteenmillimeter.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721312">45 points</span> by
+ <a href="https://news.ycombinator.com/user?id=nessunodoro"
+ class="hnuser">nessunodoro</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20721312">4
+ hours ago</a></span> <span id="unv_20721312"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20721312&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20721312">3&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20721433">
+ <td class="title" valign="top" align="right"><span
+ class="rank">7.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721433"
+ href="https://news.ycombinator.com/vote?id=20721433&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="http://alchemist.camp/articles/elixir-releases-deployment-render"
+ class="storylink">Effortless Elixir Releases and
+ Deployment</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=alchemist.camp"><span
+ class="sitestr">alchemist.camp</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721433">41 points</span> by
+ <a href="https://news.ycombinator.com/user?id=AlchemistCamp"
+ class="hnuser">AlchemistCamp</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20721433">3
+ hours ago</a></span> <span id="unv_20721433"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20721433&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20721433">6&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20720922">
+ <td class="title" valign="top" align="right"><span
+ class="rank">8.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20720922"
+ href="https://news.ycombinator.com/vote?id=20720922&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a href="https://github.com/google/nixery"
+ class="storylink">Nixery: Transparently build and serve
+ containers using Nix</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=github.com"><span
+ class="sitestr">github.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20720922">74 points</span> by
+ <a href="https://news.ycombinator.com/user?id=kimburgess"
+ class="hnuser">kimburgess</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20720922">5
+ hours ago</a></span> <span id="unv_20720922"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20720922&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20720922">12&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20721609">
+ <td class="title" valign="top" align="right"><span
+ class="rank">9.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721609"
+ href="https://news.ycombinator.com/vote?id=20721609&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.pulltech.net/article/1566007822-Google-plans-to-deprecate-FTP-URL-support-in-Chrome"
+ class="storylink">Google Plans to Deprecate FTP URL
+ Support in Chrome</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=pulltech.net"><span
+ class="sitestr">pulltech.net</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721609">78 points</span> by
+ <a href="https://news.ycombinator.com/user?id=github-cat"
+ class="hnuser">github-cat</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20721609">3
+ hours ago</a></span> <span id="unv_20721609"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20721609&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20721609">89&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20720095">
+ <td class="title" valign="top" align="right"><span
+ class="rank">10.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20720095"
+ href="https://news.ycombinator.com/vote?id=20720095&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.reddit.com/r/algotrading/comments/cr7jey/ive_reproduced_130_research_papers_about/"
+ class="storylink">I've reproduced 130 research papers
+ about “predicting the stock market”</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=reddit.com"><span
+ class="sitestr">reddit.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20720095">337 points</span> by
+ <a href="https://news.ycombinator.com/user?id=starpilot"
+ class="hnuser">starpilot</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20720095">7
+ hours ago</a></span> <span id="unv_20720095"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20720095&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20720095">112&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20720630">
+ <td class="title" valign="top" align="right"><span
+ class="rank">11.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20720630"
+ href="https://news.ycombinator.com/vote?id=20720630&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://fastmail.blog/2019/08/16/jmap-new-email-open-standard/"
+ class="storylink">Making email more modern with
+ JMAP</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=fastmail.blog"><span
+ class="sitestr">fastmail.blog</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20720630">61 points</span> by
+ <a href="https://news.ycombinator.com/user?id=mfsch"
+ class="hnuser">mfsch</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20720630">6
+ hours ago</a></span> <span id="unv_20720630"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20720630&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20720630">20&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20715476">
+ <td class="title" valign="top" align="right"><span
+ class="rank">12.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20715476"
+ href="https://news.ycombinator.com/vote?id=20715476&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a href="https://knobattack.com/"
+ class="storylink">Key Negotiation of Bluetooth
+ Attack</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=knobattack.com"><span
+ class="sitestr">knobattack.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20715476">275 points</span> by
+ <a href="https://news.ycombinator.com/user?id=Daviey"
+ class="hnuser">Daviey</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20715476">15
+ hours ago</a></span> <span id="unv_20715476"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20715476&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20715476">91&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20718982">
+ <td class="title" valign="top" align="right"><span
+ class="rank">13.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20718982"
+ href="https://news.ycombinator.com/vote?id=20718982&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://blog.floydhub.com/exploring-dna-with-deep-learning/"
+ class="storylink">Exploring DNA with Deep
+ Learning</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=floydhub.com"><span
+ class="sitestr">floydhub.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20718982">91 points</span> by
+ <a href="https://news.ycombinator.com/user?id=ReDeiPirati"
+ class="hnuser">ReDeiPirati</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20718982">9
+ hours ago</a></span> <span id="unv_20718982"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20718982&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20718982">11&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20717240">
+ <td class="title" valign="top" align="right"><span
+ class="rank">14.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20717240"
+ href="https://news.ycombinator.com/vote?id=20717240&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://news.ycombinator.com/item?id=20717240"
+ class="storylink">Launch HN: SannTek (YC S19) –
+ Breathalyzer for Cannabis</a></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20717240">184 points</span> by
+ <a href="https://news.ycombinator.com/user?id=Noah_SannTek"
+ class="hnuser">Noah_SannTek</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20717240">12
+ hours ago</a></span> <span id="unv_20717240"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20717240&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20717240">357&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20721286">
+ <td class="title" valign="top" align="right"><span
+ class="rank">15.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721286"
+ href="https://news.ycombinator.com/vote?id=20721286&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a href="https://github.com/vmware/octant"
+ class="storylink">VMware Octant web-based platform to
+ better understand Kubernetes clusters</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=github.com"><span
+ class="sitestr">github.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721286">18 points</span> by
+ <a href="https://news.ycombinator.com/user?id=nwrk"
+ class="hnuser">nwrk</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20721286">4
+ hours ago</a></span> <span id="unv_20721286"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20721286&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20721286">3&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20720513">
+ <td class="title" valign="top" align="right"><span
+ class="rank">16.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20720513"
+ href="https://news.ycombinator.com/vote?id=20720513&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.bloomberg.com/news/articles/2019-08-13/u-s-farmers-stung-by-tariffs-now-face-a-3-5-billion-corn-loss"
+ class="storylink">U.S. Farmers Stung by Tariffs Now Face a
+ $3.5B Corn Loss</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=bloomberg.com"><span
+ class="sitestr">bloomberg.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20720513">198 points</span> by
+ <a href="https://news.ycombinator.com/user?id=paulpauper"
+ class="hnuser">paulpauper</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20720513">6
+ hours ago</a></span> <span id="unv_20720513"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20720513&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20720513">106&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20720230">
+ <td class="title" valign="top" align="right"><span
+ class="rank">17.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20720230"
+ href="https://news.ycombinator.com/vote?id=20720230&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.commentarymagazine.com/articles/o-oberlin-my-oberlin/"
+ class="storylink">O Oberlin, My Oberlin</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=commentarymagazine.com"><span
+ class="sitestr">commentarymagazine.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20720230">44 points</span> by
+ <a href="https://news.ycombinator.com/user?id=jseliger"
+ class="hnuser">jseliger</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20720230">7
+ hours ago</a></span> <span id="unv_20720230"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20720230&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20720230">12&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20720170">
+ <td class="title" valign="top" align="right"><span
+ class="rank">18.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20720170"
+ href="https://news.ycombinator.com/vote?id=20720170&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.stevanpopovic.com/arcs-of-seniority/"
+ class="storylink">Arcs of Seniority</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=stevanpopovic.com"><span
+ class="sitestr">stevanpopovic.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20720170">40 points</span> by
+ <a href="https://news.ycombinator.com/user?id=zdw"
+ class="hnuser">zdw</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20720170">7
+ hours ago</a></span> <span id="unv_20720170"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20720170&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20720170">19&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20713283">
+ <td class="title" valign="top" align="right"><span
+ class="rank">19.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20713283"
+ href="https://news.ycombinator.com/vote?id=20713283&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.blender.org/user-stories/japanese-anime-studio-khara-moving-to-blender/"
+ class="storylink">Japanese anime studio Khara moving to
+ Blender</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=blender.org"><span
+ class="sitestr">blender.org</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20713283">788 points</span> by
+ <a href="https://news.ycombinator.com/user?id=robin_reala"
+ class="hnuser">robin_reala</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20713283">20
+ hours ago</a></span> <span id="unv_20713283"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20713283&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20713283">193&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20717224">
+ <td class="title" valign="top" align="right"><span
+ class="rank">20.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20717224"
+ href="https://news.ycombinator.com/vote?id=20717224&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://blog.ycombinator.com/the-biggest-mistakes-first-time-founders-make/"
+ class="storylink">The Biggest Mistakes First-Time Founders
+ Make [video]</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=ycombinator.com"><span
+ class="sitestr">ycombinator.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20717224">56 points</span> by
+ <a href="https://news.ycombinator.com/user?id=chrisa"
+ class="hnuser">chrisa</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20717224">11
+ hours ago</a></span> <span id="unv_20717224"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20717224&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20717224">2&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20720111">
+ <td class="title" valign="top" align="right"><span
+ class="rank">21.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20720111"
+ href="https://news.ycombinator.com/vote?id=20720111&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://github.blog/2019-08-16-highlights-from-git-2-23/"
+ class="storylink">Highlights from Git 2.23</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=github.blog"><span
+ class="sitestr">github.blog</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20720111">90 points</span> by
+ <a href="https://news.ycombinator.com/user?id=digitalnalogika"
+ class="hnuser">digitalnalogika</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20720111">7
+ hours ago</a></span> <span id="unv_20720111"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20720111&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20720111">12&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20713826">
+ <td class="title" valign="top" align="right"><span
+ class="rank">22.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20713826"
+ href="https://news.ycombinator.com/vote?id=20713826&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a href="https://econcretetech.com/products"
+ class="storylink" rel="nofollow">ECONcrete: Protection
+ from hydrodynamic forces while generating marine
+ habitat</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=econcretetech.com"><span
+ class="sitestr">econcretetech.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20713826">4 points</span> by
+ <a href="https://news.ycombinator.com/user?id=driekwartappel"
+ class="hnuser">driekwartappel</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20713826">2
+ hours ago</a></span> <span id="unv_20713826"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20713826&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20713826">1&nbsp;comment</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20716963">
+ <td class="title" valign="top" align="right"><span
+ class="rank">23.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20716963"
+ href="https://news.ycombinator.com/vote?id=20716963&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://github.com/tridactyl/tridactyl/issues/1800"
+ class="storylink">All Tridactyl installations might get
+ removed by Firefox on Aug 21</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=github.com"><span
+ class="sitestr">github.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20716963">90 points</span> by
+ <a href="https://news.ycombinator.com/user?id=anoopelias"
+ class="hnuser">anoopelias</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20716963">12
+ hours ago</a></span> <span id="unv_20716963"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20716963&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20716963">75&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20701252">
+ <td class="title" valign="top" align="right"><span
+ class="rank">24.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20701252"
+ href="https://news.ycombinator.com/vote?id=20701252&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.foreignaffairs.com/reviews/review-essay/2019-08-12/population-bust?spJobID=1701558439&amp;spMailingID=60132624&amp;spReportId=MTcwMTU1ODQzOQS2&amp;spUserID=NTA0ODQwNzg0NDcS1&amp;sp_mid=60132624&amp;sp_rid=cm9iZXJ0QHRoZWJyb3dzZXIuY29tS0&amp;utm_campaign=so_2019&amp;utm_content=20190813&amp;utm_medium=newsletters&amp;utm_source=press_release"
+ class="storylink">The Population Bust</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=foreignaffairs.com"><span
+ class="sitestr">foreignaffairs.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20701252">60 points</span> by
+ <a href="https://news.ycombinator.com/user?id=ohaikbai"
+ class="hnuser">ohaikbai</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20701252">13
+ hours ago</a></span> <span id="unv_20701252"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20701252&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20701252">114&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20719062">
+ <td class="title" valign="top" align="right"><span
+ class="rank">25.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20719062"
+ href="https://news.ycombinator.com/vote?id=20719062&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://medium.com/prophecy-io/introducing-prophecy-io-cloud-native-data-engineering-1b9247596030"
+ class="storylink">Show HN: Prophecy.io – Cloud Native Data
+ Engineering</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=medium.com"><span
+ class="sitestr">medium.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20719062">47 points</span> by
+ <a href="https://news.ycombinator.com/user?id=ibains"
+ class="hnuser">ibains</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20719062">9
+ hours ago</a></span> <span id="unv_20719062"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20719062&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20719062">20&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20718818">
+ <td class="title" valign="top" align="right"><span
+ class="rank">26.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20718818"
+ href="https://news.ycombinator.com/vote?id=20718818&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://theintercept.com/2019/08/16/facebook-moderators-mental-health-accenture/"
+ class="storylink">Trauma Counselors Pressured to Divulge
+ Confidential Info About Facebook Mods</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=theintercept.com"><span
+ class="sitestr">theintercept.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20718818">88 points</span> by
+ <a href="https://news.ycombinator.com/user?id=jmsflknr"
+ class="hnuser">jmsflknr</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20718818">10
+ hours ago</a></span> <span id="unv_20718818"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20718818&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20718818">28&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20716430">
+ <td class="title" valign="top" align="right"><span
+ class="rank">27.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20716430"
+ href="https://news.ycombinator.com/vote?id=20716430&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="http://www.bbc.com/culture/story/20190808-the-subversive-messages-hidden-in-the-wizard-of-oz"
+ class="storylink">The subversive messages hidden in The
+ Wizard of Oz</a><span class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=bbc.com"><span
+ class="sitestr">bbc.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20716430">122 points</span> by
+ <a href="https://news.ycombinator.com/user?id=herendin2"
+ class="hnuser">herendin2</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20716430">13
+ hours ago</a></span> <span id="unv_20716430"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20716430&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20716430">98&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20717428">
+ <td class="title" valign="top" align="right"><span
+ class="rank">28.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20717428"
+ href="https://news.ycombinator.com/vote?id=20717428&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.scientificamerican.com/article/and-now-the-really-big-coal-plants-begin-to-close/"
+ class="storylink">Big Coal Plants Begin to Close</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=scientificamerican.com"><span
+ class="sitestr">scientificamerican.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20717428">253 points</span> by
+ <a href="https://news.ycombinator.com/user?id=artsandsci"
+ class="hnuser">artsandsci</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20717428">12
+ hours ago</a></span> <span id="unv_20717428"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20717428&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20717428">145&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20721789">
+ <td class="title" valign="top" align="right"><span
+ class="rank">29.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20721789"
+ href="https://news.ycombinator.com/vote?id=20721789&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.technologyreview.com/f/614175/a-new-clothing-line-confuses-automated-license-plate-readers/"
+ class="storylink">A new clothing line confuses automated
+ license plate readers</a><span class="sitebit comhead">
+ (<a
+ href="https://news.ycombinator.com/from?site=technologyreview.com"><span
+ class="sitestr">technologyreview.com</span></a>)</span>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20721789">14 points</span> by
+ <a href="https://news.ycombinator.com/user?id=t23"
+ class="hnuser">t23</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20721789">2
+ hours ago</a></span> <span id="unv_20721789"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20721789&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20721789">1&nbsp;comment</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="athing" id="20717668">
+ <td class="title" valign="top" align="right"><span
+ class="rank">30.</span></td>
+ <td class="votelinks" valign="top">
+ <center><a id="up_20717668"
+ href="https://news.ycombinator.com/vote?id=20717668&amp;how=up&amp;goto=news">
+ <div class="votearrow" title="upvote"></div>
+ </a></center>
+ </td>
+ <td class="title"><a
+ href="https://www.cnn.com/2019/08/16/media/jimmy-kimmel-live-walking-dead-fcc-fine/index.html"
+ class="storylink">The FCC Fined 'Jimmy Kimmel Live' 'The
+ Walking Dead' for Use of Emergency Tones</a><span
+ class="sitebit comhead"> (<a
+ href="https://news.ycombinator.com/from?site=cnn.com"><span
+ class="sitestr">cnn.com</span></a>)</span></td>
+ </tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="subtext">
+ <span class="score" id="score_20717668">79 points</span> by
+ <a href="https://news.ycombinator.com/user?id=LinuxBender"
+ class="hnuser">LinuxBender</a> <span class="age"><a
+ href="https://news.ycombinator.com/item?id=20717668">11
+ hours ago</a></span> <span id="unv_20717668"></span> |
+ <a
+ href="https://news.ycombinator.com/hide?id=20717668&amp;goto=news">hide</a>
+ | <a
+ href="https://news.ycombinator.com/item?id=20717668">52&nbsp;comments</a>
+ </td>
+ </tr>
+ <tr class="spacer" style="height:5px"></tr>
+ <tr class="morespace" style="height:10px"></tr>
+ <tr>
+ <td colspan="2"></td>
+ <td class="title"><a
+ href="https://news.ycombinator.com/news?p=2"
+ class="morelink" rel="next">More</a></td>
+ </tr>
+ </tbody>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td><img src="frontpage_files/s.gif" width="0" height="10">
+ <table width="100%" cellspacing="0" cellpadding="1">
+ <tbody>
+ <tr>
+ <td bgcolor="#ff6600"></td>
+ </tr>
+ </tbody>
+ </table><br>
+ <center><span class="yclinks"><a
+ href="https://news.ycombinator.com/newsguidelines.html">Guidelines</a>
+ | <a href="https://news.ycombinator.com/newsfaq.html">FAQ</a>
+ | <a href="mailto:hn@ycombinator.com">Support</a>
+ | <a href="https://github.com/HackerNews/API">API</a>
+ | <a
+ href="https://news.ycombinator.com/security.html">Security</a>
+ | <a href="https://news.ycombinator.com/lists">Lists</a>
+ | <a href="https://news.ycombinator.com/bookmarklet.html"
+ rel="nofollow">Bookmarklet</a>
+ | <a href="http://www.ycombinator.com/legal/">Legal</a>
+ | <a href="http://www.ycombinator.com/apply/">Apply to YC</a>
+ | <a href="mailto:hn@ycombinator.com">Contact</a></span><br><br>
+ <form method="get" action="//hn.algolia.com/">Search:
+ <input type="text" name="q" size="17" autocorrect="off"
+ spellcheck="false" autocapitalize="off" autocomplete="false">
+ </form>
+ </center>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </center>
+ <script type="text/javascript" src="frontpage_files/hn.js"></script>
+
+</body>
+<div></div>
+
+</html>