HNHacker News
TopNewBestAskShowJobs

bmichel

224 karma · joined October 25, 2009

http://blog.menfin.info
submissionscomments
bmichel··on Gemini 2.5 Pro reasons about task feasibility
There is an Open-Source tool named Aider that can use Gemini: https://aider.chat/
bmichel··on Downsides of Offline First
CouchDB 4 may change a few things in this space. It will be based on top of FoundationDB, which should make it a lot better for running "at scale PaaS".
bmichel··on SQLancer, a tool to automatically test DBMSs to find logic bugs
The name SQLancer suggests that it is made for SQL databases. Do you think it would be easy to adapt it for documents databases like CouchDB or MongoDB?
bmichel··on Featherweight Go
The former proposal was made by 2 members of the Go core team. And they are also in the team of the latter proposal. So, no, the first proposal wasn't good enough for the Go authors and the new proposal is in no way a guerilla attempt.
bmichel··on Featherweight Go
The syntax really makes me think to Zig - https://ziglang.org/documentation/master/#Introducing-the-Co.... I'd be curious to know if the authors of this paper have looked at it.
bmichel··on What's in a Parser Combinator? (2016)
By curiosity, did you try Lezer?

https://marijnhaverbeke.nl/blog/lezer.html

bmichel··on Testing Sync at Dropbox
Thanks for the answers, I appreciate that.

If you have time, I have another round of questions:

1. Did you try formal methods like TLA+ on the client? I think that the logic covered by CanopyCheck may be a nice target.

2. Do you have some tests with several clients running at the same time on a shared directory? In particular, I think of the termination invariant where the clients are fighting because several users have reorganized the directory by moving a lot of stuff, and each client is trying to converge in a different direction (ie they are making operations that cancelled the ones made by other clients).

3. The article says "In the Nucleus data model, nodes are represented by a unique identifier". Does it happen that a node has to change its identifier? For example, in a scenario like this one:

      (ada) $ offline
    (grace) $ offline
    (grace) $ mv ~/Dropbox/shared/TODO.txt ~/Dropbox/private-grace/
      (ada) $ mv ~/Dropbox/shared/TODO.txt ~/Dropbox/private-ada/
      (ada) $ echo 'foo' >> ~/Dropbox/private-ada/TODO.txt
    (grace) $ echo 'bar' >> ~/Dropbox/private-grace/TODO.txt
      (ada) $ online
    (grace) $ online
bmichel··on Testing Sync at Dropbox
Thanks for sharing your experience on this rewrite. I have a few questions:

1. I'm a bit surprised that you don't persist the scenarios of the tests after a failure, only its seed. Does it mean that when you want to replay it, you have to redo the minimization phase? Or, do you have a way to find a seed for the minimized scenario?

2. Do you have some tests where you generate a set of operations and play them twice: one time with the mocks and one time on the real servers to check that they have the same results?

3. The article says "Note also the importance of the commit hash, as another type of “test input” alongside the seed: if the code changes, the course of execution may change too!". How are you ensuring that a commit really fixes a bug, and not just change the execution path to a happy path where the conditions of the bug are not met? By playing again a lot of tests, or do you write a new unit test that exhibit the bug to ensure the reproductability?

4. Do you think we can say that CanopyCheck is applying randomized testing at the unit tests level and Trinity is applying it at the integration tests level?

bmichel··on Avoid rewriting a legacy system from scratch by strangling it
https://medium.com/@herbcaudill/lessons-from-6-software-rewr... suggests to build a new product without throwing away the legacy one.
bmichel··on Swc – Fast JavaScript to JavaScript compiler
Tanspiling from ES2015 to ES5 is no longer the main usage of babel. For example, there is transforming JSX to normal JS. And object rest/spread proprerties (ES2018) is often used by front developers, even if it is not supported by Edge. So, I don't think that babel and swc will be obsolete in 2 years. The most used transform plugins for those will change, but the parser and engine will remain. And having fast and robust tool here is a good thing for this field.
bmichel··on Xapiand: A fast, simple, modern search and storage engine
There is also Blast (golang), built on top of Bleve.

- https://github.com/mosuka/blast - http://blevesearch.com/

bmichel··on Debian's Anti-Harassment Team Is Removing a Package Over Its Name
I don't think so. It was used for scraping dating websites, but not porn IIRC.
bmichel··on Crystal 0.25
Did you look at Erlang/Elixir?
bmichel··on The xonsh shell
Zsh has a plugin for syntax highlighting: https://github.com/zsh-users/zsh-syntax-highlighting
bmichel··on A Farewell to FRP
Did you try dialyzer for Erlang[1] or Elixir[2]?

[1]: http://erlang.org/doc/apps/dialyzer/dialyzer_chapter.html [2]: http://elixir-lang.org/docs/stable/elixir/typespecs.html

Not sure it helps, it's on my todo list.

bmichel··on Traveling Salesman: the most misunderstood problem
But how do you do your binary search on a set without enumerating/sorting it? For example, if at one step, you know that 28.3 is too small and 42 is too big, how do pick the number between them that will split your set in two?
bmichel··on Ask HN: How to move away from Gmail
Maybe it's just me, but I'm scared by this sentence from the Google ToS:

"When you upload or otherwise submit content to our Services, you give Google (and those we work with) a worldwide license to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content." -- http://www.google.com/intl/en/policies/terms/

bmichel··on Linus Torvalds Interview for LinuxFR
It was done by email last week.
bmichel··on Poll: What bug tracking software do you use?
I use retrospectiva: http://retrospectiva.org/overview. It's a trac-like written in Ruby on Rails, but with multi-projects and git support. And I personnaly find that retrospectiva looks nicer than trac. The AgilePM extension is a also a great plus for us.

EDIT: We are a team of 8 people using it, 2-4 per project.