HN user

jcoffland

4,419 karma

I started contracting software development in 2002. Mainly I develop embedded systems code (in C) and simulation systems (in C++). I've been coding for the Folding@home project since 2007 and have been working on an Open-Source 3 axis CNC simulator called CAMotics since 2011.

* http://cauldrondevelopment.com/ * http://folding.stanford.edu/ * http://camotics.org/ * http://joe.coffland.com/

I live in Petaluma, CA. If you're in the area, send me an email. I'm always up for a coffee or a beer and interesting conversation.

Posts14
Comments1,587
View on HN

Maybe I just missed this but can anyone tell me what kernel versions support io_uring. I ran the following test program on 4.19.0 and it is not supported:

    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/utsname.h>
    #include <liburing.h>
    #include <liburing/io_uring.h>


    static const char *op_strs[] = {
      "IORING_OP_NOP",
      "IORING_OP_READV",
      "IORING_OP_WRITEV",
      "IORING_OP_FSYNC",
      "IORING_OP_READ_FIXED",
      "IORING_OP_WRITE_FIXED",
      "IORING_OP_POLL_ADD",
      "IORING_OP_POLL_REMOVE",
      "IORING_OP_SYNC_FILE_RANGE",
      "IORING_OP_SENDMSG",
      "IORING_OP_RECVMSG",
      "IORING_OP_TIMEOUT",
      "IORING_OP_TIMEOUT_REMOVE",
      "IORING_OP_ACCEPT",
      "IORING_OP_ASYNC_CANCEL",
      "IORING_OP_LINK_TIMEOUT",
      "IORING_OP_CONNECT",
      "IORING_OP_FALLOCATE",
      "IORING_OP_OPENAT",
      "IORING_OP_CLOSE",
      "IORING_OP_FILES_UPDATE",
      "IORING_OP_STATX",
      "IORING_OP_READ",
      "IORING_OP_WRITE",
      "IORING_OP_FADVISE",
      "IORING_OP_MADVISE",
      "IORING_OP_SEND",
      "IORING_OP_RECV",
      "IORING_OP_OPENAT2",
      "IORING_OP_EPOLL_CTL",
      "IORING_OP_SPLICE",
      "IORING_OP_PROVIDE_BUFFERS",
      "IORING_OP_REMOVE_BUFFERS",
    };


    int main() {
      struct utsname u;
      uname(&u);

      struct io_uring_probe *probe = io_uring_get_probe();
      if (!probe) {
        printf("Kernel %s does not support io_uring.\n", u.release);
        return 0;
      }

      printf("List of kernel %s's supported io_uring operations:\n", u.release);

      for (int i = 0; i < IORING_OP_LAST; i++ ) {
        const char *answer = io_uring_opcode_supported(probe, i) ? "yes" : "no";
        printf("%s: %s\n", op_strs[i], answer);
      }

      free(probe);
      return 0;
    }

Right, but they must retain the original copyright notices and provide the source code. I'm asking the person who bought the software to verify if this is the case.

I don't mind so much someone selling my software on a CD. What I do mind is that they changed the name to trick the buyer. Perhaps I should be using a different license.

it's a another red-haired woman

Why is it significant that this post was from a woman or that she has red hair? This comment sounds like a backhanded compliment, at best.

No closed loop stepper support at this point. We are taking about making a driverless version of the Buildbotics controller which you could pair with any external driver or closed loop steppers.

An LASER cutter is a really productive device to have around. It's very easy to create 2D parts.

Another way to go Open-Source for a lot less money (~$1500) is to buy a K40 on EBay and refit it with a Buildbotics controller.

The other day I needed a faceplate for an outlet with a circular 240v US dryer plug and a two port 120v US plug. I couldn't find anything at the hardware store that would work but I found drawings for the junction box and plugs online. After an hour or two with LibreCAD and CAMotics, I was ready to LASER cut my faceplate from 1/4" poplar. I was really happy when it fit exactly the first time. Now I keep looking behind the dryer to admire my handiwork.

Disclaimer: I'm a creator of CAMotics and Buildbotics.

Captcha.nsa.gov 6 years ago

I believe this has to do with which Akamai server ends up handling the page request.

HN is pretty good at moderating discussions. Which is the main reason I come here. Still, I've seen plenty of beef only thinking here and I too have been guilty at times.

It can be quite frustrating when you make an observation about someone's comment only to have them automatically assume you were in disagreement. It's good to assume a generous interpretation. Since tone is so hard to gauge on the Internet, discussions quickly devolve otherwise.

Folding@home is working on a different problem. Folding@home finds the path a protein takes to arrive at its final structure, not just the final structure. One of the main goals is to understand protein misfolding or where on the path things go astray to result in disease.

After all these years, we are still at it. New methods are regularly evaluated and the simulation software is being refined all the time.

Nice. Now my wife and I can both stay logged in to our email. I've wanted this feature for 15 years. Now, bring multi row tabs back and FF will be awesome again.

Firefox 72.0 7 years ago

The only feature I really want FF to bring back is multi-row tabs.

Customers saying "this has changed recently" means little. For example, I found such reviews for a pet flea product. When I investigated further I found similar reviews both very recent and going back 4, 6 and up to 8 years. Perhaps there are random bad batches but I suspect that part of the problem is the perception that a product is different. People often fail to recognize other factors such as changes in their own usage patterns, or in this case, changes in their local flea population.