layout: post
title: A quick way to generate obvious links
created: 1084775626
categories:
Search Engine Voodoo
Personal Publishing
I want a blog editor that will let me select a block of text, and then search Google for me, providing me with a list of URLs from a search for the text provided. Then, when I pick one, the text and URL will be turned into a link. Nothing fancy, just a quick way to generate obvious links. For instance, in the last post, I ended up searching Google a half-dozen times to find good URLs for the links in the post. I wish Ecto could automate that for me.
*scottstuff*: Blog Editing with Google
What do you think about blogrolls? Should they match RSS subscriptions? Are they useful? Would it remove value from this site to take it off completely?
Common Craft: Blogroll Conundrum
(Follow that link for lots of good points in the comments)
Blogrolls are an interesting little thing, and maybe in some way even tie into Steve Gillmour’s notions of attention.xml (about which I don’t know enough to have an opinion, other than I don’t *think* I need it). I think we’ve outgrown them, even if there ever was a need. Is it for people that don’t link to other people in their regular posts? Yeah, I’ve got lot’s more to say after the jump…
I only sort of have a blogroll (aside: that’s from late 2003, and I just edited to fix broken links; sorry, no custom blogroll icon — imagine a log with an axe in it). Sort of, because the built in aggregator goes along merrily sucking in other people’s feeds in various different categories, including one I even call blogroll.
But only sort of, because it in no way reflects the just under 300 feeds I’m subscribed to. Especially the 2 dozen or so PubSub feeds, which pull in “stuff” from all over the place, and let’s me “read” several orders of magnitude more resources. Some of those feeds are private, but mainly it’s too hard to keep updated, and doesn’t really add much value. It’s the same reason I don’t use my weblink directory anymore: sure, the feature is there, but if I’m going to link, either I’ll put it in del.icio.us and add some tags, or I’ll make a longer blog post with my own thoughts on it. What’s the value of a bare link?
I remember the always-insightful and usually thought provoking Shelley Powers starting off a blogroll debate a little while ago:
Rarely do people discover new webloggers through blogrolls; most discovery comes when you reference another weblogger in your writings. But blogrolls are a way of persisting links to sites, forming a barrier to new voices who may write wonderful things — but how they possibly be heard through the static, which is the inflexible, immutable, blogroll?
Burningbird: Steve Levy, Dave Sifry, and NZ Bear: You are Hurting Us
Melanie McBride does a good job of representing the other side of the argument, that a blogroll is a feature that helps define what a blog is:
The suggestions of abandoning blogrolls, so early in the history of the form, is a very bad idea. Especially when it’s coming from high profile bloggers or, at least, bloggers with influence. To abandon blogrolls is to abandon community and the links that connect diverse and unique sensibilities. Links that help others find us and help those who are not already well-connected techy-scenesters find allies and audiences. And our blogrolls are yet another thing that distinguishes us from the traditional media. I don’t like blogs that don’t have blogrolls. Those blogs imply that they’re really only interested in promoting their own voice and don’t have the time or inclination to show you who they’re reading or reveal their support for other blogs via a blogroll. My blogrolls says “I like these blogs (for now)”. Let’s be adult and assume that if we have the time to put together a post we also have the two seconds to add or remove a link. It’s really not that much work to maintain a blogroll. I make changes about once every few months maybe adding a new link every month or so. This really isn’t hard work. And my blogroll is not static.
chandrasutra: Blogrolls and community
I don’t think a “blogroll” is much of a thing at all. What does it say, exactly? It says, here are some people I read, that you might enjoy reading too. Except, since I read through RSS, I never see those links. And if I come to your site to comment, it’s just a static chunk of space on the left or right that doesn’t mean much to me — it’s a set of bare links without context. How often do they post? What do they write about?
So what is the difference between a blogroll and links that happen to be websites representing people? Can’t we use del.icio.us? Or put together some more categories around this content, like a selection of people that write about VoIP.
A more generally useful application for links to blogs certainly is for putting together bundles of (what you consider to be) related blogs about different topics. But then, that’s not a blogroll anymore, is it? Actually, these all sound like lists or OPML applications, don’t they?
Back when there were a few double handfuls of people blogging, blogrolls were useful ornaments to help find other interesting people. In today’s world of link clouds, tagging, PubSub monitoring, and millions of blogs…there are better tools.
I’ve just added a second: Danah Boyd’s post on Why Web 2.0 matters, where she goes through more of the social and business changes taken place that are being aided/accelerated by technology.
And yes, there is What is Web 2.0 as well. This is my corner where I can send people a single link and tell them to read the posts linked there, then come back and talk.
One of the beautiful things about physics is its ongoing quest to find simple rules that describe the behavior of very small, simple objects. Once found, these rules can often be scaled up to describe the behavior of monumental systems in the real world. [โฆ]
A backlink is any link to the page you’re visiting.
Currently the [[agora]] surfaces backlinks from nodes in the same [[agora]]. In the future it will support sources such as other agoras ([[agora protocol]]) and social networks such as [[twitter]].
A backlink for a note is a link from another note to that note. Links in the backlink pane also feature rich [[popover previews]] if you have that feature enabled.
Removing backlinks: delete all usages of Component.Backlinks() from quartz.layout.ts.
Hide when empty: hide Backlinks if given page doesn’t contain any backlinks (default to true). To disable this, use Component.Backlinks({ hideWhenEmpty: false }).
instead of having your notes be siloed into different folders and subfolders, you can let your notes be automatically organized based on how they relate to similar topics and points. A lot of people like to use the brain metaphor in that the bidirectional nature resembles how our brains work and how it makes connections with everything that we are thinking and learning about.
This plugin parses links and processes them to point to the right places. It is also needed for embedded links (like images). See [[Obsidian compatibility]] for more information.
[!note]
For information on how to add, remove or configure plugins, see the [[Configuration]] page.
This plugin accepts the following configuration options:
markdownLinkResolution: Sets the strategy for resolving Markdown paths, can be "absolute" (default), "relative" or "shortest". You should use the same setting here as in [[Obsidian]].
absolute: Path relative to the root of the content folder.
relative: Path relative to the file you are linking from.
shortest: Name of the file. If this isn’t enough to identify the file, use the full absolute path.
prettyLinks: If true (default), simplifies links by removing folder paths, making them more user friendly (e.g. folder/deeply/nested/note becomes note).
openLinksInNewTab: If true, configures external links to open in a new tab. Defaults to false.
lazyLoad: If true, adds lazy loading to resource elements (img, video, etc.) to improve page load performance. Defaults to false.
externalLinkIcon: Adds an icon next to external links when true (default) to visually distinguishing them from internal links.
[!warning]
Removing this plugin is not recommended and will likely break the page.
I’ve had several conversations with people surrounding go links recently, over on Twitter and Matrix; that made me realize I’ve been procrastinating on writing something about them, so here I am. Procrastination over.
Before I lose you, let me tell you outright why I think go links could be interesting or even important to you:
They are complementary cognitive artifacts.
They are URLs made truly democratic.
They are a simple, but solid, base for a distributed social knowledge graph.
go links originated within Google around 2005 or 2006. They are the invention of Benjamin Staffin, an SRE (like yours truly); as detailed in his interview with Jon Gaulding from trot.to, they were inspired by AOL keywords and were designed to scratch an itch that Benjamin’s team was experiencing at the time: people kept asking for trivial redirects to internal pages that were relatively work intensive to set up. Go links emerged as self-service named redirects, essentially: a web service that sets up a redirect from a chosen label (e.g. go/agora) to a target URL (e.g. https://flancia.org/agora) . From Google they spread to many other companies, particularly around Silicon Valley. If you walk around their offices (well, if you did before Covid-19 anyway) you will see them in wide use.
In many ways, a go link is like any randomly generated "short link" you can get nowadays around the web as offered by a number of services like <bit.ly>: you can create them quickly, they can point to any valid URL, and they tend to be shorter than the URLs they link to. So far so good. But they have some extra attributes:
They tend to carry semantic information in their labels — you need to choose the go link label anyway, and better names make for easier communication and better recall. Some examples:
go/agora is better than https://bit.ly/33Q5F4l as a pointer to https://flancia.org/agora ) marked as public, and offer users a way to cross-link nodes with other users’ (see also the federation point below).
TLDR: Roam/Wikis/Docs/Twitter plus go links = lightweight distributed social knowledge graph that builds on these platforms but is not directly controlled by any of them.
If you accept one or more of the hypotheses implied above (that go links can be directly useful to users; that they complement existing tools and platforms well; that they might benefit from network effects), further venues for thought seem to open up:
In general, go links could function as a hub-like platform for any number of lightweight label-oriented cross-product integrations (see the Roam example above).
Hierarchical go links: multi-level/name-spacing.
go links feeds: you can subscribe to updates for go links — or the resources they link. You can subscribe to subgraphs, as well; around things or people.
Federation: domains can expose some part of their URL space as go links space. https://flancia.org/go
Where I left off last / Current holdup: try running node app.js from garden/hello. It says the mustache thing is missing, so check the code for app.js and hello.html. Also, check the documentation that you have saved to make sure you setup the library correctly.
Make a live list of go links from my site uses that regularly updates to https://ethanplante.org/go. (If you don’t know what a go link is, check that link out. They’re pretty much like social bookmarks from my site to somewhere on the web.)
A go link exists for each note in [Obsidian Database]/Plantey-Garden (subfolder for where I hold my Obsidian notes) based on title unless otherwise specified
New .htaccess file is uploaded by means of another
Learn Python again (lol), have it do some text editing and add in all the WordPress stuff
Wikilinks on site are represented by go links, to allow me to change where things are hosted
Make a list of where I’ve used the go links? (If outside of digital greenhouse/garden)
Auto-convert wikilinks in Obsidian to good URIs on site (go link conversion from title)
Old titles should redirect to new go links (double bounce… but will this be bad for optimization? maybe file them all as equal variables or update all to the newest one or something…)
22:14 — Started.
Downloaded WinSCP as the software that can interact with files on my site.
23:01 — Figured out how to edit .htaccess file from WinSCP to add a new redirect from /go/. (actually, that’s where I set up the go link in my tweet for this)
(I’m tracking time as I go to document my efficiency.)
23:09 — So I need to run WinSCP from the command line. Gladly, this site tells me how to do so.
It looks like what I need to do is start C:\Program Files (x86)\WinSCP\WinSCP.exe in the command line.
It’s not letting me run that exe file in cmd. Time to review the basics…
23:21 — So the start (stuff above) didn’t quite work. I think there’s a way to open it in cmd…
23:26 — Yes, alright. So, putting start [the stuff from above] doesn’t actually do anything. I need to just put winscp.exe [thing]
23:42 — This is some pretty cool stuff. I just learned that you can hold shift while right clicking on a file to copy its file path. Super helpful.
Here’s the file path for WinSCP: "C:\Program Files (x86)\WinSCP\WinSCP.exe"
When I want to run the WinSCP console, I need to put "C:\Program Files (x86)\WinSCP\WinSCP.exe" /console in the command line. From there, I apply this stuff.
Soon enough, I’ll be able to edit my go link redirects from the command line…
…
23:57 — I’ve been logging this on a text file as I’m going. I think you can run scripts from it. Speaking of scripts, I just moved on from the commandline article to this one on scripting, since the first told me to.
So the first order of business is to use the bit of code I had above, and make a script from it…
Is "C:\Program Files (x86)\WinSCP\WinSCP.com" the same thing? The site describes them similarly…
Yes, but this one actually stays within a single cmd window, so that’s nice.
00:25 — How do I edit the .htaccess file? Do I need to download it, edit, then reupload?
I realize that this is kind of like a more removed version of live-streaming. Interesting. Perhaps I could make another twitter account for project updates / garden updates
00:37 — Alright. {Bite-sized goal: find the .htaccess file with cmd.
00:54 — Since the last update, a friendly fellow named Alex P. gave me a notification on one of the tabs I had open.
1:04 — So it turns out that the next step was typing in cd /public_html and then ‘get .htaccess’. } (<— this means that I figured out my bite-sized goal.) {My problem now is figuring out where it’s downloaded and how to edit it with a script…
1:20 — Alex says that I might need to extend this to a .NET assembly. I assume this is so that it can run files in a more complex programming language than just command line.
1:33 — Alex: "After reviewing all the relevant information, I would suggest writing a PowerShell script, that incorporates the WinSCP executable to download the remote file, then remove. Afterwards, edit the file from shell with another command like Add-Content, then pass the file through to WinSCP once more for the upload. I would be interested in further research for this project, I will contact you later tonight possibly."
2:20 — I’m ending work here for today. Alex mentioned other possibilities than PowerShell (like using the server’s Linux capabilities), but I’ll look at those tomorrow. This is still an important project (see Relevance), and I’m not sure how much progress I’ve actually made toward the goal. Still enjoyed figuring this out, though.
ilmeschinocalunniato on the Athens Discord server warned me against making the .htaccess file public. Instead, I should make a list that uploads as .htaccess. This clarifies my goals a bit…
Arya from the Interhackt Discord server helped with my issues and sent me this tutorial. Learning JS will help me with other projects, but if this is too complex, I’ll just use Python, seeing that I have some experience with it.
Downloaded [[Node.js]], which I learned allows you to run JavaScript without using the web. Sweet.
Downloading npm, which lets me download packages with Node.js.
Alright, after going over that tutorial slowly about 4 times now and intermittently searching up confusing words on Google, I’ve determined that I need someone else to explain things to me.
I might be able to figure this out. Following this tutorial for setting up an app using VS Code and Node JS, I managed to make a little snippet that can run from cmd. In other words: I can run javascript scripts from the command line now. Time to learn JS basics…
So Leonard Pauli helped me out a bit. He made an html file that walked me through the basics of replacing things in JS.
Apparently you can run shortcuts to the Windows command line. If you hit Win-R, type cmd, and hit enter, it opens the command line. But if you put cmd /k [command], it opens the command line after invisibly running that command with it. Pretty cool. So what I setup is a command called doskey that lets you make shortcuts to run commands from smaller words or phrases in the command line. What I did is set one up to navigate to my Plantey-Garden file from where cmd normally opens. The command looks like this: 'doskey garden=cd "C:\Users\[rest of the path to my Obsidian database]\Plantey-Garden"'. The final result is for me to run cmd /k [that long thing] from the Win-R box.
Of course, I realized afterward that I could’ve just typed this into the Win-R box: cmd /k cd "C:\Users\[rest of the path to my Obsidian database]\Plantey-Garden", which would put me at the same spot. Nice, self.
A way of referencing URLs without typing out the full domain.
Common shorthands for websites are mutually agreed upon.
Commonly:
gh/[user]/[repo]#[issue] links to
https://github.com/[user]/[repo]/issues/[issue]: repo and issue are
omittable in the case that only a user or only a repository are wanted to
be linked to.
Wiki links are the internal links that connect the files in your knowledge base.
To create a wiki link use [[ and type the name of another file in your repo, for example [[graph-visualization]]
You can also create a [[placeholder]].
A placeholder is a wiki link that doesn’t have a target file and a link to a placeholder is styled differently so you can easily tell them apart.
They can still be helpful to highlight connections.
Open the graph with Foam: Show Graph command, and look at the placeholder node.
Remember, with CTRL/CMD+click on a wikilink you can navigate to the note, or create it (if the link is a placeholder).
Feel free to use [[[[backlinks]]]], [[wikilinks]], [[edges]], [[multilinks]], or [[whatever the fuck you want to call it]] anywhere when talking to me in reference to something on the [[anagora]] or otherwise, my browser will resolve wikilinks in the default order, aside from duckduckgo as the 3rd step for unprefixed.
[[multilinks]]: as they are unlike regular links in that they can point to many different places — which particular URL they resolve to depends on the user clicking them.
[[querylinks]] ([[qlinks]]?): as they essentially behave as queries in the agora. queries return relevant subnodes/resources.
Wikilinks were pioneered by earlier internet wikis to make it easier to write links across pages without needing to write Markdown or HTML links each time.
Quartz supports Wikilinks by default and these links are resolved by Quartz using the [[CrawlLinks]] plugin. See the Obsidian Help page on Internal Links for more information on Wikilink syntax.
This is enabled as a part of [[Obsidian compatibility]] and can be configured and enabled/disabled from that plugin.
<a href="/raw/garden/matthieuG/Path to image"><img class="image-embed" src="/raw/garden/matthieuG/Path to image"></img><p class="obsidian-embed"></a>โฅ [[Path to image]]</p>: embeds an image into the page
<a href="/raw/garden/matthieuG/Path to image|100x145"><img class="image-embed" src="/raw/garden/matthieuG/Path to image|100x145"></img><p class="obsidian-embed"></a>โฅ [[Path to image|100x145]]</p>: embeds an image into the page with dimensions 100px by 145px
<a href="/raw/garden/matthieuG/Path to file"><img class="image-embed" src="/raw/garden/matthieuG/Path to file"></img><p class="obsidian-embed"></a>โฅ [[Path to file]]</p>: transclude an entire page
<a href="/raw/garden/matthieuG/Path to file#Anchor"><img class="image-embed" src="/raw/garden/matthieuG/Path to file#Anchor"></img><p class="obsidian-embed"></a>โฅ [[Path to file#Anchor]]</p>: transclude everything under the header Anchor
<a href="/raw/garden/matthieuG/Path to file#^b15695"><img class="image-embed" src="/raw/garden/matthieuG/Path to file#^b15695"></img><p class="obsidian-embed"></a>โฅ [[Path to file#^b15695]]</p>: transclude block with ID ^b15695
this is why I think having an actual wiki wiki would be so good for social.coop :) eg. we’re just getting started at neuromatch.social but we have this https://wiki.neuromatch.io/Mastodon/Governance#Actions and have just been gathering up all FAQs asked by our members and putting them on the wiki. and then also like @[flancian ๐] saw at our workshop a few months ago have a discord (which we’re using as the intra-instance communication spot) to wiki bot that lets you just use [[Wikilinks]] and have the messages embedded in the wiki so you can reference conversations about the topic as well :)
hi there! if you add An Agora to a channel and you use [[wikilinks]], the bot will 1. link your message in anagora.org (the nodes you mentioned) and 2. respond with the link.
if you want to join in, feel free to use this channel; if you use [[wikilinks]] in your messages, they will be indexed by anagora.org and written in the matching nodes
hi all! I’ve invited [[agora bot]] to this room. Agora bot responds to, and cross-posts, messages with any [[wikilinks]], to a free knowledge commons you can view at e.g. https://anagora.org . It should ignore other messages by default. Please let me know if you’d like any changes, etc.
Yes, An Agora watches out for [[wikilinks]] and optionally #hashtags (support varies per platform) and posts links and saves posts/anchors to the linked nodes
#Hashtag handling in Agora bot should be lightly improved now, and you can opt out of it if you want (even if you continue to follow the bot for [[wikilinks]] based interactions).
@simon my proposal to work around any linking limitations is to “just” define and maintain our own linking layer on top of all forms of social media — in particular, using [[wikilinks]] to signal that the user means to link to an external knowledge base ;)
[[agora bot]] is now fully back to Twitter! That means if you follow @an_agora and then use [[wikilinks]], you don’t need to keep at-mentioning the bot; they should see your post in their timeline and react to it within a few minutes. https://t.co/YH4g4KcyCZ
They are also a good pattern for when you want to attach metadata to a post while boosting; I often do that by adding [[wikilinks]] or #hashtags. (2/2)