<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: senex</title><link>https://news.ycombinator.com/user?id=senex</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 09 May 2026 03:09:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=senex" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by senex in "Database mocks are not worth it"]]></title><description><![CDATA[
<p>Does anyone have experience making tests against real databases fast?<p>I resonate with the sentiment of this article, but have struggled to find an alternative that’s fast enough as the test suite grows, isn’t flakey in CI, and is able to share the production schema definition for relevant relations.<p>I’d love to hear more from anyone that’s solved for some of these constraints!</p>
]]></description><pubDate>Mon, 30 Dec 2024 20:51:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=42553368</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=42553368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42553368</guid></item><item><title><![CDATA[New comment by senex in "Advanced Python Mastery"]]></title><description><![CDATA[
<p>You could “yield” the record instead of constructing the list. This makes “read_portfolio” into an iterator instead of returning a list. Use a list comprehension or list constructor to convert the iterator to a list if needed.</p>
]]></description><pubDate>Wed, 19 Jul 2023 15:11:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=36787768</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=36787768</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36787768</guid></item><item><title><![CDATA[New comment by senex in "C.S. Lewis on the Reading of Old Books"]]></title><description><![CDATA[
<p>would old be something like: implementation is no longer relevant (the software itself is obsoleted), but the idea is seminal -- a basic conceptual building block upon which current systems are implemented? Example: Lambda Papers (<a href="https://en.wikisource.org/wiki/Lambda_Papers" rel="nofollow">https://en.wikisource.org/wiki/Lambda_Papers</a>)</p>
]]></description><pubDate>Mon, 03 Dec 2018 21:03:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=18592971</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=18592971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18592971</guid></item><item><title><![CDATA[New comment by senex in "Bjarne Stroustrup Awarded 2017 Faraday Medal"]]></title><description><![CDATA[
<p>This is really interesting. What kind of metrics is the culture focused on? How were they established. Can you think of examples when critical/deliberate decisions were made to pursue the integrity of the culture (rather than shifting or broadening focus)? Has cultural orientation or measurements changed over time? How and why?<p>Are there other examples of cultures focused on particular metrics that have flourished? Or faded away?<p>Super curious...</p>
]]></description><pubDate>Tue, 26 Sep 2017 04:03:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=15336039</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=15336039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15336039</guid></item><item><title><![CDATA[New comment by senex in "Japan’s labor market is tight, and higher wages may be needed to retain workers"]]></title><description><![CDATA[
<p>I work for a global / English-speaking company in Japan. We don't have futsal and basketball instead of vball, but it's pretty easy to get started. PM me if you're interested.</p>
]]></description><pubDate>Thu, 03 Aug 2017 10:52:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=14918472</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=14918472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14918472</guid></item><item><title><![CDATA[New comment by senex in "Ask HN: What is the biggest untapped opportunity for startups?"]]></title><description><![CDATA[
<p>A related market for some of this tech: remote interviews. I've seen lots of solutions for this: collaborative code editors, hangouts, Skype etc. There are frequently problems with bandwidth and friction with coordination (handoff to other interviewers).<p>Solution to "frictionless" remote work / collaboration among teams (not just engineers) seems similar to interview problem. The target market may also be distinct (teams don't remote work, but remote interviews are common).<p>moocs might benefit too?</p>
]]></description><pubDate>Mon, 06 Feb 2017 08:38:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=13577635</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=13577635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13577635</guid></item><item><title><![CDATA[New comment by senex in "WTF is a container?"]]></title><description><![CDATA[
<p>I really like: daemontools + static binary + setuidgid and maybe chroot.<p>Or mesos where everything needs to be in a tarball, which is extracted and sole program run.<p>If stuff is statically linked and related files (config, assets, ...) are part of bundle that can be chrooted, what is the value add of a container?</p>
]]></description><pubDate>Mon, 17 Oct 2016 14:00:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=12725048</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12725048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12725048</guid></item><item><title><![CDATA[New comment by senex in "Racket – Lisp beyond Clojure"]]></title><description><![CDATA[
<p>Yep, you're absolutely right. I guess that maybe if you care about inventing new kinds of loops (e.g. a DSL that wants to loop as a specialized kind of `fold` construct), there's more flexibility with TCO.<p>But Clojure shows that there's tons of mileage and composability that can happen by using runtime protocols and tasteful language-design decisions even without TCO.<p>Capturing continuations is another interesting theoretical outcome of TCO, although as various scheme implementations show: the approach to supporting TCO also imposes some performance constraints on call/cc.</p>
]]></description><pubDate>Tue, 27 Sep 2016 06:13:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=12587775</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12587775</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12587775</guid></item><item><title><![CDATA[New comment by senex in "Racket – Lisp beyond Clojure"]]></title><description><![CDATA[
<p>Another thing to mention: having guarantee of TCO supports higher-level control-flow abstractions (capturing continuations), which is also an interesting outcome...</p>
]]></description><pubDate>Tue, 27 Sep 2016 06:09:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=12587767</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12587767</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12587767</guid></item><item><title><![CDATA[New comment by senex in "Racket – Lisp beyond Clojure"]]></title><description><![CDATA[
<p>Yep, and the same can be implemented in any language that supports functions-as-objects (for example, javascript).<p>It's a practical solution/workaround, but isn't quite composable/generalizable as first-class support for TCO (unless the community is willing to follow some convention like "TCO-like behavior is a 'good thing' and so libraries should try to support and interface compatible with `trampoline`".<p>This is a little bit like `function<i>` / yield in newer versions of Javascript. It's not TCO, but it is a strong community convention (with the assist of special syntax to enforce the semantic).<p>Clojure is a great example of how practical/tasteful decisions by language author can create re-usable abstractions that are really powerful (even while at the same time working around limitations of the underlying technology).<p>Some might also argue that TCO is "bad" because it's less debuggable (e.g. when an exception is thrown, the stack trace is gone). We can see the same phenomena with non-blocking IO, for example. So maybe it's a Good Thing to have "less general" semantics in a language (e.g. function</i>, trampoline, and loop/recur may be good-enough while at the same time preserving debuggability).<p>There are always tradeoffs. What's nice about general TCO is that the composibility of unrelated libraries/DSLs is more probable whereas with conventions like trampoline, DSL/library authors need to understand the advantages and design the DSL/library in a compatible way in advance. As Clojure shows with lazy sequences, this can absolutely work given enough community awareness of the convention.</p>
]]></description><pubDate>Tue, 27 Sep 2016 06:02:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=12587749</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12587749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12587749</guid></item><item><title><![CDATA[New comment by senex in "Racket – Lisp beyond Clojure"]]></title><description><![CDATA[
<p>When TCO is "lexically scoped" like loop/recur, the compiler can handle it.<p>When HoF are involved, you may have a case where a procedure calls a procedure-parameter, which calls another, and another... Something about the runtime has to recognize this or else the compiler has to accept more constrains.<p>See, for example, how Gambit-C implements tail calls by compiling modules to single C functions and how there is a trade off for procedure calls across module boundaries versus Chicken Scheme's approach to essentially garbage-collecting the call stack.</p>
]]></description><pubDate>Tue, 27 Sep 2016 04:57:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=12587518</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12587518</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12587518</guid></item><item><title><![CDATA[New comment by senex in "Racket – Lisp beyond Clojure"]]></title><description><![CDATA[
<p>An interesting thing about general tail recursion is that it's composable.<p>Closure's loop/recur is a special case implementation of a common pattern. That's Ok, but it can't extend.<p>Any higher order function in scheme can be parameterized with methods that should be tail recursive. No special language support needed. That's why for-each is a procedure instead of a special form in scheme.<p>This allows libraries (like SFRI-1) or DSLs to be created that expect callers can conform by contract instead of by using special forms. Callers, in turn, can create abstractions over the libraries and DSLs that are equally general, instead of being strongly influenced by what they're built on.<p>Clojure does a really nice job of creating reusable abstractions. From what I understand, tail-call optimization isn't possible in the JVM, so we have iterators and lazy evaluation first-class instead; which has other nice advantages for creating abstractions.</p>
]]></description><pubDate>Tue, 27 Sep 2016 04:49:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=12587499</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12587499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12587499</guid></item><item><title><![CDATA[New comment by senex in "Docker for Mac and Windows Is Now Generally Available and Ready for Production"]]></title><description><![CDATA[
<p>I've been tracking the beta for a while. I'm confused about this announcement. These issues still seem unresolved?<p>(1) docker can peg the CPU until it's restarted <a href="https://forums.docker.com/t/com-docker-xhyve-and-com-docker-osxfs-cpu-usage/10537/32" rel="nofollow">https://forums.docker.com/t/com-docker-xhyve-and-com-docker-...</a><p>(2) pinata was removed, so it can't be configured from CLI scripts <a href="https://forums.docker.com/t/pinata-missing-in-latest-mac-beta-1-11-2-beta15/15541" rel="nofollow">https://forums.docker.com/t/pinata-missing-in-latest-mac-bet...</a><p>(3) it's not possible to establish an ip-level route from the host to a container, which many dev environments depend on <a href="https://forums.docker.com/t/ip-routing-to-container/8424/14" rel="nofollow">https://forums.docker.com/t/ip-routing-to-container/8424/14</a><p>(4) filesystem can be slow <a href="https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076/168" rel="nofollow">https://forums.docker.com/t/file-access-in-mounted-volumes-e...</a><p>Are these fixed in stable? I'm personally stuck transitioning from docker-machine and (from the comments) it seems like other folks are as well...</p>
]]></description><pubDate>Fri, 29 Jul 2016 01:49:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=12184567</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12184567</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12184567</guid></item><item><title><![CDATA[New comment by senex in "NIST declares the age of SMS-based 2-factor authentication over"]]></title><description><![CDATA[
<p>I use Duo Mobile for some accounts; it supports push. Definitely nicer than rushing to type a number in before the timer expires :)</p>
]]></description><pubDate>Tue, 26 Jul 2016 04:09:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=12163280</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12163280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12163280</guid></item><item><title><![CDATA[New comment by senex in "Introducing Stack Overflow Documentation Beta"]]></title><description><![CDATA[
<p>Besides karma, I wonder if users will be motivated by career opportunities? Contributing to documentation could be a good signal to recruiters that are looking for experts in a particular technology.</p>
]]></description><pubDate>Thu, 21 Jul 2016 17:33:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=12138513</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=12138513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=12138513</guid></item><item><title><![CDATA[New comment by senex in "Introduction to Apache Mesos"]]></title><description><![CDATA[
<p>There are frameworks that run on Mesos capable of running Docker containers. Check out Singularity, for example.</p>
]]></description><pubDate>Mon, 30 Mar 2015 03:15:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=9287499</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=9287499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=9287499</guid></item><item><title><![CDATA[Finding key themes from free-text reviews]]></title><description><![CDATA[
<p>Article URL: <a href="http://tech.opentable.com/2015/01/12/finding-key-themes-from-free-text-reviews/">http://tech.opentable.com/2015/01/12/finding-key-themes-from-free-text-reviews/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=8876288">https://news.ycombinator.com/item?id=8876288</a></p>
<p>Points: 12</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 12 Jan 2015 20:41:35 +0000</pubDate><link>http://tech.opentable.com/2015/01/12/finding-key-themes-from-free-text-reviews/</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=8876288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=8876288</guid></item><item><title><![CDATA[New comment by senex in "Mono Developers start their own company"]]></title><description><![CDATA[
<p>Does anybody know how they'll be funded over the next few years?</p>
]]></description><pubDate>Mon, 16 May 2011 20:35:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=2554060</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=2554060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=2554060</guid></item><item><title><![CDATA[New comment by senex in "Pow 0.3.0 released (Zero-config Rack server for OS X)"]]></title><description><![CDATA[
<p>Congrats on this release, Sam. Pow just keeps getting better!</p>
]]></description><pubDate>Tue, 10 May 2011 22:16:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=2534293</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=2534293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=2534293</guid></item><item><title><![CDATA[New comment by senex in "Square has a competitor now - Intuit GoPayment"]]></title><description><![CDATA[
<p>I bought a burger from a mobile restaurant (large truck) the other day. They swiped my card through a Square reader. I appreciated not having to find an ATM. I'll eat there again next time it shows up near my office since the experience was so convenient (and the food was great :)</p>
]]></description><pubDate>Sun, 01 May 2011 18:07:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=2503585</link><dc:creator>senex</dc:creator><comments>https://news.ycombinator.com/item?id=2503585</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=2503585</guid></item></channel></rss>