Înapoi la articole →

Cel mai recent articol

Ultima verificare

Urmăritori 0 urmăritori
Articole: 56
  1. The Canarat pedal rebuild / repair is finally done.

  2. The Canarat lives!

    Just a quick note to say that the Canarat makes sound again!

  3. A couple weeks ago, I temporarily switched to using GPT-5 as my exclusive coding assistant model, via Cursor.

  4. TL;DR Inexpensive, fast, promising but hit some walls; needs a lot of babysitting¶ Running it: aider --model openrouter/moonshotai/kimi-k2 What's good about Kimi K2¶ Once I got into a groove with it, it did some things well: Made frontend changes very qu…

  5. TL;DR Cheap, sometimes slow, unreliable as editor; sometimes wrote good code with bad characters¶ Using it: aider --model openrouter/deepseek/deepseek-r1-0528 I didn't use Deepseek very long - just part of a day on two occasions- and didn't keep very de…

  6. TL;DR It works.

  7. Some rough impression after programming mainly with Aider.

  8. Copilot in Emacs

    I haven't done anything fancy with integrating AI tools into Emacs, but after playing with Copilot a bit in VSCode, I decided that I wanted to at least get the most basic autocomplete feature working.

  9. I've been doing a lot of different things in the past few months, and have a growing pile of not-quite-publishable draft posts about them.

  10. Several times I've needed to make a recording of the system audio on my Macbook.

  11. Welp.

  12. I just released a new version (0.6.1) of Spydey today.

  13. I've updated the homemade effects pedals page with progress - mainly, lots of photos, and info about the paint experiments I've gradually done over the past few months, which was a nice little crafty project and learning experience.

  14. I love using git bisect and git bisect run to know when things broke, but that only works if the commit history is generally clean - ie there are aren't commits with broken tests.

  15. We'll see if this fares any better than my other neglected hobby projects, but I've started a page to track what I'm doing with three homemade effects pedals.

  16. I had forgotten that I wrote this 10 years ago while I worked at Bitly.

  17. I haven't posted much since starting at Recurse in July 2023 and extending my initial 6-week half-batch to a full 12 weeks.

  18. Updated Feb 2024: Starting properly on MacOS; Completion demo; "peek" find demo.

  19. Blogging again.

  20. The first thing I did at Recurse was spend a couple weeks trying to get comfortable with writing functionally and recursively in Scheme.

  21. Updated Dec 2023.

  22. Writing better tests is a lifelong pursuit, apparently.

  23. If you want to keep your customers happy, one foundation that your product process needs is a shared understanding across your entire organization around at what stage of development can you commit to a release date.

  24. Here's a quick hack to help when you're lost in a too-large Python inheritance tree.

  25. Thread locals are an interesting idea: a way to give each thread its own storage, useful for global state that you don't want to share between threads.

  26. (Updated 2023/7/09) People sometimes ask me for career advice in software startups.

  27. TL;DR When scheduling features for a quarter, it's very risky to plan on delivering multiple projects that are starting from scratch.

  28. Cataracts? Really? Yes

    I had cataract removal surgery this year.

  29. It seems clean and safe 99% of the time.

  30. Prince: "When Doves Cry"

    Shortly after Prince died, one of my favorite podcasts, "Switched On Pop", paid tribute to Prince by talking about one of his best-known and most distinctive singles, "When Doves Cry".

  31. Finally, a blog

    As a birthday present to myself, and a fit of fiddling while Rome burns, I have junked the ooooooold website, thrown out a bunch of cruft, and finally started that blog I never got around to.

  32. In the spirit of "Falsehoods Programmers Believe" (my favorite is probably "Falsehoods Programmers Believe About Time"), I offer this, about working with third-party REST APIs.

  33. urllib2 gotcha

    Does this return all the data?

  34. In Python we often use the mock library to do dependency injection for tests.

  35. Some notes on my emacs setup circa 2015, mostly about Python.

  36. So it turns out there are some painful edges if you start trying to do SQLAlchemy declarative ORM classes in an existing Django app.

  37. Graphite, so confusing!

    TL;DR graphite graphs look wrong when viewing a time period larger than a few hours. hitcount is the cure.

  38. Here's a typical loop that checks for some condition and breaks the first time it passes: def list_contains_urls(maybe_urls): for url in maybe_urls: if url.startswith('http'): return True return False Can

  39. How to create a brand new git repository from an existing hg repository.

  40. For various reasons that might be explained in more retroblogging, around January 2014 I got fed up with OSX and decided to switch back to Linux.

  41. Django's settings.py is evil.

  42. Consider: >>> ''.split() [] That seems okay... split an empty string on whitespace and you get an empty list, sure, why not.

  43. (Updated 2018 with a more modern Python 3 tip) I always forget how to write a class that can be used as both a decorator and a context manager.

  44. map vs. iter

    What's the difference between these?

  45. pdbpp rocks!

    A coworker (hi Will) just introduced me to pdbpp.

  46. Git rebase conflicts

    A couple of coworkers (Sean O'Connor, Dan Frank) bailed me out of a sticky git scenario.

  47. Somebody at work recently asked if it were possible in Bash to have stdout and stderr both visible on the terminal but also copied to separate log files.

  48. Debugging with print statements is kind of like the old 2D Mario games.

  49. Django as it is in the wild is not a web software framework.

  50. Mock configuration tip

    A little tip for working with the mock library.