• karki

    karki

    8 months ago
    21 Questions for the new year (by Philip Guo via private newsletter) Discovery-Based² Software Development • How do people write code to make novel discoveries by, say, analyzing data or building prototype software?³ • How do people manage ad-hoc data sources (e.g., using lightweight file formats rather than formal databases) when exploring data or prototyping software? • How do research programmers deal with environment setup and upgrade issues? Follow-ups: Are these complexities due to the decentralized nature of open-source ecosystems that many researchers now work in?⁴ Or is there something inherent to software that makes environment issues unavoidable?⁵ • How do programmers debug across multiple programming languages and independent distributed components (e.g., on cloud-hosted services)? • What are the tradeoffs involved in maintaining long-lasting open-source software, especially within research lab settings where resources are scarce?Learning Code, Data, and Environment • How do novices struggle with setting up and configuring software environments before even getting to write their first line of code, and how can instructors alleviate these struggles while still providing a realistic experience? • What are the emotional and psychological barriers that prevent novices from proactively just trying things out on the computer, observing what happens, and learning from those firsthand observations? • How do TAs and students interact during tutoring sessions for learning programming and data science? • How can visualizations help teach programming and data science? (Follow-up: and how can these be extended to teach modern machine learning concepts?) [Sample visualisations attached as files.]The Hidden Curriculum • How can we teach students the Hidden Curriculum of unwritten rules and unspoken norms required to succeed in college and launch their careers when these nuances are never taught in the official curriculum of formal courses? • How can we help graduate students and junior researchers navigate the hidden curriculum of unspoken rules when starting up their academic research career? • How can we help international students, those from low-income families, and those from different cultural backgrounds than the dominant norms to navigate the hidden curriculum of university life and their early professional careers? • How can adults find trusted mentors without potential conflicts-of-interest after they are no longer in a formal school setting? (e.g., typical work mentors such as one’s manager and coworkers may have hidden conflicts-of-interest) • How can mentors create environments with good scaffolding and psychological safety to help junior colleagues “fall into the pit of success”?Tacit Expert Knowledge • How can we draw out experts’ tacit (unspoken) knowledge about their work practices so that novices can learn by (virtually) looking over their shoulder? • How can we capture experiential knowledge (e.g., how it feels to be doing something) and share it with relevant people in authentic and relatable ways? • How can we encode tacit expert knowledge into AI tools (e.g., GPT-3 and other large language models) and present it to novices in a format that’s the most timely, relatable, and helpful?Creating Online Content • How can we encourage people to share creative content with a receptive and targeted audience without the noise and unpredictability of public online posting? • How can sub-one-minute videos be used for education rather than just for endlessly-scrolling mindless entertainment? • How can we quickly capture insights in “one take” without needing any post-processing? e.g., with in-camera video production tools, real-time screenshot and screencast interactions, or AI scaffolding to encourage creative writing⁶ • How can we make video editing as simple and intuitive as photo editing?--------- superscripts key 1 - not an accurate number 2 - As opposed to “product-based” software development to create mass-market products. 3 - Most of these questions will likely lead to me asking: And how can we improve upon the status quo of how things are being done here today? 4 - For a hot take, check out Why Wolfram Tech Isn’t Open Source. 5 - I tried not to pile on follow-up questions but couldn’t resist here. In fact, all of these 21 questions could generate more detailed follow-up questions. 6 - It’s also bad to prematurely suggest solutions when posing open-ended questions, but again I couldn’t resist.
    karki
    Konrad Hinsen
    3 replies
    Copy to Clipboard
  • curious_reader

    curious_reader

    8 months ago
    I like this piece: https://moxie.org/2022/01/07/web3-first-impressions.html in his conclusion he points out: "We should try to reduce the burden of building software" Go Future of coding ^^
    curious_reader
    Duncan Cragg
    +4
    19 replies
    Copy to Clipboard
  • Kartik Agaram

    Kartik Agaram

    8 months ago
    Which of https://sdgs.un.org/goals does your project aim at? It can be as indirect as you like (they're all hard problems) but pick just 1.
    Kartik Agaram
    Denny Vrandečić
    +7
    10 replies
    Copy to Clipboard
  • Mariano Guerra

    Mariano Guerra

    8 months ago
    How come the thinking tools community doesn't seem to draw much inspiration from Wolfram? It's literally a tool for thinking mathematic and scientific thoughts.
    https://twitter.com/iamwil/status/1481694811547521025
    Mariano Guerra
    Srini K
    +1
    5 replies
    Copy to Clipboard
  • Paul Sonnentag

    Paul Sonnentag

    8 months ago
    I’ve been obsessed with the question of how the future of coding might look like for a while, and I’m at the point where I have to ask myself if I’m actually progressing or just jumping from idea to idea. I was initially motivated by the vague feeling that something about software development today is wrong and that there has to be a better way. My working hypothesis was that programming is too complicated. If we made it more accessible, everyone could create precisely the tools they need to solve their problems. Is this true? If we gave everyone the ability to program overnight, very little would change. People still couldn’t quickly build tools to solve problems. I know this because I currently don’t use any tool I’ve created for myself. Most of the time, it’s just not worth it to build a tool for myself. Making programming easier isn’t sufficient to create an ecosystem of DIY tools. The shape of the artifact that we produce when we program has to change as well. The next question is: Do people even want to create their own tools? The answer is most people probably don’t. B Nardi [1] surveyed how people use applications that support end-user programming like spreadsheets or CAD software. What she discovered is that most people only used basic features. If they wanted to do something more advanced, they relied on the few people on their team (10 - 20%) that had an intrinsic interest to tinker with computers and read manuals. She called these expert users local developers because they helped raise the technical sophistication of everyone by supporting their colleagues with questions and by sharing macros or formulas that they’ve created. We can see the emergence of local developers also in the no-code movement. There are now dedicated agencies that focus purely on creating no-code applications [2]. My initial hypothesis that we have to make programming easier was naive and too focused on the creation process. In the future, I want to focus more on the shape that applications should have once they are built. So, for example, I’m less interested in finding more user-friendly abstractions than the EXCEL formula language. Instead, I want applications that you can take apart into recombinable parts. How could a tangible building material of information software look like? • structured search • drag and drop of data objects How to address the different classes of users of the system? • A base material that is useful without programming • A framework for developers to create domain-specific components • A glue language for local developers to recombine the components [1] https://mitpress.mit.edu/books/small-matter-programming [2] https://nocodeagencies.com/
    Paul Sonnentag
    i
    +5
    20 replies
    Copy to Clipboard
  • daltonb

    daltonb

    8 months ago
    Finally read The Dream Machine which was soooo good. I found the writing a bit of a slog, but the research is gold. Curious how many here have read the whole thing? Had no idea Lick was all about modeling. 🙂 I also just discovered “The Illusion of Life: Disney Animation” which is blowing my mind. The two are fun to juxtapose.
    daltonb
    Orion Reed
    +4
    7 replies
    Copy to Clipboard
  • daltonb

    daltonb

    8 months ago
    A few shower thoughts on AI and end user programming. • I imagine this group is more averse to AI research compared to baseline in tech/CS. The following comes to mind: ◦ Most algorithms today tend to be pretty opaque, whereas we value understandable systems. ◦ Current end user systems (e.g. Alexa) are super frustrating when they don’t give you what you want, since their behavior is hard to manipulate. ◦ There’s an uneasiness about AI systems replacing the things we DO want to control; we value systems that put people in control. ◦ There’s little value for human intuition in most current AI research, with some notable exceptions below. • The deep learning gold rush has created a situation with interesting analogies to the “programmer/end user” dichotomy. Researchers who develop the expertise to design deep learning systems tend to “think in deep learning” to the exclusion of better suited approaches in some contexts, while those without a deep understanding have little ability to modify their systems. • Going further with this, two of the most interesting researchers right now IMO are François Chollet and Josh Tenenbaum, both of whom see program synthesis as the key to advancing AI in a more interesting and useful direction. There’s a parallel with the popular “Type I/Type II” thinking analogy: deep learning is great for Type I thinking (pattern matching, interpolation, “geometry”), while there hasn’t been much progress yet with Type II thinking (generalization, planning, “topology”). The idea is that you need both: a perception layer that goes from continuous to discrete, and a “programming” layer to work with the results. A recent example of program synthesis is DreamCoder. • IMO we’re about to see all the wrong assumptions that are encoded in current software systems recapitulated in this new trend in AI research, since these efforts will use existing programming languages for the program synthesis component (DreamCoder uses a lisp). I think there’s an opportunity for our group’s way of thinking to improve on the “program synthesis” part of the pipeline. • Chollet’s “Abstraction and Reasoning (ARC)” paper and challenge is to me a very clever and appealing illustration of the limitations of deep learning and the potential of program synthesis. ◦ One “big idea” is to optimize for generalization by limiting the number of training examples available to an algorithm. • “Building Machines that Learn and Think Like People” is another nice intro to this direction in AI research, linked in this rather delightful essay. • Lick’s Man-Computer Symbiosis paper from 1960 is as fresh as ever (not to mention The Computer as Communication Device). • If this is all too nebulous, Chollet’s NeuroIPS talk (the first 40 min) is a nice crisp intro. Interested if anyone else is thinking about these topics.
    daltonb
    shalabh
    +3
    20 replies
    Copy to Clipboard
  • Matthew Linkous

    Matthew Linkous

    8 months ago
    How do you think software could be designed and developed differently if everyone person on the internet had their own personal server? Anyone built any apps designed to be exclusively self-hosted? What could that mean for the future of SaaS?
    Matthew Linkous
    a
    +2
    7 replies
    Copy to Clipboard
  • Denny Vrandečić

    Denny Vrandečić

    8 months ago
    Just a half-formed thought: in the following tweet, the developer has mapped foot pedals to some modifier keys, so she uses one pedal for alt-tabbing, one pedal for control, one for shift, etc. But notice how giddy and happy she is presenting that? My guess is that the fact that even a little bit more of our body is used in our day to day work, which is usually just the fingers and hands, would make us giddier and happier. https://twitter.com/TaliaRinger/status/1485681422069346305
    Denny Vrandečić
    daltonb
    2 replies
    Copy to Clipboard
  • Denny Vrandečić

    Denny Vrandečić

    8 months ago
    I think something similar is going on with graph representations of otherwise linearly encoded texts, be that knowledge graphs, ontologies, or programming code. The idea that we spread out these more or less one-dimensional beasts into two dimensions, or even three, is deeply appealing to us, even though we haven't seen as much impact with the actual current results of this line of work. So thinks like UML diagrams, Vlojure, Scratch speak to our desire that they should be awesome. Just because it is a much better fit to our capabilities.
    Denny Vrandečić
    j
    3 replies
    Copy to Clipboard