• Rob Haisfield

    Rob Haisfield

    11 months ago
    Is there some name for the combination of text files and an IDE? A grouping like “GUI”
    Rob Haisfield
    Jess Martin
    3 replies
    Copy to Clipboard
  • d

    David Brooks

    11 months ago
    I've been asked to speak a bit about sociocracy https://en.wikipedia.org/wiki/Sociocracy and how it works. It is a huge topic, but I'll attempt (perhaps foolishly) a summarization. Sociocracy is a framework for self-governance of a group of people. This could be anything from a book club with your friends to a large corporation. In my mind, the main pillars of sociocracy are: consent, circles, and feedback. 1. *Consent*: sociocracy takes "consent of the governed" very seriously. Every decision of a sociocratic circle must be made with the consent of everyone that is a member of that circle. Lots of people think this is impossible, but I assure you it isn't. The key to making this work is to try to find a course of action that is within everyone's "range of tolerance." That is, the decision doesn't have to be everyone's preference, they don't have to like it, they just have to be "okay with it." Finding a solution within the area of "I can live with it" is a LOT easier than finding a solution that makes everyone happy. Indeed, the later is often impossible. 2. *Circles*: a sociocratic circle is the fundamental unit of organization within sociocracy. A circle can optionally have one or more Child Circles, if the organization is large enough to warrant it. Each circle in sociocracy has an AIM (a reason for existing), a DOMAIN (area of authority), a TERM (how long it exists), and MEMBERS. A circle also has ROLES: 1) _Lead_: think "project manager" for the circle. Doesn't actually make the decisions (remember that is by consent of the members of that circle) but rather supports the circle so that it is still headed towards its AIM. 2) _Facilitator_: simply someone who ensures circle meetings run smoothly and are in service of the AIM. 3) _Secretary_: the person tasked with "making sense" of the circle's activities, recording minutes, logging decisions, etc. and 4) _Delegate_: see below. 3. *Feedback*: The Delegate is the circle member tasked with pairing with the Lead to ensure the free flow of information from a Child Circle to a Parent Circle by virtue of being members of both circles. With this free flow of information and consent from "top" to "bottom" an organization becomes very aware of how well things are working at all "levels". Paring this with circle (and policy, and role) TERMS, sociocracy enables a dynamic, self-healing, and fluid structure of self-governance. If you'd like to learn more about sociocracy, I highly recommend "Many Voices, One Song" by Ted Rau and Jerry Koch-Gonzalez https://www.sociocracyforall.org/ And I can give a talk about it, if folks are interested. Thanks! 🙂
    d
    a
    +3
    16 replies
    Copy to Clipboard
  • i

    Ivan Reese

    11 months ago
    Did programming go through the "PC revolution" too? Because to me, programming pre-PC, during PC, and now post-PC (tablet, etc) seems to have changed far less than hardware and other software, especially with respect to the qualitative nature of the changes the PC revolution brought about. Change my mind? Anyone else ever talk about this with this lens?
    i
    Tomas Čerkasas
    +5
    17 replies
    Copy to Clipboard
  • Mariano Guerra

    Mariano Guerra

    11 months ago
    Which tools/processes/media do you use to "approach" a problem before starting to write code in a text editor/IDE?
    Mariano Guerra
    c
    +6
    9 replies
    Copy to Clipboard
  • dialmove

    dialmove

    11 months ago
    Artificial Intelligence is known to be a generic umbrella term for a wide variety of techniques. The current AI renaissance based on Machine Learning is all about advanced statistical techniques, and they're getting awesome never-seen-before results in all kinds of artistic media or tasks requiring observation and adequate reactions. Yet it often feels like these techniques don't really understand the problem they're solving, they merely act by imitation of what they were trained on. Classic AI, the one based on logic inferences, is strong in that task of understanding the situation and giving precise answers. Yet it lacks intuition, often resorts to brute force, and has not been seen to be able to generate anything resembling creativity (or not on the levels of the Deep Learning). I have often wondered if there would be a way to combine the strengths of both, but I know of no research that has attempted to do that. Do you know of any techniques that combines ML with deductive reasoning, using the first to "learn" about a problem domain and the second to "clean up" inconsistencies and errors in the solutions created "by gut feel" with the former?
    dialmove
    Denny Vrandečić
    +5
    11 replies
    Copy to Clipboard
  • i

    Ildar

    11 months ago
    How is everyone
    i
    i
    +2
    4 replies
    Copy to Clipboard
  • Nick Smith

    Nick Smith

    11 months ago
    Heretical idea: a function call syntax where the function name can appear anywhere in the call. First, presume we're using Haskell-style syntax, so that
    f(2,3)
    (C-style) is written as
    f 2 3
    (Haskell-style). Second, presume that parameters (in function signatures) must be prefixed with a
    &
    symbol (or whatever symbol you prefer; we'll need this later), so the definition of
    f
    would look something like
    f &x &y = ...
    . Now, imagine the definer of the function can choose where the function name is supposed to appear. So we could define the function f in several ways: •
    f &x &y =
    , in which case a function call would look like
    f 2 3
    &x f &y =
    , in which case a function call would look like
    2 f 3
    &x &y f =
    , in which case a function call would look like
    2 3 f
    Why would we want a syntax like this? Many reasons. 1. We get infix operators for free: •
    &x + &y =
    &x mod &y =
    2. We can have multi-word function names: •
    &x is less than &y =
    if &cond then &a else &b =
    3. This syntax erases the distinction between defining three separate functions returning one value each, and defining one function returning a record with three fields. I think this is nice; the distinction seemed arbitrary in the first place! Reducing the number of superficial choices a programmer needs to make helps reduce the cognitive burden of programming. And probably more things 🙂. What are the downsides of this syntax? • Some of the "classic" syntax of programming languages now becomes ambiguous. In particular, we hit ambiguities when passing functions around as values. In Haskell you can write expressions like
    map f list
    where f is a function being passed as an argument. Given we could now define
    f
    as an infix or postfix function (see earlier), we need to make sure that we can refer to the function in an unambiguous manner. We could do this by writing something like
    map (. f .) list
    where the
    .
    symbol means an unbound parameter. For the multi-word functions, you'd write
    map (. is less than 5) list
    • There are a few other potential issues I'm working out. Regardless, this seems like an interesting idea, right? 🙂 How do people feel about it?
    Nick Smith
    a
    +9
    60 replies
    Copy to Clipboard
  • Adnan Chaumette

    Adnan Chaumette

    11 months ago
    Is there some research/articles worth checking about the usage of icons in user interfaces? Looking at 3D softwares like Maya, or VS Code's right panel icons; I sometimes have a hard time understanding why we've come to rely on icons so much when they're almost never readable without an extra effort of hovering on them or clicking on them to know more about them. Photoshop is the guiltiest of all in this category, and you also have softwares like Figma, where all possible operations tend to be grouped under just a few icons, and clicking on those icons opens a dropdown that contains icon + description, which makes everything really easy to understand. Could there be some reasonable explanation beyond lack of space? In contrast, Windows Explorer took a different approach, where it occupies more space, but every single option is cristal clear even for the most untrained eye. Not sure how close this is to the FoC; but definitely close enough to the future of software visual design I believe.
    Adnan Chaumette
    Mariano Guerra
    +3
    8 replies
    Copy to Clipboard
  • curious_reader

    curious_reader

    11 months ago
    Ouch , true? What do you think: 1. Is it harder? 2. About that relationship.. https://twitter.com/KevinHoffman/status/1448272900759379972
    curious_reader
    Daniel Krasner
    +10
    35 replies
    Copy to Clipboard
  • g

    George

    11 months ago
    Does anyone know of work on software maintenance? Specifically around modifying code after upgrading libraries with breaking changes. I spend most of my time making sure no one notices that I’ve changed anything. I feel like improvements to this could have huge benefits to productivity.
    g
    Kartik Agaram
    +1
    3 replies
    Copy to Clipboard