• 0 Posts
  • 156 Comments
Joined 1 year ago
cake
Cake day: June 19th, 2023

help-circle







  • If I understand the problem correctly it has a pretty simple solution that I have done before. Make a new partition on the destination and dd if=/dev/diskAsB of=/dev/diskXsY where A is the source disk and B is the source partition and X is the destination disk and Y is the destination partition. You may have to run fsck on the destination afterwards and maybe a gpt repair tool.

    Honestly though, since it’s an ext filesystem, if it were me I’d just mount the source and dest and rsync.


  • I hated how these were delivered to you whether you wanted them or not. So much junk.

    They made really great fires though if you tore each page out, crumpled them up and stuffed them between the logs.

    Also interesting, I took one about an inch or so thick and shot it point blank with a 12 gauge shotgun and tiny yellow circular confetti came out, which was neat to see.




  • I had the same experience on my one gui Ubuntu machine. I also have several headless machines, and due to some shared libraries I always ended up with snapd installed even though none of the packages I was running were installed through snap. I always found it through the mount point pollution that snapd does.




  • My guess is that the most expensive single component would be the lidar. Prices on lidars can be well over $100k. When I worked with lidar about 5 years ago, IIRC a Velodyne 128 was $160k. These robots would probably be using a 32 though, which is probably going to be less than 1/4 of a 128.

    Also, Velodyne and Ouster merged since I last used lidar. Ouster does in-device sensor fusion, which likely takes a significant load off the CPU and potentially GPU, meaning these robots may be able to get away with lower spec CPU and GPU.

    It appears that Ouster now does object detection, which is another reason these could get away with lower spec GPUs (assuming they’re using Ouster)

    Obviously there’s a lot of speculation in my response, but since there’s no teardown of the robot, and without spec sheets or a BOM, all we can do is speculate.


  • It’s not a typo. The first section of the regex is a matching section, where a dot means “match any character”, and an escaped dot is a literal dot character. The second section is the replacement section, and you don’t have to escape the dot there because that section isn’t matching anything. You can escape it though if it makes the code easier to read.

    rename is written in Perl so all Perl regular expression syntaxes are valid.

    However, your comment did make me realize that I hadn’t escaped a dot in the third example! So I fixed that.





  • Check out rename

    $ touch foo{1..5}.txt
    $ rename -v 's/foo/bar/' foo*
    foo1.txt renamed as bar1.txt
    foo2.txt renamed as bar2.txt
    foo3.txt renamed as bar3.txt
    foo4.txt renamed as bar4.txt
    foo5.txt renamed as bar5.txt
    $ rename -v 's/\.txt/.text/' *.txt
    bar1.txt renamed as bar1.text
    bar2.txt renamed as bar2.text
    bar3.txt renamed as bar3.text
    bar4.txt renamed as bar4.text
    bar5.txt renamed as bar5.text
    $ rename -v 's/(.*)\.text/1234-$1.txt/' *.text
    bar1.text renamed as 1234-bar1.txt
    bar2.text renamed as 1234-bar2.txt
    bar3.text renamed as 1234-bar3.txt
    bar4.text renamed as 1234-bar4.txt
    bar5.text renamed as 1234-bar5.txt