<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: joshhug</title><link>https://news.ycombinator.com/user?id=joshhug</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 26 Apr 2026 19:24:46 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=joshhug" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by joshhug in "Gemini 3.0 spotted in the wild through A/B testing"]]></title><description><![CDATA[
<p>Ah, that's because the "python" is actually just using javascript evals.<p>} else if (mode === 'python') {
                if (cmd === 'exit()') { mode = 'sh'; }
                else {
                    try {
                        // Safe(ish) eval for demo purposes. 
                        // In production, never use eval. Use a JS parser library.
                        // Mapping JS math to appear somewhat pythonesque
                        let result = eval(cmd);
                        if (result !== undefined) output(String(result));
                    } catch (e) {
                        output(`Traceback (most recent call last):\n  File "<stdin>", line 1, in <module>\n${e.name}: ${e.message}`, true);
                    }
                }</p>
]]></description><pubDate>Thu, 16 Oct 2025 19:00:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45609322</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=45609322</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45609322</guid></item><item><title><![CDATA[New comment by joshhug in "Gemini 3.0 spotted in the wild through A/B testing"]]></title><description><![CDATA[
<p>This was cool: <a href="https://codepen.io/ChetasLua/pen/yyezLjN" rel="nofollow">https://codepen.io/ChetasLua/pen/yyezLjN</a><p>Somewhat amusing 4th wall breaking if you open Python from the terminal in the fake Windows. Examples:
1. If you try to print something using the "Python" print keyword, it opens a print dialog in your browser.
2. If you try to open a file using the "Python" open keyword, it opens a new browser tab trying to access that file.<p>That is, it's forwarding the print and open calls to your browser.</p>
]]></description><pubDate>Thu, 16 Oct 2025 18:57:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45609293</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=45609293</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45609293</guid></item><item><title><![CDATA[New comment by joshhug in "Square Theory"]]></title><description><![CDATA[
<p>The part about dad joke square theory got me thinking about this classic scarecrow joke, which feels like an example from some higher order version of square theory:<p>"Why was the scarecrow given an award?"<p>"He was out standing in his field."<p>The fact that a scarecrow's job is to be "out standing in his field", and that  excelling at one's job can be phrased as being "outstanding in his field" is an incredible linguistic coincidence.</p>
]]></description><pubDate>Tue, 27 May 2025 17:06:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=44108776</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=44108776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44108776</guid></item><item><title><![CDATA[New comment by joshhug in "Visualizing 100k Years of Earth in WebGL"]]></title><description><![CDATA[
<p>Also the African humid period isn't visually apparent (<a href="https://en.wikipedia.org/wiki/African_humid_period" rel="nofollow">https://en.wikipedia.org/wiki/African_humid_period</a>).<p>But very cool!</p>
]]></description><pubDate>Mon, 19 May 2025 15:47:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=44031080</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=44031080</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44031080</guid></item><item><title><![CDATA[New comment by joshhug in "Ask HN: Is anybody building an alternative transformer?"]]></title><description><![CDATA[
<p>I am told that an interesting alternative is the Structured State Space for Sequence Modeling (S4). I don't personally know much about this technique, but didn't see anybody else mention this in this thread.<p><a href="https://srush.github.io/annotated-s4/" rel="nofollow">https://srush.github.io/annotated-s4/</a></p>
]]></description><pubDate>Sat, 15 Feb 2025 00:36:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=43054647</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=43054647</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43054647</guid></item><item><title><![CDATA[New comment by joshhug in "Universal optimality of Dijkstra via beyond-worst-case heaps"]]></title><description><![CDATA[
<p>I had him as a teaching assistant when I was teaching data structures at Princeton back in Fall 2013. Princeton CS has their professors rotate through as TAs every so often through their courses.<p>That semester, I made a slight mistake on the final exam where I asked students to create an algorithm that could find the second shortest path from s to every other vertex in a graph. I forgot to specify that the second shortest path should be simple (i.e. should not reuse any vertex twice). Having to deal with non-simple paths makes the problem much much harder.<p>None of the students figured it out in the time available, and I'm sure I would also have been stumped if I had tried to solve the problem. Bob figured it out though. And then I remember he graded all 150 solutions to the problem himself, having as a blast as he went through students attempts at an effectively impossible problem.</p>
]]></description><pubDate>Sat, 26 Oct 2024 05:34:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=41952776</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=41952776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41952776</guid></item><item><title><![CDATA[New comment by joshhug in "Learning to Reason with LLMs"]]></title><description><![CDATA[
<p>I just tried o1, and it did pretty well with understanding this minor issue with subtitles on a Dutch TV show we were watching.<p>I asked it "I was watching a show and in the subtitles an umlaut u was rendered as 1/4, i.e. a single character that said 1/4. Why would this happen?"<p>and it gave a pretty thorough explanation of exactly which encoding issue was to blame.<p><a href="https://chatgpt.com/share/66e37145-72bc-800a-be7b-f7c76471a1bd" rel="nofollow">https://chatgpt.com/share/66e37145-72bc-800a-be7b-f7c76471a1...</a></p>
]]></description><pubDate>Thu, 12 Sep 2024 22:56:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=41526499</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=41526499</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41526499</guid></item><item><title><![CDATA[New comment by joshhug in "Cerebras Inference: AI at Instant Speed"]]></title><description><![CDATA[
<p>That was interesting. I asked it to try to say something in another language, and she read it in a thick American accent. No surprise. Then I asked her to sing, and she said something like "asterisk in a robotic singing voice asterisk...", and then later explained that she's just text to speech. Ah, ok, that's about what I expected.<p>But then I asked her to integrate sin(x) * e^x and got this bizarre answer that started out as speech sounds but then degenerated into chaos. Out of curiosity, why and how did she end up generating samples that sounded rather unlike speech?<p>Here's a recording: <a href="https://youtu.be/wWhxF7ybiAc" rel="nofollow">https://youtu.be/wWhxF7ybiAc</a><p>FWIW, I can get this behavior pretty consistently if I chat with her a while about her voice capabilities and then go into a math question.</p>
]]></description><pubDate>Tue, 10 Sep 2024 18:19:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=41503913</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=41503913</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41503913</guid></item><item><title><![CDATA[New comment by joshhug in "I'm a Berkeley prof. Startup experience led me to update my 1,500 person class"]]></title><description><![CDATA[
<p>I'm curious to hear feedback, especially:<p>1. Given the limited amount of scarce student time I want to spend on this, do pull requests / GitHub actions tests (provided for them) / code reviews seem like the right team processes to introduce?<p>2. Each student's work is independent of every other student's. Is there some way to have them working on different pieces of the same problem, or having the students solutions interact in some deeper way than random selection in a lottery? On my first post of this idea, a user named taftster imagined taking inspiration from Factorio in some way, with students each contributing some piece of a large system.<p>3. Is there a way we could naturally allow pull requests for the contest code or maybe even the README that establishes how to review pull requests? I'm thinking a bit about Fluxx or Nomic here.</p>
]]></description><pubDate>Mon, 06 Nov 2023 20:13:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=38168286</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38168286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38168286</guid></item><item><title><![CDATA[I'm a Berkeley prof. Startup experience led me to update my 1,500 person class]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.perfectrec.com/posts/berkeley-1500-person-class-updates">https://www.perfectrec.com/posts/berkeley-1500-person-class-updates</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38168285">https://news.ycombinator.com/item?id=38168285</a></p>
<p>Points: 6</p>
<p># Comments: 2</p>
]]></description><pubDate>Mon, 06 Nov 2023 20:13:50 +0000</pubDate><link>https://www.perfectrec.com/posts/berkeley-1500-person-class-updates</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38168285</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38168285</guid></item><item><title><![CDATA[New comment by joshhug in "How I'm changing my 1500-person Berkeley CS class after working at a startup"]]></title><description><![CDATA[
<p>I'm curious to hear feedback, especially:<p>1. Given the limited amount of scarce student time I want to spend on this, do pull requests / GitHub actions tests (provided for them) / code reviews seem like the right team processes to introduce?<p>2. Each student's work is independent of every other student. Is there some way to have them working on different pieces of the same problem, or having the students solutions interact in some deeper way than random selection in a lottery? A user named taftster imagined taking inspiration from Factorio in some way, with students each contributing some piece of a system. I've so far lacked the creativity to imagine what the API for this might look like for this assessment.<p>3. Is there a way we could have students make pull requests for the contest code itself? I'm thinking a bit about Fluxx here.</p>
]]></description><pubDate>Thu, 02 Nov 2023 20:34:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=38119737</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38119737</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38119737</guid></item><item><title><![CDATA[How I'm changing my 1500-person Berkeley CS class after working at a startup]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.perfectrec.com/posts/how-im-changing-my-1500-person-berkeley-cs-class-after-working-at-a-startup">https://www.perfectrec.com/posts/how-im-changing-my-1500-person-berkeley-cs-class-after-working-at-a-startup</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38119736">https://news.ycombinator.com/item?id=38119736</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 02 Nov 2023 20:34:05 +0000</pubDate><link>https://www.perfectrec.com/posts/how-im-changing-my-1500-person-berkeley-cs-class-after-working-at-a-startup</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38119736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38119736</guid></item><item><title><![CDATA[New comment by joshhug in "I'm a Berkeley prof. Working at a startup led me to update my 1500-person class"]]></title><description><![CDATA[
<p>Like a lot of schools, our Data Structures course doubles as a soft intro to software engineering. I want them to know how to solve real problems efficiently and manage complexity.<p>Student time is incredibly precious. The hope here is that students will spend less than an hour on this, and in the process get a taste of how code reviews / automation can help teams function better. I'm hoping I can thread the needle and give them tools that will help them more efficiently complete their capstone project at the end of the semester, without spending too much of their time teaching them these tools.<p>FWIW, we have discussed the idea of a lower division software engineering class, and I was really hoping Pamela Fox would do this before she headed back to industry (interesting story there: <a href="https://blog.pamelafox.org/2022/05/my-experience-as-unit-18-berkeley.html" rel="nofollow noreferrer">https://blog.pamelafox.org/2022/05/my-experience-as-unit-18-...</a>). We do have an upper div software engineering course as well, though it's not taken by most of our students.</p>
]]></description><pubDate>Wed, 01 Nov 2023 11:40:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=38096991</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38096991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38096991</guid></item><item><title><![CDATA[New comment by joshhug in "I'm a Berkeley prof. Working at a startup led me to update my 1500-person class"]]></title><description><![CDATA[
<p>I'll get pondering. Having some sort of rube goldeberg-esque mega project was my original idea, but finding a specific form for it has been elusive.<p>Taking inspiration from Factorio in some way is an interesting proposition. Will consider!</p>
]]></description><pubDate>Sat, 28 Oct 2023 19:46:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=38052781</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38052781</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38052781</guid></item><item><title><![CDATA[New comment by joshhug in "I'm a Berkeley prof. Working at a startup led me to update my 1500-person class"]]></title><description><![CDATA[
<p>I like these! And I encourage a little bit of cheating. I'm curious to see how the particularly clever students will subvert the system.<p>As it happens, I had a fun assignment all about subverting the system back in the day when I taught security at Princeton back in 2012. In the final assignment (assignment 8), students were given a Linux disk image of a hard drive owned by a guy named Nefarious who had committed a murder. This was an assignment originally created by J Alex Halderman and Ed Felton, but I went a little extra in my version.<p>In the assignment text, I mentioned that Nefarious was originally arrested due to an anonymous tip from a pseudonymous "Cecco Beppe". Buried in /home/root on Nefarious's drive, there is an innocuously labeled file: CB.7z, which is notable only in that it is the only file on the drive dated 2012 (intentionally), years newer than all of the files on the drive. If one went to the trouble of unzipping this file, they'd realize it is a very small disk image inside the disk image.<p>Booting this image dropped the user into a chat with a depressed artificial intelligence (a custom ALICE chat bot, but with some hard coded responses to advance my story, this was pre-GPT) who, when prodded with the appropriate keywords, told the tale of the AI's depression about the murder and attempted but failed self-deletion -- leaving the AI nothing more than a pathetic and mostly incoherent chat bot.<p>Further prodding led the AI to reveal the existence of secret assignment #9 as well as a URL for said assignment.<p>At the URL, there is a zip file containing a flawed pseudorandom generator, a file encryption tool that uses said PRGen, an encrypted file, and a truncated copy of the corresponding plaintext. The truncated plaintext explains that their next task is to complete decryption of the file, which they can do by exploiting the flaw in the PRGenerator.<p>The deciphered text then explains that their next task is to go back to the HW1 autograder and submit a new solution for HW1 (which, incidentally, was to develop a PRGen) -- but with the catch that they may only use print statements, i.e. they're just trying to trick the parser. This was based on an security flaw I'd discovered in Princeton's grader while I was working on their first Coursera courses.<p>Once students submitted this cheating print statement code via the usual Princeton web submit for HW1, the autograder activated a secret message that explained the final part of secret assignment 9, which was to steal the source code for the HW1 autograder and send it to me.<p>This last part could be done by simply writing code that opening the .class files and prints them to the screen when the autograder script runs.<p>I had around 10 students (out of ~150) figure this all out, it was great.</p>
]]></description><pubDate>Sat, 28 Oct 2023 18:32:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=38052241</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38052241</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38052241</guid></item><item><title><![CDATA[New comment by joshhug in "I'm a Berkeley prof. Working at a startup led me to update my 1500-person class"]]></title><description><![CDATA[
<p>1. It's definitely not about the Comparator. The lesson is all about showing off a CI/code review process. This is intended to be a short exercise, expected to take no more than an hour. The CI tests can't check that the comparator actually does what it claims, they'll just test that it's a valid comparator. And I'd build on this in a future pair assignment, where they can use some or all of the steps of the workflow from this more gimmicky assignment.<p>2. I agree it's a bad use of student time to see if someone's submission is unique, but I suspect there are ways we could structurally push students to do something unique, e.g. gus_massa's post below.<p>3. Yeah, it's a little weird. The integer submission is just to keep the macguffin of the assignment going. Also for N submissions, we'll use at least N-1 comparators. If we use RNG that cycles through every comparator before repeating, we can make sure everyone gets used at least once.</p>
]]></description><pubDate>Sat, 28 Oct 2023 18:26:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=38052196</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38052196</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38052196</guid></item><item><title><![CDATA[New comment by joshhug in "I'm a Berkeley prof. Working at a startup led me to update my 1500-person class"]]></title><description><![CDATA[
<p>This is a weird assignment idea. I’d love to hear what you think, how you might improve it, etc.<p>Some specific open questions I have:<p>1. How can I nudge students towards being creative with their comparators so that we get more variety?<p>2. Is there a natural extension that would get students working on the same files, yielding a richer demonstration of CI?<p>3. Could we allow students to somehow edit the contest code itself without breaking the entire idea of the project?</p>
]]></description><pubDate>Thu, 26 Oct 2023 17:56:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=38029279</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38029279</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38029279</guid></item><item><title><![CDATA[I'm a Berkeley prof. Working at a startup led me to update my 1500-person class]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.perfectrec.com/posts/im-a-berkeley-prof-working-at-a-startup-led-me-to-update-my-1500-person">https://www.perfectrec.com/posts/im-a-berkeley-prof-working-at-a-startup-led-me-to-update-my-1500-person</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=38029278">https://news.ycombinator.com/item?id=38029278</a></p>
<p>Points: 19</p>
<p># Comments: 14</p>
]]></description><pubDate>Thu, 26 Oct 2023 17:56:24 +0000</pubDate><link>https://www.perfectrec.com/posts/im-a-berkeley-prof-working-at-a-startup-led-me-to-update-my-1500-person</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=38029278</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38029278</guid></item><item><title><![CDATA[Understanding PurpleAir vs. AirNow.gov Measurements of Wood Smoke Pollution]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/@16fcali/understanding-purpleair-vs-airnow-gov-measurements-of-wood-smoke-pollution-562923a55226">https://medium.com/@16fcali/understanding-purpleair-vs-airnow-gov-measurements-of-wood-smoke-pollution-562923a55226</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=24240517">https://news.ycombinator.com/item?id=24240517</a></p>
<p>Points: 10</p>
<p># Comments: 3</p>
]]></description><pubDate>Sat, 22 Aug 2020 00:39:59 +0000</pubDate><link>https://medium.com/@16fcali/understanding-purpleair-vs-airnow-gov-measurements-of-wood-smoke-pollution-562923a55226</link><dc:creator>joshhug</dc:creator><comments>https://news.ycombinator.com/item?id=24240517</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=24240517</guid></item></channel></rss>