• w

    wtaysom

    3 years ago
    @stevekrouse and Vlad Magdalin (not here at least under that name), what breadth and depth in the Podcast https://futureofcoding.org/episodes/035 this week! What is planning? (A: "Rules for a computer to follow.") What is direct manipulation in contrast to liveness? Got me thinking. I propose a new term "direct attention" to help draw attention to the nuance of manipulation. Consider this: much of what we call direct manipulation is not as direct as it seems. In some sense, drawing on a screen with a mouse or trackpad is not nearly as direct as sculpting clay. The tool, the control surface, is removed from the material being manipulated. And it's not that fingers are always more direct else why would anyone want a stylus for a tablet? In that case, fingers are getting in the way of something. Of what? Our attention. With a stylus, most can more easily attend to the work. Most, but not all. For the disabled or a young child, the pencil will be less direct rather than more. And it works the other way too. Experience, training, habit changes the fluidity of things. Some are comfortable with email as a locus (or Skype) over AirDrop. Language, natural language, is humanity's most significant attention modifier: spoken language more naturally, written language through learning and practice with its attendant flexibility and abstraction. A master, through the technology in his or her mind, may be more at home, more readily able to manipulate the abstraction than medium, perhaps to the point of becoming disconnected from the substrate. (An anecdote involving Beethoven comes to mind.) And at that point, I suppose the interface has become a new material and ultimately a thoroughly subjective one.
    w
    j
    4 replies
    Copy to Clipboard
  • shalabh

    shalabh

    3 years ago
    shalabh
    w
    +1
    10 replies
    Copy to Clipboard
  • wolkenmachine

    wolkenmachine

    3 years ago
    Seems relevant: https://www.technologyreview.com/s/536356/toolkits-for-the-mind/ How does the design of a language effect the culture of it's users?
    wolkenmachine
    Kartik Agaram
    +1
    6 replies
    Copy to Clipboard
  • Kartik Agaram

    Kartik Agaram

    3 years ago
  • stevekrouse

    stevekrouse

    3 years ago
    I have no plans Sunday night (London time, so that's Sunday morning SF time) and thought it could be fun do to a group video chat for people in this group. Haven't figured out format or agenda yet - just wanted to put feelers out for general interest 👍
    stevekrouse
    Stefan
    +9
    18 replies
    Copy to Clipboard
  • Aidan Cunniffe

    Aidan Cunniffe

    3 years ago
    Aidan Cunniffe
    Stefan
    +2
    9 replies
    Copy to Clipboard
  • gman

    gman

    3 years ago
    functional reactive programming and large datasets any insights? I wrote a native photo viewer (think Picasa or iPhoto). I set it to show 250k photos. With a naive implementation that had serious problems for the "reactive" part. For example there are settings on how to display the photos (with or without filename, with or without size, etc...). My understanding of "reactive" effectively all 250k photos are connected in some way to the state of
    settings.showDate
    and
    settings.showFilename
    . Of course that 250k can possibly be trimmed to just those photos that are on display (*) but even then there might be 100 to 500 photos visible which just seemed to kill all perf. Obviously there are ways to optimize but it did make me question if "reactive" stuff is really a solution for anything but relatively small forms. For example one way to fix the perf was to basically move the reactive part much higher up. The "photo grid" is "reactive" to those settings, not each individual photo. Still in a way that doesn't seems to me the promise of "reactive" where I can just declare what I want to display and what state it depends on and "magic" happens so it's wonder if "reactive" is actually the best way. I suppose I should define reactive. My understand is a reactive system is one in which a change to state triggers a change to all views of that state in some automated way. You don't have to declare the relationship between the state and the views. The fact the view used the state is enough for the system to figure out there's a connection. (*) given a pinterest style display, any change that affects the size an image is display requires a re-layout so even if you're only displaying a small portion of all photos you actually have to apply to setting to all photos above the ones being viewed in order to figure out what is actually visible given the re-layout.
    gman
    Stefan
    +2
    4 replies
    Copy to Clipboard
  • Nick Smith

    Nick Smith

    3 years ago
    What makes programming hard? What makes building systems hard? I think we all have some of the "obvious" answers in our minds but I've never seen a list all in one place. I'm interested in hearing everyone's perspectives. Humour me! 😇
    Nick Smith
    Kartik Agaram
    +3
    19 replies
    Copy to Clipboard
  • d

    dev

    3 years ago
    thanks for making this happen @stevekrouse! can we have an "announcements" or meetups channel for the next one? I missed the announcement because I don't go on twitter and missed it in the general channel
    d
    Duncan Cragg
    +1
    4 replies
    Copy to Clipboard
  • alltom

    alltom

    3 years ago
    @Nick Smith I don't think so, but it's just because you're talking about the quality of the communication and I'm talking about the amount. I'm saying that when protocol boundaries match team boundaries, cross-team discussion is only ever needed when the protocol changes, whereas without protocol boundaries, the teams potentially step on each other's toes with every change. You're right about maintainability, but today it's very easy technologically and organizationally to enforce a single programming language across the organization, whereas it's nearly impossible for people to collaborate in multiple languages at any level smaller than a server. That's a lever that we just can't pull, even in cases where it might make collaboration more efficient. A type of collaboration I see a lot is when my team needs another team's expertise. An RPC protocol can be written to satisfy almost any language's type system guarantees, so theoretically the only difference between calling a method written in the same language and one in a different language should be where the computer looks for the implementation. But when I ask a team of machine learning experts to write a GetRecommendedMovies() function for my web site, and their preferred ML library is TensorFlow, their implementation strategy varies dramatically based on which language I want to call the function from. I don't think we necessarily want that collaboration overhead. Usually, we don't gain anything from it. And if in the course of writing GetRecommendedMovies(), they accidentally introduce a memory leak, does the user get a connection-lost error because the whole server goes down, or is the movie recommendation part of the page just empty because I handle the error on my side? Do I have to fix their bug to work on other parts of my page? And if I want to continue development with a working version of their code (not just a black hole that behaves as if the function never existed), do I have to root cause the bug to figure out which commits to revert, or can I just back out all of that team's changes (the ones on their side of the protocol boundary) from the past week? Can I do that without losing everyone else's changes from that same period? This is the shape of my collaborative coding dream. 🙂
    alltom
    Kartik Agaram
    +1
    9 replies
    Copy to Clipboard