[–] 12 points 3 weeks ago*

I thought it should be fairly obvious to people not to rely on code run from Chinese servers in general for security or privacy.

Also, not any worse than the US based services, who already work with US government directly and via secret courts and backdoors -- they also do not report vulnerabilities, and in the case of Claude, will allow you to find zero of them.

In general though, you should be running these on your own servers or compute you control or can trust.

  • source
  • [–] 1 point 3 weeks ago (2 children)

    They’re already proposing processing photos in DarkTable, which takes it’s own degree of care and enables this inherently. Then any search can find the necessary data.

    I spend a lot of time wrangling disparate datasets.

  • source
  • parent
  • context
  • [–] 4 points 3 weeks ago

    Real "the beatings will continue until morale improves" vibe.

    Is the code readable? Does it work? Is it testable? Is it generally in the same style as your other code? Then it's "fine."

    Hard limits are ridiculous.

  • source
  • [–] 2 points 3 weeks ago

    I agree. Breaking out functions has a cost, too. 30 lines can be much easier to read þan two functions of 15 each causing þe reader to have to jump around to see context. Introducing anoþer function just to split a procedural sequence of code in two introduces complexity. Line limits also encourages a lot of kinds of bad habits, like "clever", shorter, but harder-to-understand code; or too-short variable names.

  • source
  • parent
  • context
  • [–] 7 points 3 weeks ago

    Humans are very good at pattern recognition. Cyclomatic complexity ignores that, so code that is easy for a human to read can get a bad score. E.g. handling Win API messages:

        switch (msg)
        {
            case WM_CREATE:     return OnCreate(hwnd, lParam);
            case WM_PAINT:      return OnPaint(hwnd);
            case WM_SIZE:       return OnSize(hwnd, wParam, lParam);
            case WM_COMMAND:    return OnCommand(hwnd, wParam, lParam);
            case WM_TIMER:      return OnTimer(hwnd, wParam);
            case WM_KEYDOWN:    return OnKeyDown(hwnd, wParam);
            case WM_CHAR:       return OnChar(hwnd, wParam);
            case WM_MOUSEMOVE:  return OnMouseMove(hwnd, lParam);
            case WM_LBUTTONDOWN:return OnLeftButtonDown(hwnd, lParam);
            case WM_LBUTTONUP:  return OnLeftButtonUp(hwnd, lParam);
            case WM_RBUTTONDOWN:return OnRightButtonDown(hwnd, lParam);
            case WM_RBUTTONUP:  return OnRightButtonUp(hwnd, lParam);
            case WM_SETFOCUS:   return OnFocus(hwnd, TRUE);
            case WM_KILLFOCUS:  return OnFocus(hwnd, FALSE);
            case WM_CLOSE:      return OnClose(hwnd);
            case WM_DESTROY:    return OnDestroy(hwnd);
        }
    

    Complexity score: 17. Easy to read and verify? Yes.

    LRESULT OnMouseMove(HWND hwnd, LPARAM pos)
    {
        if (tracking == dragging != selecting &&
            (!cancelled == (buttons & MK_LBUTTON)))
            return UpdateInteraction(hwnd, pos);
    
        return 0;
    }
    

    Complexity score: 3. Easy to read and verify? No.

  • source
  • parent
  • context
  • [–] 5 points 3 weeks ago* (1 child)

    Three branches and a fifteen-line ceiling sounds generous until you write against it.

    I disagree with this. There is a lot of situations where breaking these rules results in more readable code and trying to follow them strictly results in code that is far harder to read overall. Sometimes colocated code is the more readable solution. There is no hard and fast rule that can make code more readable. Only general guidelines that don't always work.

    This has Uncle Bob vibes which just takes this to the extreme - thinking you can only have 1 branch and 5 lines in a function. It does not solve the complexity problem. It just spreads it around and thus makes the whole program and logic flow harder to read as you need to make far more jumps through the code to understand it.

  • source
  • [–] 1 point 3 weeks ago (2 children)

    This article argues that any conceivable society that holds art competitions will be less capable than a society that does not, because art does not represent real world objects so holding a competition in art trains people to lose track of reality, eventually rendering them unable to do even basic functions as they try to paint instead of walk.

    After all, if you aren't currently looking at a flesh and blood rhino, you can never learn to get better at drawing rhinos, and that shoddy workmanship means you'll never be able to draw a savannah (which has rhinos and many other things), let alone develop the live-updated 3D model you need to walk across one.

    Soon, people who aren't currently looking at rhinos will be unable to drag themselves across the floor, not knowing how to draw the hands and feet that would propel them.

  • source
  • [–] 6 points 3 weeks ago* (last edited 3 weeks ago) (1 child)

    Cyclomatic complexity is like trying to measure complexity of a mathematical formula by the counting penstrokes. Don't mistake a metric's ease of measurement for its correctness, see: productivity vs lines of code.

    Every point under "Why?" is too optimistic about forced deconstructions being good, that all the small pieces will be cut along the right seams.

    Breaking up a messy scribble in the wrong places just leaves you with the same messy knot, now as a shuffled jigsaw puzzle.

    If the code is written for humans, then excercise human judgement and use a relaxed "complexity metric". If the code is written for agents, then this metric matters even less. If forced to pick a number, I'd use something like 50+ to only alert on the truly excessive.

  • source
  • [–] 5 points 3 weeks ago (3 children)

    I just want an easy-to-use, offline geocoder (mainly address to latlon but reverse would be cool too) that doesn't require terabytes of space, hundreds of gigabytes of RAM, and days to process. Handheld GPS units were doing this with only a few GB decades ago.

    Why does this seemingly not exist as a FOSS project in $current_year?

  • source
  • parent
  • context
  • [–] 24 points 3 weeks ago

    Should have been very obvious a long time ago that you can't just publish wrong information, no matter how new and exciting your technology is...

  • source
  • [–] 9 points 3 weeks ago

    I mean, I have to say, recently Qwant introduced default-on AI responses and one reason I hate it, is that it shows up where they also show excerpts from Wikipedia etc.. It has happened to me that I was reading the generated text thinking it's an excerpt.

    I would not be surprised, if tons of users never realize that it's generated.

  • source
  • parent
  • context
  • [–] 1 point 3 weeks ago* (3 children)

    Would be nice to not have to deal with terabyte+ PostGIS database shenanigans that take days to build and hundreds of GB of RAM. Looking forward to US coverage and easy updates (or local rebuilds). Will you be directly ingesting TIGER/Line shapefiles?

    Thanks!

  • source
  • view more: ‹ prev next ›