HN user

aji

231 karma
Posts1
Comments82
View on HN

the star battle interface diverges from penpa, puzpre, and puzzleteam in a number of basic ways that actively make the solving experience worse imo:

- having to switch between "star" and "exclude" modes is annoying on desktop, and most sites allow right click for placing "exclude" marks. it was a surprise that right click not only popped up the context menu but also placed a star (in a wrong spot, of course).

- counting mistakes doesn't make sense for a binary determination puzzle like star battle imo (or most logic puzzles for that matter). solving on paper doesn't count mistakes so what does a digital solving interface gain by doing so?

as someone who does a lot of logic puzzles (and thus would be in the market for buying a puzzle set) these usability obstacles make the inclusion of star battle feel like an afterthought.

i never really liked CDATA but i'm not buying the argument here since you can do the escaping with replaceAll("]]>", "]]]]><![CDATA[>") instead of four replaceAlls. (assuming you are writing your own xml serializer in javascript in 2026 for some reason)

fun idea but "perfect pitch" is a little off the mark imo, as other people have mentioned. i think this sort of exercise would be good for training transcription skills and relative pitch if you weren't able to hear your guesses and the grading factored out global transposition i.e. by always considering the first note correct and applying the offset to the remaining notes

the author invented a definition of "flow" which is different from another common definition which roughly means "getting in the zone" and the result is dangerously clickbaity imo

i do my best work when i'm in the zone and it has nothing to do with whether the work itself is challenging or not. in fact, the more challenging something is, the easier it is for me to stay focused if i feel like i'm making progress

the importance of console verification is to make sure a TAS isn't relying on any emulator bugs (such as timing, uninitialized memory, etc) and would theoretically be possible on the actual hardware. it also speaks to the accuracy of the emulations themselves

I like using cumulative distributions because they make small changes in the data a little more obvious. e.g. if all the buckets are 10 but there's a section where they're 11, that difference will show up in a cumulative distribution as a bend in an otherwise straight line, which in my opinion is a much easier difference to see

I lucked into this pattern when I used ratpoison. Window 0 was always my terminal emulator (running tmux), window 1 was always Firefox. Additionally, tmux window 0 was always my IRC client. Getting between those apps quickly became muscle memory. I use a more conventional window manager now and it's noticeably clumsier.

I'm certainly no expert in motivation, and can't give you advice on your specific goals, but I personally find that reframing long term goals into short term goals can be a big source of motivation. for example, don't focus on bench pressing your own weight, focus instead on getting to the gym 3x or 4x a week and working on your bench press. don't focus on finishing that personal project, focus instead on making a little progress on your personal project every day or every week. having long term goals is still valuable, but having short term goals to focus on can make it a lot easier to find motivation. it's easy to get demotivated on big goals, but if in a given day you meet every single one of your daily goals, then you've aced that day as far as your goals are concerned. and you'll ace the next day, and the next, etc.

having a job with big impact and big money is a sizable goal that you won't reach overnight. you might not even reach it in a year, or several years, who knows. it's a big goal that's easy to lose motivation on. but reframing it into daily goals, and focusing on taking one step at a time, could be a source of motivation. just my 2¢

the way JS does closures, and the mandatory async nature of everything, leads to a world where you're working with functions a lot more than you would be in languages in the same family (garbage collected, lenient, a la python and ruby). from there, functional programming concepts like partial application and currying start to pop up. if you dive into frameworks like react.js, you start to encounter pure functions and immutability. it's not what I would call a "functional programming language", but I find the concepts show up more than usual, and I think that's because functions are one of the more advanced primitives in the language

Agreed. He has the following to say:

The easiest strategy in a case like this is usually to back in time: If the problem was caused by the unorthodox checkout-add-commit, then reset master to the point before that happened and try doing it a different way. That strategy wasn't available because X had already published the master with his back-end files, and a hundred other programmers had copies of them.

So resetting the commit isn't an option, but what about reverting it? It seems like the obvious alternative to me, I'm not sure why he didn't mention it.

Does it matter? If your email client doesn't understand enough of the markdown variant being used, then you should still be able to read the unrendered text. That's one of the great things about markdown.

it's obviously just a fun thought experiment.

and we'd probably dust off the old PDP7s and stuff that are more suited to this kind of bootstrapping, instead of jumping straight to ELF and x86

funny Seattle only has "Silicon Canal" for the bit around Fremont where Google, Adobe, Tableau, GeekWire, Facebook, etc. have offices. you'd think between Amazon, Microsoft, Expedia, Zillow, Redfin, and the countless other tech companies with headquarters or satellite offices in the area that some nickname would have sprung up for the whole region. "Silicon Isthmus" or something.

maybe we're still riding the "Jet City" thing from when Boeing was here?

I enjoyed the conciseness of the article, but I don't have a big stake in this field so I can't comment on the content itself. I wanted to make a small formatting note: having key parts of the article only as images (not reproduced or described in the text) is bad for accessibility, search engines, etc. an article should still make sense if you take out all the images

no, the compiler does this when generating code for functions and function calls

crt0.o is the glue between how the kernel loads a program into memory and how main() expects things to work. it does basic setup tasks that can vary between platforms, but is generally things like collecting command line arguments and setting up the stack. it will also invoke exit() if main() returns, since that's how the kernel expects the process to be destroyed

it's definitely a joke. everything in the store is overpriced, FAQ item "how can I uninstall linux" links to a video of a guy smashing a computer, etc. look at this FAQ item:

    What's with the stupid (logo|website|twitter|github account)?

    It would have been fantastic to eschew this ridiculousness,
    because we all make fun of branded vulnerabilities too, but
    this was not the right time to make that stand. So we
    created a website, an online shop, a twitter account, and
    used a logo that a professional designer created.
I think the author is just snarking about either branded vulnerabilities or the hype that this issue is getting. or both?

Seconding this suggestion. These are the sorts of things managers are expected to deal with, and it's important to engage them when you're unhappy with your team's situation. Knowing what's expected of you will make it easier to decide if changing jobs is the right choice for your career. If you don't feel comfortable talking to your manager about this, that's also a data point worth bringing into the decision.

I don't know about the cross-domain case but on the same "domain" (file: protocol) I used the following two HTML files

link.html:

    <a id="link" href="opener.html" target="_blank">Click</a>
opener.html:
    <script>window.opener.document.getElementById("link").href = "https://google.com";</script>
and sure enough the link was changed. If this works cross-domain, this is kind of a big deal, isn't it?