@nutomic@lemmy.ml :

This week the first bugs in our federation code cropped up, after we enabled federation on lemmy.ml last week. The first bug happened because Lemmy was overwriting local data when upvotes or downvotes were received, because it was unconditionally parsing and storing the post/comment object included in the vote object (#1283. Another bug happened because community bans were only checked in one place, which left ways for banned users to post or comment (#1287). Plus one minor bug where the database code was checking the wrong variable when listing community posts (#1304).

What’s noteworthy is that runtime crashes, which would certainly happen in other languages when using 8000 lines of code in production for the first time. The only bugs were really high level, where I misunderstood how the protocol works. The good thing about these kind of bugs is that they are very reliable to reproduce, compared to typical bugs in languages like Java, which might require multiple hours of debugging sessions to find the problem. So I am very happy with Rust, because after getting familiar with the compile time checks, it allows for a very high development velocity. In the end it took me just two days to fix the issues above, in another language it would have easily been a week or even two.

@dessalines@lemmy.ml :

UI

  • Fixed a Safari websocket bug related to CSPs (Safari being non-standard as usual).
  • Fixed a loading bug on community pages.
  • Fixed a side-scrolling bug on mobile related to long community names (wrapping still needs a little work)
  • Fixed the navbar toggler icon. The old one was a weird bootstrap CDN style one that was getting blocked by the CSP.
  • Added support / donation icon to the navbar again.
  • Added logging out of account on user deletion.
  • Some icon / banner fixes.

Backend

  • Started a migration from SQL views to Diesel joins. The benefits are explained in that issue, but it will make our DB migrations much easier, allow us to have hierarchical data in the API, and gives us compile-time checking for all joins and DB operations. This is a large effort and will likely take several weeks. It will change the API, but as it gets finalized, I will work with all clients to make sure the changes are good.
  • Made a small fix to community filter as @nutomic mentioned above.
  • Image uploads now require the jwt token, so that non-logged in users can’t upload images.
    • DessalinesOPA
      link
      13 years ago

      Hrm… strange. Could you open up an issue on the lemmy-ui github? Thanks.