Rewrite HtmlParser in Kotlin with some tests

This commit is contained in:
Shinokuni 2023-07-22 19:44:44 +02:00
parent da496cd91a
commit bda5896413
4 changed files with 1358 additions and 0 deletions

View File

@ -0,0 +1,75 @@
package com.readrops.api.utils
import android.nfc.FormatException
import com.readrops.api.localfeed.LocalRSSHelper
import okhttp3.OkHttpClient
import okhttp3.Request
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
data class ParsingResult(
val url: String,
val label: String?,
)
object HtmlParser {
suspend fun getFeedLink(url: String, client: OkHttpClient): List<ParsingResult> {
val results = mutableListOf<ParsingResult>()
val document = getHTMLHeadFromUrl(url, client)
val elements = document.select("link")
for (element in elements) {
val type = element.attributes()["type"]
if (LocalRSSHelper.isRSSType(type)) {
results += ParsingResult(
url = element.absUrl("href"),
label = element.attributes()["title"]
)
}
}
return results
}
private fun getHTMLHeadFromUrl(url: String, client: OkHttpClient): Document {
client.newCall(Request.Builder().url(url).build()).execute().use { response ->
if (response.header(ApiUtils.CONTENT_TYPE_HEADER)!!.contains(ApiUtils.HTML_CONTENT_TYPE)
) {
val body = response.body!!.source()
val stringBuilder = StringBuilder()
var collectionStarted = false
while (!body.exhausted()) {
val currentLine = body.readUtf8LineStrict()
when {
currentLine.contains("<head>") -> {
stringBuilder.append(currentLine)
collectionStarted = true
}
currentLine.contains("</head>") -> {
stringBuilder.append(currentLine)
break
}
collectionStarted -> {
stringBuilder.append(currentLine)
}
}
}
if (!stringBuilder.contains("<head>") || !stringBuilder.contains("</head>"))
throw Exception("Failed to get HTML head")
body.close()
return Jsoup.parse(stringBuilder.toString(), url)
} else {
throw FormatException("The response is not a html file")
}
}
}
}

View File

@ -0,0 +1,89 @@
package com.readrops.api.utils
import android.nfc.FormatException
import com.readrops.api.TestUtils
import kotlinx.coroutines.runBlocking
import okhttp3.OkHttpClient
import okhttp3.mockwebserver.MockResponse
import okhttp3.mockwebserver.MockWebServer
import okio.Buffer
import org.junit.Rule
import org.junit.Test
import org.koin.dsl.module
import org.koin.test.KoinTest
import org.koin.test.KoinTestRule
import java.net.HttpURLConnection
import java.util.concurrent.TimeUnit
import kotlin.test.assertEquals
import kotlin.test.assertTrue
class HtmlParserTest : KoinTest {
private val mockServer = MockWebServer()
@get:Rule
val koinTestRule = KoinTestRule.create {
modules(module {
single {
OkHttpClient.Builder()
.callTimeout(1, TimeUnit.MINUTES)
.readTimeout(1, TimeUnit.HOURS)
.build()
}
})
}
@Test
fun before() {
mockServer.start()
}
@Test
fun after() {
mockServer.shutdown()
}
@Test
fun getFeedLinkTest() {
val stream = TestUtils.loadResource("utils/file.html")
mockServer.enqueue(
MockResponse().setResponseCode(HttpURLConnection.HTTP_OK)
.addHeader(ApiUtils.CONTENT_TYPE_HEADER, ApiUtils.HTML_CONTENT_TYPE)
.setBody(Buffer().readFrom(stream))
)
runBlocking {
val result =
HtmlParser.getFeedLink(mockServer.url("/rss").toString(), koinTestRule.koin.get())
assertTrue { result.size == 1 }
assertTrue { result.first().url.endsWith("/rss") }
assertEquals("RSS", result.first().label)
}
}
@Test(expected = Exception::class)
fun getFeedLinkWithoutHeadTest() {
val stream = TestUtils.loadResource("utils/file_without_head.html")
mockServer.enqueue(
MockResponse().setResponseCode(HttpURLConnection.HTTP_OK)
.addHeader(ApiUtils.CONTENT_TYPE_HEADER, ApiUtils.HTML_CONTENT_TYPE)
.setBody(Buffer().readFrom(stream))
)
runBlocking { HtmlParser.getFeedLink(mockServer.url("/rss").toString(), koinTestRule.koin.get()) }
}
@Test(expected = FormatException::class)
fun getFeedLinkNoHtmlFileTest() {
mockServer.enqueue(
MockResponse().setResponseCode(HttpURLConnection.HTTP_OK)
.addHeader(ApiUtils.CONTENT_TYPE_HEADER, "application/rss+xml"))
runBlocking { HtmlParser.getFeedLink(mockServer.url("/rss").toString(), koinTestRule.koin.get()) }
}
}

View File

@ -0,0 +1,601 @@
<html lang="en" op="news">
<head>
<meta name="referrer" content="origin">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="news.css?t8fsBYOw2Gz0ODjGokUo">
<link rel="shortcut icon" href="favicon.ico">
<link rel="alternate" type="application/rss+xml" title="RSS" href="rss">
<title>Hacker News</title>
</head>
<body>
<center>
<table id="hnmain" border="0" cellpadding="0" cellspacing="0" width="85%" bgcolor="#f6f6ef">
<tr>
<td bgcolor="#ff6600">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding:2px">
<tr>
<td style="width:18px;padding-right:4px"><a href="https://news.ycombinator.com"><img src="y18.svg" width="18" height="18" style="border:1px white solid; display:block"></a></td>
<td style="line-height:12pt; height:10px;"><span class="pagetop"><b class="hnname"><a href="news">Hacker News</a></b>
<a href="newest">new</a> | <a href="front">past</a> | <a href="newcomments">comments</a> | <a href="ask">ask</a> | <a href="show">show</a> | <a href="jobs">jobs</a> | <a href="submit">submit</a> </span>
</td>
<td style="text-align:right;padding-right:4px;"><span class="pagetop">
<a href="login?goto=news">login</a>
</span>
</td>
</tr>
</table>
</td>
</tr>
<tr id="pagespace" title="" style="height:10px"></tr>
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr class='athing' id='36826210'>
<td align="right" valign="top" class="title"><span class="rank">1.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826210'href='vote?id=36826210&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.lesswrong.com/posts/vfRpzyGsikujm9ujj/a-brief-history-of-computers" rel="noreferrer">A Brief History of Computers</a><span class="sitebit comhead"> (<a href="from?site=lesswrong.com"><span class="sitestr">lesswrong.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826210">31 points</span> by <a href="user?id=zdw" class="hnuser">zdw</a> <span class="age" title="2023-07-22T13:50:28"><a href="item?id=36826210">1 hour ago</a></span> <span id="unv_36826210"></span> | <a href="hide?id=36826210&amp;goto=news">hide</a> | <a href="item?id=36826210">3&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36813688'>
<td align="right" valign="top" class="title"><span class="rank">2.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36813688'href='vote?id=36813688&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.csmonitor.com/1994/0513/13082.html" rel="noreferrer">Consumer Software Is Expected to Be Next Fast-Growing Segment (1994)</a><span class="sitebit comhead"> (<a href="from?site=csmonitor.com"><span class="sitestr">csmonitor.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36813688">9 points</span> by <a href="user?id=1970-01-01" class="hnuser">1970-01-01</a> <span class="age" title="2023-07-21T13:46:46"><a href="item?id=36813688">1 hour ago</a></span> <span id="unv_36813688"></span> | <a href="hide?id=36813688&amp;goto=news">hide</a> | <a href="item?id=36813688">1&nbsp;comment</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36797650'>
<td align="right" valign="top" class="title"><span class="rank">3.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36797650'href='vote?id=36797650&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://en.wikipedia.org/wiki/MSX-DOS" rel="noreferrer">MSX-DOS</a><span class="sitebit comhead"> (<a href="from?site=wikipedia.org"><span class="sitestr">wikipedia.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36797650">82 points</span> by <a href="user?id=pavlov" class="hnuser">pavlov</a> <span class="age" title="2023-07-20T07:08:01"><a href="item?id=36797650">6 hours ago</a></span> <span id="unv_36797650"></span> | <a href="hide?id=36797650&amp;goto=news">hide</a> | <a href="item?id=36797650">26&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36827034'>
<td align="right" valign="top" class="title"><span class="rank">4.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36827034'href='vote?id=36827034&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.nytimes.com/interactive/2023/07/21/nyregion/nyc-developers-private-owned-public-spaces.html" rel="noreferrer">New Yorkers Got Broken Promises. Developers Got 20M Sq. Ft</a><span class="sitebit comhead"> (<a href="from?site=nytimes.com"><span class="sitestr">nytimes.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36827034">12 points</span> by <a href="user?id=asnyder" class="hnuser">asnyder</a> <span class="age" title="2023-07-22T15:27:37"><a href="item?id=36827034">20 minutes ago</a></span> <span id="unv_36827034"></span> | <a href="hide?id=36827034&amp;goto=news">hide</a> | <a href="item?id=36827034">1&nbsp;comment</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823565'>
<td align="right" valign="top" class="title"><span class="rank">5.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823565'href='vote?id=36823565&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="http://oldvcr.blogspot.com/2023/07/apples-interactive-television-box.html" rel="noreferrer">Apple&#x27;s interactive television box: Hacking the set top box System 7.1 in ROM</a><span class="sitebit comhead"> (<a href="from?site=oldvcr.blogspot.com"><span class="sitestr">oldvcr.blogspot.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823565">160 points</span> by <a href="user?id=todsacerdoti" class="hnuser">todsacerdoti</a> <span class="age" title="2023-07-22T05:30:35"><a href="item?id=36823565">10 hours ago</a></span> <span id="unv_36823565"></span> | <a href="hide?id=36823565&amp;goto=news">hide</a> | <a href="item?id=36823565">20&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823605'>
<td align="right" valign="top" class="title"><span class="rank">6.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823605'href='vote?id=36823605&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://cpu.land/" rel="noreferrer">Putting the “You” in CPU</a><span class="sitebit comhead"> (<a href="from?site=cpu.land"><span class="sitestr">cpu.land</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823605">187 points</span> by <a href="user?id=uneekname" class="hnuser">uneekname</a> <span class="age" title="2023-07-22T05:38:53"><a href="item?id=36823605">10 hours ago</a></span> <span id="unv_36823605"></span> | <a href="hide?id=36823605&amp;goto=news">hide</a> | <a href="item?id=36823605">73&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36826177'>
<td align="right" valign="top" class="title"><span class="rank">7.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826177'href='vote?id=36826177&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3028942/" rel="noreferrer">Botulinum toxin: Bioweapon and magic drug</a><span class="sitebit comhead"> (<a href="from?site=nih.gov"><span class="sitestr">nih.gov</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826177">12 points</span> by <a href="user?id=redbell" class="hnuser">redbell</a> <span class="age" title="2023-07-22T13:46:08"><a href="item?id=36826177">2 hours ago</a></span> <span id="unv_36826177"></span> | <a href="hide?id=36826177&amp;goto=news">hide</a> | <a href="item?id=36826177">10&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824595'>
<td align="right" valign="top" class="title"><span class="rank">8.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824595'href='vote?id=36824595&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://github.com/underpig1/octos">Octos HTML live wallpaper engine</a><span class="sitebit comhead"> (<a href="from?site=github.com/underpig1"><span class="sitestr">github.com/underpig1</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824595">85 points</span> by <a href="user?id=underpig1" class="hnuser">underpig1</a> <span class="age" title="2023-07-22T08:56:14"><a href="item?id=36824595">6 hours ago</a></span> <span id="unv_36824595"></span> | <a href="hide?id=36824595&amp;goto=news">hide</a> | <a href="item?id=36824595">23&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825992'>
<td align="right" valign="top" class="title"><span class="rank">9.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825992'href='vote?id=36825992&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.shuttle.rs/blog/2022/06/30/error-handling">More than you&#x27;ve ever wanted to know about errors in Rust</a><span class="sitebit comhead"> (<a href="from?site=shuttle.rs"><span class="sitestr">shuttle.rs</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825992">13 points</span> by <a href="user?id=asymmetric" class="hnuser">asymmetric</a> <span class="age" title="2023-07-22T13:20:02"><a href="item?id=36825992">2 hours ago</a></span> <span id="unv_36825992"></span> | <a href="hide?id=36825992&amp;goto=news">hide</a> | <a href="item?id=36825992">3&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825345'>
<td align="right" valign="top" class="title"><span class="rank">10.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825345'href='vote?id=36825345&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://ferd.ca/embrace-complexity-tighten-your-feedback-loops.html" rel="noreferrer">Embrace Complexity; Tighten Your Feedback Loops</a><span class="sitebit comhead"> (<a href="from?site=ferd.ca"><span class="sitestr">ferd.ca</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825345">27 points</span> by <a href="user?id=lutzh" class="hnuser">lutzh</a> <span class="age" title="2023-07-22T11:30:46"><a href="item?id=36825345">4 hours ago</a></span> <span id="unv_36825345"></span> | <a href="hide?id=36825345&amp;goto=news">hide</a> | <a href="item?id=36825345">1&nbsp;comment</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823516'>
<td align="right" valign="top" class="title"><span class="rank">11.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823516'href='vote?id=36823516&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://miparnisariblog.wordpress.com/2023/03/29/aws-networking-concepts/" rel="noreferrer">AWS networking concepts in a diagram</a><span class="sitebit comhead"> (<a href="from?site=miparnisariblog.wordpress.com"><span class="sitestr">miparnisariblog.wordpress.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823516">171 points</span> by <a href="user?id=mparnisari" class="hnuser">mparnisari</a> <span class="age" title="2023-07-22T05:18:37"><a href="item?id=36823516">10 hours ago</a></span> <span id="unv_36823516"></span> | <a href="hide?id=36823516&amp;goto=news">hide</a> | <a href="item?id=36823516">66&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824450'>
<td align="right" valign="top" class="title"><span class="rank">12.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824450'href='vote?id=36824450&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://plane.so" rel="noreferrer">Plane Open-source Jira alternative</a><span class="sitebit comhead"> (<a href="from?site=plane.so"><span class="sitestr">plane.so</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824450">240 points</span> by <a href="user?id=prhrb" class="hnuser">prhrb</a> <span class="age" title="2023-07-22T08:21:40"><a href="item?id=36824450">7 hours ago</a></span> <span id="unv_36824450"></span> | <a href="hide?id=36824450&amp;goto=news">hide</a> | <a href="item?id=36824450">93&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825481'>
<td align="right" valign="top" class="title"><span class="rank">13.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825481'href='vote?id=36825481&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.frontiersin.org/articles/10.3389/fnsys.2017.00093/full" rel="noreferrer">Neurotechnology: Current Developments and Ethical Issues</a><span class="sitebit comhead"> (<a href="from?site=frontiersin.org"><span class="sitestr">frontiersin.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825481">28 points</span> by <a href="user?id=Quinzel" class="hnuser">Quinzel</a> <span class="age" title="2023-07-22T11:57:41"><a href="item?id=36825481">3 hours ago</a></span> <span id="unv_36825481"></span> | <a href="hide?id=36825481&amp;goto=news">hide</a> | <a href="item?id=36825481">15&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823375'>
<td align="right" valign="top" class="title"><span class="rank">14.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823375'href='vote?id=36823375&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://maheshba.bitbucket.io/blog/2023/07/12/Design.html" rel="noreferrer">What we talk about when we talk about System Design</a><span class="sitebit comhead"> (<a href="from?site=maheshba.bitbucket.io"><span class="sitestr">maheshba.bitbucket.io</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823375">166 points</span> by <a href="user?id=scv119" class="hnuser">scv119</a> <span class="age" title="2023-07-22T04:47:24"><a href="item?id=36823375">11 hours ago</a></span> <span id="unv_36823375"></span> | <a href="hide?id=36823375&amp;goto=news">hide</a> | <a href="item?id=36823375">22&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823524'>
<td align="right" valign="top" class="title"><span class="rank">15.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823524'href='vote?id=36823524&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.fraunhofer.de/en/research/lighthouse-projects-fraunhofer-initiatives/fraunhofer-lighthouse-projects/elkawe.html" rel="noreferrer">ElKaWe Electrocaloric heat pumps</a><span class="sitebit comhead"> (<a href="from?site=fraunhofer.de"><span class="sitestr">fraunhofer.de</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823524">140 points</span> by <a href="user?id=danans" class="hnuser">danans</a> <span class="age" title="2023-07-22T05:20:10"><a href="item?id=36823524">10 hours ago</a></span> <span id="unv_36823524"></span> | <a href="hide?id=36823524&amp;goto=news">hide</a> | <a href="item?id=36823524">73&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824607'>
<td align="right" valign="top" class="title"><span class="rank">16.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824607'href='vote?id=36824607&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://theecologist.org/2015/jun/05/over-grazing-and-desertification-syrian-steppe-are-root-causes-war" rel="noreferrer">Over-grazing and desertification in the Syrian steppe root causes of war (2015)</a><span class="sitebit comhead"> (<a href="from?site=theecologist.org"><span class="sitestr">theecologist.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824607">64 points</span> by <a href="user?id=joveian" class="hnuser">joveian</a> <span class="age" title="2023-07-22T08:58:09"><a href="item?id=36824607">6 hours ago</a></span> <span id="unv_36824607"></span> | <a href="hide?id=36824607&amp;goto=news">hide</a> | <a href="item?id=36824607">43&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825913'>
<td align="right" valign="top" class="title"><span class="rank">17.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825913'href='vote?id=36825913&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.redmine.org/" rel="noreferrer">Redmine open-source project management</a><span class="sitebit comhead"> (<a href="from?site=redmine.org"><span class="sitestr">redmine.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825913">34 points</span> by <a href="user?id=synergy20" class="hnuser">synergy20</a> <span class="age" title="2023-07-22T13:06:39"><a href="item?id=36825913">2 hours ago</a></span> <span id="unv_36825913"></span> | <a href="hide?id=36825913&amp;goto=news">hide</a> | <a href="item?id=36825913">24&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36797471'>
<td align="right" valign="top" class="title"><span class="rank">18.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36797471'href='vote?id=36797471&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.theregister.com/2023/07/19/google_cuts_internet/" rel="noreferrer">Google tries internet air-gap for some staff PCs</a><span class="sitebit comhead"> (<a href="from?site=theregister.com"><span class="sitestr">theregister.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36797471">67 points</span> by <a href="user?id=beardyw" class="hnuser">beardyw</a> <span class="age" title="2023-07-20T06:35:56"><a href="item?id=36797471">9 hours ago</a></span> <span id="unv_36797471"></span> | <a href="hide?id=36797471&amp;goto=news">hide</a> | <a href="item?id=36797471">73&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825204'>
<td align="right" valign="top" class="title"><span class="rank">19.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825204'href='vote?id=36825204&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.science.org/content/article/i-thought-i-wanted-be-faculty-member-then-i-served-hiring-committee" rel="noreferrer">I thought I wanted to be a professor, then I served on a hiring committee (2021)</a><span class="sitebit comhead"> (<a href="from?site=science.org"><span class="sitestr">science.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825204">104 points</span> by <a href="user?id=ykonstant" class="hnuser">ykonstant</a> <span class="age" title="2023-07-22T11:00:42"><a href="item?id=36825204">4 hours ago</a></span> <span id="unv_36825204"></span> | <a href="hide?id=36825204&amp;goto=news">hide</a> | <a href="item?id=36825204">72&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36822880'>
<td align="right" valign="top" class="title"><span class="rank">20.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36822880'href='vote?id=36822880&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://gwern.net/search" rel="noreferrer">Internet search tips</a><span class="sitebit comhead"> (<a href="from?site=gwern.net"><span class="sitestr">gwern.net</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36822880">161 points</span> by <a href="user?id=herbertl" class="hnuser">herbertl</a> <span class="age" title="2023-07-22T03:22:43"><a href="item?id=36822880">12 hours ago</a></span> <span id="unv_36822880"></span> | <a href="hide?id=36822880&amp;goto=news">hide</a> | <a href="item?id=36822880">58&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36803767'>
<td align="right" valign="top" class="title"><span class="rank">21.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36803767'href='vote?id=36803767&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.sciencedirect.com/science/article/abs/pii/S0094576518314000" rel="noreferrer">Bayesian methods to provide probablistic solution for the Drake equation (2019)</a><span class="sitebit comhead"> (<a href="from?site=sciencedirect.com"><span class="sitestr">sciencedirect.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36803767">22 points</span> by <a href="user?id=benbreen" class="hnuser">benbreen</a> <span class="age" title="2023-07-20T17:28:02"><a href="item?id=36803767">4 hours ago</a></span> <span id="unv_36803767"></span> | <a href="hide?id=36803767&amp;goto=news">hide</a> | <a href="item?id=36803767">18&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824330'>
<td align="right" valign="top" class="title"><span class="rank">22.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824330'href='vote?id=36824330&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://biofabrik.com/biotumen/" rel="noreferrer">Biotumen: Bitumen Reinvented</a><span class="sitebit comhead"> (<a href="from?site=biofabrik.com"><span class="sitestr">biofabrik.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824330">40 points</span> by <a href="user?id=patall" class="hnuser">patall</a> <span class="age" title="2023-07-22T07:57:44"><a href="item?id=36824330">7 hours ago</a></span> <span id="unv_36824330"></span> | <a href="hide?id=36824330&amp;goto=news">hide</a> | <a href="item?id=36824330">11&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36826111'>
<td align="right" valign="top" class="title"><span class="rank">23.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826111'href='vote?id=36826111&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.devever.net/~hl/passwords" rel="noreferrer">Why even let users set their own passwords?</a><span class="sitebit comhead"> (<a href="from?site=devever.net"><span class="sitestr">devever.net</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826111">103 points</span> by <a href="user?id=hlandau" class="hnuser">hlandau</a> <span class="age" title="2023-07-22T13:36:22"><a href="item?id=36826111">2 hours ago</a></span> <span id="unv_36826111"></span> | <a href="hide?id=36826111&amp;goto=news">hide</a> | <a href="item?id=36826111">121&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36784114'>
<td align="right" valign="top" class="title"><span class="rank">24.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36784114'href='vote?id=36784114&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://buildinghealthier.substack.com/p/confronting-failure-as-a-core-life" rel="noreferrer">Confronting failure as a core life skill</a><span class="sitebit comhead"> (<a href="from?site=buildinghealthier.substack.com"><span class="sitestr">buildinghealthier.substack.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36784114">168 points</span> by <a href="user?id=blh75" class="hnuser">blh75</a> <span class="age" title="2023-07-19T10:05:42"><a href="item?id=36784114">15 hours ago</a></span> <span id="unv_36784114"></span> | <a href="hide?id=36784114&amp;goto=news">hide</a> | <a href="item?id=36784114">75&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36808566'>
<td align="right" valign="top" class="title"><span class="rank">25.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36808566'href='vote?id=36808566&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://publicdomainreview.org/collection/hokusai-warriors/" rel="noreferrer">Hokusais Illustrated Warrior Vanguard of Japan and China (1836)</a><span class="sitebit comhead"> (<a href="from?site=publicdomainreview.org"><span class="sitestr">publicdomainreview.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36808566">19 points</span> by <a href="user?id=tintinnabula" class="hnuser">tintinnabula</a> <span class="age" title="2023-07-21T00:19:50"><a href="item?id=36808566">2 hours ago</a></span> <span id="unv_36808566"></span> | <a href="hide?id=36808566&amp;goto=news">hide</a> | <a href="item?id=36808566">discuss</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823723'>
<td align="right" valign="top" class="title"><span class="rank">26.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823723'href='vote?id=36823723&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://bun.sh/blog/bun-v0.7.0" rel="noreferrer">Bun v0.7.0</a><span class="sitebit comhead"> (<a href="from?site=bun.sh"><span class="sitestr">bun.sh</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823723">163 points</span> by <a href="user?id=sshroot" class="hnuser">sshroot</a> <span class="age" title="2023-07-22T06:04:11"><a href="item?id=36823723">9 hours ago</a></span> <span id="unv_36823723"></span> | <a href="hide?id=36823723&amp;goto=news">hide</a> | <a href="item?id=36823723">107&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824856'>
<td align="right" valign="top" class="title"><span class="rank">27.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824856'href='vote?id=36824856&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.simpsonsarchive.com/news/tomacco.html" rel="noreferrer">Simpson Fan Grows Tomacco (2003)</a><span class="sitebit comhead"> (<a href="from?site=simpsonsarchive.com"><span class="sitestr">simpsonsarchive.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824856">81 points</span> by <a href="user?id=pipeline_peak" class="hnuser">pipeline_peak</a> <span class="age" title="2023-07-22T09:44:39"><a href="item?id=36824856">6 hours ago</a></span> <span id="unv_36824856"></span> | <a href="hide?id=36824856&amp;goto=news">hide</a> | <a href="item?id=36824856">55&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36822530'>
<td align="right" valign="top" class="title"><span class="rank">28.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36822530'href='vote?id=36822530&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://newsreleases.sandia.gov/healing_metals/" rel="noreferrer">Discovery: Metals can heal themselves</a><span class="sitebit comhead"> (<a href="from?site=sandia.gov"><span class="sitestr">sandia.gov</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36822530">77 points</span> by <a href="user?id=bobvanluijt" class="hnuser">bobvanluijt</a> <span class="age" title="2023-07-22T02:19:30"><a href="item?id=36822530">13 hours ago</a></span> <span id="unv_36822530"></span> | <a href="hide?id=36822530&amp;goto=news">hide</a> | <a href="item?id=36822530">24&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36783937'>
<td align="right" valign="top" class="title"><span class="rank">29.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36783937'href='vote?id=36783937&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://genuineideas.com/ArticlesIndex/pressuremarinade.html" rel="noreferrer">Pressure and vacuum marination does not work (2016)</a><span class="sitebit comhead"> (<a href="from?site=genuineideas.com"><span class="sitestr">genuineideas.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36783937">87 points</span> by <a href="user?id=OJFord" class="hnuser">OJFord</a> <span class="age" title="2023-07-19T09:35:28"><a href="item?id=36783937">13 hours ago</a></span> <span id="unv_36783937"></span> | <a href="hide?id=36783937&amp;goto=news">hide</a> | <a href="item?id=36783937">57&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36826664'>
<td align="right" valign="top" class="title"><span class="rank">30.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826664'href='vote?id=36826664&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://news.mongabay.com/2023/07/scientists-fishing-boats-compete-with-whales-and-penguins-for-antarctic-krill/" rel="nofollow noreferrer">Scientists: Fishing boats compete with whales and penguins for Antarctic krill</a><span class="sitebit comhead"> (<a href="from?site=mongabay.com"><span class="sitestr">mongabay.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826664">5 points</span> by <a href="user?id=PaulHoule" class="hnuser">PaulHoule</a> <span class="age" title="2023-07-22T14:47:25"><a href="item?id=36826664">1 hour ago</a></span> <span id="unv_36826664"></span> | <a href="hide?id=36826664&amp;goto=news">hide</a> | <a href="item?id=36826664">discuss</a> </span>
</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='?p=2' class='morelink' rel='next'>More</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<img src="s.gif" height="10" width="0">
<table width="100%" cellspacing="0" cellpadding="1">
<tr>
<td bgcolor="#ff6600"></td>
</tr>
</table>
<br>
<center>
<span class="yclinks"><a href="newsguidelines.html">Guidelines</a> | <a href="newsfaq.html">FAQ</a> | <a href="lists">Lists</a> | <a href="https://github.com/HackerNews/API">API</a> | <a href="security.html">Security</a> | <a href="https://www.ycombinator.com/legal/">Legal</a> | <a href="https://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>
</table>
</center>
</body>
<script type='text/javascript' src='hn.js?t8fsBYOw2Gz0ODjGokUo'></script>
</html>

View File

@ -0,0 +1,593 @@
<html lang="en" op="news">
<body>
<center>
<table id="hnmain" border="0" cellpadding="0" cellspacing="0" width="85%" bgcolor="#f6f6ef">
<tr>
<td bgcolor="#ff6600">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="padding:2px">
<tr>
<td style="width:18px;padding-right:4px"><a href="https://news.ycombinator.com"><img src="y18.svg" width="18" height="18" style="border:1px white solid; display:block"></a></td>
<td style="line-height:12pt; height:10px;"><span class="pagetop"><b class="hnname"><a href="news">Hacker News</a></b>
<a href="newest">new</a> | <a href="front">past</a> | <a href="newcomments">comments</a> | <a href="ask">ask</a> | <a href="show">show</a> | <a href="jobs">jobs</a> | <a href="submit">submit</a> </span>
</td>
<td style="text-align:right;padding-right:4px;"><span class="pagetop">
<a href="login?goto=news">login</a>
</span>
</td>
</tr>
</table>
</td>
</tr>
<tr id="pagespace" title="" style="height:10px"></tr>
<tr>
<td>
<table border="0" cellpadding="0" cellspacing="0">
<tr class='athing' id='36826210'>
<td align="right" valign="top" class="title"><span class="rank">1.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826210'href='vote?id=36826210&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.lesswrong.com/posts/vfRpzyGsikujm9ujj/a-brief-history-of-computers" rel="noreferrer">A Brief History of Computers</a><span class="sitebit comhead"> (<a href="from?site=lesswrong.com"><span class="sitestr">lesswrong.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826210">31 points</span> by <a href="user?id=zdw" class="hnuser">zdw</a> <span class="age" title="2023-07-22T13:50:28"><a href="item?id=36826210">1 hour ago</a></span> <span id="unv_36826210"></span> | <a href="hide?id=36826210&amp;goto=news">hide</a> | <a href="item?id=36826210">3&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36813688'>
<td align="right" valign="top" class="title"><span class="rank">2.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36813688'href='vote?id=36813688&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.csmonitor.com/1994/0513/13082.html" rel="noreferrer">Consumer Software Is Expected to Be Next Fast-Growing Segment (1994)</a><span class="sitebit comhead"> (<a href="from?site=csmonitor.com"><span class="sitestr">csmonitor.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36813688">9 points</span> by <a href="user?id=1970-01-01" class="hnuser">1970-01-01</a> <span class="age" title="2023-07-21T13:46:46"><a href="item?id=36813688">1 hour ago</a></span> <span id="unv_36813688"></span> | <a href="hide?id=36813688&amp;goto=news">hide</a> | <a href="item?id=36813688">1&nbsp;comment</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36797650'>
<td align="right" valign="top" class="title"><span class="rank">3.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36797650'href='vote?id=36797650&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://en.wikipedia.org/wiki/MSX-DOS" rel="noreferrer">MSX-DOS</a><span class="sitebit comhead"> (<a href="from?site=wikipedia.org"><span class="sitestr">wikipedia.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36797650">82 points</span> by <a href="user?id=pavlov" class="hnuser">pavlov</a> <span class="age" title="2023-07-20T07:08:01"><a href="item?id=36797650">6 hours ago</a></span> <span id="unv_36797650"></span> | <a href="hide?id=36797650&amp;goto=news">hide</a> | <a href="item?id=36797650">26&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36827034'>
<td align="right" valign="top" class="title"><span class="rank">4.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36827034'href='vote?id=36827034&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.nytimes.com/interactive/2023/07/21/nyregion/nyc-developers-private-owned-public-spaces.html" rel="noreferrer">New Yorkers Got Broken Promises. Developers Got 20M Sq. Ft</a><span class="sitebit comhead"> (<a href="from?site=nytimes.com"><span class="sitestr">nytimes.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36827034">12 points</span> by <a href="user?id=asnyder" class="hnuser">asnyder</a> <span class="age" title="2023-07-22T15:27:37"><a href="item?id=36827034">20 minutes ago</a></span> <span id="unv_36827034"></span> | <a href="hide?id=36827034&amp;goto=news">hide</a> | <a href="item?id=36827034">1&nbsp;comment</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823565'>
<td align="right" valign="top" class="title"><span class="rank">5.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823565'href='vote?id=36823565&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="http://oldvcr.blogspot.com/2023/07/apples-interactive-television-box.html" rel="noreferrer">Apple&#x27;s interactive television box: Hacking the set top box System 7.1 in ROM</a><span class="sitebit comhead"> (<a href="from?site=oldvcr.blogspot.com"><span class="sitestr">oldvcr.blogspot.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823565">160 points</span> by <a href="user?id=todsacerdoti" class="hnuser">todsacerdoti</a> <span class="age" title="2023-07-22T05:30:35"><a href="item?id=36823565">10 hours ago</a></span> <span id="unv_36823565"></span> | <a href="hide?id=36823565&amp;goto=news">hide</a> | <a href="item?id=36823565">20&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823605'>
<td align="right" valign="top" class="title"><span class="rank">6.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823605'href='vote?id=36823605&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://cpu.land/" rel="noreferrer">Putting the “You” in CPU</a><span class="sitebit comhead"> (<a href="from?site=cpu.land"><span class="sitestr">cpu.land</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823605">187 points</span> by <a href="user?id=uneekname" class="hnuser">uneekname</a> <span class="age" title="2023-07-22T05:38:53"><a href="item?id=36823605">10 hours ago</a></span> <span id="unv_36823605"></span> | <a href="hide?id=36823605&amp;goto=news">hide</a> | <a href="item?id=36823605">73&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36826177'>
<td align="right" valign="top" class="title"><span class="rank">7.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826177'href='vote?id=36826177&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3028942/" rel="noreferrer">Botulinum toxin: Bioweapon and magic drug</a><span class="sitebit comhead"> (<a href="from?site=nih.gov"><span class="sitestr">nih.gov</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826177">12 points</span> by <a href="user?id=redbell" class="hnuser">redbell</a> <span class="age" title="2023-07-22T13:46:08"><a href="item?id=36826177">2 hours ago</a></span> <span id="unv_36826177"></span> | <a href="hide?id=36826177&amp;goto=news">hide</a> | <a href="item?id=36826177">10&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824595'>
<td align="right" valign="top" class="title"><span class="rank">8.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824595'href='vote?id=36824595&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://github.com/underpig1/octos">Octos HTML live wallpaper engine</a><span class="sitebit comhead"> (<a href="from?site=github.com/underpig1"><span class="sitestr">github.com/underpig1</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824595">85 points</span> by <a href="user?id=underpig1" class="hnuser">underpig1</a> <span class="age" title="2023-07-22T08:56:14"><a href="item?id=36824595">6 hours ago</a></span> <span id="unv_36824595"></span> | <a href="hide?id=36824595&amp;goto=news">hide</a> | <a href="item?id=36824595">23&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825992'>
<td align="right" valign="top" class="title"><span class="rank">9.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825992'href='vote?id=36825992&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.shuttle.rs/blog/2022/06/30/error-handling">More than you&#x27;ve ever wanted to know about errors in Rust</a><span class="sitebit comhead"> (<a href="from?site=shuttle.rs"><span class="sitestr">shuttle.rs</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825992">13 points</span> by <a href="user?id=asymmetric" class="hnuser">asymmetric</a> <span class="age" title="2023-07-22T13:20:02"><a href="item?id=36825992">2 hours ago</a></span> <span id="unv_36825992"></span> | <a href="hide?id=36825992&amp;goto=news">hide</a> | <a href="item?id=36825992">3&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825345'>
<td align="right" valign="top" class="title"><span class="rank">10.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825345'href='vote?id=36825345&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://ferd.ca/embrace-complexity-tighten-your-feedback-loops.html" rel="noreferrer">Embrace Complexity; Tighten Your Feedback Loops</a><span class="sitebit comhead"> (<a href="from?site=ferd.ca"><span class="sitestr">ferd.ca</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825345">27 points</span> by <a href="user?id=lutzh" class="hnuser">lutzh</a> <span class="age" title="2023-07-22T11:30:46"><a href="item?id=36825345">4 hours ago</a></span> <span id="unv_36825345"></span> | <a href="hide?id=36825345&amp;goto=news">hide</a> | <a href="item?id=36825345">1&nbsp;comment</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823516'>
<td align="right" valign="top" class="title"><span class="rank">11.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823516'href='vote?id=36823516&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://miparnisariblog.wordpress.com/2023/03/29/aws-networking-concepts/" rel="noreferrer">AWS networking concepts in a diagram</a><span class="sitebit comhead"> (<a href="from?site=miparnisariblog.wordpress.com"><span class="sitestr">miparnisariblog.wordpress.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823516">171 points</span> by <a href="user?id=mparnisari" class="hnuser">mparnisari</a> <span class="age" title="2023-07-22T05:18:37"><a href="item?id=36823516">10 hours ago</a></span> <span id="unv_36823516"></span> | <a href="hide?id=36823516&amp;goto=news">hide</a> | <a href="item?id=36823516">66&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824450'>
<td align="right" valign="top" class="title"><span class="rank">12.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824450'href='vote?id=36824450&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://plane.so" rel="noreferrer">Plane Open-source Jira alternative</a><span class="sitebit comhead"> (<a href="from?site=plane.so"><span class="sitestr">plane.so</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824450">240 points</span> by <a href="user?id=prhrb" class="hnuser">prhrb</a> <span class="age" title="2023-07-22T08:21:40"><a href="item?id=36824450">7 hours ago</a></span> <span id="unv_36824450"></span> | <a href="hide?id=36824450&amp;goto=news">hide</a> | <a href="item?id=36824450">93&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825481'>
<td align="right" valign="top" class="title"><span class="rank">13.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825481'href='vote?id=36825481&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.frontiersin.org/articles/10.3389/fnsys.2017.00093/full" rel="noreferrer">Neurotechnology: Current Developments and Ethical Issues</a><span class="sitebit comhead"> (<a href="from?site=frontiersin.org"><span class="sitestr">frontiersin.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825481">28 points</span> by <a href="user?id=Quinzel" class="hnuser">Quinzel</a> <span class="age" title="2023-07-22T11:57:41"><a href="item?id=36825481">3 hours ago</a></span> <span id="unv_36825481"></span> | <a href="hide?id=36825481&amp;goto=news">hide</a> | <a href="item?id=36825481">15&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823375'>
<td align="right" valign="top" class="title"><span class="rank">14.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823375'href='vote?id=36823375&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://maheshba.bitbucket.io/blog/2023/07/12/Design.html" rel="noreferrer">What we talk about when we talk about System Design</a><span class="sitebit comhead"> (<a href="from?site=maheshba.bitbucket.io"><span class="sitestr">maheshba.bitbucket.io</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823375">166 points</span> by <a href="user?id=scv119" class="hnuser">scv119</a> <span class="age" title="2023-07-22T04:47:24"><a href="item?id=36823375">11 hours ago</a></span> <span id="unv_36823375"></span> | <a href="hide?id=36823375&amp;goto=news">hide</a> | <a href="item?id=36823375">22&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823524'>
<td align="right" valign="top" class="title"><span class="rank">15.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823524'href='vote?id=36823524&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.fraunhofer.de/en/research/lighthouse-projects-fraunhofer-initiatives/fraunhofer-lighthouse-projects/elkawe.html" rel="noreferrer">ElKaWe Electrocaloric heat pumps</a><span class="sitebit comhead"> (<a href="from?site=fraunhofer.de"><span class="sitestr">fraunhofer.de</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823524">140 points</span> by <a href="user?id=danans" class="hnuser">danans</a> <span class="age" title="2023-07-22T05:20:10"><a href="item?id=36823524">10 hours ago</a></span> <span id="unv_36823524"></span> | <a href="hide?id=36823524&amp;goto=news">hide</a> | <a href="item?id=36823524">73&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824607'>
<td align="right" valign="top" class="title"><span class="rank">16.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824607'href='vote?id=36824607&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://theecologist.org/2015/jun/05/over-grazing-and-desertification-syrian-steppe-are-root-causes-war" rel="noreferrer">Over-grazing and desertification in the Syrian steppe root causes of war (2015)</a><span class="sitebit comhead"> (<a href="from?site=theecologist.org"><span class="sitestr">theecologist.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824607">64 points</span> by <a href="user?id=joveian" class="hnuser">joveian</a> <span class="age" title="2023-07-22T08:58:09"><a href="item?id=36824607">6 hours ago</a></span> <span id="unv_36824607"></span> | <a href="hide?id=36824607&amp;goto=news">hide</a> | <a href="item?id=36824607">43&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825913'>
<td align="right" valign="top" class="title"><span class="rank">17.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825913'href='vote?id=36825913&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.redmine.org/" rel="noreferrer">Redmine open-source project management</a><span class="sitebit comhead"> (<a href="from?site=redmine.org"><span class="sitestr">redmine.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825913">34 points</span> by <a href="user?id=synergy20" class="hnuser">synergy20</a> <span class="age" title="2023-07-22T13:06:39"><a href="item?id=36825913">2 hours ago</a></span> <span id="unv_36825913"></span> | <a href="hide?id=36825913&amp;goto=news">hide</a> | <a href="item?id=36825913">24&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36797471'>
<td align="right" valign="top" class="title"><span class="rank">18.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36797471'href='vote?id=36797471&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.theregister.com/2023/07/19/google_cuts_internet/" rel="noreferrer">Google tries internet air-gap for some staff PCs</a><span class="sitebit comhead"> (<a href="from?site=theregister.com"><span class="sitestr">theregister.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36797471">67 points</span> by <a href="user?id=beardyw" class="hnuser">beardyw</a> <span class="age" title="2023-07-20T06:35:56"><a href="item?id=36797471">9 hours ago</a></span> <span id="unv_36797471"></span> | <a href="hide?id=36797471&amp;goto=news">hide</a> | <a href="item?id=36797471">73&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36825204'>
<td align="right" valign="top" class="title"><span class="rank">19.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36825204'href='vote?id=36825204&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.science.org/content/article/i-thought-i-wanted-be-faculty-member-then-i-served-hiring-committee" rel="noreferrer">I thought I wanted to be a professor, then I served on a hiring committee (2021)</a><span class="sitebit comhead"> (<a href="from?site=science.org"><span class="sitestr">science.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36825204">104 points</span> by <a href="user?id=ykonstant" class="hnuser">ykonstant</a> <span class="age" title="2023-07-22T11:00:42"><a href="item?id=36825204">4 hours ago</a></span> <span id="unv_36825204"></span> | <a href="hide?id=36825204&amp;goto=news">hide</a> | <a href="item?id=36825204">72&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36822880'>
<td align="right" valign="top" class="title"><span class="rank">20.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36822880'href='vote?id=36822880&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://gwern.net/search" rel="noreferrer">Internet search tips</a><span class="sitebit comhead"> (<a href="from?site=gwern.net"><span class="sitestr">gwern.net</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36822880">161 points</span> by <a href="user?id=herbertl" class="hnuser">herbertl</a> <span class="age" title="2023-07-22T03:22:43"><a href="item?id=36822880">12 hours ago</a></span> <span id="unv_36822880"></span> | <a href="hide?id=36822880&amp;goto=news">hide</a> | <a href="item?id=36822880">58&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36803767'>
<td align="right" valign="top" class="title"><span class="rank">21.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36803767'href='vote?id=36803767&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.sciencedirect.com/science/article/abs/pii/S0094576518314000" rel="noreferrer">Bayesian methods to provide probablistic solution for the Drake equation (2019)</a><span class="sitebit comhead"> (<a href="from?site=sciencedirect.com"><span class="sitestr">sciencedirect.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36803767">22 points</span> by <a href="user?id=benbreen" class="hnuser">benbreen</a> <span class="age" title="2023-07-20T17:28:02"><a href="item?id=36803767">4 hours ago</a></span> <span id="unv_36803767"></span> | <a href="hide?id=36803767&amp;goto=news">hide</a> | <a href="item?id=36803767">18&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824330'>
<td align="right" valign="top" class="title"><span class="rank">22.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824330'href='vote?id=36824330&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://biofabrik.com/biotumen/" rel="noreferrer">Biotumen: Bitumen Reinvented</a><span class="sitebit comhead"> (<a href="from?site=biofabrik.com"><span class="sitestr">biofabrik.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824330">40 points</span> by <a href="user?id=patall" class="hnuser">patall</a> <span class="age" title="2023-07-22T07:57:44"><a href="item?id=36824330">7 hours ago</a></span> <span id="unv_36824330"></span> | <a href="hide?id=36824330&amp;goto=news">hide</a> | <a href="item?id=36824330">11&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36826111'>
<td align="right" valign="top" class="title"><span class="rank">23.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826111'href='vote?id=36826111&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.devever.net/~hl/passwords" rel="noreferrer">Why even let users set their own passwords?</a><span class="sitebit comhead"> (<a href="from?site=devever.net"><span class="sitestr">devever.net</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826111">103 points</span> by <a href="user?id=hlandau" class="hnuser">hlandau</a> <span class="age" title="2023-07-22T13:36:22"><a href="item?id=36826111">2 hours ago</a></span> <span id="unv_36826111"></span> | <a href="hide?id=36826111&amp;goto=news">hide</a> | <a href="item?id=36826111">121&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36784114'>
<td align="right" valign="top" class="title"><span class="rank">24.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36784114'href='vote?id=36784114&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://buildinghealthier.substack.com/p/confronting-failure-as-a-core-life" rel="noreferrer">Confronting failure as a core life skill</a><span class="sitebit comhead"> (<a href="from?site=buildinghealthier.substack.com"><span class="sitestr">buildinghealthier.substack.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36784114">168 points</span> by <a href="user?id=blh75" class="hnuser">blh75</a> <span class="age" title="2023-07-19T10:05:42"><a href="item?id=36784114">15 hours ago</a></span> <span id="unv_36784114"></span> | <a href="hide?id=36784114&amp;goto=news">hide</a> | <a href="item?id=36784114">75&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36808566'>
<td align="right" valign="top" class="title"><span class="rank">25.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36808566'href='vote?id=36808566&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://publicdomainreview.org/collection/hokusai-warriors/" rel="noreferrer">Hokusais Illustrated Warrior Vanguard of Japan and China (1836)</a><span class="sitebit comhead"> (<a href="from?site=publicdomainreview.org"><span class="sitestr">publicdomainreview.org</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36808566">19 points</span> by <a href="user?id=tintinnabula" class="hnuser">tintinnabula</a> <span class="age" title="2023-07-21T00:19:50"><a href="item?id=36808566">2 hours ago</a></span> <span id="unv_36808566"></span> | <a href="hide?id=36808566&amp;goto=news">hide</a> | <a href="item?id=36808566">discuss</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36823723'>
<td align="right" valign="top" class="title"><span class="rank">26.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36823723'href='vote?id=36823723&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://bun.sh/blog/bun-v0.7.0" rel="noreferrer">Bun v0.7.0</a><span class="sitebit comhead"> (<a href="from?site=bun.sh"><span class="sitestr">bun.sh</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36823723">163 points</span> by <a href="user?id=sshroot" class="hnuser">sshroot</a> <span class="age" title="2023-07-22T06:04:11"><a href="item?id=36823723">9 hours ago</a></span> <span id="unv_36823723"></span> | <a href="hide?id=36823723&amp;goto=news">hide</a> | <a href="item?id=36823723">107&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36824856'>
<td align="right" valign="top" class="title"><span class="rank">27.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36824856'href='vote?id=36824856&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://www.simpsonsarchive.com/news/tomacco.html" rel="noreferrer">Simpson Fan Grows Tomacco (2003)</a><span class="sitebit comhead"> (<a href="from?site=simpsonsarchive.com"><span class="sitestr">simpsonsarchive.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36824856">81 points</span> by <a href="user?id=pipeline_peak" class="hnuser">pipeline_peak</a> <span class="age" title="2023-07-22T09:44:39"><a href="item?id=36824856">6 hours ago</a></span> <span id="unv_36824856"></span> | <a href="hide?id=36824856&amp;goto=news">hide</a> | <a href="item?id=36824856">55&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36822530'>
<td align="right" valign="top" class="title"><span class="rank">28.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36822530'href='vote?id=36822530&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://newsreleases.sandia.gov/healing_metals/" rel="noreferrer">Discovery: Metals can heal themselves</a><span class="sitebit comhead"> (<a href="from?site=sandia.gov"><span class="sitestr">sandia.gov</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36822530">77 points</span> by <a href="user?id=bobvanluijt" class="hnuser">bobvanluijt</a> <span class="age" title="2023-07-22T02:19:30"><a href="item?id=36822530">13 hours ago</a></span> <span id="unv_36822530"></span> | <a href="hide?id=36822530&amp;goto=news">hide</a> | <a href="item?id=36822530">24&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36783937'>
<td align="right" valign="top" class="title"><span class="rank">29.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36783937'href='vote?id=36783937&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://genuineideas.com/ArticlesIndex/pressuremarinade.html" rel="noreferrer">Pressure and vacuum marination does not work (2016)</a><span class="sitebit comhead"> (<a href="from?site=genuineideas.com"><span class="sitestr">genuineideas.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36783937">87 points</span> by <a href="user?id=OJFord" class="hnuser">OJFord</a> <span class="age" title="2023-07-19T09:35:28"><a href="item?id=36783937">13 hours ago</a></span> <span id="unv_36783937"></span> | <a href="hide?id=36783937&amp;goto=news">hide</a> | <a href="item?id=36783937">57&nbsp;comments</a> </span>
</td>
</tr>
<tr class="spacer" style="height:5px"></tr>
<tr class='athing' id='36826664'>
<td align="right" valign="top" class="title"><span class="rank">30.</span></td>
<td valign="top" class="votelinks">
<center>
<a id='up_36826664'href='vote?id=36826664&amp;how=up&amp;goto=news'>
<div class='votearrow' title='upvote'></div>
</a>
</center>
</td>
<td class="title"><span class="titleline"><a href="https://news.mongabay.com/2023/07/scientists-fishing-boats-compete-with-whales-and-penguins-for-antarctic-krill/" rel="nofollow noreferrer">Scientists: Fishing boats compete with whales and penguins for Antarctic krill</a><span class="sitebit comhead"> (<a href="from?site=mongabay.com"><span class="sitestr">mongabay.com</span></a>)</span></span></td>
</tr>
<tr>
<td colspan="2"></td>
<td class="subtext"><span class="subline">
<span class="score" id="score_36826664">5 points</span> by <a href="user?id=PaulHoule" class="hnuser">PaulHoule</a> <span class="age" title="2023-07-22T14:47:25"><a href="item?id=36826664">1 hour ago</a></span> <span id="unv_36826664"></span> | <a href="hide?id=36826664&amp;goto=news">hide</a> | <a href="item?id=36826664">discuss</a> </span>
</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='?p=2' class='morelink' rel='next'>More</a></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<img src="s.gif" height="10" width="0">
<table width="100%" cellspacing="0" cellpadding="1">
<tr>
<td bgcolor="#ff6600"></td>
</tr>
</table>
<br>
<center>
<span class="yclinks"><a href="newsguidelines.html">Guidelines</a> | <a href="newsfaq.html">FAQ</a> | <a href="lists">Lists</a> | <a href="https://github.com/HackerNews/API">API</a> | <a href="security.html">Security</a> | <a href="https://www.ycombinator.com/legal/">Legal</a> | <a href="https://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>
</table>
</center>
</body>
<script type='text/javascript' src='hn.js?t8fsBYOw2Gz0ODjGokUo'></script>
</html>