HNHacker News
TopNewBestAskShowJobs

angleofrepose

299 karma · joined January 17, 2018

submissionscomments
angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
I meant to dig more into requestAnimationFrame, thanks for the prompt. I should clarify, the problem is that you can crash a web page if you do any animation inside of a runaway loop but especially painting with console. I suppose this indirection might help you realize that before it happens though, and that's probably worth doing. Thanks for the code.
angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
Haha, sure, sure. But that's not really the point. We have machine code right? Who needs an assembler? Tools and workflows are worth thinking about and improving. Right?
angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
Outside of the datascience context, I would argue that notebooks like these are how information in a world of compute should be presented. It's ironic that we have codeblocks upon codeblocks of content served on the web on technical sites and blogs that aren't immediately executable in the context of the post. The most popular software in the world are javascript vms, yet we talk about and teach javascript code on websites in a javascript vm that can't run the code on the screen.
angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
Right, where you could send the worker a terminate signal if some conditions were met like time or no response or too many responses...

And that drawback obsoletes the strategy it seems, unfortunately.

It's an interesting problem, how to provide full access and control as well as non-corruptible recovery systems.

One of the biggest problems I consistently run into is that printing to the screen is a slow operation, every learns this day one of any graphics work, but things like console.log or Node.appendChild are the primary way to destroy someone's computer for a short period of time because orders of magnitude more operations are queued up before they can complete. I wonder if painting operations could be limited to some max number per second to prevent that orders of magnitude queue problem. And, more importantly, how do you code that limit?

angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
This paper? https://github.com/papers-we-love/papers-we-love/blob/master...

All good ideas, thanks for sharing.

angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
A brief skim through that doc looks like it is about a kind of security that's not relevant to my project. I'm trying to protect the user from themselves while simultaneously giving the user full power over the document.

Web workers are interesting and relevant to this use case, however the almost total isolation doesn't lend itself to manipulating the DOM without the user explicitly writing a custom API to interpret the worker's messages. So, back to the same problem.

Thanks for the link.

I'll do some digging into chrome's sandbox[1]:

[1]: https://chromium.googlesource.com/chromium/src/+/master/docs...

angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
Ah, okay this is interesting. The entire notebook is one iframe, which lets you do more of the metaprogramming and sharing variables. Both printing (via console) and non-printing infinite loops crash the iframe until you close the page. And the reason my document.innerHTML = "" test was recoverable is that your notebook-top-button-container is not in the iframe (and it has that refresh button!).

I'll have to look more into async stuff. Great eval article there. I've found these four lines to work for importing content[1]. I dove into realms[2] and the realms shim [3] a while ago after reading about Figma's engineering behind plugins [4] but I never figured out how I might use that for my system.

You might take a look at how the codemirror author built his book [5] and editor [6] in this repo [7]. He implements the loop detection I derided in my first comment. I shouldn't be so harsh, it's a good and simple idea. It's just not an answer, more of a hack. My interests align pretty well with the p5js editor audience[8], so some of the early issues there convey why the simple loop detection isn't ideal.

I'll drop you a link soon!

[1]: https://stackoverflow.com/a/5282268 [2]: https://github.com/tc39/proposal-realms [3]: https://github.com/Agoric/realms-shim [4]: https://www.figma.com/blog/how-we-built-the-figma-plugin-sys...

[5]: https://eloquentjavascript.net/ [6]: https://eloquentjavascript.net/code/ [7]: https://github.com/marijnh/Eloquent-JavaScript/tree/master/h...

[8]: https://github.com/processing/p5.js-web-editor/issues/174

angleofrepose··on Show HN: Starboard – Fully in-browser literate notebooks like Jupyter Notebook
Thanks for sharing, this is a cool project.

I've been working on something similar on and off for a while, and I've found the space to be fascinating and somewhat puzzling. Most of the first questions I try to ask about these in browser notebooks don't have clean answers. In no particular order:

- Do you have any ideas about solving logic errors? As it stands right now a while(true) loop crashes the page and consecutive re-openings of the page for a short while (in chrome). What about things like document.body.innerHTML = "" (you actually seem to handle this pretty gracefully, I'll see if I can poke more holes in this another time). For what it's worth none of the online notebooks I've seen have a satisfactory solution to infinite loops, loop timeouts are too blunt an instrument and crashing the tab can take the browser minutes to recover.

- Is there a particular reason you use eval rather than the new Function constructor? From what I've read using new Function is much more performant, and other than different scoping a better choice than eval. Can't find the link at the moment, but it was wrapped up in the mdn[1] design docs for their codebox examples.

- I see you're using the first codemirror 6[2] beta release, how are you liking it? I really enjoy the interface so far.

- Do you have any favorite resources or inspirations about why you went about building a hackable offline local first notebook environment? I particularly like the experiments at Ink and Switch[3]. (many related hn submissions). As well as webstrates[4].

My attempt at this game is to break out of the notebook style single column layout and embrace an art board style canvas, which is a rather radical idea in that it is not obvious what that should look like or how basic interactions like hierarchies or execution order should look, but fun to explore. I also desperately want to prevent crashing as a result of logic errors and workflow footguns(like deleting DOM elements or overwriting storage), to that end I have a separate storage of scripts to rebuild a "safe boot" interface, but there is more thinking to be done here.

I look forward to poking around your code some more soon. Thanks for posting.

[1]: https://developer.mozilla.org/en-US/ [2]: https://codemirror.net/6/ [3]: https://www.inkandswitch.com/ [4]: https://www.webstrates.net/

Edited out a question about your motivations. I reread your comment and the about page and I realized my motivations are similar to yours. While observable doesn't have a few of your key points, it is a fantastic product. The reason I don't settle on it is that I'm interested in experimenting with the environment outside of a notebook-with-cells interface.

angleofrepose··on The largest city in each 10x10 degree latitude/longitude box
That's a fair point I respect. It does seem that it would be easy to have this fun in a way which is also useful, with literally any filtering system which had a relationship to the data. Equal work, equal fun, more than zero use.
angleofrepose··on The largest city in each 10x10 degree latitude/longitude box
Unless I'm missing something, this map might be pretty or impressive that it can be made, but it is entirely meaningless. Meaningless in that I don't know of significant meaning of breaking down the globe into 10° chunks whatsoever. This doesn't tell you anything about the cities shown, nor the area in which those cities exist. There is zero meaning in this map because no meaning can be derived from the filter process. The constraints have no relation to the data.

The article is cool that it takes a dive into the "odder" boxes and finds a flaw or two. The author also recognizes the arbitrary nature of the map. I imagine that almost any other filtering would be more interesting to geek out over though.

I am somewhat surprised by the popularity of this post here and on reddit, but then again that is sometimes how popularity works. The piece is presented well, just meaningless.

angleofrepose··on 'Into The Wild' bus removed from Alaska wilderness
This is an interesting thread and I appreciate both you and bananabreakfast for it. America has a unique perspective of the wild among western countries. The way this manifests itself is that the American wild is furnished at an absolute bare minimum, as opposed to the European wild with huts, villages, towns and resorts around every bend. The European property is not owned by the government in the same way it is owned by the government in the United States. This is likely a result of incredibly low population density of the United States as whole, especially of wild places in the United States, and also the result of the near extinction of native peoples by colonizers and awful control by the subsequent American government.

Property and ownership also has a unique definition for the United States, and the "wild" referred to in this conversation is owned by the government, plain and simple. With this perspective it should be clear why individuals cannot just go out and "do whatever they like" even if this is a hypothetical argument. There is no un-owned place in the United States. There are positives and negatives to this reality, but it is reality and should help to ground the conversation.

I wonder what another model that could fit the massive expanses of space set aside in the Unite States; certainly one with a less consistent hierarchy of responsibility would be worse than the current system. It is also important to realize how artificial the "wild" is in the United States given the American philosophy of individualism and property ownership, especially given the status of the population as exceptionally empowered by rights, wealth and technology. I say artificial because without the organization that protects the wild spaces, they would not exist as they do today.

It would be interesting to discuss the meaning of "the wild" or its equivalents in other cultures, as I imagine we would see an incredible variety of meaning. I, however, have mainly experienced and philosophized about the American and European wilds.

I deeply resonate with the sentiment expressed by the Alaskan ranger in the top level comment. As a guide of private and commercial expeditions I am constantly amazed at the alternate realities of understanding and respect people have about wilderness and I cherish my role, however small, as an ambassador to the wild.

I know a few Search and Rescue workers, volunteers and Rangers, they regret their job as babysitters for the incompetent but command respect by outdoorsmen. They are essential to the wild as we have it in the United States.

I used the word unique in this piece too much, but there are a number of special things about the United States and the American psyche that are central to this conversation. I do not claim these perspectives are right or correct or ideal, but it is how I see it today.

angleofrepose··on Ronin – A Lisp-based image processing tool
I agree, thanks for pointing me to that info page. I would bet that keys representing functions probably evolved simultaneously with the first computer typewriters, they've been around forever and are "obvious" to some degree. Making functions apparent in menus is also probably synonymous with the first non text-based GUIs. I don't know enough about the history of toolkits, but as far as I can tell that area of development is nowhere near mainstream today.

I have been reading Sutherland's Sketchpad thesis, and it struck me that no aspect of the system was unavailable to the user. By itself, this isn't entirely unusual, I think the same could be argued for emacs or linux in various ways or even of software when code is available etc. The unique aspect of this universal control with regard to sketchpad is that it was a graphical system. Controls for the graphics and viewport were essential, and reflected by the development of the first oop principles of master/instance and recursive expansion of arbitrary material in the workspace. Of multiple viewport movement controls (physical dials too!) and focus-selection zooming.

It is easy to imagine extensions of sketchpad with graphical macros. Of savable viewport state, of non-euclidean jumps between locations on the digital "paper".

It's funny to me that most clever things I enjoy about vim seem like they could fit right into a graphical system like sketchpad. `mkview`, marks, folds, repeat operations, contextual movement or selection like accessed via combinations of `[{(`.

Infinite canvas artboards are fantastic workspaces, but lack even the basic "focus shifting ability" of a few stacks of paper on a desk, taped on a wall, or strewn across the floor.

angleofrepose··on Ronin – A Lisp-based image processing tool
It's probably fair to say this software isn't the most user friends as a result of its continuous change. In chrome and firefox Control-Enter runs the web app version I find here: https://hundredrabbits.github.io/Ronin/
angleofrepose··on Ronin – A Lisp-based image processing tool
There is a plan9 and acme demo on YouTube which is eye opening. One idea that has captured me is the idea that end users ought to be able to create custom UIs. This appears to be a foundational principle of plan9, the way all text is able to be executed. Another avenue for this idea are ZUIs as originally envisioned. Individual clipboard state can be reified as buttons in the UI, any formatting or pens or fonts can also be manifested in the interface and selected with something along the lines of the "eyedropper" tool present in many applications.

edit: video here https://www.youtube.com/watch?v=dP1xVpMPn8M "A Tour of the Acme Editor" by Russ Cox

angleofrepose··on Ronin – A Lisp-based image processing tool
I've been following Ronin and the author for a few years now from a distance. As I have said in other threads on hn about this work, the theme and ethos are so consistent and thorough they just slap you in the face. You know exactly what is going on with Ronin, Oscean, Orca and it is a pleasure to see such clear manifestation of intent.

Ronin in particular is the most fascinating piece of this network to me. I was hooked by the (broken) version 1.0 when I first found it a couple years ago and played around a bit with fixing it. It played well with a few other key influences in my life and I've been playing around with similar--albeit prototype--systems ever since.

To name one stand out feature. I have been playing around with generative design/creative coding/coding art for a while now and I seem to be on an edge of the domain. My work lately has been increasingly taking a set of starter points, so to speak. I have shapes or layouts in my head that I want to run through the generative process, but I am distinctly starting with these hard coded values.

Ronin provides direct manipulation on the canvas with `$` prefixes in the code. If you type `$point`, then click on the canvas, "$point" is replaced with code representing that point. The simplicity of this interface for writing code that heavily involves numbers in context (ie on their domain) is an inspiration. There are probably a couple of names for this connectivity, but one might be bi-directional evaluation. Manipulations in code yield the canvas, and manipulations on the canvas yield code.

There's a lot going on here, xxiivv.com

And some fun to be learned by poking through git commits. If you know Orca, (was popular here a while back) it didn't start as a music generation system.

Edit:

Ronin tutorial video, 5:22. First 30s tease the original version I saw. https://www.youtube.com/watch?v=SgAWGh1s9zg

Old version tutorial/demo 4:09 : https://www.youtube.com/watch?v=gifzjhyBwOc

angleofrepose··on Org-roam: Rudimentary Roam replica with Org-mode
I think rather than trying to get org mode outside of emacs, you want to change the mechanics of entering emacs. In my head this looks like a subset of emacs (in the same way you can imagine notepad a subset of word, or contenteditable a subset of codemirror). If there were an emacs-lite application that just surfaced simple org mode functionality and bindings like moving the cursor or paging removed behind a settings wall, I think adoption of emacs would rise due to the lower barrier of entry.
angleofrepose··on Notes on the M4 Macro Language (2008)
I'll have to look more into this, thanks for the tip. I have found it incredibly difficult to figure out how OneNote was intended to be used. The in-app tutorials are basic in the extreme (describing only the visible UI) and I couldn't seem to google-fu it well. There are endless YouTube videos and reddit fluff posts but even the technical looking channels just have a 10 min video where the main content consists of a stylized "Science is cool" header with some vectors or bio notes.

As I said I used it in my full class load for a month then entirely gave up on it. Too many papers and too many large documents of notes, I have much more reusability and ease of access and searching my pile of md documents next to a pile of PDFs (I write `zathura path/to/paper`) at the top of each section in my markdown doc that I edit in vim, then when I want it open I put my cursor on it and hit `gx`. This beat out any OneNote workflow I could figure out in a month of daily use.

angleofrepose··on Notes on the M4 Macro Language (2008)
I used OneNote every day for a month. It's a toy application not meant to be used seriously. It has no navigational tools beyond its hierarchy of files and search. Import a 78 page pdf to read and annotate? You can't set bookmarks or even jump to the bottom.

Searching the text of pdfs just failed in 3/3 tests I tried going through my old notes to find a document.

angleofrepose··on Notes on the M4 Macro Language (2008)
As an example, Dropbox Paper supports a number of keyboard-text[1] to formatting capabilities. - The markdown goodies (bold, italics, line break, headings, quotes, etc)

- Dropbox Paper specific items like +LinkToDocument, @Person, #tag

- Digital Paper functionality like stylized tables /note red, creates a red box and puts your cursor inside it

- literally just two commandline tools /date, /time

These are all much more convenient than clicking GUI buttons to get these formatting options yet incredibly limited. There are on the order of tens of these capabilities in any similar application. Notion, Slack, TiddlyWiki, etc.

I can think up hundreds of keyboard-text -> computer-things. Sure they are basic and understood processes, but unless they are built by a developer for a walled garden application you can't really have them. In general, this is one of the reasons I primarily use vim/emacs and linux, so I can build my own interface for my computer. But I'm interested in bringing that textgrid customization into a canvas application that supports more media types than text. vim + repl + powerpoint. Keyboard driven, mouse driven, stylus driven and as powerful as a computer can be.

- I can highlight 3 paragraphs and type /column to make a three column layout.

- I can type /tabs to create tabs in my document ala tiddlywiki tabs.

- I can link statusbar like information into a document with /uptime and document how much time this document has been open.

I would like these capabilities in a shared document system to be able to work collaboratively on a higher level than text, and with more programmatic options than the tens that these applications provide.

I think I can't express this well and I'm really at the beginning of thinking about it, thanks for taking the time to read it. Maybe there's nothing here and this is just a manifestation of my frustration of using a computer.

[1]: things I can type on my ~80 or ~100 key keyboard.

angleofrepose··on Notes on the M4 Macro Language (2008)
Are there in-place macro tools that could be similar to this?

Examples: - italics in a live markdown editor usually hides the asterisks after you've closed the pair, but can get them back if you backspace with your cursor at the 's'. - [[]] style links in similar live editors hide/show content as the syntax has been designed to do.

These examples do it for me, the author, not just in publication.

Other examples include CAD software array-style duplication as a single example. Draw one thing, give a command like "copy 10 times" and then move the piece and see 10 copies laid out.

I can imagine using something like that `define` example in m4 and wanting the instruction to propagate throughout my text file, yet retain the command as a sort of undo/toggle option. Again, all for me the author as I think through my work in this editor, publication isn't really the point in these thoughts.

The workflow for applying formulas to org mode tables is fantastic. I'm still an absolute novice, but I can keep an array of TBLFM formulas[1] below my table which I write and execute at will (C-c C-c or ,,) and can retain as a sort of history of the table state. There seem to be an endless variety of hooks I can tap into for these kinds of table editing sessions.

I'm thinking about this in the context of the process of doing research and writing. When my thoughts are not concrete, I do not have a formal document I'm writing but I'm learning and thinking and connecting information. I am in the process of auditing a whole load of these tools and I want a tool that is the superset of all functionality I see, not sacrificing the awesome transclusion of TiddlyWiki or internal links in org mode for the drawing abilities of OneNote.

I think what I want is an exceptionally powerful "viewport" for lack of a better term. I take great inspiration from ZUIs and wonder how to apply the fantastic text based tools I know to a semantically zooming canvas. I don't like directories, I do like juxtaposition of disparate thoughts and projects. Can I have an AutoCAD/OneNote/orgmode? I want one. m4 seems inspires me towards this goal, even though I realize that's not exactly it's intention.

[1]: https://orgmode.org/manual/Durations-and-time-values.html#Du...

angleofrepose··on The reckless, infinite scope of web browsers
Why is it impossible to build a new Windows 10? Shouldn't that be an area of great interest to Microsoft? What other endeavor would give Microsoft as great a leap forward as a ground up rebuild of the operating system?
angleofrepose··on The reckless, infinite scope of web browsers
I don't fully understand the argument that a long piece of work will leave you behind when you're done. What if you've qualitatively moved the field forward while the "competition" simply made incremental progress? Aren't you ahead then?
angleofrepose··on Wildcard: Spreadsheet-Driven Customization of Web Applications
Wow, this is the real deal. First time I've heard of this work and I've got some more digging to do. Has all the right language and some great references with pretty awesome related work on digital tools should anyone want to keep digging.

Low floor, high ceiling is the best case for that framework, and should be every toolmakers ideal.

The Airbnb story reads like a sign of the times. Platforms can do as they like, users just have to conform. PCs and the internet promised the kind of programmatic control described here(I wonder if there is a better term than "programmatic" control?), end users should be able to come up with arbitrary representations of the data they query on the fly and realize them as quickly as possible.

Web UIs are stupidly underpowered, table based queries for flights as presented here seem much more usable. Michel Beaudouin-Lafon has a few great ideas to explore here, "One is Not Enough" which he described in a different context but I think can apply to the desire for composability between multiple tools here (Airbnb + walkability) and "software is not soft" describing the boundaries placed on software users. I have many tools for manipulating strings or sorting numbers, why can't I use them on the Airbnb table listings, served up on my computer?

Thanks for sharing.

angleofrepose··on i3 4.18
Controllable constrains. Tiling wms give you more hooks than anything else, so more control than anything else. I often have more than 4 or more workspaces in i3 and I love being able to swap between them with ease. Many users of tiling wms have specific hotkeys that grab windows or workspaces or populate workspaces with a predefined layout. Its nice to have programmatic control over the interface to your computer.

E:

> That even control freaks like Apple, who like to think only they know what's best for their consumers, doesn't use a tiling only WM in their OS is telling.

I don't think so. Like any other pro tool it has a learning curve which without a little time investment renders the tool useless. I think the only telling thing about Apple's choice of window management features is that they shoot for the lowest features possible so that users can learn them all as quickly as possible. On-boarding > user control for Apple.

I think the GUI that Apple ships is successful in so far as all of its features are literally visible. You literally have a mouse and a clickable pad, you always have maximize/minimize buttons. Any more advanced software has "hidden" features in that they hide behind menus and hotkeys. Though everything that is hard about "modern" computational interfaces is that discoverability is shit, see [1]

[1]: https://www.fastcompany.com/3053406/how-apple-is-giving-desi...

angleofrepose··on A Year with the Surface Go
I think I'll give that a shot. I'm just greatly disappointed with OneNote's organizational features. In that they don't exist. I have notebooks > sections > pages but nothing within pages. No portals, no tools in place (leaving a pen or two in the canvas where I'm switching often). In portrait mode it takes me 3 taps to get from highlighter to pen when I'm reading papers. The PDF import as a stack is almost useless for anything larger than 30 pages. I could go on for a while. I want to try a formal design application and maybe I can make use of layers to save on the "miles" of scrolling I do in OneNote.
angleofrepose··on A Year with the Surface Go
If we're making this a little bit of a surface line conversation: I'm absolutely amazed at how bad the latest Microsoft Surface Pro 7 is. I bought it for OneNote and as a second computer to my main laptop.

The pen regularly is not recognized, the entire computer freezes for 2 seconds when rotating including stuttering video and audio. The entire computer freezes for 1s when opening the keyboard which happens for me two or three times every five minutes of active work in OneNote. I've done about 20 hours of work in OneNote now and couldn't recommend it to anyone for any workflow, not formal design work, not annotating PDFs, not drawing, not storyboarding or wireframing or writing by hand. I only keep using it hoping I'll stop hitting it's fail cases by learning it all and that has yet to happen. I plan to try out the iPad next week. Any other recommendations for a thinking workspace with digital pen?

I have a list of 10-15 OneNote peculiarities that seem insane to have made it into production, and that OneNote is almost unusably laggy on Microsoft's latest device is wild to me. They center around the virtual keyboard and non-ink object selection and manipulation, of which there are zero official Microsoft tutorials or manuals. There is no way in OneNote on the surface to "exit" an action, selection or keyboard. Any tap will open the keyboard, cycling the 2x 1s freeze for opening and closing the keyboard. It's maddening.

angleofrepose··on Software Disenchantment (2018)
What are you up to these days Chris? And the obligatory question, what is your take on the article/why post?

I piled standout quotes below.

I think a big takeaway from the intersection of Bret Victor, Alan Kay, Jim Hollan and the ink&switch folks and your work is that the right dynamic interface can be the "place we live in" on the computer.

Victor shows a history of interactive direct manipulation interfaces, live environments where explorations of models or the creation of art go hand in hand with everything else related to that task: data input, explicit (programmatic) requirements and the visual output.

Hollan and ink&switch show the environment (ZUIs, canvas) can contain everything for doing work, the code alongside any manipulation of the viewport that can be conceived. Tools infinitely more advanced than Microsoft OneNote and designed 40 years ago.

From what I know about your work, I see another take on the environment I want to live in on the computer. I dont understand why I would want to lose power by stepping away from my language/interpreter/compiler/repl into a GUI or some portal when I can bring whatever it is which is nice about GUIs or portals into my dynamic computing environment. I very much want a personal DSL or set of DSLs for what I do on the computer, and I want to be able to hook into anything ala middle mouse button in plan9.

The superior alternative to walled gardens and this absurd world of bloat and 'feature loss' (for lack of a better term for software engineering's enthusiastic rejection of history) seems to be known, and facets of it advocated by you and these others. It seems clear that "using the computer" needs to return to "programming the computer" and that to achieve that we need to fundamentally change "programming the computer" to be a more communicative activity, to foster a better relationship between the computer and the user.

Where is this work being done now? VPRI shut down 2 years ago, Dynamicland seems to be on hiatus? I am inspired most these days by indie developers who write their own tools and build wild looking knowledge engines or what they sometimes call "trackers."[1] And of course the histories and papers put forward by the above and their predecessors. And I play with my own, building an environment where I can write, draw, code, execute and interact with it all. I see no existing product which approaches what I want.

> Everyone is busy building stuff for right now, today, rarely for tomorrow.

> Even when efficient solutions have been known for ages, we still struggle with the same problems: package management, build systems, compilers, language design, IDEs.

> You need to occasionally throw stuff away and replace it with better stuff.

> Business won’t care Neither will users. They are only learned to expect what we can provide.

> There’s no competition either. Everybody is building the same slow, bloated, unreliable products.

> The only thing required is not building on top of a huge pile of crap that modern toolchain is.

> I want something to believe in, a worthy end goal, a future better than what we have today, and I want a community of engineers who share that vision.

[1]: https://webring.xxiivv.com

angleofrepose··on Joplin – a note taking and to-do application with synchronization capabilities
I think it is because each comes with its own opinionated workflow, and missing features. Each has a way of writing markdown/connecting notes that is novel, which means each other option is missing that feature.

A take away from this scenario might be that this design space is wanting for a meta-editor. Some tool which allows feature creation in the same context as these markdown/note tools. An analogy might be that this meta-editor is to digital note keeping as racket is to programming languages.

Of course all the obvious requirements apply. Has to be usable out of the box, has to just work, has successfully convey it's ability to be changed to the end user.

I think emacs is such a solution, there are no features in the list of hn posts under the search "markdown" that it doesn't have. But emacs is missing all the requirements. It is not usable out of the box.

I think this meta editor could best be built on top of emacs, but this will require a lot of work. I have been playing around with this idea for a couple of years now and it's slow going but fun to think about.

angleofrepose··on Expertise in the Age of YouTube
I've written up three different replies now and I don't like any of them. I'm not sure how to respond to this statement. Thank you for writing it.

I fundamentally disagree with the two assertions "it's the act of using your brain to simulate the computer that teaches your brain how the computer works so you can reason about it later" and "In most domains, I find it best to start with doing things yourself, and only move on to the tool-assisted version once you thoroughly understand what the tool is doing for you".

I agree entirely with the notion that ability to reason about the underlying system is incredibly important, but I disagree about the methods to get there.

I disagree with those two ideas because (and maybe we have different perspectives here) but the choice of whatever level is the "base level" or "bottom of the stack" seems entirely arbitrary every time. Is assembly the bottom? Or C? No it's machine code. No it's the physical wires.

I think I should come back to my original comment here and reiterate. I'll clarify what I mean about those "computing environments that do that thinking for us" because I expressed myself poorly.

There are computing environments and workflows that people have built which expose to the end user (the programmer) deep information about the state in which they are working. As a field, as a culture we have not embraced this thinking and rather stick to the simplistic notion of working alone to build understanding for ourselves alone.

Sharing is discouraged (outright banned at school under penalty of expulsion) and difficult requirements are kept in place primarily for hazing purposes rather than pedagogical(I have this from a one-on-one discussion with the course designer at my school). There's this thinking that "I had to go through it, and the system produced me, so it must be good" and to think otherwise would be a recognition of being failed by the system, of missing something. A recognition that you could be smarter now than you currently are.

So to give a concrete example, as my sibling comment talks about "being the packet". Why is the 'network', and 'understanding the network' not realized as exactly the same idea? Why should I ever have the simulate the network in my head? The network is an man-created artifact, my understanding of the network should come from the network, the literal code defining it, not from text file RFCs however well they are written and whatever brilliant ascii art they have (because they ARE well written, and well explained by their diagrams). Programmers should have inspection tools that are borne out of the definition of the artifact they are inspecting.

This is of course being done in other disciplines first. An architect working in Revit is orders of magnitude more powerful than an architect working on pen in paper. In every case where an architect prefers pen on paper it is due to a failure of technology to realize practical or targeted workflow affordances, not due to the superiority of paper.

angleofrepose··on Expertise in the Age of YouTube
> The better the tool the less you learn from it

This seems too broad to make a general rule. Shall I not use calculators and memorize trig tables to better understand the tools that are these functions?

I would be interested in seeing that experiment, I cant come up with a concrete example in my head which would follow that pattern.

> maps

I agree, I think most people should not have to become experts on local roads, then again, I think you over simplify the issue. I would bet that most people are experts on their local roads. I am in my hometown, I am not when I travel.

I do not know how pdfs are made today, but keynote/power point are generally drawn with WYSIWYG tools rather than post script or latex. I am not aware that I have ever read a pdf or been to a presentation with slides not generated by one of these WYSIWYG tools in my entire life. I have never actually opened one of these files, but I also don't expect that I could. I would bet they are not stored in text files.

Overall I contest each of your points, though I appreciate the ideas. I understand the sentiment but don't agree on the reality. Sorry for the late reply, I'm happy to continue if you have the time.

← PreviousPage 2 of 4Next →