Jump to content

Alfred my mind


Recommended Posts

Alfred my Mind

 

4wvJNy6.png 

 

This workflow lets you search through entirety of my personal wiki, all the articles I wrote and GitHub repositories, as well as GitHub Gists I share and a lot more.

 

You can read why I made the workflow here.


As this workflow is focused and optimised for fast access to all the knowledge and references I have indexed. It is adised you read through some parts of my here first.


My goals with sharing both this workflow and my wiki knowledge base is to extend my idea of knowledge bootstrapping and tapping into a person's expertise in the most transparent way possible.

 

For more information, on how you can use the workflow, you can read the GitHub readme.

 

Hope you like it. ?

 

CodeDownload

Edited by nikivi
Link to post
12 hours ago, nikivi said:

Packal still doesn't want to work for me, no idea why. 

 

Because it’s no longer being developed (the creators don’t have time). Packal isn’t a recommended way of sharing Workflows anymore. The site is breaking left and right with the simplest of things. You can’t even search anymore.

Link to post

I gave your post a quick read and two things jumped at me, on the subject of mortality. I’ll preface this by saying it’s not my intention to criticise the post or your way of understanding life. It’s also not my intention to derail the main subject of the post. Finally, I’m also not looking for an extended discussion on this in a forum setting. It’s tiring and points start to get muddier over time — it’s not a good channel for philosophy.


But it does seem to me like you brain is one that might appreciate the questions.

 

Quote

Knowing this, it makes you wonder, what will happen after I die. Will I be remembered?


Why do you care? If you believe there’s nothing after you die (and maybe you don’t), all that matters only matters while you’re here. Van Gogh couldn’t care less about his posthumous recognition, because he’ll never know (except in fictional form). After you die, your legacy no longer matters. Not to you anyway, because even if it matters to someone else it’ll be all the same to you.


Unless, I suppose, you want to have such a big legacy that if there is ever a way to resuscitate people, you’ll be considered.


And again, this is considering you don’t believe in an after-life, or this point won’t resonate.

 

Quote

All the notes I have made, all the web bookmarks I use, all the reddit subreddits or quora communities I frequent, all the code snippets I shared on Gist, all the images I curated and more.


But will they exist or be relevant by the time you die?


Right now, today, we can't see the thing, at all, that's going to be the most important 100 years from now”.


By the time you stop messing with your mind maps, they’ll likely be completely different from now. In part due to a bing chance that all those communities will have died off.


I’d argue two main ways of success for your project:

  1. They grow more than they change or shrink, in a general way.
  2. They change as you change.

The first is the Wikipedia way — beneficial to humanity — and will be a success by keeping what it has and growing . The second is more personal — beneficial to you — and will be a success if it changes completely, signaling personal growth.


As long as you keep a single common database, you have to pick one. That choice currently is not clear to me. Is it to you?

Edited by vitor
Link to post

Thank you @vitor for these interesting points. To answer the question about me caring whether someone remembers me, you are right, it is a silly thing to do. 

 

There are two projects here really. First is the 'Learn anything' search engine which will soon be completely moderated and extended by the community similar to awesome lists. Although what gets included in the database will be quite strict to keep it from being visually overwhelming. And I think it has a lot of potential for success and will evolve with the changes similar to wikipedia or the like. It is just a database of links connected together with arrows focused on learning in a linear way.

 

As for this workflow. This workflow is what I use currently for my own personal productivity. Reason I want to share it, is because I think other people can appreciate the speed with which they can potentially do things. Currently it's just a framework for the future that I plan to develop. The idea is to leverage another person's 'knowledge' or 'expertise' in a way that is easily accessible. For now it's mostly bookmarks, links, and things I personally use to move and learn things faster.

 

But once again, this is just a framework for the future that I am experimenting with. The idea is to have a very 'transparent' setup that all can use, if they care enough.

Edited by nikivi
Link to post

I have decoupled learn anything and 'my mind' workflows. Now they are two separate workflows.

 

  1. My Mind  workflow : which has a neat screencast I made to show the power of the workflow.
  1. Learn Anything : which also has a neat screencast.

 

There are three improvements I will soon make to it. One is I will write a MD > CSV converter and have that be read by Alfred in List Filter like Learn Anything has. And two, learn anything will default results to our search engine instead of mindnode. And finally I am still not sure if @vitor's AutoUpdater works for me. I have updated it to use the correct values but have no idea how to test since it needs a week or something for it to trigger. I also still really prefer Dropbox over GitHub releases because I can't find a fast way to release the workflow.

 

I hope you like it. ?

Edited by nikivi
Link to post
6 hours ago, nikivi said:

I am still not sure if @vitor's AutoUpdater works for me. I have updated it to use the correct values but have no idea how to test since it needs a week or something for it to trigger.

 

 

Set frequency_check to 0 while testing. It’ll check every time.

Link to post
  • 2 weeks later...

I want to use my script I wrote in this workflow.

 

I am thinking however what the best way to do this is. Here is the workflow and how I plan to do it.

 

I create a list filter of my triggers and pass an argument to the filter : 

 

6BkL7YO.png 

 

Which filters according to the argument what list filter to run. I can't however for the life of me remember how to clean the query being passed. @vitor told me a trick once for that but I search all over the forum for it and can't find it. :( 

 

My two questions are how can I clean the query from the filter and whether there is a better way to do what I am trying to achieve? 

 

Thank you for any help.

Link to post
44 minutes ago, nikivi said:

Which filters according to the argument what list filter to run. I can't however for the life of me remember how to clean the query being passed. @vitor told me a trick once for that but I search all over the forum for it and can't find it. :( 

 

 

Add an Arg and Vars Utility in the middle and make the Argument box empty.

Link to post
  • 4 weeks later...

Okay I wrote markdown > JSON converter and it works. It is super messy and there is room for improvement but it works for now.

 

If anyone knows a better way I can go from markdown to JSON, I would be quite happy to hear it. I could not find a good way to parse markdown to that array of items and the regex I use is quite painful.

 

At least it does return the format that Alfred should support. However now that I try to use @deanishe's method of just using cat on that file, it fails. I have no idea why, no debugger error too. 

 

Here is the workflow I am working on : https://transfer.sh/A7cZy/nikivis-mind.alfredworkflow 

 

Apologise in advance if I made some silly mistake, I hope I did not. I really don't get why it does not work. I tried to copy the same setup as @deanishe has in the workflow he made to fix my knowledge map workflow. And the JSON should be correct too according to the spec.

 

 

Edited by nikivi
Link to post

I tried to test it by simply using script filter with 'cat lists/web.json' inside and it gives me the output but it doesn't let me search on it. Perhaps because I did not set uid but in the spec it said it was optional.

Link to post

Yeah, you made 2 silly mistakes.

  1. You haven't checked "Alfred filters results" in your Script Filter, which is why search isn't working.
  2. I'm surprised it even works at all, as your JSON isn't even valid: Trailing commas aren't allowed in JSON, but every object within items has a trailing comma after the autocomplete item.

I can only assume that you still aren't using a real JSON library, or at least not using it properly.

 

Link to post

Yeah, I will try to use a proper JSON library instead of this regex.

 

Is there a reason why this does not work : 

 

4j2VgNe.png 

 

I pass in the path as argument and it should be correct path, I checked.

 

I will try to move first to the JSON library, since my books.json is not even in the correct format and it is so painful to do this conversion with regex. Maybe that's the reason it doesn't work.

 

I actually want to make this md-to-alfed as a cli tool that will take any arbitrary markdown and convert it to an appropriate JSON that Alfred understands. So you can feed it an awesome list with links for example and get a clean alfred output. Or any of the markdowns I get from my mind maps. I think it would be pretty awesome. 

Edited by nikivi
Link to post
2 hours ago, nikivi said:

Is there a reason why this does not work : 

 

4j2VgNe.png 

 

 

Why are you posting a screenshot? Seriously, why?

 

You've been told literally over 20 times by now to post the workflow that isn't working, not a bloody picture of it.

 

I'm sticking you on ignore, tbh. I'm not going to waste any more of my time answering your questions because you immediately forget everything.

 

Link to post

I posted the screenshot because you have already downloaded the workflow not so long time ago. The workflow did not change at all. I just wanted to ask why the script filter for parsing the JSON was not working when it worked on parsing just one JSON and I thought the image would be appropriate as it was the clearest way to reference what I wanted to ask about.

 

I think I should just give up with alfred workflows all together. And not waste any one's time. Sorry for this. I've learned quite a bit from using this forum, will try not to come here again, so as not to bother anyone. Thank you again @vitor, @deanishe for all the help you've provided.

Edited by nikivi
Link to post
2 hours ago, nikivi said:

The workflow did not change at all

 

Of course it has. I can see from the screenshot that you've ticked the "Alfred filters results" box, which was one of the issues with the workflow you posted.

 

Also, the workflow you posted did not have this particular issue. The cat works fine.

 

2 hours ago, nikivi said:

I thought the image would be appropriate as it was the clearest way to reference what I wanted to ask about.

 

Images are fine, but post the workflow, too.

 

2 hours ago, nikivi said:

And not waste any one's time. Sorry for this.

 

It's not your fault I keep reading your posts, is it?

 

I mean, here I am again…

 

Don't leave the forums or quit making workflows on my account. It seems I'm the only person who gets annoyed by having to remind you to post your workflow, not a picture of it, every single time.

 

I'll stick you on my ignore list, and then everyone's happy.

 

 

Link to post

Holy wow, Alfred is insane. Also I did it. ??

 

Here you can find the latest download with the workflow. With OneUpdater finally working. Hope not to do silly silly mistakes like this again. 

 

In all honestly though, even though this workflow has quite a few personal things that you don't care for. There is some that I think all can use and love. Books, courses, websites, research papers. There is a lot there and is all super fast. Take a look and see if you like it. ?

 

Also the little parser I use to convert the markdowns I get from MindNode to Alfred JSON is also freely available. I hope to use it more now that it is out, it is quite powerful. 

 

In other news, a search engine I am working on will soon get its first public API. I have a really insane workflow idea for it that I hope to write and publish soon too. 

 

Again, thank you to @deanishe for his patience. No more imgur screenshots from me here. Only workflows. 

Edited by nikivi
Link to post

This update is pretty huge in that now it should automatically be updated without me manually creating JSON's as it reads data straight from my mind maps and parses them to Alfred JSON. 

 

Here you can find download of it or wait few days and it should hopefully notify you of update because of OneUpdater.

 

I have few questions though since right now auto updating does not work. What I want is to run 'update.sh' script every day in the morning or some other time. I can probably schedule running it with cron but wanted to ask what the idiomatic Alfred way of scheduling running scripts is?

 

Also, this script has few dependencies. Most notably scrapy to download the JSON's and a Javascript script that parses the JSON to Alfred format. It has few node dependencies too. :( 

 

What do I do in this case? Ideally I want to have it just work for any user that installs it. Thank you for any help. 

Edited by nikivi
Link to post
45 minutes ago, nikivi said:

It has few node dependencies too.

 

You’re screwed, then. You can vendor your dependencies on your Workflow and have them work, but for node you’d need to vendor the entire node installation, which is insane. Either you change whatever you need in node to be in another language, or you can’t have this reasonably “just work”.

 

48 minutes ago, nikivi said:

scrapy to download the JSON

 

If you’re just downloading files, loading an entire web scraping library is overkill. Python must have some builtin way to just download the files. Heck, just call curl if you need to. Way simpler and less maintenance than including a whole library.

 

52 minutes ago, nikivi said:

and a Javascript script that parses the JSON to Alfred format

 

Any half-decent language can parse JSON just fine, these days. I doubt Python is an exception.

 

53 minutes ago, nikivi said:

What I want is to run 'update.sh' script every day in the morning or some other time. I can probably schedule running it with cron but wanted to ask what the idiomatic Alfred way of scheduling running scripts is?

 

There no idiomatic Alfred way to do that. Alfred is meant to be explicitly called. Also, don’t use cron. The scheduler to use on macOS is launchd. Here’s a tutorial and an online tool to help you build a plist.

 

However, I see no strong reason in this case to add a launchd daemon to the user’s machine. It seems like you could just check how old the JSON files are and redownload or not depending on that. Shouldn’t take long and is only done on demand. Or you can even update the JSON only after a user performs a query — it’s likely they won’t lose much.

 

Check ShortFilms if you’re curious to see how I did something similar in a Workflow. It uses both methods. It download the list on start if it’s over a day old, because the online list is itself updated once a day. But since updating the list can take a good while (it downloads and processes images) I also provide the optional way of installing a daemon so it’s always at the ready.

Link to post

Thank you a lot @vitor

 

Yeah I agree, will try to rewrite the parser and downloader with needing as few dependencies as possible. 

 

Will look into ShortFilms too, this does seem pretty cool. I am really happy how this workflow is turning up to be. Once I figure out a seamless update cycle, this will complete my vision of 'plugging into' a person's knowledge in the most transparent way possible. 

Link to post
On 30/07/2017 at 2:19 PM, vitor said:

Or you can even update the JSON only after a user performs a query — it’s likely they won’t lose much

 

The way I usually handle this (my libraries support it "natively") is to show the cached data and update them in a background process if they're out of date. If an update process is running, I set rerun=0.5 in the Script Filter feedback.

 

Often, you're working with the new dataset before you've finished typing, or the results are updated a second later.

 

I think it's much more elegant than setting a launch agent in most cases. With a launch agent, it's tough to find a balance between freshness of data and needlessly hammering the server. And the ideal update interval is going to be different for different users.

 

Link to post

 

On 7/30/2017 at 2:19 PM, vitor said:

Or you can even update the JSON only after a user performs a query — it’s likely they won’t lose much.

 

 

Also I don't want to update the JSON too often as I don't own the API endpoint. MindNode does and they provide it very generously for free so I don't want to abuse that. Plus I don't really know how many people will even find this workflow useful. It does have a large selection of books, courses but the rest is personalised to my own workflow and reference. In theory users can just remove the list filters they are not using and perhaps add their own too. I may write an article later on how to do it.

 

 

Link to post
On 7/21/2017 at 0:28 PM, deanishe said:

Don't leave the forums or quit making workflows on my account. It seems I'm the only person who gets annoyed by having to remind you to post your workflow, not a picture of it, every single time.

 

I'll stick you on my ignore list, and then everyone's happy.

 

I'm not happy. The most funny thing in this forum was reading your angry posts in nikivi's threads. :D

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...