HNHacker News
TopNewBestAskShowJobs

mcyc

356 karma · joined November 11, 2020

@me if you wanna talk about Korean + computers.

Also interested in high school cs education

Bsky: https://bsky.app/profile/mcognetta.bsky.social

Mastodon: https://sigmoid.social/@mc

Twitter: @marco_computers

Site: theoreticallygoodwithcomputers.com

meet.hn/city/35.6768601,139.7638947/Tokyo

submissionscomments
mcyc··on Collision Detection (2015)
Your videos are absolutely fantastic, thanks for making them!
mcyc··on FlashAttention-2, 2x faster than FlashAttention
SD1 uses a head dimension that is not supported by the old version of Flash Attention but is supported by this version.
mcyc··on Patent for attention-based sequence transduction neural networks (2019)
The mean transduction in the sense of sequence-to-sequence models (transducing one sequence to another).

Attention based models don't necessarily need to be sequence to sequence. They can be classifiers, decoder only, etc. Attention is just one tool in the ML architecture toolkit.

mcyc··on Irregular Expressions
While epsilon transitions often, but not always, cause this issue of not being able to complement the language by just flipping final/non-final states, it isn't always the case. For example, you can make an ambiguous NFA with no epsilon transitions by just doing epsilon removal, and then you still have the same problem but no non-trivial epsilon-reachable states!

On the other hand, you can have an unambiguous [1] NFA (for example, a DFA, but you insert some dummy epsilon transitions between a split up state) where you can just flip the final/non-final states and complement the language.

So, in the end, complementing languages described by NFAs without determinizing them first is a bit of a tricky problem.

[1]: https://en.wikipedia.org/wiki/Unambiguous_finite_automaton --- a superset of DFAs, but they can have epsilon transitions

mcyc··on Irregular Expressions
The parent comment asked specifically about negating the finality of each state, which I addressed. As for how to actually implement complement in a regex engine, there are certainly some strategies like the one you mentioned that could be used (but the point of my comment was that just swapping final/non-final states is not a valid one).
mcyc··on Irregular Expressions
It's because this produces NFAs not DFAs (due to the epsilon arcs), and so negation can't be done by just flipping the final states.

Take, for example, the regex "a|(aa)+" (the set of even length strings of "a"'s or just one "a"). If you use the construction from the article, you get an NFA with basically two arms: one that recognizes "a" and one that recognizes "(aa)+". The initial state contains an epsilon arc to the start state of each of these arms. If you just flip the final/non-final states in each arm, the resulting language contains "a", since we are no longer accepting each even length "a" string, but now each odd length "a" string, of which "a" is a member. Thus the new language is not the proper complement of "a|(aa)+", which would not contain "a".

mcyc··on NetworkX 3.0 - create, manipulate, and study complex networks in Python
If projects have a "good first issue" tag, they can sometimes be a good place to start. The problem is they are mostly "add tests" or "expand docs", which are important but not very exciting.

Imo the best thing is to have a mentor who hopefully can find a reasonable thing to improve/add/fix and can help calm your nerves (submitting a pull request can be kinda scary haha). With NetworkX, in the past there were a lot of minor inefficiencies (things like materializing a list comprehension when you don't need to, etc) that are 1) easy to understand 2) don't require in depth knowledge of graph theory 3) are generally applicable to all python code and 4) easy to measure the results. They aren't the flashiest contributions, but the people I've done it with (6 or 7 at this point) have all seemed to enjoy it.

To be clear, I'm _not_ affiliated with NetworkX, but if you are interested in trying it out, my contact info is in my profile. Feel free to reach out.

mcyc··on NetworkX 3.0 - create, manipulate, and study complex networks in Python
NetworkX is my go-to library for helping people get started with open source (like mentoring new devs that want git practice, practice working in a large codebase, etc.). I feel it is laid out in an easy to understand way and all the main parts do one clear thing that can be understood even with only a basic knowledge of graph theory. It also hits the sweet spot of being an obviously useful and widely used package, but without the army of devs working on it, so there is still a lot of low-hanging fruit for tangible contributions.

I compare it to something like Django or scikit-learn, which seem insanely dense and difficult to understand even as an experienced dev, and there are so many people working on them that it's hard to find easy but non-trivial contributions for a beginner to make.

mcyc··on Lichess Combined Puzzle-Game Dataset
A dataset containing all Lichess puzzles with the associated games' full metadata.
mcyc··on JamCoders: Algorithms/CS summer course for high schoolers in Jamaica
See also AddisCoder [1] (in Ethiopia), which this program is heavily influenced by. Unfortunately, this has been on hiatus due to covid.

They have an incredible team leading it [2]. In terms of open-access education, the one I've followed most closely is Jelani Nelson, of Harvard Advanced Algorithms etc. YouTube fame [3, 4].

[1]: https://www.addiscoder.com/

[2]: https://jamcoders.org.jm/#team

[3]: https://www.youtube.com/watch?v=0JUN9aDxVmI

[4]: https://www.youtube.com/watch?v=s9xSfIw83tk

mcyc··on Julia ranks in the top 5 most loved programming languages for 2022
Just checking, for people who come in here and say "why does Julia have 25x the number of issues as Python" (and then point to the various discussions about the maturity and correctness of the Julia codebase), this doesn't count issues from before CPython moved to GitHub right?
mcyc··on Ask HN: Share your personal site
https://theoreticallygoodwithcomputers.com

I like to write about CS/Math, programming topics (mostly in Julia or Python), and language. In particular, I like to combine these when possible (see [1], which I am quite proud of).

Hoping to add a bit more content during an upcoming break.

[1]: https://theoreticallygoodwithcomputers.com/posts/aoc-aheui-e...

mcyc··on Lambda School leaked documents show poor performance over the last two years
Hi, thanks for this piece.

I've been following these stories for a while and it seems like a lot of the big players are ridiculously predatory and are providing a catastrophically bad service. I'd like to ask if there are any that you think are actually doing a good job?

One in particular I'm curious about is Hackbright.

mcyc··on Show HN: ChessCoach – A neural chess engine that comments on each player's moves
This is a fantastic project. Thanks for sharing!

I had a nice long conversation with two of the authors of [0] at ACL.

One thing we discussed was the reverse problem. That is, as a player, could I give commands to the model and have the engine figure the moves that would best satisfy them.

This ranges from concrete like "take the black square bishop" (there is still variability like which piece should take it or if it's even possible) to more complex positional stuff like "set up to attack the kingside."

Any thoughts on this line of research?

[0] Automated Chess Commentator Powered by Neural Chess Engine (Zang, Yu & Wan, 2019) https://arxiv.org/pdf/1909.10413.pdf

mcyc··on Ask HN: What are the best websites that the Anglosphere doesn't know about?
Yes, this is truly a great resource for Korean. There are some interesting bugs (like english text example search matches substrings rather than words; e.g. searching "tile" results in "The Ptile value is outside the range of valid values". There were worse cases a few months ago that seem to be resolved), but overall it is an invaluable tool for Korean learners.
← PreviousPage 2 of 2