Professional C# .NET developer, React and TypeScript hobbyist, proud Linux user, Godot enthusiast!

https://blog.fabioiotti.com/\ https://github.com/bruce965

  • 1 Post
  • 40 Comments
Joined 3 years ago
cake
Cake day: March 9th, 2022

help-circle


  • I would say this would be the proper way to do it (at least as a sysadmin), but since it’s OP’s first time I would simplify it to:

    1. Install CloudFlare ZeroTrust daemon on your local server;
    2. Set up reverse proxy such as Nginx (optional, the alternative is to use a different subdomain for each service, which might be easier);
    3. Point the FQDN to CloudFlare.

    Let CloudFlare handle the certificates, DDoS protection, etc… Link if you’d like to give this setup a try.




  • There is a keyboard shortcut. It’s CTRL+ALT+Z for me. Unless you mean something else?

    As for the “reveal on hover”, iirc there was a dismissable message that said it is coming soon.

    If I can share my opinion, they are more than big enough if you toggle the checkbox “optimize for touch screen”. I would have to try Arc or Zen again to understand what you mean.

    The only complaint I have is that I need to hover (or expand) to see the title. It becomes annoying when I’m reading documentation and I end up with multiple tabs with the same icon.

    EDIT: I can’t seem to find the “optimize for touch screen” checkbox anymore, but I’m sure there is something like that somewhere because I enabled it on one of my devices which has a touch screen.

    EDIT 2: the “optimize for touch screen” option can be seen by right clicking the toolbar and choosing “Customize toolbar”. Changing the density to “Touch” (on the bottom) makes these icons bigger.



  • I am a novice, so if someone else is going to give different advice, consider disregarding mine.

    If you want precise collisions you could manually add 2D Areas and align them with your map. Otherwise if you are happy enough with an approximation you could add a tilemap (collision only, no sprites) and use a different tile for each region.

    I would go for the first option, considering that you don’t have too many regions. You don’t need any external program, as far as I remember, you can create polygonal shapes directly in Godot.


  • […] re‑engineered flash physics by replacing silicon channels with two‑dimensional Dirac graphene and exploiting its ballistic charge transport.

    By tuning the “Gaussian length” of the channel, the team achieved two‑dimensional super‑injection, which is an effectively limitless charge surge into the storage layer that bypasses the classical injection bottleneck.

    That’s some seriously technical jargon.

    ChatGPT seems to be able to explain, not sure how accurate it is though.

    Flash memory traditionally uses silicon channels to move charges (electrons) into a storage layer. These researchers changed that by replacing silicon with Dirac graphene. Graphene is a single layer of carbon atoms arranged in a honeycomb structure. It’s called a Dirac material because its electrons behave like massless particles, moving extremely fast and with very little resistance.

    This leads to ballistic transport: electrons move without scattering, like a bullet in a vacuum. This is far more efficient than silicon, where electrons bump into atoms and lose energy.

    Tuning the “Gaussian length" likely refers to modifying the shape or spread of the electric field or potential in the channel (possibly shaped like a Gaussian curve, i.e., a bell curve). By adjusting this, they control how charge flows.

    Achieved two-dimensional super-injection means they were able to push a large amount of charge very efficiently from the graphene channel into the memory storage layer, and in a 2D way (across the flat graphene surface), rather than through a narrow point.

    Effectively limitless charge surge: normally, in flash memory, there’s a bottleneck where only so much charge can be injected due to energy losses and scattering. But with graphene’s ballistic transport and this super-injection method, that bottleneck is gone—or drastically reduced—enabling faster and more efficient memory writing.


  • bruce965@lemmy.mltoBuyFromEU@feddit.orgAdios, Amazon Prime
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    3 months ago

    I think so, but only on some devices. As far as I understand, you can only play in high resolution on devices which support stronger hardware DRM. On those devices recording the screen might be harder/impossible.

    I never tested this theory though, so please do not quote me on this.



  • bruce965@lemmy.mltoGaming@lemmy.worldThe steam deck is just great
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    2
    ·
    3 months ago

    I agree with you, but I would say you can’t assume everyone has the same goals. I can tell you, my Nintendo friends are not idiots nor mindless zombies. They simply are not interested in learning about how the other options work, and I would say that’s totally fair.

    I have a dear friend who has most of his games on Steam, but still, he told me he prefers the Switch. “Why?” I asked him. “Because Nintendo makes exactly the kind of games I want to play, and because unlike with the PC, I can just pick up my Switch and start playing” he answered.

    I have a ROG Ally with Bazzite (so, basically equivalent to a Steam Deck) and I have to admit that, while 90% of the time every game works out of the box, sometimes some games misbehave. Although, to be fair, this only happened to me with Epic Games games ran through Heroic.

    I would say it’s totally fair to prefer Nintendo. It gives you great games that don’t require tinkering. If that’s what you want, then Nintendo is a great option for you.



  • I have to admit that I didn’t really think about reminders. That would perhaps make more sense for Simple Calendar, perhaps in the future I might consider linking notes and reminders. Or maybe it would make sense to implement it directly in Simple Notes? I don’t know, I’ll keep that in mind for later, thanks!

    the number of clicks/menus/presses it takes to create a note

    I strongly agree on that. It must be at most as many clicks as on Google Keep, i.e. two clicks (plus a few to open the app).

    import existing Keep notes from a Google Takeout into your Simple Notes

    I didn’t think about that. That shouldn’t be too hard. After the MVP (minimum viable product) will be ready, imports from various common formats should be implemented, and I guess Google Takeout for Google Keep should be supported too.

    Thanks for the suggestions!



  • use case is a shopping list for my SO and I. I want to be able to add stuff throughout the day, and cross them off once I grab them from the shelf, and separately be able to clear completed tasks

    Sorry for the late reply. Oh yes, that’s what I like about Google Keep, the collaborative aspect. What do you mean by separately be able to clear completed tasks”? Do you mean being able to do it from multiple devices which are synchronized in real-time?

    [Simple Chat] Why not just use one of the other Matrix clients?

    Yes, you have a point… let’s keep Simple Chat for later then. I had this idea of making an app for each of my needs and let them all connect to a single server with a single unified user. Good quality Matrix clients already exists, I guess there is no need to build a custom client for the chat if I end up adopting Matrix as the protocol.

    [Simple Docs] This seems overly ambitious.

    Let’s say that’s a longer term goal for the future. I might be underestimating the complexity of Google Docs, but if you think about it I would say it’s not much more than a rich-text editor. Basically it’s the same things as text notes, just with a bit more formatting options. I couldn’t say the same thing about Google Sheets and Google Present.

    No. Matrix is designed for chat, not data, and self-hosting it requires a fair amount of resources.

    Why do you think so? I have tried it and it seems to be as simple as any other server thanks to Docker. I have a script to launch it here (mirror). It seems to use 160MB of memory and about 1% of my CPU when idle. I haven’t done any serious tests though, maybe it wouldn’t scale as well as I think.

    I’d personally just DIY it since it’s really not a ton of logic

    Well… there must always be a protocol behind it, it can be as simple/specific or as complex/generic as you want, but there must always be an agreement of the format of data exchanged between client and server.

    By adopting the Matrix protocol, there wouldn’t be any need to write a custom server, because Matrix servers already exist.

    Matrix is designed for chat, not data

    What’s the difference between chat and data? A chat is a list of messages. A collaboratively-editable document is a list of changes. As far as I understand, Matrix uses “events” to describe things happening. When a user sends a message, the server emits and event like “add user X’s message Y to your list of received messages”. It shouldn’t be too different than emitting an event “replace text at position X with Y” every time a document changes. They even have ephemeral events for temporary state, such as “the user X is currently typing”. That should be similar to “the user X placed their cursor at position Y”.

    Do you think I might be oversimplifying or thinking it wrong?



  • Regarding multi platform targeting, have you considered something like React Native or Flutter

    I have! I use Flutter in a professional setting and I do not hate it, but I am madly in love with React (not Native) for my personal projects. I tried React Native in the past and I found it a bit finicky, but it was just a “brief encounter”, so I might change my mind about it in the future. For now I would go with Electron to save time, but I do not exclude the idea to build a desktop + mobile interface in Flutter in the future. React (not Native) can also run on any platform, that should be more than enough for the MVP.

    I absolutely do not want to go with Flutter for the web though, as I feel like it’s the exact opposite of what I would dream the web to be. I feel like Google built Flutter to give Android developers a tool to make apps with the excuse “oh yeah, it works on browsers too” and call it a day. Flutter basically bypasses most of the things that browsers do and in my personal opinion it re-implements everything more poorly than how a traditional web app would. Come on, they even built their own layout engine and even a rendering engine, was that really necessary? Browser extensions don’t integrate well with Flutter apps, and the debugging experience is subpar. I really like Flutter for Android and desktop apps, and I might even say it’s easier/simpler than Android Studio (Kotlin), but personally I feel like it’s just a big dirty hack in the web context.

    Okay, I just realized that my reply sounds a lot like a rant. My apologies. Please consider this as my current view on these tools, it might change in the future. It’s not a criticism.

    the company behind it shuts down or gets sold

    That’s an important concern. Well, the source code is AGPL 3.0, so there is no risk of it disappearing. Also, this would be my hobby project and I absolutely do not expect it to ever become anything commercial. I do not even plan to accept donations or anything like that. Basically it’s something that I need, and since it doesn’t exist I am considering building it myself.

    There is a big probability that I might stop working on it either because I find it “good enough” for my needs or because I won’t be able to work on it anymore, but I would say I’ll try to keep it as simple as possible, so it should be relatively easy to maintain. Also, relying on Element (Matrix) maintain the server code would mean I just need to maintain the client, which should cut the work down by 50%. I strongly hope Matrix will never shut down or get sold.

    In any case, okay! Let there be the possibility to export data in a common format! (Preferably Markdown)

    I feel all my data is siloed across several apps

    Matrix supports a way to integrate with third-party data sources, but I haven’t read too much into it as it was not in my goals. Perhaps a Synapse (Matrix) plug-in might allow to integrate notes with third-party sources without having to make any changes to the client code. I might investigate this possibility in a later stage.



  • I didn’t know this term! I knew about DAGs which are probably a way to implement CRDTs. I just read the definition on Wikipedia, it says that “[CRDTs feature] an algorithm (itself part of the data type) automatically resolv[ing] any inconsistencies that might occur [in case of conflicts]”, that sounds interesting. I was thinking to try to resolve conflicts automatically whenever possible by adapting Git merge strategies, and when impossible: either just concatenate both versions and let the users fix it manually, or giving users the option to choose line-by-line which version they want.

    With this keyword I might be able to find more literature on the topic. Thank you for suggesting it!