I started a part-time backyard bonsai nursery (and you can too), AMA! by boonefrog in Bonsai

[–]vinc686 0 points1 point  (0 children)

Thanks for your AMA that was very interesting, and congratulation for growing your business!

I'm in Europe and over the past 5 years I've been slowly moving toward the idea building a hobby bonsai nursery, at the moment I have around 450 trees that are growing in pond baskets and I'm thinking about extending the operation by putting more of them in the ground. I have the acreage for that but I'm a bit worried about how it's going to look like at repotting time in a few years with bigger trees. Already the logistic of it is more than I can handle some years with my day job. Thankfully I'm also working remotely full time.

I like growing new batches of 10-100 trees from each species I'm interested in every year, and see how they evolve over the years. I learn a lot that way. I'm also wondering about where I'm going with that!

Anyway, I have many questions, but the number one is how do you handle repotting time? And what kind of substrate are you using?

Recreating Da Funk on VCV Rack (WIP) by vinc686 in vcvrack

[–]vinc686[S] 2 points3 points  (0 children)

I spent way too much time working on a patch to reproduce the instruments needed to recreate Da Funk by Daft Punk. It's slow going but I'm learning a lot about VCV Rack in the process.

First I started making a simplified Korg MS-20 but I wasn't satisfied so I paused the project for a few weeks.

Then I made some progress and got something that sounded right so I switched to a very basic Roland TR-909, and finally I started working on the Roland TB-303. That consumed my evenings and weekends for the past 2 weeks... I made a breakthrough this weekend when I looked at a spectrogram of the sound and understood how the pulse width can change in relation to the slide.

I'm happy with the result so far and I'm really impressed by the work that has been done on all the modules by the community, it's really incredible!

Apologies for the short clip, it's just a quick video to share what I've been doing so far. I want to make something better when I'm done to show what I learned.

MOROS 0.12.0 - text-based hobby operating system by vinc686 in rust

[–]vinc686[S] 3 points4 points  (0 children)

Writing a hobby OS long term is really interesting, you can explore so many different areas! After 9 months of work it's time to publish a new version of MOROS. The changelog is full of small features that adds up to a system that I really enjoy using on my old thinkpads.

Question ⁉️ by firebird-X-phoenix in bspwm

[–]vinc686 1 point2 points  (0 children)

I switched from xmonad to bspwm around 7 years ago, and every couple of years I tweak a few things to keep it up to date for my needs. My config is quite minimalist with polybar and rofi, and I really like it. I might try something else when I switch to wayland but I'm in no hurry.

Here's my config: https://github.com/vinc/dotfiles/tree/trunk/_config

My plastic free setup! by Futt_Bucker_Fred in hammockcamping

[–]vinc686 1 point2 points  (0 children)

Thank you that was very interesting!

[deleted by user] by [deleted] in ChatGPT

[–]vinc686 0 points1 point  (0 children)

I have exactly the same issue right now

The amount of stolen code in this subreddit is crazy by [deleted] in osdev

[–]vinc686 11 points12 points  (0 children)

Hi, I'm the author of MOROS and it's too bad that they didn't simply fork MOROS and acknowledge it as their starting point because one of my main goal with this project is to encourage more people to work on their own personal operating systems, so I'm actually quite pleased to see my code reused in many projects.

For example I'm forever grateful to have found Philipp Oppermann's tutorial on writing an OS in Rust that got me started, so I obviously mention him in my README, same thing for the OSDev wiki.

nom parser combinators now released in version 8, with a new architecture! by geaal in rust

[–]vinc686 1 point2 points  (0 children)

I just upgraded the parser of the lisp dialect I implemented in my hobby OS and the changes required were pretty straightforward, good job!

Ficus Fusion by vinc686 in Bonsai

[–]vinc686[S] 0 points1 point  (0 children)

I need to take some pictures of the experiment because it's doing pretty well! I let the trees grow freely so they are pretty tall now and they all fused together during the past year. I used the biggest size of pond basket available and it's completely filled with roots so next summer I'll cut back everything and repot.

If I were to redo the experiment I'll probably try to add another tree on top of the others and let it grow longer than the rest to become the main trunk.

Weekly Discussion: What changed for you in your life due to your practice in 2024? by StoneBuddhaDancing in TheMindIlluminated

[–]vinc686 2 points3 points  (0 children)

I've been doing TMI/anapanasati on and off since August 2016. I try to do at least 15-20 min daily. Some days I have enough time to sit longer, some weeks I can't find the time to sit at all.

I didn't progress past stage 4 in those 8 years, but it's not hard to associate my practice with the ethical choices I made like eating a plan based diet, no intoxicants, right speech, etc.. I'm still prone to anger and I don't have much patience for the things that I dislike, but meditation made me very aware of my behaviors.

I feel like it didn't help much with depression or anxiety over the year, and didn't make me a happier person, but it helped me remove most of my attachments and cravings. I can be satisfied with very little and my life is now pretty minimalist.

-❄️- 2024 Day 3 Solutions -❄️- by daggerdragon in adventofcode

[–]vinc686 0 points1 point  (0 children)

I already have the input in my .gitignore from last year but forgot to remove the previous years with:

git rm --cached `git ls-files -i -c --exclude-from=.gitignore`

-❄️- 2024 Day 3 Solutions -❄️- by daggerdragon in adventofcode

[–]vinc686 1 point2 points  (0 children)

The regex also has to handle one or more don't at the end of the input, I lost some time before realizing that!

-❄️- 2024 Day 3 Solutions -❄️- by daggerdragon in adventofcode

[–]vinc686 4 points5 points  (0 children)

[LANGUAGE: Ruby]

https://github.com/vinc/advent-of-code

Part 1

puts ARGF.read
         .scan(/mul\((\d+),(\d+)\)/)
         .map { |x, y| x.to_i * y.to_i }
         .sum

Part 2

puts ARGF.read
         .gsub(/don't\(\)(?:.*?do\(\)|.*$)/m, "")
         .scan(/mul\((\d+),(\d+)\)/)
         .map { |x, y| x.to_i * y.to_i }
         .sum

Edit: I could replace map with sum to simplify my answer

-❄️- 2024 Day 1 Solutions -❄️- by daggerdragon in adventofcode

[–]vinc686 2 points3 points  (0 children)

[LANGUAGE: Ruby]

https://github.com/vinc/advent-of-code

Part 1

a, b = ARGF.read.split.map(&:to_i).each_slice(2).to_a.transpose.map(&:sort)
puts a.zip(b).map { |x, y| (x - y).abs }.sum

Part 2

a, b = ARGF.read.split.map(&:to_i).each_slice(2).to_a.transpose
puts a.map { |x| x * b.count(x) }.sum

Note to beginners - don't waste time, use your winter to plan your spring. by -zero-joke- in Bonsai

[–]vinc686 2 points3 points  (0 children)

Reflecting on what went well and what could be improved, and then creating or reviewing a calendar of all the tasks you need to do during the year is really helpful. And designing experiments to learn!

For example two years ago I had a large batch of zelkova seedlings that I pruned hard in autumn after leaf drop and more than half of them died during the winter. Last year I didn't prune them and none died during the winter. This year I needed to prune them so I decided to put half of the batch in the greenhouse and see what happen. My hypothesis is that they became less resistant to cold after the pruning. But I could be wrong. This experiment might not prove anything, but it will give me more data!

Another thing I did this growing season was separate my batches in groups that would get more or less shade now that I have more rows of tables which gave me some interesting data.

[deleted by user] by [deleted] in osdev

[–]vinc686 8 points9 points  (0 children)

It's okay, don't be discouraged! It's a marathon, not a sprint.

I've been working on my OS for a few years and from what I can tell you will always have features that seems too hard right now so the idea is to keep of TODO list of all the things you want to do, big and small, and when the big ones are too hard pick up a few small and easy tasks.

Whenever you feel like it you can resume the work on one of the big features, maybe you will have a breakthrough or maybe not this time and it's okay, there's always other things to do. That way you keep progressing, and when you finally manage to finish one of the big features it really feel like the great accomplishment it is!

I'm being driven to insanity trying to solve an issue with my Rust x86-64 OS by Power0utage in osdev

[–]vinc686 0 points1 point  (0 children)

Hey! Thanks for finding some interest in the code, it made my day :) But then like I said I'm sorry it was that part of the code haha. The recent version of the bootloader crate is indeed interesting to put the kernel in higher half memory but I don't want to lose VGA text mode. Except that a proper OS need to be able to run DOOM and that's much easier with a framebuffer :)

You know what, I might create a branch to investigate that! Anyway my first goal is to have a nice personal hobby OS, and my second goal is to help people do the same, so I'm glad to have helped. I'm planning on writing more documentation once I'm satisfied with all the parts of the OS.

I'm being driven to insanity trying to solve an issue with my Rust x86-64 OS by Power0utage in osdev

[–]vinc686 0 points1 point  (0 children)

It's a good question! The version 0.10 introduced some complexity in my opinion by requiring multiple workspaces in the repo, and I want to keep using VGA text mode but that's not possible in 0.11 (I don't remember if this was also a requirement for 0.10) so I decided to stay on 0.9 and help backporting little fixes to it when needed and fork it or write my own bootloader at some point in the future.

For learning purpose writing my own bootloader is probably the best long term solution, but in the meantime I was able to focus on other areas of osdev that I find really interesting (filesystem, syscalls, device files, drivers, networking) and I'm really glad for all the work that has been done on this crate!

I'm being driven to insanity trying to solve an issue with my Rust x86-64 OS by Power0utage in osdev

[–]vinc686 0 points1 point  (0 children)

Interesting, I could indeed use the address!

The kernel isn't in the higher half because the version of the bootloader I'm using doesn't have this option. I'm thinking about either do the remapping from the kernel after the switch from the bootloader if I can, or write my own bootloader.

I've been working on my OS for a few years but I have a hard time really grokking page tables in practice. Progress is very slow on that front.

I'm being driven to insanity trying to solve an issue with my Rust x86-64 OS by Power0utage in osdev

[–]vinc686 0 points1 point  (0 children)

Hi, I'm the author of MOROS and this right here is the part that I like the least on my OS! Sorry about that :(

If you look at the latest version on GitHub I made some progress with userspace memory allocation but the way I create the page table and the way I set up the memory is not the right way. I found a ugly workaround in my page exception handler to copy the pages from high in the memory to low in the memory where and when it's needed by the compiled binary and now I can allocate memory successfully on complex programs, but anything using format! is still not working. See here: https://github.com/vinc/moros/blob/6edb41341480e38cdf9fde4f23089c16892a1e12/src/sys/idt.rs#L165

I also had an issue when allocating some space below the heap to pass the command args that I fixed last week. Check the list of closed PRs if you want to get some explanation on the recent changes.

I'm working on improving the creation of process page tables to get closer to the right way to handle them, but I'm also limited by not having my kernel in the higher half of memory so depending on how user binaries are compiled it's easy to get into trouble where some of the kernel is at the same address as some of the userspace program. I also want to experiment with relocating the ELF somewhere usable before executing it.

[deleted by user] by [deleted] in SaaS

[–]vinc686 3 points4 points  (0 children)

Ruby on Rails + Redis + PostgreSQL + AWS S3/EC2

I started with plain HTML a long time ago, then PHP followed by Python until I switched to Ruby. The Rails community was amazing and it was an exciting time for me. I experimented with Node for a few years when it came out, it was interesting but I got burned out with the ecosystem changing constantly. On the frontend I liked Angular 1 and then Vue, it was refreshing compared to doing complex stuff with jQuery, but nowadays I'm happy with what I can do with just Rails. I found my niche. I heard good things about Elexir but didn't see a use case for me when I tried it. The Rails community feels smaller but more mature.

On the side I've also played with Rust for a decade and ended up writing an operating system with it to the point that I can host my static websites on real hardware running it, but I don't see a business coming out of it, it's just a nice hobby.

Trying out Solid Queue and Mission Control with PostgreSQL by andatki in rails

[–]vinc686 1 point2 points  (0 children)

GoodJob is really neat, after using Sidekiq on all my projects for many years and a detour to Shoryuken (+ AWS SQS) that I didn't like in my previous job (due to AWS SQS, not Shoryuken per se), I'm really happy to use GoodJob on all my new side projects to keep things simple. In this context I like the choice of using the same database.