You are viewing archived messages.
Go here to search the history.

Christopher Galtenberg šŸ•°ļø 2020-07-25 14:25:45

šŸ¦ Lee Edwards šŸ³ļøā€šŸŒˆ: * Low code is infinitely more interesting than no code. The most popular programming language in the world is Excel. We are massively underestimating the number of people who can low-code in their area of expertise. The barriers to entry for coding are lowering every day.

William Taysom 2020-07-27 02:56:56

What I find most shocking about Excel is how often you conceptually have regions with the "same" formula (just references varying) with very little help from the tool to maintain the integrity of this "formula."

Steve Dekorte 2020-07-27 19:52:58

An earlier thread I started asked why people thought so little progress has been made in ā€œfuture of codingā€ style dev tools. After seeing how spreadsheets are being used, Iā€™m starting to think the answer is that spreadsheets have been a good enough solution to saturate this part of the dev ecosystem and thatā€™s made for relatively few opportunities in the space.

Christopher Galtenberg 2020-07-27 21:14:49

I'm not sure how big a "part of the dev ecosystem" that spreadsheets consume... A lot of the "run your business" cases, definitely, but not that much in terms of how humans can use computers.

Steve Dekorte 2020-07-28 21:11:03

Do you think there are more commercial apps than apps made within spreadsheets?

Christopher Galtenberg 2020-07-28 21:53:14

I couldn't say... I guess I'm thinking more of the mind-share of what people could think up and want to build. Like graphics, for instance ā€” a lot of great advances there, a lot of FoC projects. Or big data / data analysis. As many different areas as there are, there should be FoC approaches and innovations.

Feels like spreadsheets would mostly only encroach and suck up oxygen of business applications ā€” but even there, projects like Coda succeed (or at least survive in the ecosystem).

In fact, I'm of the mind that spreadsheets haven't even started to soak up the mind-share that they should. So many possibilities that haven't even been explored. https://futureofcoding.slack.com/archives/C5U3SEW6A/p1595371343178500

[July 21st, 2020 3:42 PM] galtenberg: What other ways are we not really appreciating the power of the spreadsheet model? https://twitter.com/galtenberg/status/1285701173476044801

Ryan King 2020-07-28 22:43:04

Wouldn't the super complex excel programs be using macros and are more visual basic than excel at that point?

Nick Smith 2020-07-27 07:37:24

Disregarding performance or implementation concerns, is self-describing data the way to go? Is there a conceptually "nice" approach to encoding the meaning of data other than composing it from well-defined attributes? Do schemas have any purpose beyond acting as a "type system" and a data compression technique? Should every piece of data in a programming system be self-describing? We can compress away the redundant descriptions within collections.

Gregg Tavares 2020-07-27 10:11:09

What does "self-describing" mean? Are you going to label every number what it is? A price? A price in dollars? A price of a TV in dollars? A price of a Sony TV in dollars? A price of a Sony TV model KHL123456 in dollars? etc...

How about this other number. It's an area of a house floor plan in square meters. Will it be labeled how accurate it is? Is it rounded to the nearest square meter? Is all area inside the outside edges of the walls (so it includes the walls?) or is the space between walls? Does unusable space like a staircase get included?

Just trying to clarify what "self-describing" means

Do you need a giant taxonomy of categories?

Nick Smith 2020-07-27 13:17:15

Taxonomies are an orthogonal issue. A self-describing data object is (according to me) just one that contains all the metadata (e.g. references to standardised attribute definitions) needed to determine the information it contains. The actual amount of information stored in the object (level of detail) is also an orthogonal issue.

Doug Moen 2020-07-28 02:45:43

http://ivizlab.sfu.ca/arya/Papers/SW/SOP.pdf

Subject-Oriented Programming (A Critique of Pure Objects)

This essay critiques the idea that it is possible and desirable to put all of the information needed to interpret an object inside the object itself. Different applications or modules may interpret the same data in different ways, and you can't always plan for all of these interpretations in advance.

Doug Moen 2020-07-28 03:40:24

If you have too much self description, it's cumbersome: code can get very verbose with all the adding and removing of tags. I've seen class libraries for computer graphics where there are separate Point3 and Vector3 classes (for points and vectors in 3D space). That's too much self-description for my taste. In the graphics languages I use, a point and a vector have the same representation, as a generic 1D array of numbers, viz: [x,y,z]. If I store one of these values in a record, then the field name will informally indicate whether the value is being interpreted as a vector or a point. No need for the value [x,y,z] to be self describing as well.

If you have too little self description, code gets cryptic. Like in old-style Lisp programming, where you use lists for everything (no records or maps).

Stefan Lesser 2020-07-28 15:41:35

@Nick Smith I'm interested in this as well. Mostly from the perspective of resilience and as a way to separate content from structure.

You set aside taxonomies and level of detail as orthogonal. Would you mind elaborating what you'd consider essential? And are you by any chance currently experimenting with this?

Nick Smith 2020-08-01 06:17:23

Stefan Lesser The "essential" definition of self-describing data is (to my understanding) the one I gave earlier in the thread. The data must (at the UI level, not the DRAM level) contain references to well-known attributes that have an agreed meaning within a certain community/context. I haven't been able to think of any alternative definition.

Nick Smith 2020-08-01 06:18:12

This requires that attributes have IDs (potentially UUIDs) that can be looked up in some kind of registry.

Nick Smith 2020-08-01 06:38:33

Doug Moen I agree with the premise that a data set may be perceived differently at different places/times within an application/system. Though that doesn't obsolesce this discussion: we can refine it to be about self-describing views (derived/reactive data sets). Though such a perspective won't necessarily aid us here. The problem I'm trying to solve is: when you give a data set to someone (a human or a device), how are they supposed to figure out its meaning? Or rather, what is the best way to do so? Send them an email explaining the meaning? Or something more formal and machine-friendly.

Stefan Lesser 2020-08-01 09:57:07

references to well-known attributes that have an agreed meaning within a certain community/context.

@Nick Smith Isnā€™t that what a taxonomy is all about?

When I think about self-describing data, Iā€™m most interested in in-band vs. out-of-band transmission.

Some parts of a data format need to be agreed on out-of-band. That could be generic assumptions like endianess, that a string is encoded in UTF-8 or that a field in the UI only takes a valid email address. If thatā€™s just assumed, these assumptions need to be transmitted out-of-band, i.e. on a different channel which could be that email you mentioned or is just ā€œobviousā€ within a community (side note: thereā€™s danger of exclusion here).

Self-describing data formats transmit more information in-band, as part of the data. So there is an explicit part of the data that says what follows is UTF-8 or thereā€™s a mime type that indicates here comes an image or JavaScript, or you go all the way and end up in semantic web land with those unique, agreed upon entities described in RDF and OWL.

The question to me is: how much of a data format can and should be described explicitly in-band?

And the interesting challenges hiding under there are: encoding structure vs. content and what is data vs. what is metadata?

Nick Smith 2020-08-01 10:09:30

I'm trying to avoid the baggage associated with the term "taxonomy", since the most common usage implies "hierarchy" and declarations from some authority (and I don't want the discussion to veer off in that direction). We can use the term https://en.wikipedia.org/wiki/Folksonomy if we want a specific term (thanks to Jack Rusher). What's important here is not the characteristics/structure of a classification scheme (which is what taxonomy/folksonomy is concerned with), but the mere existence of such a scheme.

The question to me is: how much of a data format can and should be described explicitly in-band?Serialisation formats are not a language or environment concern, they're an implementation concern, and I'm acting as a language/environment designer rather than implementer as of late, so I'm not focusing on that stuff. But I'm interested in how the semantics of a data object are presented to the user! Which is closely related. If you're on that bandwagon, then sure, that's the question šŸ™‚

Nick Smith 2020-08-01 10:13:45

(Btw, if one was to argue that data formats are part of the user interface, then my retort would be that your programming environment is too small in scope)

Stefan Lesser 2020-08-01 14:41:46

@Nick Smith If you're interested which "bandwagon I'm on", the second half of this post explains it better: https://stefan-lesser.com/2019/12/06/structure-and-behavior/

Stefan Lesser 2020-08-01 14:52:35

While I do see a distinction between data format and UI, I don't think that's just two different categories, but more like several layers, almost like a gradient. If a string is ASCII or UTF-8 is probably just an implementation detail (until we talk about import/export). Requiring an email in a form field, not so much. Although it's still just some bytes being parsed in a certain way.

So I wouldn't exactly claim that "data formats are part of the user interface", but I wouldn't claim that these things are completely separable either.

S.M Mukarram Nainar šŸ•°ļø 2020-07-26 14:22:25

http://breandan.net/2020/06/30/graph-computation/

Has this been discussed here yet?

Prathyush 2020-07-27 09:35:08

Thereā€™s this very intriguing bijection happening between maps and Lambda Calculus. Linking to my tweet as I have collected some relevant stuff connected with Lambda Calculus and Graph theory there: https://twitter.com/prathyvsh/status/1284124568831975425

šŸ¦ Prathyush: Serendipitous discovery of the day. Connection between Lambda Calculus and the 4-Color Problem from graph theory!

Slides here: https://www.cs.bham.ac.uk/~zeilbern/talks/lam4ct.pdf https://pbs.twimg.com/media/EdIgU0oUMAAcc7u.png

Orion Reed šŸ•°ļø 2020-07-25 14:08:04

Iā€™d like to talk a little about capitalism (I know I know please donā€™t leave!). Not politics, not an ā€œUh it sucks!ā€ conversation, but a serious discussion thatā€™s highly relevant to the future of coding. This is a hard topic to discuss with the same rigour as computer science or PL design but I think it is one of the most important topics for this community to tackle.

To help bring some rigour to this conversation Iā€™d like to bring up some incredibly important academic work which you can check out should you want to. https://en.wikipedia.org/wiki/Surveillance_capitalism and https://en.wikipedia.org/wiki/Platform_capitalism (these models arenā€™t in competition) are two of the best and most current models of economics, and could not exist without computing. They are both worthy of your time and have lots of explanatory and predictive power. They also point to a very important point for us: The technical challenge alone will not fix computing, nor will design. Itā€™s not as simple as changing the incentives for companies or decentralising software, and not as straightforward as improving coding by a few orders of magnitude.

So, if we as a community want to change coding forever and for good, we must also understand the societal, political and economic context we exist in. Iā€™d love to hear thoughts and discuss this but want to guide this conversation away from some pitfalls and towards productive conversation.

Things we donā€™t need to discuss:

  • Personal opinions on wether capitalism sucks or not
  • Opinions on social media or corporate giants and their many problems or evils
  • The kind of discussions and critiques we have again and again all over social media around capitalism, Web 2.0, platforms, giant tech companies, etcetera.

Some things this community could benefit from discussing:

  • Concrete research and resources to learn more, inform ourselves and each other.
  • Ways in which we can facilitate true systemic change through our work here.
  • Questions that we think are worth exploring
  • Ways for this community to keep growing its understanding of economic context, the complex structures behind them, and improve our collective reasoning and decision making.
Jack Rusher 2020-07-27 13:47:48

With regards to how one might have the benefits of market societies without the inhumanity of them, I rather like https://www.globalutmaning.se/wp-content/uploads/sites/8/2011/01/Davos-The-nordic-way-final.pdf as a starting point:

[O]ne can discern over the course of the twentieth century an overarching ambition in the Nordic countries not to socialize the economy but to > liberate the individual citizen from all forms of subordination and dependency>  within the family and in civil society: > the poor from charity, the workers from their employers, wives from their husbands, children from parents ā€“ and vice versa when the parents become elderly>  [ā€¦] legislation has made the Nordic countries into the least family-dependent and most individualized societies on the face of the earth. To be sure, the family remains a central social institution in the Nordic countries, but it too is infused with the same moral logic stressing autonomy and equality. The ideal family is made up of adults who work and are not financially dependent on the other, and children who are encouraged to be as independent as early as possible.

[... and particularly this statement about love ...]

[A]uthentic relationships of love and friendship are only possible between individuals who do not depend on each other or stand in unequal power relations. Thus autonomy, equality and (statist) individualism are inextricably linked to each other.That said, I also have sympathy for Freinacht's concerns about personal freedoms within these sorts of structures.

Andreas S. 2020-07-28 15:56:30

One very interesting approach that I have found so far is John Vervaekes - Awakening from the meaning crisis series https://m.youtube.com/watch?v=54l8_ewcOlY and his work in general. He is a cognitive scientist and in search of practices to tackle the challenges of the meaning crisis.

Orion Reed 2020-07-29 04:47:48

This might all be too academic feeling but stick with me here, because scholarly academic politics outside of partisan bleh is quite a nice place to visit...

  1. We (humanity) live in a neoliberal world, A word that has lost its meaning and is obscured from general discussion and even thought so our only hope is to look to academia.

Neoliberalism: the reigning philosophy of life, politics, society and economics since the 70s-80s. get an overview https://www.theguardian.com/news/2017/aug/18/neoliberalism-the-idea-that-changed-the-world?CMP=Share_iOSApp_Other.

  1. We will eventually (and Iā€™m arguing here for ā€˜imminentlyā€™) need a coherent, scalable alternative.

  • This is something that should be thought about and discussed and yet we have forgotten itā€™s an ideology in the first place.

More specifically with all the reading nā€™ stuff...

https://en.m.wikipedia.org/wiki/Inventing_the_Future:_Postcapitalism_and_a_World_Without_Work [wikipedia summary] It's openly partisan but isnā€™t a partisan discussion.

Less likely to sit as well universally are the https://criticallegalthinking.com/2013/05/14/accelerate-manifesto-for-an-accelerationist-politics/ and https://en.wikipedia.org/wiki/Capitalist_Realism.

But really any of the work thatā€™s yet to escape the lab of politics departments that is working to build a truly coherent politics beyond neoliberal capitalism in all its many forms is worthy of reading and bringing into general discussion.

@Andreas S.

Kartik Agaram 2020-07-29 05:23:52

To help connect the dots, do you see ways that any of these scholarly academic ideas have implications for technical research? Like, if someone is pro-accelerationism, would certain kinds of projects be more or less difficult in such a world? If the political future I believe in is incompatible with the technological future I'm exploring, that would be super useful to know early. If there are no such constraints, then this feels like a complementary subject where we can "cleave nature at the joints".

As an example, I think a fundamental property of software is that it can't be delegated without exposing oneself to unbounded risk of being pwned, at some point in the long-term future. This leads me to trust extrinsically motivated (for pay) software less than intrinsically motivated, and small-scale software over large (because of the need to maintain relationships with one's dependencies). That worldview further leads, inevitably, to a world where software is developed primarily by those who can make ends meet by other means besides the software they write. If you trust someone enough to use their software, it seems to me, money can't be more than a tiny part of that relationship. This is an uncomfortable realization for me, because I'd love to live in a world where everyone can contribute to open source, rather than just the modern equivalent of gentleperson scientists in the Enlightenment. More background reading on my worldview: https://en.wikipedia.org/wiki/Gemeinschaft_and_Gesellschaft; https://en.wikipedia.org/wiki/Guanxi

We don't need to debate the pros and cons of different schools here, but it might be interesting to take on frames of reference and explore implications.

Andreas S. 2020-07-29 07:33:52

Kartik Agaram my Zettelkasten repo is called - connecting dots šŸ˜…

Andreas S. 2020-07-29 07:34:40

I will put this here too but I guess itā€™s interesting enough to discuss on its own. How to connect these threads?

Andreas S. 2020-07-29 07:35:36

šŸ¦ Stephen Diehl: Palantir and Facebook are the largest employers of Rust engineers in the world.

Rust Community: What exactly is the point of all of your long codes of conduct and community guidelines if the primary use for your language is the creation of a nightmare surveillance state?

Andreas S. 2020-07-29 07:39:44

Code of conduct - surveillance state how does it fit together?

Konrad Hinsen 2020-07-29 09:24:18

Kartik Agaram I do see a possible alternative to your trust scenario. Software could be written by paid professionals but be independently audited for various quality criteria, including privacy. Clients would then have to trust at least one certificate issued after an audit. This is in fact not very different from how we evaluate complex physical artifacts coming from industrial production lines.

Orion Reed 2020-07-29 13:39:52

Kartik Agaram to join some dots, there are several ways we can help:

by building software, languages and ideas that make it possible for smaller groups of people to build larger systems

By aligning our software projects with ideas that are compatible with a good future (truly owning data, trustless systems like decentralised apps, avoiding centralised platforms, making sure user data is not central to profit incentives)

And perhaps most significantly, help ourselves and each other understand long-term possibilities in the transformation of our collective political philosophy so that we can (as individuals and collectively) help to transform politics and political discussion to change whatā€™s possible in terms of the projects, organisations, and companies that we build.

An example of this would be a nation transitioning to an economics build around automation, universal basic income and an intentional move towards eradicating work (wage labour).

You may not think thatā€™s the way to go, and thatā€™s fine because the point is that itā€™s an example of a long-term philosophical shift that changes the things we can do, weā€™d all have different constraints on time and money which would change a lot of what we can do (in real-world, practical terms). This is sometimes referred to as a type of freedom. Today we have negative freedom, this would be a type of synthetic freedom. https://plato.stanford.edu/entries/liberty-positive-negative/ the ideas are explained well in a different context. An example would be that any US citizen is free to run for president in the negative sense (free from things that would stop you like laws excluding you) but theyā€™re not free to do so in the positive sense (you need enough time, enough campaign finance, etc)

Orion Reed 2020-07-29 13:45:24

It may not be entirely satisfying but regardless of political affiliation politics sets many of the constraints that manifest in the things we do as programmers and people in computing in many forms. So any discussion will be incomplete without some purely-political discussion too. We may be more interested in changing programming and computing, but must acknowledge and act on the underlying politics too if we are to make lasting significant worldly changes.

Orion Reed 2020-07-29 13:53:03

I would argue that politics dictates software more than software dictates politics. Even with magical future programming systems, by themselves they are not capable of radically transforming politics and therefor not sufficient to truly transform programming.

Konrad Hinsen 2020-07-29 14:03:02

@Orion Reed To connect some more dots: remember Conwayā€™s law. A software architecture favorable to out goals (whatever they may be) can only be developed and maintained by organizations that have a corresponding structure.

Orion Reed 2020-07-29 14:07:47

Konrad Hinsen yes exactly, and I would extend ā€˜organisational structureā€™ to include the political and economic system that organisations exist within.

Orion Reed 2020-07-29 14:13:32

Also worth mentioning research funding, which has almost disappeared for truly long term computing projects. Hard to image a Xerox PARC right now.

Jack Rusher 2020-07-29 14:25:00

I'm keenly interested in the question of how we can create a better future for all of humanity, but the conversation we would need to have to scratch the surface of what that might mean in practice seems too large for this venue.

Tim Lipp 2020-07-29 14:43:00

I'm enjoying the continued discussion!

A fantastic fresh perspective can be found in the book Walden 2.0, written by one of the top behavioral theorists of the last 100 years. It's a utopian novel that wrestles very well with the implications of things like universal basic income, but has I think a superior model. It is however a difficult book to come by.

Orion Reed 2020-07-29 15:34:38

@Jack Rusher great point, and youā€™ve clarified an organising principle for my thoughts here.

Let me try and connect the discussion to this community:

Within our political economic system we are by default second hand dealers in ideas. We are not the source of impactful political ideas because we think of computing, not of politics.

Importantly, we do interact with the people and knowledge within political thinking, but usually through media, conversations, social media, etcetera.

Regardless of what we do we will be thinking about, spreading and interacting with deep systems of political theory, economics, and so on.

Work by people in the field where politics is almost as code is to us. It is knowable, sometimes objective and academic political thinking accumulates and spreads over time.

So for us, who already have a world of things to do and think about, it is not a world we can really participate in. But if we take it as true that we interact with political research, theory, and philosophy indirectly, I think we owe it to ourselves to try.

This canā€™t be done by trying to get everyone to discuss thousands of papers, research, blog posts and articles so it seems the best thing we can do as a community is focus directly on facilitating and understand the hard work others are doing.

If I were to start this thread again the above is maybe where Iā€™d start.

Orion Reed 2020-07-29 15:39:45

Maybe this:

Political theory and discussion to our everyday life is analogous to type systems and static analysis but without the formality of mathematics.

Orion Reed 2020-07-29 15:47:15

Maybe the best thing is to focus on facilitating further discussion and discovery of that discussion so those that are able and willing to contribute further can do so.

Curious to hear thoughts on this one if you have them.

Kartik Agaram 2020-07-29 15:47:37

@Tim Lipp https://www.amazon.com/Walden-Two-Hackett-Classics-Skinner-ebook-dp-B003GEKL10/dp/B003GEKL10 purchased!

@Orion Reed I mostly agree with you on the goals. Amplifying small groups, data sovereignty, avoiding centralization, UBI, these are all the way to go for sure. The challenge for me is how to discuss these ideas in a productive way without pulling in the whole universe into this thread. (Paraphrasing Carl Sagan, step 1 to baking apple pie is a big bang.) How can we programmers here ease into the practice of reasoning about the political "type systems" that influence our lives?

The way I've been trying to manage complexity is to have some hazy sense that the software I create is likely to foster the world I want to move towards, and then forget about politics and focus on the thing I can contribute. But this doesn't feel like an ideal level of integration for sure. How can it be improved?

You're right that software depends more on politics than the other way around. But it also depends more on physics than the other way around. Does that mean we need to also discuss physics? Or is there a different, less reductionist, axis that matters more?

At the risk of seeming to toot my own horn, I recently described how my political goals drive my side project in http://akkartik.name/akkartik-convivial-20200607.pdf. Hopefully it shows that we share many of the same political goals, and that I'm not averse to discussing capitalism here. I've expressed similar sentiments to yours in the past in this group, about the need to discuss the context software is embedded in. Another recent thread that you may like is https://futureofcoding.slack.com/archives/C5T9GPWFL/p1595017818433700

Konrad Hinsen my reaction to independent bodies auditing code is twofold:

  • Ugh, that'll squeeze out all that's new and great about software.

  • That'll never never work, because software is changing too fast, and auditors will always lag auditees in knowhow.

Perhaps my opinion is colored by only having experienced regulation in India and the US.

[July 17th, 2020 1:30 PM] robert: <@UCUSW7WVD> I was reading through the <https://palladiummag.com/2020/07/10/how-late-zhou-china-reverse-engineered-a-civilization/|civilization article you posted>. And this stuck out to me: "The longer social technologies exist, the more varied the understanding of them becomes. The original contexts for their existence can change, or translation errors can occur in their reproduction." Viewing coding as an essentially a <https://en.wikipedia.org/wiki/Social_technology|social technology> (what is code used for other than to try to influence social processes) might be a way to look back and look at the fundamentals of what makes a civilization work. Indeed, there is a possibility that any group of people contemplating the future of code might do very well to spend as much time looking backward and attempting to understand as looking forward and seeing what might be.

Orion Reed 2020-07-29 15:52:00

Kartik Agaram thatā€™s a great quote and is exactly the kind of base starting point here.

Maybe remixing and collecting thoughts above and putting them in an order that helps us know how to facilitate the conversation.

Kartik Agaram 2020-07-29 16:07:05

(Coalescing comments after Orion coalesced intervening questions.)

On a tangent, can I recommend batching up your comments? I think that will help facilitate the discussion you want to have. Just hit send less often šŸ™‚ It'll make the conversation seem more balanced between different voices. I also find that it naturally makes the prose tighter (I'm more likely to edit text I haven't sent yet), and so easier for someone to follow. This thread is now at a forbidding length for someone just encountering it for the first time. And I imagine you'd want more people reading it.

Jack Rusher 2020-07-29 16:30:00

My concern about scope is similar to what Kartik Agaram articulated above. This topic area -- once it escapes Red/Blue tribal poo flinging -- starts from the already deep question of "What is a Person" and then expands to touch pretty much everything else.

Tim Lipp 2020-07-29 16:57:55

Kartik Agaram, I downloaded your article and can't wait to read it. The title is genius.

I used to work professionally as an auditor, and agree with you completely in your critiques. The focus on the "physics" side rather then the "politics" side of programming is what makes it so magical. It is much easier for politicians to lie than it is for scientists.

Orion Reed 2020-07-31 00:46:14

In an effort to support future discussion ā€”and as proctrastinationā€” I tried to slightly condense and annotate this comment thread, I removed a few things that I think werenā€™t central, such as some meta-conversation and reactions.

Itā€™s color coded, red means I still have to find a good short paragraph or link. yellow is open questions ripe for potential further discussion. I also tried to preserve some of the original context by keeping the bulk of this thread preserved.

Have a look. notes, additions, edits welcome. (Iā€™m thinking of making a more condensed version with few or no messages) if there are no objections and you think some of the questions are good ones Iā€™ll post it as a new thread to give others a chance to get an overview and hopefully help guide this community towards good future discussions.

Andreas S. 2020-07-31 08:08:34

@Orion Reed have you heard of the Zettelkasten method? https://andreass.gitlab.io/Zettelkasten.html

Andreas S. 2020-07-31 08:10:18

Tools like zettlr or roam research can help you organise your thoughts into Zettel. Then you can use transclusion to create persistent snapshots that are quite similar to your PDF

Andreas S. 2020-07-31 08:11:06

I would love to see more tools from the FoC community helping to create personal Zettelkasten and inter Zettelkasten communication Ivan Reese

Orion Reed 2020-07-31 11:52:54

@Andreas S. yes I have, I use Obsidian extensively (I have about 2,000 notes) but didnā€™t for this because it was more of a mental process and I didnā€™t feel there was a good tool for the job. Do you see any key questions or pieces of insight I should pull out of the thread still?

Jack Rusher 2020-07-31 13:56:37

@Orion Reed I like the structure of your PDF. šŸ™‚

Andreas S. 2020-08-01 11:00:11

@Orion Reed is your Zettelkasten or parts of it public available? Here is an example from a friend from the sense making community- nick redmark, interestingly he uses his public twitter account as a data backend and then tries transclusion/aggregates like this later: https://tweetliner.com/nickredmark/1275500762173341698

Ivan Reese 2020-08-01 19:18:52

(@Andreas S. ā€” Please move this discussion about zettels to DMs, or to a new thread ā€” this thread is about capitalism. Let me know when it's safe to delete your above message and this reply)

Lucian Ursu 2020-07-27 14:35:44

is there anyone familiar enough with OpenAIā€™s GPT-3 to tell me if you can use it in this way:

You feed it a text and then ask it questions about the text in the form:

  • How do I do X?
  • What are the main concepts present in the text?

Iā€™m thinking of something like Progressive Summarization: https://fortelabs.co/blog/progressive-summarization-a-practical-technique-for-designing-discoverable-notes

I hope my question makes sense

Ricardo A. Medina 2020-07-27 16:57:22

What are good related podcasts you've listened to? (aside the FoC one, of course) I can recommend Meta Muse. https://twitter.com/MuseAppHQ

Ray Imber 2020-07-27 17:27:25

I'm a huge podcast fan. Here is comes the deluge šŸ™‚

"https://corecursive.com/" is a good overview of a wide range of "survey of different programming languages" type topics.

"https://oxide.computer/podcast/" by Oxide computer company is amazing if you are interested in hardware at all. Even if you aren't, it's worth listening to for the history. They interview some real giants from the early days of Silicon Valley. Jeff Rothschild for example, as well as Jonathan Blow.

"https://artmusictech.libsyn.com/" - I found out about this podcast from the Miller Puckette episode of FOC. It's centered around an electronic music niche, but there are some fascinating nuggets there.

"https://brainsciencepodcast.com/" - not directly CS or Code related, but if you are interested in AI or Philosophy of Mind, or anything related to how the brain works, this podcast is highly underrated. Dr. Campbell is a medical doctor, and she interviews many top neuroscience researchers. It can get a bit technical with some neuro-science specific jargon, but she always makes an effort to make it understandable to wider audience.

The latest I have tried is, "https://generativeartistry.com/episodes/". I just started this one. It is interesting, but I'm not sure of the substantive content yet.

Ryan King 2020-07-27 18:13:55

This episode of 99 Percent Invisible is one of my favourites. It's on the invention of the computer mouse and ideas around simplicity / ease of learning vs. complexity / longer term productivity

https://99percentinvisible.org/episode/of-mice-and-men/

Ricardo A. Medina 2020-07-27 18:37:29

more recommendations (in youtube format): Jonathan Blow's channel and Tools and Craft (https://www.youtube.com/watch?v=3HPriE2a5yc&list=PLzaYMdbJMZW1KYU52yJvYVo-DStoY7UMH)

Stefan Lesser 2020-07-27 19:21:38

More about systems design, but definitely related (adding a reference here so itā€™s all in one place): https://futureofcoding.slack.com/archives/C5T9GPWFL/p1595578576302300

[July 24th, 2020 1:16 AM] stefanlesser: I think some of you here will enjoy this podcast by Ryan Singer of Basecamp, author of Shape Up: https://synthetic.transistor.fm/|https://synthetic.transistor.fm/

Daniel Garcia šŸ•°ļø 2020-07-24 19:24:08

I think that many companies are standardizing a workflow, that before writing any code you need to write a design document with the options on how to solve a problem and the chosen solution. A lot of times this document has the code changes required by any of the solution options.

To me the options that we didn't end up following seem as valuable as the chosen option, and those options should also be captured in code. A really easy way could be in separate branches, but then we loose visibility of them.

Is anybody familiar with source control software or with patterns to work with source control that also keeps tracks of options considered but not followed at the end?

Daniel Garcia 2020-07-27 20:14:14

that's a great example Kartik Agaram. Saving that info in a comment looks like a great hack, but also makes me sad not having a nicer way to do it šŸ˜¢

Your example also made me think of having benchmarks against "branches", as performance could change with upgrades of packages/language or rewrites of other parts of the codebase šŸ¤”

Kartik Agaram 2020-07-27 21:20:03

Yeah, performance is a common scenario here, or to be precise how performance interacts with complexity. On many occasions I've seen someone introduce a lot of complexity for performance, but the measurements that drove it are never revisited. Eventually we find that the performance benefits no longer accrue, while the complexity cost continues to be paid.

Ideally we'd be able to constantly track performance benefits of the trunk over alternatives. Using our existing CI system.

Daniel Garcia 2020-07-28 15:59:29

I secretly hate that now is so common to run everything in a CI server šŸ˜‚ , but yep I can see how it can be useful doing performance benchmarks in multiple branches.

This convo has been great Kartik Agaram, I got so many good ideas from it!

Mariano Guerra šŸ•°ļø 2020-07-22 18:33:24

http://www.flashgamehistory.com/

ā€œBeing a creator of and steward for Flash as a platform was a privilege. I felt that we were building a pencil and it was the community of creators that was responsible for the creation of Flash as a creative form. Our job as stewards was to anticipate needs, listen and make sure it worked. The core idea of having an accessible system for creating interactive media content that works across a range of devices is still a powerful one. Just like pencil and paper is a powerful tool. I hope it will happen again. Many years ago, I had the idea of Flash Forever. How can we treat what is created in Flash as valuable information like a book? Sadly, the need to drive business growth by adding features and capabilities, trumped the need for permanence. Itā€™s great that Flash still lives in the skills and experiences of the community of people who learned and grew with it.ā€ -- Jonathan Gay, Creator of Flash

Gregg Tavares 2020-07-28 05:20:30

No I didn't mean compression tho that was important too. The problem with Unity/Unreal for the web is their based around heavy assets and textures so even simple games end up being 10-20-50meg. Of course someone with experience can design a game around small assets but the default is encourage large bitmapped assets whereas Flash defaulted to vectors and yes, vectors are both small and very compressible

Flash did "stream". It ordered the data in the order of the timeline and would execute frames as soon as they downloaded without having to wait for the entire file to download. If you put a script on one of those early frames it would execute immediately. This made it trivial to have a 8meg file but present the user an interactive experience when only 50k or 100k of that 8meg file had downloaded.

The most common usage was just to display a custom progress bar. You'd put a script on the first frame that just watched the rest the file load and drew some kind of progress bar but there were plenty of flash files that started the first part of their game or gave you a character editing screen or something else while they continued to download the rest of the file.

In any case. The important part is the user not having to wait to start interacting. Compression is important but not sufficient. Just the ability to start before loading everything is also not sufficient IMO. The tools need to make this dead simple. In raw JS and with most JS based engines this is entirely left as an exercise for advanced users only. In Flash it was the norm. The format started as streamed vector graphics without scripting. Scripting was bolted on later but because it started as a streamed format that ability to give the user an interactive experience quickly ended up being built in from the start.

Gregg Tavares 2020-07-28 05:46:11

If It's not clear you can almost think of flash as a video format except for vector graphics. The rest was added later. But as an example if you add music to a flash file the music data will be interleaved in each frame for streaming. HTML/JS provides no native way to do this. You'd have to make your own file format and then parse the packets of the file yourself and pass off the audio packets to the WebAudio API via the JavaScriptProcessNode or an AudioWorker. In other words it would be a fairly advanced HTML/JS library whereas in Flash it was built in. This is why embedding WASM as in HTML or even putting assets in a WASM file isn't a solution.

You can read about all this stuff in the docs for the format. From the intro

It is designed to meet the following goals:

  • Network deliveryā€”The format can travel over a network with limited and unpredictable bandwidth. The files are compressed to be small and support incremental rendering through streaming....

Streamed audio packets interleaved with the frames are covered around page 181

https://www.adobe.com/content/dam/acom/en/devnet/pdf/swf-file-format-spec.pdf

How much of this stuff is important in 2020 I have no idea. Flash started in the 90s when having a modem was still the most common way to connect. But still, it definitely streamed and designed around getting something to the user as fast as possible.

Ray Imber 2020-07-28 17:28:58

Thanks for the reference! I wasn't aware that Flash supported streaming in that way. That was very advanced for the time.

The interleaved audio implementation is also very interesting! It's something I hadn't considered.

The important part is the user not having to wait to start interacting.I used the phrase, "time to first interaction". But I think we agree here. :amiga-tick:

In other words it would be a fairly advanced HTML/JS library whereas in Flash it was built in.I agree, that kind of streaming would be fairly complex to emulate, but It is technically possible to with today's technology (at least for desktop). The implementation would probably be a nightmare, but it's technically doable...

How much of this stuff is important in 2020 I have no idea.

The billion dollar question is, is it worth emulating?

To clarify, the reason I'm digging into this so hard is because I'm trying to see what if any useful bits of wisdom are worth taking from Flash as a technology that may have been passed over in modern tech.

Gregg Tavares You have been a really good sport about the whole thing! I appreciate your time and responses.

Jack 2020-07-28 07:49:36

Hi all! Live streaming event today...

Jack 2020-07-28 07:49:54

Hybrid Live Coding Interfaces: performance & craft

Workshop day 1/2

Live streaming today 4pm UTC on the ICLC YouTube channel: http://youtube.com/watch?v=SFb677O7D6A

Full programme: https://hybrid-livecode.pubpub.org/workshop2020

Hybrid Live Coding Interfaces: performance and craft



Workshop day one (UTC)



Session 1 - Instruments #1



16:00   Rafaele Andrade

16:15   Magno Caliman

16:30   Evan Raskob

16:45   Ivan Abreu Ochoa

17:00   Anne Veinberg & Felipe Ignacio Noriega

17:15   Break



Session 2 - Heritage algorithms



17:30   Tincuta Heinzel

17:45   Karitta (Kit) Zellerbach

18:00   Paola Torres NĆŗƱez del Prado

18:15   Victor Zappi

18:30   Discussion



19:00   End of Day 1
Doug Moen 2020-07-29 19:26:19

Thanks for the invite. That was awesome, and quite inspirational.

Jack 2020-07-28 07:50:01

Hope to see some of you there!

Jack 2020-07-28 07:50:26

šŸ¦ Jack Armitage: Hybrid Live Coding Interfaces: performance &amp; craft

Workshop day 1/2

Live streaming today 4pm UTC on the @incolico YouTube channel: http://youtube.com/watch?v=SFb677O7D6A

Full programme: https://hybrid-livecode.pubpub.org/workshop2020 https://pbs.twimg.com/media/Ed_0f17XoAEhQcm.png

Chris Maughan 2020-07-28 08:29:00

I always find out about these things at the last minute! Someone here needs to make that great web service that knows my interests and letā€™s me know about things I want to attend.... ;-)

Ope 2020-07-28 10:11:52

Itā€™s been really nice learning and interacting with all of you. So many interesting perspectives!

What are the most influential things that you have read or watched or done and would recommend?

Chris Knott 2020-07-28 11:29:53

The course nand2tetris is tough but you learn so much.

Ope 2020-07-28 12:05:27

Did it. Well up to chapter 5. Wasnā€™t interested in software stack then https://github.com/opethe1st/Nand2Tetris šŸ™‚šŸ™‚

Ivan Reese 2020-07-28 16:41:35

Since you include "things that you have [...] done", which is an interestingly open-ended prompt...

This might seem to some like a joke (and I don't want to derail the topic ā€” if this is something others here would like to discuss, we should spin up a separate thread), but I'm being sincere.

LSD!

It's a crying shame that it is so heavily criminalized, and so taboo, and associated with (frankly) very tacky parts of culture. Taking it was a revelatory experience, and offered me a sort of "everything all at once" frame of mind that I can now tap into whenever I need.

I'd rank it up there with (say) acting in plays and travel, as experiences which are accessible only to very fortunate people, which can offer profound awareness of life and humanity (though do not guarantee it, of course).

Shalabh Chaturvedi 2020-07-28 17:35:47

I'm sure many of us have seen many of these but don't know who's seen what so I'm going to recommend the 'usual suspects' here.

The most influential things for me are probably Alan Kay's videos and writings (e.g. https://vimeo.com/82301919). They're what really what sparked the search for new perspectives. I also like all of Bret Victor's stuff (e.g. https://vimeo.com/36579366). For other forums I'd recommend looking at LIVE (http://liveprog.org/), PPIG (https://ppig.org/) and the "Salon" track at the <Programming> conference (most recently called Convivial Computing Salon, previously Salon de Refuses: https://2020.programming-conference.org/home/salon-2020, https://www.shift-society.org/salon/)

Ope 2020-07-28 18:07:53

Ivan Reese I remember a certain Richard Feynman did some experimenting

Daniel Garcia 2020-07-28 22:22:40

Shalabh Chaturvedi I really love Alan Kay's talks, but I always finish the talk thinking that he could give some ideas on how to fix the mess we're in (I'm sure he has great ideas on how to fix it), instead of just pointing at all the things that we're doing wrong.

Shalabh Chaturvedi 2020-07-29 05:28:08

Interesting. I do think he doesn't provide concrete action items but certainly provides direction - both in terms of what kinds of ideas to pursue, what kinds of design attributes to look for, and what kinds of institutions and processes may work. It's true most of this talks are like Kay 101, and mostly intended to 'hook' the audience into 'recognizing the problem'. Some VPRI writings get more into ideas on fixing things - though looks like that part of the site is gone unfortunately.

S.M Mukarram Nainar 2020-07-29 10:27:27

Kay has mentioned before that he does that on purpose to let people think for themselves. Socratic method and all that

Paul Butler 2020-07-29 13:41:25

In addition to what's been mentioned (+šŸ’Æ to Brett Victor's work), I like the writing that comes out of Ink & Switch https://www.inkandswitch.com/

Likewise, Michael Neilson's work is worth checking out.

Jack Rusher 2020-07-29 14:28:17

Daniel Garcia The actionable version of Kay's position has been visible in various VPRI projects for many years! šŸ™‚

Daniel Garcia 2020-07-29 17:32:40

Thanks @Jack Rusher, I guess the actionable version is not on any talk and I should dive into the writings and projects of VPRI

Dan Cook 2020-07-29 18:46:14

I take some inspiration from Christopher Alexander.

The only reason I even heard of Alan Kay and Christopher Alexander though, is through Jim Coplien's assessments of how the software industry has taken their stuff in bad directions:

https://www.infoq.com/presentations/Reflection-OOP-Social/

https://www.infoq.com/interviews/coplien-dci-architecture/

Dan Cook 2020-07-29 18:47:25

There's also this random gem of interesting videos and articles (which is how I came across Bret Victor):

https://www.ybrikman.com/writing/2014/05/29/must-see-tech-talks-for-every-programmer/

Chris Knott 2020-07-30 10:19:52

If you are looking for something interesting to watch while you eat or commute, Strange Loop talks are the most consistently high quality in my experience.

Orion Reed 2020-07-30 10:20:03

To add to the already great collection here, Joe Armstrongā€™s talk https://youtu.be/lKXe3HUG2l4 is definitely worth checking out (also Strange Loop is a great conference to check out, https://www.youtube.com/channel/UC_QIfHvN9auy2CoOdSfMWDw has some true gems)

I also love Ted Nelson for his passion and refusal to accept the status quo as acceptable or inevitable. I recommend http://hyperland.com/TedCompOneLiners. He also made quite a fun series called https://youtu.be/hZ3gmh-d9oI that I think has a lot of value.

JesĆŗs Garcia Martinez 2020-08-01 02:17:44

Unrelated to FoC, but I was lucky to do this course while it was free and learned a lot: https://learn.particular.net/courses/adsd-online

JesĆŗs Garcia Martinez 2020-08-01 02:25:01

Also @James Koppel's online course. And Hillel Wayne's blog (both were on the podcast)

Srini Kadamati 2020-07-28 20:54:45

I had a lot of fun writing this for work. Google Apps Script is clunky, but itā€™s pretty nice to be able to query APIs via Google Sheets and prototype stuff! For some this is all they even need:

https://preset.io/blog/2020-07-27-live-updating-covid-dashboard/

Gregg Tavares 2020-07-29 06:53:25

šŸ”— vCoder Labs

Dan Cook 2020-07-29 18:51:39

There's an increasing trend of programming playgrounds hooked up to Minecraft. Maybe that's just because the game is so popular, open ended, and scriptable, and because the JVM is fairly accessible.

Garth Goldwater 2020-07-30 01:11:05

iā€™m glad that people keep trying to attack this problem but iā€™m frustrated that a vowel game with stereoscopic 3d went with a 2d block language! i want a VR game where i hand crabs my function arguments and they scurry off and literally return with my transformed data

Andreas S. 2020-07-29 07:42:03

šŸ¦ Stephen Diehl: Palantir and Facebook are the largest employers of Rust engineers in the world.

Rust Community: What exactly is the point of all of your long codes of conduct and community guidelines if the primary use for your language is the creation of a nightmare surveillance state?

Andreas S. 2020-07-29 18:25:02

Code of conduct - surveillance state how does it fit together?

Ivan Reese 2020-07-29 18:25:41

[moved message, originally by @Andrew F]

That's a deeply unfair question, much like asking a cryptography developer why their code is used to let criminals operate without getting caught. It fits together because the Rust community doesn't have control over everyone who downloads the code, just the interactions in official forums. This is implicit in the concept of an open source project.

More on topic, everyone in this community should be reconciled with the fact that if they are sufficiently successful, their work will eventually be used for evil and they won't be able to stop it. That's what it means to build tools.

Chris Knott 2020-07-30 10:15:46

To answer his question directly, the Rust CoC is to make explicit how you are expected to behave as part of the community developing rustc.

It has essentially nothing to do with how people use rustc.

Ivan Reese 2020-07-31 21:10:26

A CoC offers protection to those on the losing end of power imbalances. Communities with a good CoC have in them a recognition of such power dynamics, since that's what the CoC would have emerged from. Surveillance is a tool that reinforces and entrenches similar power imbalances in the broader public sphere ā€” so it'd make sense for the folks who write these CoCs, who have this sensitivity to power, to want to do what they can to protest surveillance. To me, the tweet makes perfect sense and I completely see the connection.

The question becomes, what can those CoC-authoring, power-levelling folks do about the problem of their work being coopted for https://futureofcoding.slack.com/archives/C5T9GPWFL/p1595686084036400?

That might seem like an irrelevant matter. If so, you probably first need to decide how you feel about power imbalances in general.

It might seem like an intractable problem. Well, computing cultures through history are full of people making great efforts, some more successful than others, to address these exact sorts of issues. Decentralization, copyleft, FOSS, ubiquitous CoCs, the startup model, torrenting, tor, hacking, C3, the list goes on and on. I think it's totally within the realm of possibility that if a community like Rust wanted to take a stand against surveillance, or the military-industrial complex, folks within that community (or adjacent to it, or intersecting with it) might birth such a movement that produces a new counterculture.

Kartik Agaram 2020-07-29 15:03:55

yoshiki's https://www.notion.so/Dango-b46c07f3dc224f968c768885abe70e70 deserves more eyes than it would get when buried deep in a comment thread. Original context for the curious: https://futureofcoding.slack.com/archives/C0120A3L30R/p1595894934187200?thread_ts=1595738168.147900&cid=C0120A3L30R

(I'd love for more people to hoist great comments by others to the top-level, as a sort of counter-force to always responding within-thread.)

[July 27th, 2020 5:08 PM] yoshikischmitz: This is really cool! I also once designed(but never implemented) a spreadsheet for trees. For the use-cases I was imagining, it felt important that authors have control over the layout(I like how PANE is free-form too)- I'm curious what your thoughts/inklings there are.

I'm super intrigued by the notion of having an embodied instruction-pointer in a spreadsheet, I'm rooting for you to figure it out! ObservableHQ kinda does this with their cells, which highlight when the value changes. I wonder if a minimap might be helpful here?

https://www.notion.so/Dango-b46c07f3dc224f968c768885abe70e70

Ryan King 2020-07-29 16:26:58

I'm super interested in the idea of programmable documents and think this concept is great! I find this horizontal / vertical tree layout very interesting - it's a bit like microsoft publisher and css flexbox had a baby.

However, I'm curious what benefits having the layout structured as a tree has over placing elements on the page wherever one chooses? Is it an unnecessary constraint?

Ryan King 2020-07-29 17:13:22

I also agree with the premise that the best horizontal apps like excel and trello are simple data structures made of atomic units - simple but flexible enough to fit almost any use case. That's the direction I'm heading towards with my personal work and would be interested to hear other thoughts around that idea.

Garth Goldwater 2020-07-30 01:16:19
  • i think iā€™ve saved the link to dango four different times on at least two platforms (here and twitter for sure). itā€™s so cool
  • my main thought on the atomic data stuff is that the common feature of the successful horizontal apps is actually a UX that makes using the data structures in flexible ways discoverable to a user. usually starting with one thing (lists in the cases of excel and trello) that gets extended, usually by enabling filtering and transformation of those simple data structures
yoshiki 2020-07-30 04:34:36

Ryan King At the time I couldn't imagine a good way to add absolute/relative positioning with the structure I designed, and didn't think it was that important compared to the structured layout. Now I think that both are important. https://www.figma.com/blog/announcing-auto-layout/ shows how the two can coexist and play different roles depending on context.

Ryan King 2020-07-30 14:43:28

yoshiki that makes sense. Thanks for the insight!

nicolas decoster 2020-07-30 08:10:59

Somewhere else in this Slack, Stefan Lesser wrote:

I love seeing apps experimenting with what touch and mobile can add to traditional workflows instead of just looking at its limitations.

Every time a new ā€œfutureā€ of coding app is presented, and it only works with mouse and keyboard and requires a large screen Iā€™m a little sad of the missed opportunity.Interesting topic, that I'd like to bike-shed think about together.

I fully agree that touch devices and small screen devices are opportunities to imagine new way for programming. But I feel that it is quite hard to address. In particular small screens. Even with text programming, I always feel the need for a big screens. I can't imagine doing this on a phone.

And for visual programming, having large screen make it possible to adopt some "map kind" organisation of your programming artifacts, to have nice global view of what your are doing.

And something that is challenging, it to design visual representation/manipulation that works well for both large screen/keyboard'n mouse and small screen/touch.

What do you think of that? Is there some examples of programming environment that succeeded in this space?

Ope 2020-07-30 08:17:11

On a related one, one of the things I recently thought about was how would programming look like the input mechanism was a pen. Would that have a greater affordance for visual programming for example?

nicolas decoster 2020-07-30 08:37:33

As a pen is great at drawing things, when programming can benefit from a drawing input device? Maybe one can imagine a visual language that accepts fuzzy drawing of programming artifacts, when "drawn" characteristics (size, shape...) can be part of the language? Bonus: a program can be on paper sheet or whiteboard, scanned and executed.

Ope 2020-07-30 09:05:53

Yeah, actually someone shared a video of this in the group earlier, a prototype from xerox I think (so not entirely my original idea). I will look for it

Maikel van de Lisdonk 2020-07-30 09:19:20

I am struggling with this feature for the visual programming tool that I am building , there's already some touch support but not 100% as great as the mouse support. But the small screen is the biggest challenge. What I want to try is to have a collapsable tree instead of the nodes with arrows on a small screen. The challenge there is pieces of flow that represent a loop or a node that is connected to from multiple nodes. I would love to be able to do some programming work on my mobile

Maikel van de Lisdonk 2020-07-30 09:41:21

The shade app (https://shade.to/) that was shared on the #graphics channel looks awesome, but on mobile the small screen is an issue I think

Ope 2020-07-30 11:56:12

Found it by checking my YouTube history instead https://www.youtube.com/watch?v=QQhVQ1UG6aM

Ivan Reese 2020-07-30 14:07:53

Ivan Sutherland's https://en.wikipedia.org/wiki/Sketchpad is the classic "programming with a pen" example.

Ryan King 2020-07-30 14:59:50

In an earlier thread someone linked the metamuse podcast and in the first episode they talk about some stylus interfaces they've been experimenting with and how input compares to the desktop. We're still in the early days of touch interfaces and they're ripe for innovation!

https://www.listennotes.com/podcasts/metamuse/1-tool-switching-GYobjearH3_/

Andrew F 2020-07-30 15:51:30

To make the small screen work, you probably want a ZUI for browsing the code. For touch/pen, I think the end state is a rich (i.e. with steep learning curve) gesture language for control structures, et al, otherwise you're wasting a lot of the potential bandwidth of touch. For identifiers (variables, library functions), maybe select from a menu of things in scope? Btw, radial menus are criminally underused IMO. :)

Andrew F 2020-07-30 15:55:59

Relating more directly to drawn visual languages, here's an example of a graphical human conlang: https://s.ai/nlws/ (I think someone posted it here not too long ago, so you may have seen it already (: ). Along other things, it features (essentially) higher-order glyphs, which I think would be important for a drawn programming language.

Ionuț G. Stan 2020-07-30 15:59:46

I think voice input is also still quite underutilized. I think it makes sense to augment the UI with voice commands too, so not exclusively audio commands. I gather the speed of interacting with an app would be greatly increased, while still having a small surface audio language that could be easily deciphered by the app.

nicolas decoster 2020-07-30 16:08:04

+1 for that a ZUI is needed. And a good one that can really change program artifacts representation based on zoom level.

Ryan King 2020-07-30 16:11:28

Anyone know of any modern equivalents of Microsoft's Code Canvas? https://www.microsoft.com/en-us/research/project/code-canvas/

It's not particularly innovative when considering touch and stylus as an interface, or even exploring the possibilities of a visual system - but I see it as a incremental and practical step in moving from a fully-featured document based coding system to fully-featured canvas based coding system.

Daniel Garcia 2020-07-30 16:55:20

@Ionuț G. Stan I found https://serenade.ai recently, and it looks really cool

šŸ”— Serenade

Ionuț G. Stan 2020-07-30 17:04:23

Daniel Garcia oh, never heard of it! Thanks for the pointer, I'll investigate šŸ‘€

Ray Imber 2020-07-30 18:58:00

since we are talking about alternative computer interaction and VR, I am excited about eye tracking. Eye tracking is getting a lot of development because of VR, but I thinking it's an underrated interaction paradigm on it's own.

Here is a simple example:

I have two monitors set up while coding. On one monitor I have my code editor, and the other monitor has some reference. This is all fairly standard.

I can't tell you how many times I wanted to scroll or do some operation on the reference monitor, but the text editor was set to the active application, so I accidentally scrolled the code instead of the reference, loosing my place. Harmless, but quite annoying, especially in a complicated code base.

If I had eye tracking, the interface could detect what I was looking at, and keep the correct window active.

This is a pedestrian example, but I think there is a lot of powerful UX that could be enabled through decent eye tracking.

Daniel Garcia 2020-07-30 20:34:38

I wanted to buy an eye tracking device from https://theeyetribe.com/theeyetribe.com/about/index.html some time ago, I'm not sure if they are still selling them.

I have imagined interacting with computers only with eye tracking and BCI's (Brain Computer Interface)!!

Ray Imber 2020-07-30 20:37:06

Looks like they were bought and absorbed by Facebook and Oculus

https://en.wikipedia.org/wiki/The_Eye_Tribe

Ope 2020-07-30 20:51:01

BCI is cool but also scary. Whatā€™s to say the input would be one way? šŸ˜¬šŸ˜¬šŸ˜¬šŸ˜¬šŸ˜¬šŸ˜¬

Jack Rusher 2020-07-31 13:53:15

@Ionuț G. Stan Strong agree! In my early experiments with building gestural interfaces I quickly found that gesture + voice was way more effective than either alone.

Will Crichton 2020-07-30 16:01:41

Has anyone ever tried coding in VR? Not making a VR app, but writing code within a VR workspace. Even keeping the standard 2D screen metaphor, it seems useful to have infinite screens placeable anywhere in the world. Youā€™re not restricted to physical monitors.

Will Crichton 2020-07-30 16:15:57

Alternatively, I would love a ā€œphysicalā€ programming language that you could arrange with your hands in VR. Something like Wiremod for Garryā€™s Mod with haptic feedback.

AndrƩ Lucas Zanellato 2020-07-30 16:21:27

It seems like an interesting idea, but I worry that it would be too much at once? I kinda stopped using two monitors recently because of that. But a documentation screen and a code screen seems like a good idea

Chris Maughan 2020-07-30 16:21:29

I've wondered what this will be like; I have a text editor that could in theory render inside a 3D world easily enough; and I'd like to try having it be wrapped around the viewer, etc. The interesting part is the input. For me that would probably be fine, since I'm a touch typist and like to use Keystrokes/vim for navigation; but I'm not sure how anyone would cope without those things. I'm also not sure how tiring it would be ; I imagine being locked in a world like that would be become quite draining if you did it for the usual amount of hours.... The text editing isn't the only problem of course; you'd need debugger, etc; and presumably the application you were working on would have to present itself inside VR.

I've spent quite a while thinking about live coding inside such a thing. I posted a link to Media Molecule's Dreams VR. I don't know how they handle such things; I haven't watched it all yet.

Ryan King 2020-07-30 16:49:48

Eventhough just placing many screens in VR isn't really pushing the medium in very interesting way, I think I would find it incredibly useful. In much the same way an architect / graphic design can scatter their drawings across the table and pin the to the wall, and they can reference all that at once while creating something new. In contrast a software developer would be typically limited to the equivalent 1-3 pieces of paper.

VR could be the more affordable version of Bret Victor's Seeing Spaces https://vimeo.com/97903574

Ricardo A. Medina 2020-07-30 18:21:55

I've seen a couple of (very) primitive prototypes. I'd go with something like PS' Dreams. And if you could interact with something physical a la B. Victor, that would be just Star Trek stuff. In general, I think it would be incredibly useful for all the reasons mentioned; our visual bandwidth is much higher than our little screens provide. My biggest prejudgement is the physical ergonomics of user interaction. The same way touch screens across keyboards are only marginally useful.

Orion Reed 2020-07-30 18:27:27

I feel like the work being done at https://dynamicland.org/ (which is for good reasons is focused on not locking us into isolated islands) could actually be quite compatible with VR.

I definitely dream about it, being able to dynamically switch from 2D screens, 3D, spacial, even tactile modes of interaction with code or operating systems.

šŸ”— Dynamicland

Andy F 2020-07-30 22:24:49

Having lots of text in VR is rough because the current gen hardware does not have enough pixel density, the words need to be enormous to be readable. But a physical-metaphor UI could be awesome.

Chris Maughan 2020-07-31 06:15:11

That's a good point; I work on a 4K screen these days, and wouldn't want to go back!

nicolas decoster 2020-07-31 07:13:46

Alternatively, I would love a ā€œphysicalā€ programming language that you could arrange with your hands in VR. Something like Wiremod for Garryā€™s Mod with haptic feedback.Vi Hart has worked on that, some objects in virtual reality that you arrange to create programs. I can't find the the article about this specifically (anyone?), but found this other one that talk about it in the beginning (first image in the introduction):

https://theartofresearch.org/combination-physical-and-virtual-tools-for-spatial-computation/

nicolas decoster 2020-07-31 07:14:52

And this article talks also about nice AR programming stuff! šŸ™‚

S.M Mukarram Nainar 2020-07-31 09:17:09

The current attempts I'm aware of are safespaces: https://www.youtube.com/watch?v=Js7Y1H5D8cY and xrdesktop: https://www.youtube.com/watch?v=RXQnWJpMLn4

Of course, these just kind of extend the traditional desktop metaphor, but you can already do some pretty neat stuff, for example, natural workspaces. I was watching a livestream by one of the devs working on wayland vr, drew devault, and he just casually puts background stuff like music players and chat clients to the side, vaugely in peripheral vision, and then turns his head when he wants to see them.

S.M Mukarram Nainar 2020-07-31 14:19:05

(Here is the stream in question, if anyone is interested (vim in vr!): https://spacepub.space/videos/watch/691f2bc1-d4bf-4051-a035-035388a059b0)

Garth Goldwater 2020-07-31 14:37:49

[July 29th, 2020 6:11 PM] garth: iā€™m glad that people keep trying to attack this problem but iā€™m frustrated that a vowel game with stereoscopic 3d went with a 2d block language! i want a VR game where i hand crabs my function arguments and they scurry off and literally return with my transformed data

Nick Smith 2020-08-01 06:44:45

The moment a company releases a wireless AR/VR device that doesn't give you eyestrain when you're trying to look at small glyphs at close distances, I'll definitely be using it. We need varifocal devices with a pixel density equivalent to at least that of a 1080p monitor at typical viewing distances.

But my ideal device is a pair of AR glasses complemented by an input device that allows me to work from anywhere (standing, sitting, indoors, outdoors...). I'd love to not be desk-bound whilst I work.

Nick Smith 2020-08-01 06:45:27

Until then, I've stopped caring about the AR/VR space. The hardware just isn't good enough.

Andreas S. 2020-07-31 06:31:16

Whoa another thing from S. Diehl. - I agree with some aspects and disagree strongly with others - https://twitter.com/smdiehl/status/1288822169645002754?s=21

šŸ¦ Stephen Diehl: Prefer not to be the one to ask the hard questions, but we have to talk about the elephant in the room.

The Haskell Elephant in the Room http://stephendiehl.com/posts/crypto.html

Andreas S. 2020-07-31 06:35:11

Now is love to see some good sense making tools like Argument maps applied to this whole discussion such that we can have a meta discussion of were are discussing in posi to be ways or just talking past each other.

Andreas S. 2020-07-31 06:41:43

Iā€™m deeply interested in the motivation - misunderstanding of what S. Diehl articulates here. This is the fundamental discussion we just had here a few days ago. there approaching from the surveillance capitalism tangent ā€”- again where are ā€œourā€ future of coding tools to show which members ant which month over the years had which opinions. Which books / materials where recommended ? Where other habits changed? How do measure meaningful impact?

Andreas S. 2020-07-31 06:44:21

It seems if we cannot even talk to each other then we are in really big trouble...

Andreas S. 2020-07-31 07:56:46

I will try to explain what I agree /disagree with regarding Stevens critique or perspective. As a general perspective I really like the conceptual overview of Yuval Noah harari - sapiens https://www.goodreads.com/book/show/23692271-sapiens from which I borrow from the chapter - the unification of mankind -three orders: 1. Empire 2. Religious order 3. Money. Now itā€™s really interesting how money and coinage was linked to empire (faking coins would harshly be punished as crime against the crown) so from the beginning there is a interesting interplay between monopolies of power and aspects of collaboration. Now lately there have been people explaining crypto currencies as a kind of printing press technology which means it posses the potential of democratising access to currencies. I think in the capitalism thread we had arguments stating that culture is largely an emergent phenomenon. As such our ā€œcurrentā€ state of civilisation is , well , our best effort and a aggregation of all that had come before. Even now for a single person to perceive the culture of science is quite a difficult adventure. (Though I would it really recommend it to Steven diehl- but I think he somehow likes to remain in the doing science space rather then introspecting science space ) So as a technology for potential impact on culture crypto currencies have huge potential to be used for actual a better and more positive live. And it this that I miss from Stevens criticism. That he acknowledges that crypto could have positive impact. I agree with him that ā€œnon-productiveā€ assets are a failure of the economic system. I also agree with him that most crypto projects are sadly located near that realm.

šŸ”— Sapiens

Andreas S. 2020-07-31 08:05:25

Now as crypto is a technology so is Haskell or other programming / software systems. And it now seems that we?(who is we here? Who is we in Stevens post?) want to think about ethical impacts of technology on society and culture.

Andreas S. 2020-07-31 08:05:58

How do we create meaningful practices to steal the culture ?

nicolas decoster 2020-07-31 07:20:01

I guess this contribution deserve a better visibility! It looks nice but I havent played with it yet, and can't tell it is really a productive tool, though.

Does anyone know about other programming tools with voice input?

[July 30th, 2020 6:55 PM] daniel.garcia.carmona: <@UP28ETUSE> I found https://serenade.ai recently, and it looks really cool

Stefan Lesser 2020-07-31 13:57:58

In several threads over the last few weeks I saw references pop up about personal knowledge management tools ā€” you might have heard keywords like Second Brain, Roam(cult), Obsidian, Zettelkasten, Digital Gardens, etc.

It's great to see a lot of people familiar with these here and I'm not surprised about that. But in what way do you see a connection to FoC?

Tools for thought is practically what I've been working on for a long time now, and as my work shifted from the programming aspects of that more to the general knowledge management aspects, I was under the assumption that this is not the right forum to discuss this (and that's fine ā€” there are other great places to do that). It seems to come up here a lot though, and perhaps that's just my selective perception, so I'm looking forward to hear what people think about this.

Orion Reed 2020-07-31 14:11:59

My perception here is that discussion around the current apps and services that typically call themselves personal knowledge management tools arenā€™t really the center of interest here. I think many are looking at the fields and work from knowledge representation, expert systems, intelligence augmentation, logical reasoning, complex systems, networks, and others and seeing their immense potential and importance for the future of coding. Knowledge representation has a long history going as far back as mathematics itself. We really havenā€™t scratched the surface in terms of the actual tools available, but can see that the wealth of possibilities in that area is almost unlimited.

Christopher Galtenberg 2020-07-31 14:12:39

I was going to start a discussion on this exact topic this week, wondering how people feel about patterns of tools of thought / PKM being shared here since they seem to have so much overlap with FoC notions - visual layouts, open data structures (enables things like transclusion), chaining behaviors, storage models, more -

I've seen many of the people on this forum also post on PKM on twitter, so I'm sure there's latent interest.

It feels borderline as a full community discussion - this thread alone might get relocated over to #random - but I wonder if there should be a #thought-tools or #knowledge-management channel so we can freely explore frontiers of knowledge tools & concepts that aren't necessarily coding-based. cc Ivan Reese

Garth Goldwater 2020-07-31 14:44:17

i think that a lot of the cognitive load of programming comes from bad ux on the information management side of how we interact with codebasesā€”and most of what iā€™d like to do with computers could be achieved with a ā€œsufficiently smartā€ PKM, eg ā€œshow me all the websites iā€™ve visited when looking for an ice cream maker organized by review score and favorite reviewsā€

Jack Rusher 2020-07-31 15:48:51

I agree with @Orion Reed that there's considerable overlap between these tools and what we're all trying to do. For example, there are certain kinds of questions that are hard to answer with most programming environments that become quiet easy if the data is handled differently. For example, queries by analogy or complex integrative queries as seen here (using my https://github.com/jackrusher/mundaneum):

Jack Rusher 2020-07-31 15:49:45

It's not hard to imagine how these sorts of things might be integrated more deeply into a programming environment (they are so integrated with Wolfram Alpha, for example).

Ivan Reese 2020-07-31 16:08:36

Tools for thought is the single greatest shared area of interest according to https://futureofcoding.org/episodes/046#question-thirteen-what-foc-topics-interest-you-most earlier this year, so I wouldn't regard it as borderline. I do think there's getting to be enough discussion about it that it might be worth trying a #tools-for-thought channel ā€” not because it isn't on-topic enough for #general (or whatever we https://futureofcoding.slack.com/archives/CEXED56UR/p1595571837137000), but because it's worth collecting all that knowledge and enthusiasm together in one place.

šŸ“· survey.png

Ope 2020-07-31 17:03:00

Gerry Sussman makes the case that the legacy of computer is that as a medium for clearer thinking which is what we want from tools for thought

https://futureofcoding.slack.com/archives/C5T9GPWFL/p1593862391299700?thread_ts=1593794600.262800&channel=C5T9GPWFL&message_ts=1593862391.299700

[July 4th, 2020 4:33 AM] ogunks900: Also there is this also this - https://youtu.be/fAY0_pesZ6s|https://youtu.be/fAY0_pesZ6s . We should probably be moving towards being as precise as we have to be with computers with our language too. In this video, Sussman talks about how Maths notation is horrible - and that's maths. Natural language is worse. He argues that the legacy of programming is teaching us how to think precisely.

Roben Kleene 2020-07-31 19:36:58

šŸ‘ for #tools-for-thought channel, that seems like a great idea

Orion Reed 2020-08-01 03:58:50

Ivan Reese Tools for thought is such a profound idea I just gotta give a shoutout to the term mediums of/for thought.

Alan Kay argued that ā€œthe term ā€˜toolā€™ implies a certain narrowness. A more powerful aim is to develop a new medium for thought.ā€ and I believe Bret Victor seems to also use medium as the more denotational term. Another used by Alan, Bret, and others is new representations.

I feel like ā€˜representationsā€™ are the concrete language of the medium, ā€˜toolsā€™ are like applied representations (i.e. Illustrator is kinda like an applied but restricted tool for bezier curves and vector geometry with extra bits). The idea of a medium being computational and dynamic seems to demand a higher bar when evaluating future projects.

I think you can argue that Illustrator is a tool for thought more easily than a medium for thought, as the medium would map to the domain-space of vector geometry itself.

Not suggesting a name change, just a thought worth mentioning.

Ivan Reese 2020-08-01 04:53:05

@Orion Reed That's a very enticing framing. I'll fold that in to my proposal.

Konrad Hinsen 2020-08-02 19:54:56

My own project (https://github.com/khinsen/leibniz) in the FoC space (where I take the c to mean computing rather than coding) is all about integrating formal and informal knowledge. For now I am at the single page document stage, but I am aiming at putting formal code into digital gardens.

šŸ”— khinsen/leibniz

Ope šŸ•°ļø 2020-06-30 10:34:13

Anyone using this? https://docs.codestream.com/userguide/ thoughts so far?

Ope 2020-07-31 15:08:45

So I just listened to a podcast where their CEO featured and they are actually going to open source it (or already have because I found the github repo)

Nick Smith šŸ•°ļø 2020-07-23 07:28:21

Has anyone been searching for an "ideal" model for information? By this I mean an abstract model (not a DRAM/disk representation) with a vocabulary that allows a human to read, specify, and understand information with ease. We have existing models like RDF ("Semantic web") and property graphs (e.g. Neo4j), and in programming languages we have object graphs (OO languages), trees (functional languages), and tables (relational DBs). None of these models seem to have arisen as "the one true answer", partially because they are all difficult to reason about when operated on programmatically (or so I claim). I want a model for information that allows us to easily understand both static information structures (snapshots) and programmatically-maintained information structures (an evolving, stateful system).

The ideal model for information might define concepts like "pointing" (edges) or "nesting" (groups), and each concept will have a clear meaning. The ideal model will also have a semantics for mutation, e.g. you will know when you define a relationship like A points to B whether B can be deleted or modified in some way, and how this affects the points to connection. The model will also have a notion of stewardship of information, i.e. it should be easy to observe the source of a piece of information, and to know whether it is mutable or just a snapshot. (Yes, I believe the ideal model for information should have a vocabulary to describe distribution and trust).

Has anyone here thought hard about this? I've been churning on it for a month or two recently, and for many months over the last few years; I can't proceed with my own PL project until I get fundamentals like this right, since the model that I develop will fundamentally determine what a "program" even is. I think a key reason why discovering "the future of programming" is so hard is that we think too much about code and not enough about information. Code exists purely to transform information, and if you don't make strides on models for information then I don't think you can make strides on programming languages.

I have some ideas about a model, but I have no insights from others to validate it against. My conception is a very specific hybrid of mutable graphs and immutable trees nested sets that distinguishes between descriptions and references, and it seems very amenable to compact 2D representations, unlike most graphs. I won't describe it further just yet, since I don't want to skew anyone's responses.

Anyway, I'd love to hear from other people who have been thinking about this kind of stuff.

Duncan Cragg 2020-07-31 19:30:35

Did this thread reach anyone's conclusion? šŸ˜Š

Nick Smith 2020-08-01 06:03:36

It gave me stuff to think about at least!

Aria Minaei 2020-08-01 08:33:46

On a tangent to the previous thread, I'm concerned that there is a semantic change happening for the phrase "tool for thought."

"Tool for thought" and "augmentation of human intelligence" has a rather vase meaning, obviously. Programming environments https://gtoolkit.com/ be tools for thought, so https://en.wikipedia.org/wiki/Sketchpad design tools, writing tools and more [0]. But I worry that most people who are starting to get introduced to the term, only see a narrow manifestation of it in the form of Personal Knowledge Management systems. This could further obfuscate the wonderful but nebulous "tool for thought" idea, and make it even less accessible than it already is.

This feels similar to the semantic change of the term "Object Oriented Programming" that was initially about http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html, but since most people's introduction to it was through C++/Java, it lost its original meaning and became about objects, making the original idea behind OOP even more obscure.

Nick Smith 2020-08-01 10:21:16

Although Alan Kay doesn't admit this, I think OOP stopped being about message-passing when they changed Smalltalk from asynchronous to synchronous. This happened between Smalltalk '74 and '76 I believe.

Orion Reed 2020-08-01 13:30:59

I agree with you, I think the best way that I avoided that narrowness was by seeing talks and reading about the bigger picture examples. Not current apps, but alphabets, algebra, calculus, geometry, etc.

There was a talk posted recently, Legacy of Computing that compellingly covered some historical examples, and Bret Victor, Alan Kay and others have covered many examples too. Iā€™d love to put together a collection of these examples as a way to more properly introduce people to the idea.

Kartik Agaram 2020-08-02 16:19:32

@Nick Smith do you have any links on asynchronous Smalltalk? Sounds tantalizing.

Ope šŸ•°ļø 2020-07-02 21:53:29

As part of the future of coding, one of the things we should think about is making learning how to code easier and more effective.

Anyone have thoughts on how this could be like in the future?

I have been doing the http://executeprogram.com and I find it pretty effective, definitely more effective than books (books are my primary way to learn, find it hard to concentrate with online lectures). Itā€™s great because the lessons are bite sized, spaced repeated so Iā€™m not stressed about remembering, requires you to write code and be active etc. Any one tried other approaches that worked really well? How would this be different in 10 years? Or what would a vision of the future look like?

Ope 2020-08-01 10:45:04

Was reading the summary of this book and itā€™s really good - https://commoncog.com/blog/teaching-tech-together/

Ope 2020-08-01 10:45:58

And @Ray Imber I think you were the first to intro me to the common place blog with the link you posted in the thread above. Really really good blog. Thanks!

Orion Reed 2020-08-01 14:39:50

Has anyone here read https://mitpress.mit.edu/books/stack? It seems like a treasure trove of good stuff but itā€™s also a chunky read so I havenā€™t properly started it yet. Itā€™s interdisciplinary, and seems to be laying out foundations for the kind of work this community is interested in. (Some quotes in thread)

šŸ”— The Stack

Orion Reed 2020-08-01 14:40:53

ā€œA comprehensive political and design theory of planetary-scale computation proposing that The Stackā€”an accidental megastructureā€”is both a technological apparatus and a model for a new geopolitical architecture.ā€

It does get technical too (there are chapters on IpV6, addressing, architectures, etc)

Orion Reed 2020-08-01 14:42:28

From the foreword, introducing the field of software studies:

ā€œSoftware is deeply woven into contemporary lifeā€”economically, culturally, creatively, politicallyā€”in manners both obvious and nearly invisible. Yet while much is written about how software is used, and the activities that it supports and shapes, thinking about software itself has remained largely technical for much of its history. Increasingly, however, artists, scientists, engineers, hackers, designers, and scholars in the humanities and social sciences are finding that for the questions they face, and the things they need to build, an expanded understanding of software is necessary. For such understanding they can call upon a strand of texts in the history of computing and new media, they can take part in the rich implicit culture of software, and they also can take part in the development of an ā€œemerging, fundamentally transdisciplinary, computational literacy. These provide the foundation for software studies.ā€

Tim Lipp 2020-08-01 16:50:29

This looks fascinating, thank you for sharing!!!!

Scott Anderson 2020-08-01 20:16:45

Yeah this looks crazy, definitely need to read it when I get a chance

Shubhadeep Roychowdhury šŸ•°ļø 2020-06-29 08:49:30

Computational Category Theory (By Rydeheard and Burstall)

http://www.cs.man.ac.uk/~david/categories/book/book.pdf

David Piepgrass 2020-08-01 17:39:55

Does it say anything about how category theory is relevant to real life / software engineering?

yoshiki šŸ•°ļø 2020-07-02 03:17:14

I've been prototyping a tool for frontend/end-user programming in React, and found myself in need of access to its internals to build the UI I wanted, but found the API for that convoluted. But I recently learned of this little library called hyperapp. Its source code is only a couple hundred lines long and is very straightforward compared to React, and in my case patching in the reflection capabilities I needed was simple(just one line of code).

If you're interested in prototyping new ways to build interfaces that rely on the React model it seems like a good starting point:

https://hyperapp.dev/

šŸ”— Hyperapp

David Piepgrass 2020-08-01 17:59:06

"how can we swing back to a more remix-friendly environment? What creates incentives for that?"

errr... pay developers to use a remix-friendly style?

Open standards and open source are approaches that (at least to a greater extent than proprietary products) are remix-friendly. Beyond that, we need people to work on platforms designed from the ground up for 'remixing'. But rarely is any private company willing to pay for that sort of thing. The idea I've always had in mind is government funding for "open engineering", the same way science is funded, except that the work products would be FOSS instead of PDFs.

To make sure the work products are labors of love ... people working on them should be underpaid, but on the other hand the barrier to entry should be as low as the pay scale. I'd sign up immediately.

Kartik Agaram 2020-08-01 19:11:22

I like how your comment talks about government funding but emphasizes underpaying people. That connection needs to be drawn more often.

Xandor Schiefer šŸ•°ļø 2020-07-03 16:43:20

I don't necessarily agree with all the claims, but that's a cool demo: https://twitter.com/Altimor/status/1278736953836400640?s=19

šŸ¦ Flo Crivello: GPT3 writing code. A compiler from natural language to code. People don't understand ā€” this will change absolutely everything. We're decoupling human horsepower from code production. The intellectual equivalent of the discovery of the engine. https://player.vimeo.com/video/426819809 https://pbs.twimg.com/media/Eb78a5IUYAAKXMn.png

David Piepgrass 2020-08-01 18:07:57

The main GPT-3 is said to have cost $5 million (in electricity?) to train, so don't expect you'd be able to do what OpenAI did with it, even if it were open-source.

Tyler Adams 2020-08-01 18:25:10

This week on CodeFaster, I switched from jq tutorials, to sed tutorials. I was hoping my similar title "mastering sed: part 1" would get the same hacker news attention as "mastering jq: part 1", but alas, it didn't even get a single upvote (unlike mastering jq which got 205). It's probably that people are less interested in sed, an old cryptic unix text manipulator vs jq which is a new json, easy to use json manipulator, but I'm still surprised it got none, I expected maybe a few. In any case, I still think sed is important, so I want to keep writing about it. One other thing on my mind is the emotion in my writing. I like to write brief and to the point, no need to fluff up content with empassioned speach or frivilous information, and I appreciate brevity in other writing, but maybe that turns off my target audience? What do you guys think? (This week's post can be found at https://codefaster.substack.com/p/mastering-sed-part-1)

Kartik Agaram 2020-08-01 19:06:47

I think you're too focused on metrics. Feedback channels in this universe work too imprecisely for this level of focus. For all our society's emphasis on being data-driven, there often isn't good enough data. In this case, HN behavior is often highly dependent on the first 2 or 3 votes a story gets. If they come quickly it has more time to rise. Selection bias on who happens to be browsing the new page at any time compounds the noisiness of this signal.

You should just write about what you think is important. You may be surprised by how this sed posting does when somebody submits it to HN in 6 months time.

Tyler Adams 2020-08-01 19:41:29

Sounds like I need more data to have a meaningful conclusion, and in the absence of said data, I completely agree, what I think is important (and like) takes priority

Garth Goldwater 2020-08-02 01:21:28

(i agree with kartik, but) i think the biggest issue from a marketing perspective is that jq has some mindshare with motivations already. it would be helpful if this article started with some info about why i should care about send when i have more modern text transformation tools available

Charlie Roberts 2020-08-02 19:28:23

sent it to my partner who spends a lot of time in awk and she was excited to read itā€¦ but sheā€™ll never ever be a HN reader šŸ™‚

Ivan Reese šŸ•°ļø 2020-07-09 06:43:19

One way to categorize FoC projects is to consider the following spectrum. (Go with me here ā€” resist the urge to treat this as a multidimensional space.)

In the center, we have projects that resemble typical programming languages. These tools are designed with particular semantics that the programmer will employ to structure their problem solving. They are general purpose. They don't have much regard for the particular kinds of problems being solved. This is your Java, Clojure, Vulkan, brainfuck, etc.

Off to one side, you have programming tools that have both tightly defined semantics and a focus on solving particular kinds of problems. These are specialized. This is Excel, Notion, Max/MSP, OpenGL, bash, etc.

Off to the other side, we have programming tools that, while they still have semantics, don't expect you to work entirely within those semantics. They have even less regard for the problem domain. These are tools that expect you to first build some new tools from or within them, then solve your problem with those tools. This is Racket, and arguably REST, RDF, stored procedures in a DB, and other things.

Now my question: are you building an FoC project that falls into the latter category? If so, talk about that a bit. What's the rationale?

David Piepgrass 2020-08-01 19:23:13

I dream of making a language in the last category, where

  • The syntax is switchable (plug in a parser you want), syntax conversions are plausible, and multiple syntaxes can be used in a single proram
  • The semantics are customizable (e.g. the concept of a "function call" is broken down into parts that can be customized) and multiple semantics can be combined in a single program...
  • The language is designed to support and encourage "parameterized" libraries, whose exact behavior and interface can be customized by a user of the library (e.g. libraries that let you select between different kinds of floating-point math after-the-fact, instead of hard-coding float or double)
  • The standard library is designed to evolve over time by supporting "skinnable" types. A simple example would be that in version 1.0 we have Array.shift and Array.unshift , but in a later version we decide those were terrible names and change them to Array.popFirst and Array.pushFirst
    • but old code can use the old names by continuing to import the older "skin" of the Array type.
  • Advanced metaprogramming including compile-time code execution is supported

I want a language that takes the best ideas around and combines them with my own ideas ... an ultimate language. The really key part, which is maybe the hardest thing to get right, is to set it up so that some of the best features of the language can be designed and built by other people, because the foundation is good enough to make this possible.

Garth Goldwater 2020-08-02 01:22:12

https://arstechnica.com/gadgets/2020/07/ibm-completes-successful-field-trials-on-fully-homomorphic-encryption/ this is huge news for apps that want to be what iā€™d call ā€œprovably non-evilā€

Kartik Agaram 2020-08-02 03:35:18

It was an interesting article partly because it taught me about encrypted virtualization, where a hosting provider can guarantee to customers that they can't peek inside their VMs: https://arstechnica.com/gadgets/2019/08/a-detailed-look-at-amds-new-epyc-rome-7nm-server-cpus/2

Kartik Agaram 2020-08-02 15:17:06

Local-first software by our @Peter van Hardenberg now on the HN frontpage:

https://www.inkandswitch.com/media/local-first/local-first.pdf

Peter van Hardenberg 2020-08-02 15:17:15

oh lord

Kartik Agaram 2020-08-02 15:17:34

Oh it's all good.

Peter van Hardenberg 2020-08-02 15:21:25

The "I didn't read the article" hot takes have become gradually more positive. IIRC the first time this thing showed up on HN the result was mostly a confused shrug.

Peter van Hardenberg 2020-08-02 15:43:32

Also, if anyone does read the comments, please consider upvoting my reply which adds links to our other work. Thanks.

ikrima 2020-08-02 20:14:09

curious for those deep in programming languages, what's the general lang design community's take on continuation style passing i.e.

  • what're the unexpected problems in practice
  • why are they not commonly used/popular given they seem to keep getting reinvented
ikrima 2020-08-02 20:19:50

caveat: to me they seem getting re-invented given my currently shallow literature e.g.

  • clojure's transducers => contortions to express CPS using anonymous functions
  • monads => reinvention of CPS
  • effect handlers => constrained CPS?
Mariano Guerra 2020-08-02 21:12:27

I think it's a little bit like the koan of objects vs closures: http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html

Mariano Guerra 2020-08-02 21:14:11
ikrima 2020-08-02 21:19:20

šŸ‘ thanks, reading them now

ikrima 2020-08-02 21:20:49

is there modern "consensus" on what the RightWayā„¢ is today? or phrased another way from my limited pov:

ikrima 2020-08-02 21:24:50
  • continuations => bad and hard to reason about ~= goto
  • delimited continuations => better, more expressive ~= jump but still unpleasant to reason about/still forced to play human compiler
  • effect handlers => human usable, layman grokkable within 10 mins without esoteric knowledge about type theory/categories/monads/etc, so the RightWayā„¢?