Building personal search infrastructure for your knowledge and code - <AUTHOR> https://beepb00p.xyz/pkm-search.html <comment><USER2> I've given up with trying to find The One True Note Taking Tool, so have ended up writing my own thing that I tinker with now and again to tune it to exactly what I need.

It's essentially a simple web server that sits on top of a bunch of markdown files.

The frontend renders the markdown using markdown-it and supports KaTeX for simple inline mathy things, along with the extended markdown stuff like tables etc. I've even made it so that you can drag and drop files (including images) into the edit box and it will upload them to the server and render the correct markdown syntax so they can be rendered when you look at the note.

Alongside the files, the data is also stored in a SQLite database file with some metadata, and I'm using the Full Text Search (FTS5) engine to support search which seems to work ok.

If the database gets corrupted it can just be rebuilt, it's really just there to augment the notes. If I stop developing it or want to move on, the notes are there as text files.

It works well enough in a mobile browser, although admittedly a bit rubbish if you need offline access.

Works well enough for me. I might open source it one day but I think I'd need to clean up the code a bit first :)

EDIT: the core of the tool was mostly inspired by this article [https://golang.org/doc/articles/wiki/](https://golang.org/doc/articles/wiki/)

<comment><USER3> This sounds a lot like a tool I built for myself [1], sans the database. I agree that Markdown + Katex with a local server seems like the right move for most technical people. Lots of things like encryption, backups, and basic text search can be done via other Unix tools. I also agree that the big win is owning your data long-term, even if you get tired of maintaining the software.

[1] [https://github.com/gwgundersen/anno](https://github.com/gwgundersen/anno)

<comment><USER4> Sir! I have to say seeing you here that I appreciate your contributions.

</comment></comment></comment><comment><USER5> Sourcegraph CEO here. I see the doc mentions Sourcegraph for code search (cool!). Something like ripgrep is indeed better for your case, a single person who just needs to search code in local directories on their own machine. I made a PR for our docs at [https://github.com/sourcegraph/sourcegraph/pull/8075](https://github.com/sourcegraph/sourcegraph/pull/8075) that should clarify this.

Sourcegraph is a web-based code search tool that automatically syncs and indexes many repositories from your organization's code host(s). It's intended for every developer at an organization to use for searching across all of the organization's code (and for navigating/cross-referencing with code intelligence). It's self hosted and usually there is 1 Sourcegraph instance per organization. If you love local+personal code search, I bet you _and_ your teammates would love organization-wide code search, so give Sourcegraph a try ([https://docs.sourcegraph.com/#quickstart](https://docs.sourcegraph.com/#quickstart)). :)

<comment><USER6> Another great option for local code/repo search is Hound. I maintain an instance of it at my workplace, but it's so lightweight and easy to deploy that I could easily imagine running an instance of it on my laptop for offline personal use.

[https://github.com/hound-search/hound](https://github.com/hound-search/hound)

<comment><USER7> YES! We have been using hound for several years now, having all hundreds of our org repos searchable in one spot, in a LIGHTNING FAST manner has been an invaluable tool to help our various teams keep up with the legacy sprawl and effectively remove old features and all their dependencies from our sprawly systems. I even wrote a microservice that uses gitlab global hooks to keep hound up to date without polling, and a little c# config generator that runs as a cron job on our gitlab instance and redeploys hound with the newest repos included.

Hound falls short on access control front (we wrapped our instance with a saml proxy), but it's still a 'you either can search every piece of software for \'password\'' or you don't have any access at all. Having to index a specific branch instead of all of them kinda stinks too; for those two specific reasons we have been eyeing sourcegraph, esp. as the gitlab integration matures.

I can't emphasize enough how fast hound is and how pleasurable it is having a regex based code search that doesn't make me wait.

<comment><USER6> Yeah, the access control thing is not ideal— I have my instance behind Apache for the active directory plugin. Potentially as a hack you could run multiple Hound instances and reverse proxy the correct one based on a user's role? Might be easier to just add in proper support upstream. :)

Anyway, for now I'm at a small enough org that everyone still just sees everything, and it's been super valuable.

As far as competition with other tools, the infrastructure team at my org has their Elastic instance plugged into our GitLab, but most of the engineers agree that Hound is better— it's faster, it does regex, and it doesn't do goofy stuff like return pages of the same result from everyone's fork of the same repo.

</comment></comment></comment></comment><comment><USER8> Meta-observation. This topic seems to be getting a lot of attention on HN over the last few months, indicating massive interest. Further, looking at the landscape of developments in this space (past all the me-too Markdown note taking apps): Evernote seems to have a fading presence on the landscape, Notion seems to be a (too?) well-funded behemoth startup, Roam is trying some exciting things, and Tiago Forte is putting together some interesting things under the BASB banner. (Any others? Oh btw, there's also Perkeep)

It's amazing for how long Emacs' Org-mode has been largely unparalleled! Apart from the revered desktop setup, there are now a bunch of mobile offerings including Organice — not quite slick, but definitely useful.

I'm sincerely rooting for more experiments in this area. I would love to be able to write by hand or speak to my memex (multi-modal interaction). Vannevar Bush's "As we may think" has languished uncourted for pitifully long. In some ways, this was supposed to be the first "killer app" for personal computing.

<comment><USER9> It's a ripe space. I'm using notion mostly right now, but I've also used:

-Coda.io (big, more scriptable player)

-Hypernote (super new player, but with a cool new take on inter-note relationships)

-Tiddlywiki (super customizable, really fast -- but also has a fair amount of footguns)

-Airtable (only played with it a few times but it's usually mentioned in the same breath as notion, I notice)

Hopefully someday we'll achieve Alan Kay's dream :)

<comment><USER10> If only Notion was private (like for example Omnifocus.) I can't imagine uploading all my private data to the cloud of a "free" app.

OmniFocus is more expensive but i gladly pay to prevent my data from being analyzed & sold.

<comment><USER9> I don't disagree -- though they do have a paid version, and a modest team size, which seems promising

</comment></comment></comment></comment><comment><USER11> (1) For note taking I stumbled across anno[1] via[2] two weeks ago. It's a python flask application which you run on your localhost. You write markdown which gets stored locally as file and is rendered as html using pandoc[3]. It's really basic but I love it.

(2) For physical documents I use a Fujitsu ScanSnap iX500[4] for scanning. A runtime-licencse of ABBYY FineReader for OCR is included. The resulting PDF has embedded text which I extract using pdftotext[5]. I wrote a python application to search and tag this documents. It loads all the text in-memory which is perfecty fine as I have < 10,000 documents. I use it since 5 years and it works OK.

[1] [https://github.com/gwgundersen/anno](https://github.com/gwgundersen/anno)

[2] [https://news.ycombinator.com/item?id=22033792](https://news.ycombinator.com/item?id=22033792)

[3] [https://pandoc.org/](https://pandoc.org/)

[4] [https://www.fujitsu.com/global/products/computing/peripheral...](https://www.fujitsu.com/global/products/computing/peripheral/scanners/scansnap/ix500/)

[5] [https://en.wikipedia.org/wiki/Pdftotext](https://en.wikipedia.org/wiki/Pdftotext)

<comment><USER12> Actually, what has been bugging me recently is the inability to "tag" photos on my iphone - all I want is to snap a copy of my bill / invoice whatever, tag it with "gas bill" and let it upload to icloud / dropbox. from there I am sure I can onwards process looking for "gas bill" but actually there seems to be no obvious way to do it, (even looked into EXIf data), and I guess it will age to wait till i learn ios coding

<comment><USER13> Touch and hold , then tap an option. Custom: Tap , tap Enter New Tag, type a customtag, and tap Done. Create additional custom tags: Tap , tap Enter New Tag, type a custom tag, and tap Done. Add more than one custom tag to a photo: Tap , and tap each tag you want to add (so a checkmark appears next to it).

<comment><USER14> Is this a real UX, or something you'd like? (This isn't how either Apple or Google Photos works)

</comment></comment></comment></comment><comment><USER15> Does anyone else find that the simple act of writing notes helps them remember and process better? I spent forever trying to find an ideal note-taking solution, but now I just write things in a single notebook. I rarely review my notes, but I find that simply writing thoughts down consistently has improved my memory and understanding of new concepts.

<comment><USER16> This certainly applies for me personally. My theory is that it ties in with the sort of 'geographic' memory where when you think of something, you might not be able to remember exactly what it is, but you can remember pretty precisely that it's in the middle of a certain notebook, on a heavily marked- up page, in the bottom left corner. By tying things to a location which you can remember, placing it in a bit of a context, its easier to hold on to. I also find, and for this I have no explanation at all, that I can remember sequences of numbers and code very well, better than anything else. I couldn't tell you the date I started or left my job 2 employers ago, but I could rattle off my 7-digit numeric security code for the door no problem. The brain is weird.

<comment><USER17> Well, you also used that 7 digit code a lot more often than you ever had to recall your start or end dates.

</comment></comment></comment><comment><USER18> I wrote and use daily [http://onemodel.org](http://onemodel.org) (AGPL, uses postgres), for many reasons listed there :) . One way to think of its current state is a text-mode, easy-to-learn (i hope) infinite mind map of things, where I store _and can query_ effectively everything: calendar, reminders, quasi-anki-like knowledge review, journal, automatic activity log, notes on subjects, very efficiently for the user. (It also stores documents, but that is not very smooth compared to other document systems, nor is browser integration smooth at all.)

Edit: It also has a very basic security model (private, public, unspecified), and with that in mind, can export trees of notes as html or as outline documents (text), with or w/o indentation & numbering, which I've found very useful. And anything can be in as many places in the tree as is helpful. The export to simple html, I use to generate my 2 web sites.

(I plan to move it to Rust, and maybe sqlite, eventually, as well as add features like anki, internal code attached to entity classes for cheap internal customization/automation, etc, but have been slow lately.)

(Edit: it is currently only self-hosted by each user. Have considered doing hosting for other users, and might some day.)

<comment><USER19> telnet demo seems to be down at the moment: Trying 126.96.36.199...

<comment><USER18> True; sorry about that. Maybe I should remove that from the web site until I decide better. But the best thing is probably to check the screen shots via the web site, then install/try it if you like...

Edit: I have removed mention of the telnet demo from the site. If there were sufficient real interest I would put it back (or consider hosting the system for others). If so, email me via the mailing list at the site, or via the address at the site footer. Thanks.

</comment></comment></comment><comment><USER20> A great time saver for me was simply setting up better bash history and search capabilities[1].

I wrote a wrapper function, sbh (search bash history) that allows me to input date strings like "2 months ago", or "last week", which narrows the search. Linux 'date' function with --date string arg is pretty powerful[2].

1 - [https://spin.atomicobject.com/2016/05/28/log-bash- history/](https://spin.atomicobject.com/2016/05/28/log-bash-history/)

2 - [https://www.thegeekstuff.com/2013/05/date-command- examples/](https://www.thegeekstuff.com/2013/05/date-command-examples/)

</comment><comment><USER21> Reminds me somewhat similar - CEO of Wolfram developed a nice way of record keeping: [https://writings.stephenwolfram.com/2019/02/seeking-the- prod...](https://writings.stephenwolfram.com/2019/02/seeking-the-productive- life-some-details-of-my-personal-infrastructure/)

By the way, is there, by chance, a "note taking/indexing tool from photo"? I'd like to be able to take a photo of an title/abstract of computer science paper with my phone. And then be able to find it, by approximate date and keywords. (I use Android. Seems like something relatively easy to hack, actually, on top of Google photos.)

<comment><USER22> Evernote does character recognition quite well. I don't know if there are any others but would be good to have something else too so I can leave Evernote for Notion.

</comment></comment><comment><USER23> I've been thinking a lot about how I manage my own data lately (notes, photos, code, reference material, etc) and have concluded that the primary feature I'm looking for is longevity. I'm saddened by the amount of data I've lost over the years, either because of hard disk failures or third-party services going out of business/making it difficult to extract things/getting too expensive.

In light of this, I'm biasing toward simple file formats managed by tools I write myself, and optimizing for cost in a way that I otherwise don't, since any recurring costs incurred by the system are effectively a lifelong commitment. I _am_ relying on S3 for primary storage (so that it is accessible anywhere) but with a sync to offline backup.

So far, I've implemented a personal Zettelkasten tool (with built-in spaced repetition, so doubles as an Anki replacement) and a search engine that's based on Presto (via AWS Athena) so that I don't need to keep an Elasticsearch instance alive. I'm planning to build out other repository tools as I go.

It's been very liberating to build tools that are never meant to be used by anyone other than myself, and with the confidence that the tools don't matter too much anyway since the underlying files are stored in evergreen formats.

<comment><USER24> what's the optimal setup for long-term, large-scale (personal) data storage?

I want to build one big Backup. Some initial research has pointed me to something like Bacula to manage the data backup process from a machine. With the 3-2-1 rule, I know I also need my Backup itself to have at least 3 copies, in at least 2 different forms (cloud/hard disk), at least one of which is off- site from me.

As an individual, do you or anybody else know the best way to implement such a system? Should I buy one giant hard drive, use many hard drives to create a RAID array, something else?

<comment><USER25> Oooh. I've been wrestling with this problem for a while now.

Basically I'm working on a tiered system. Files/dirs are categorized by size (<10MB, <25GB, >25GB) , and by sensitivity (public, confidential, secure. And importance is usually proportional to security). I have fortunately found that security is usually inverse to size. Github/lab anything which makes sense. Confidential small stuff (sans keys) is just stored in gmail/drive. Big, boring stuff (music, ebooks) is just kept on external hard drives.

Secure, ultra-important stuff, I don't really have a system for.

The system I'm leaning towards is just encrypt archives and store the key/password securely, and store it like you would any boring data, with a local NAS and a cloud backup service of some sort, or just stored on drives offsite.

<comment><USER24> Do you feel comfortable using cloud storage for so much of your content? My ideal is to be entirely self-backed-up. I want a personal git server, photo archive, etc. With bandwidth, service costs, vendor issues (dealing with google seems like a nightmare from reading online).

How did you construct your NAS? Is it a single system, or multiple hard drives/storage solutions connected to your network?

<comment><USER25> It depends. Github is not going down. Gmail is not going down. If they do, it's Bug-out-bag time, and I am working on curating what information subset I need for that.

Ideally though yes I would have my own entire backup system but I frankly don't trust myself enough to do it right, so hence some redundancy in the cloud.

The NAS I am still designing actually :p

</comment></comment></comment></comment></comment><comment><USER26> I'd really like a personal "correlate all the things!" setup that has a plugin architecture for any source and creates a time series and document-based store of whatever I want. Tweets, e-mails, text messages, time tracking, etc.

There are lots of tools that do the individual moving parts, but a personal aggregator of everything would be interesting. Basically, a tool that lets you become your own personal data broker—just for your own personal data.

<comment><USER27> I'm kind of working on that too :) [https://github.com/karlicoss/my](https://github.com/karlicoss/my)

I wrote a post on some data that I collect and have/will integrate: [https://beepb00p.xyz/my-data.html#consumers](https://beepb00p.xyz/my- data.html#consumers)

<comment><USER28> I only skimmed through and the combined breadth + intent of your projects seems very, very interesting — I mean it speaks to me. So, way to go! Mad props, please keep it up!

If you ask me, this is the shape of things to come.

<comment><USER27> Thanks! :) I wish it was easier to share with other people, lots of things are tedious to set up

</comment></comment></comment></comment><comment> user00012-ab My problem with a lot of services listed below, is they all eventually go away, and all your data is off somewhere else. Unless you store your data locally in a human readable format (markdown) you are just putting all your data into a system that WILL go away at some point in the future.

Google has already had 2-3 services to manage your data that they have closed down. Maybe they are the ones that taught me not to trust your data with anything on the web.

Even something like Evernote is iffy, they seem like they are constantly on the verge of shutting down.

Although I do find it sad that that the human race as a whole puts so little value into this type of software, and so much value into sports and politics.

<comment><USER18> [http://onemodel.org](http://onemodel.org) , described briefly elsewhere in this discussion page and more at that site, is self-hosted, which today means installing postgres and editing one config file, doing backups & upgrades (but I might be able to help some).

Maybe I could host for others sometime if there were sufficient interest. And/or move it to sqlite.

<comment><USER29> Yeah, seems neither self-host (onemodel) or letting someone else (you or Evernote) is particularly attractive, because the chance of data loss is always there.

Is it possible there is a solution that makes the data more permanent and allows multiple parties to backup the same sources, or something similar? Some sort of federation protocol maybe.

<comment><USER18> Thanks. That is on the future roadmap (though I have been slow lately): selective sharing/copying/synch. I encourage anyone with possible interest to sign up for the announcements list at least, and maybe decide sometime to help. :)

</comment></comment></comment></comment><comment><USER30> It's been mentioned a few times in these comments, but I want to add a +1 for Roam[1]. Note-taking/personal knowledge tool that's very, very different from anything I've seen before -- closest thing I can compare it to is Wikipedia. It's still in beta with some rough edges, but VERY worth checking out.

[1] roamresearch.com

<comment><USER31> Worth mentioning the pricing [0]:

$30 / month

$10,000 / lifetime

[0]: [https://twitter.com/Conaw/status/1214855473876201472](https://twitter.com/Conaw/status/1214855473876201472)

</comment></comment><comment><USER32> > _all digital trace I 'm leaving (tweets, internet comments, annotations)_

I would be open to the idea of a tool which combines the entirety of my digital presence at any point in time in a single platform. Kinda like a dynamically updated list which updates itself - every time a linked account makes a comment, 'likes' a post or performs any activity that may link it back to me.

<comment><USER33> I'm building this [https://histre.com/](https://histre.com/) It has Hacker News, Telegram, and web browsing (notes, bookmarks, history) integrations already. Up next: Emacs org-mode exports, integrations with Pocket and Pinboard.

Here is a bit longer comment on that which I made earlier today: [https://news.ycombinator.com/item?id=22160026](https://news.ycombinator.com/item?id=22160026)

<comment><USER34> This is cool, I'd dig a $2-5/mo unlimited account for 1 person/team with the same unlimited settings.

<comment><USER33> Thanks swozey. Can you please send me an email? firstname.lastname@example.com

</comment></comment></comment></comment><comment><USER35> This have me a hairbrained idea for a browser extension that drops every web page you visit into a private Lucene database.

<comment> user00012-ab I was kind of having the same idea, except any site you bookmark gets added to a personal web crawler, and then you have your own search site for things you find interesting.

<comment><USER36> This exists on iPhone/iPad! DevonThink2Go, local crawl/search + optional encrypted sync over self-hosted WebDAV or public cloud services. Can also take/search markdown notes.

</comment></comment></comment><comment><USER37> No mentions of [https://tiddlywiki.com/](https://tiddlywiki.com/)?

<comment> user00012-ab tiddlywiki was great until all the browsers stop supporting writing to local files, now saving changes is a pain, making me find something else.

<comment><USER38> Maybe this solves your problems? It creates a database in your browser's LocalStorage.

[https://noteself.github.io/](https://noteself.github.io/)

<comment><USER39> And the database can be setup to sync with a self-hosted CouchDB instance.

<comment><USER40> While that works, the original appeal of Tiddlywiki was that you could open a file in your browser, type away, and save naturally. Once you get into "self- hosted", you just have a regular old wiki. I used it everyday for several years but gave up once the transition happened. I keep trying to go back, but it just can't compete with files edited in a text editor and stored locally.

</comment></comment></comment></comment></comment><comment><USER29> Everything I write about (journal + other things, task lists and what not) is written in plain markdown files currently (about to move it to TiddlyWiki, one of these days...) and to get search, I just use `the-silver-searcher` which searches the entire directory of my files. Simple and scalable (got around 9k documents by now)

</comment><comment><USER41> My eternal frustration in this space is that my employer has strict firewalls, web filtering and data-loss prevention software, and remote access is over Citrix with no copy-paste. Consequently, if I build a knowledge base, it is stuck inside the firewall. Equally, if I build it outside, I can't use it at work.

<comment><USER42> Why don't you host it on an ec2 instance? They won't be blocking amazon ip. Where do you work?

<comment><USER41> There's definitely no external access without going through the web proxy. And a new uncategorized site would be blocked by the web proxy - and it wouldn't pass review.

I work in a highly regulated industry...

Any workaround would be grounds for termination. So there's no point to my comment really - just curious if anyone else is in the same boat.

<comment><USER43> Can't you use a personal mobile device with a 4G connection to access a knowledge database outside the firewall, without moving any data across your employers network? As long as the data you wish to read/write is not sensitive in itself, and it's mostly just plaintext notes that you can read/write from any device, I don't see the issue with that.

<comment><USER44> Secure physical sites (e.g. some military bases) may require you to place personal electronics in a lockable cabinet. You have to use a paper notepad if you don't have a device certified by the local security team. Using a non- certified device can result in being evicted or prosecuted.

</comment></comment></comment></comment></comment><comment><USER27> Hey, author here. Happy to answer any questions!

<comment><USER45> Is there a way we can subsribe to the blog ?

</comment></comment><comment><USER46> > Ideally I want to be able to do fulltext realtime search over anything that > I ever had in my visual field. Not even necessarily text, but audio and > video as well.

Where I find all these systems break down is recall. They're designed for someone who can recall a word or phrase that was in the content. I can usually recall "It was about X" or "The document/web page/image looked like Y". But an actual word? The author's name? Not a chance.

While a more difficult problem, if the tool is to live up to the "Future" section of this page, it's got to go a long way beyond what's in the source data, to what's thought of by the user.

</comment><comment><USER47> This topics comes up again and again. I collected some notes about this here: [https://github.com/albertz/wiki/blob/master/personal- knowled...](https://github.com/albertz/wiki/blob/master/personal-knowledge- base.md)

E.g. one software I started to use is nvALT, via: [https://www.macstories.net/links/organizing-everything- with-...](https://www.macstories.net/links/organizing-everything-with-plain- text-notes/)

But I'm nowhere near a perfect and complete solution yet...

<comment><USER48> The successor to nvALT, nvUltra, is currently in private beta. I'm looking forward to its release!

[https://nvultra.com/](https://nvultra.com/)

<comment><USER46> And still Mac only :(

</comment></comment></comment><comment><USER49> I have less notes after being fed up with nites. It's really time consing to manage notes so - I manage logs. I just log everything I do each task in it's new page. It's append only.

For notes which I mutate I just keep a personal web site and I tried to keep this as cheatsheet and as compact as possible so I don't need to manage it.

So append only log in quip new folder for each task.

Mutative cheatsheet super compact pages in personal website.

Oh and for quick sniper's alfred.

That's it.

</comment><comment><USER50> I self host a confluence server. All my content is available to me offline. Might be a bit overkill, but I have knowledge bases for all my work. If there is a web page I come across I can just copy/paste the content into a new post. Everything is searchable. It really is great. They offer a starter license, which is $10 per year:

[https://www.atlassian.com/licensing/starter](https://www.atlassian.com/licensing/starter)

</comment><comment><USER51> I use a few things for this (on windows):

\- For notes, OneNote, though I'm always on the lookout for an alternative with decent UI and syncing, but using open file formats. Full text search simple enough with this. Code formatting isn't good but there's an addin where the free version formats it as it was copied.

\- To search local files, Voidtools Everything is great. Searching instantly by filename is a real time saver.

\- If I want full text search of a large base of documents, I used Likasoft Archivarius which cost me $30 about 10 years ago and is still handy. It's the only local desktop search I've found that supports full text indexing of tons of formats like outlook .ost, etc and can look inside archive files

\- For backups I've continued to stick with external drives, mirrored periodically with Freefilesync. 3 copies - one as master, two mirrors ensuring one is offsite.

<comment><USER52> Take a look at Standard Notes. It is privacy focussed with encryption but has markdown and code editors and can be self hosted

<comment><USER51> Thanks, looks interesting. I find Markdown a great idea in theory, but have found very few examples of wysiwyg markdown editors that work 'as you'd expect'. For me that means:

\- Bullets with multiple indents going from 1 to 1) a. etc \- Table handling \- Usual formatting like heading levels etc

And there seem to be lots of flavours of markdown too, just to add another layer to things.

</comment></comment></comment><comment><USER53> I wish things like [https://piggydb.net/](https://piggydb.net/) had more momentum or competitors... personal knowledge databases seem to be such a tough niche to tackle.

Edit: since there is a new project here is more details years back: [http://www.linux-magazine.com/Issues/2014/160/Workspace- Pigg...](http://www.linux-magazine.com/Issues/2014/160/Workspace-Piggydb)

</comment><comment><USER54> If you're into this sort of thing, you might want to checkout Roamresearch: [https://roamresearch.com/](https://roamresearch.com/)

<comment><USER55> Seems similar to ZIM ([https://zim-wiki.org/](https://zim-wiki.org/)), except proprietary/hosted? I've just started using zim - can someone more experienced compare the two?

</comment></comment><comment><USER56> We could fill a whole internet with each personal method for storing, classifying and accesing. We're missing a OS for our own memory.

</comment><comment><USER57> I wish there was a method for printing QR codes or URLs on paper that would be the reverse of scanning a QR code. This would make it easy to write complex URLs in your paper diary/techo/commonplace book/notebook.

</comment><comment><USER58> I keep my knowledge in a private Git repo managed by [https://www.gitbook.com/](https://www.gitbook.com/). So far it works out great. Going to make it public soon.

<comment><USER27> That's cool, please drop me an email (or just share here?) when you release it, I'm collecting ([https://beepb00p.xyz/tags.html#exobrain](https://beepb00p.xyz/tags.html#exobrain)) other people's wikis!

<comment><USER59> Thanks for making your notes public. It inspired some further thinking for my org-mode setup.

</comment></comment></comment><comment><USER60> Tried the custom webapp and DB solution for a while. Wasn't publicly portable enough (for others to copy paste/export easily).

Currently using markdown files in git repos.

</comment><comment><USER61> The holy grail [[https://beepb00p.xyz/pkm- search.html#future](https://beepb00p.xyz/pkm-search.html#future)] of this really resonated with me and fully mirrors what I've been thinking about the past few months. In my observations, it's input capture, information organization, and subsequent retrieval:

Information Capture:

Input Capture - You're going to have all-encompassing tracking and recording of all activity, but want configurable privacy on the extent to which you want your daily conversations and observations of external things you encounter and are exposed to. Capturing input needs to be holistic and incorporate all properties of encounters and new information.

Potential sources of input:

Vision — point of view recording, see snapchat spectacles, etc as primitive examples. Audio (voice notes and multi-party conversations) - voice calls, video, etc. and other forms of audio transmission where there is more than a single party in the interaction. Digital interactions You will need to keep track of web pages you visit at what times Conversations you see on Twitter, etc.

Properties and cues must be extrapolated from the information that is captured on input, in the case of audio, transcriptions are sufficient for transcription and retrieval purposes, however since video is a visual medium, it includes significantly more properties that need to be accounted for.

The aim here is to identify sufficient data points (cues) that are subsequently represented in such a way that they are easy to search across things you have encountered but only seem to recall a certain property or cue from. This is because of the fact that human beings tend to remember things in fragments, for instance, you might remember a certain color on a page that you visited within the last 6 months and nothing else.

So long as you are capturing sufficient input and actions then you should be able to go back to any given point in time. How and where are you going to store this information? Storing everything is going to be a large amount of data. The essence of the information and context must be preserved. If you want to wind back to an arbitrary position in time with the original context intact, you want to retain as much as you can in the most efficient manner possible, so determining which data points to retain is essential. (Once the content structure has been figured out, this will be viable).

Examples of Primary Cues:

Time - humans generally keep track of things in a linear time-based fashion. Color - invokes emotion and is memorable. Physical Location - the efficiency of information retrieval is highly influenced by the location at which it is originally synthesized, encountered, and stored. Keywords - the default conventional mode. Can and should be extracted from video/imagery and audio. Imagery - search for images based on their contents and ambience.

Potential Secondary Cue — Music - see historical associated input and actions while certain music was played. (What else?)

Meta Cues — Subjects - Automated tagging of keywords/encountered content.

Any combination of these queries is possible, but ultimately the killer feature is the ability to backtrack through time to find a certain piece of information that is made available thanks to the always-on recorded nature of your interactions with the physical and digital worlds combined.

Knowing what to store, and how, + displaying it needs to be worked on further.

<comment><USER18> [http://onemodel.org](http://onemodel.org), described elsewhere here and moreso at that site, tries to model arbitrary knowledge and has a vision encompassing any kind of info one wanted to be tracked (again, more at the site). (Edit: If you have possible future interest, there is an announcements list.)

</comment></comment><comment><USER62> I've been pondering on building something like this for a while.

For now, I've settled on sphinx because it can be easily exported to dash, and tied in to an alfred workflow for search.

</comment><comment><USER63> I use a vim plugin called vimwiki and I export my todos and notes into HTML. Works fine for me.

</comment><comment><USER64> I just email links, code, docs, etc. to myself with descriptive subjects and tags.

</comment><comment><USER65> I basically live in Evernote. Will gradually transition to personal tooling.

</comment><comment><USER66> Most stuff (links, photos, docs, etc) I just email it to myself

</comment><comment><USER67> Is there anything for people who don't use Vim?

<comment><USER68> emacs has org-mode.

</comment></comment><comment><USER69> A search infrastructure for my knowledge would require access to wetware. Code I can see working.

</comment><comment><USER70> Ya lost me at $(emacs)!</comment>


Physics as a Way of Thinking (1936) - <AUTHOR> https://fermatslibrary.com/s/physics-as-a-way-of-thinking <comment><USER2> Anybody think physics is starting to plateau? We had huge advances in the 20th century, I think driven in part by it's virtuous symbiosis with technology. The bleeding edge is however becoming ever more specialised and obscure and the experimental equipment necessary to generate new proofs is becoming increasingly expensive and cumbersome. Quantum Mechanics provides a wonderful set of tools for so many natural phenomena beyond mere subatomic particles. But - it's so far removed from the everyday now. What next for popular science?

<comment><USER3> Particle physics is not all of physics.

Many areas of physics such as Condensed Matter Physics are in a golden age of wonderful interesting discoveries every year. In CMP, every material is like its own little universe with its own fundamental 'particles' and interactions. There are condensed matter systems that have Lorentz symmetry (ie special relativity) such as graphene, there are condensed matter systems with gauge symmetries and even supersymmetries.

The real advantage of CMP is that where particle physicists are stuck trying to describe the fundamental properties of our universe of which there is only one, condensed matter physicists are trying to describe the emergent properties of materials of which there is a mind-blowing variety. This means that if the condensed matter community is stuck and can't make progress on material X, they can simply move to material Y and retain much of their expertise.

CMP is like doing particle physics with a multiverse, except that multiverse is _real_.

<comment><USER4> I wonder if that process of learning each of the different material systems so well might lead to knew knowledge about patterns between materials not seen before, which could end up being knowledge of the more fundamental sort...

</comment></comment></comment><comment><USER5> Since the childhood, I always thought Physics to be the way of life. Everything that I saw has it roots in Physics - Lamp on my table, speeding car, floating paper boats, rainbow, gravity causing objects to fall.

The love of Physics combined with Mathematics led me to take up Engineering.

<comment><USER6> I was talking to my kids about this just a few days ago. They're both in secondary school and starting a new academic year now and we were talking about their favourite sciences, and that underneath it all everything is physics.</comment></comment>


Feynman's Inbox - <AUTHOR> http://blogs.oracle.com/jrose/entry/feynmans_inbox

<comment><USER2> This is only tangentially relevant, but here's a fun audio clip of Richard Feynman actually talking about his safe cracking days at Los Alamos: <http://www.youtube.com/watch?v=jJXy2QDlxT0>

Also tangentially relevant is this xkcd strip: <http://xkcd.com/277/>

Basically, if these two links had a baby it would be the OP. :-)</comment>


Show HN: Legalfile – A proposal for software legal terms in a structured way - <AUTHOR> https://github.com/Sirikon/legalfile-proposal <comment><USER2> It sounds like there's some crossover here between this project and the Debian copyright file ([https://www.debian.org/doc/packaging-manuals/copyright- forma...](https://www.debian.org/doc/packaging-manuals/copyright- format/1.0/)).

Specifically, the Debian copyright file provides full annotation about what parts of a package are licensed under what and by who. It only indicates licenses -- it's up to the end users to determine what those mean -- but it is machine readable.

The names of the licenses themselves are part of a list of names called SPDX that's used across distributions and is developed by the Linux Foundation.

<comment><AUTHOR> Didn't knew about this! Thank you for pointing this up :)

<comment><USER3> There's also the full SPDX spec here:

[https://spdx.org/](https://spdx.org/)

which as the GP says is the source of license codes used by Debian, as well as the license field in NPM's package.json.

[https://spdx.org/licenses/](https://spdx.org/licenses/)

</comment></comment></comment><comment><USER4> Thanks. That's a very nice idea.

If I were you I would now transform all known licenses into their own structured version and publish that, put all in a simple website for people to consult and link to.

In that same website, you could even have a "crete your personalized license" where you would instruct people on how to create their own Legalfile.

When hosting their own Legalfile on GitHub, for example, people would link to your site so visitors can understand what does that Legalfile mean.

<comment><AUTHOR> Thanks! That's something that could be done, totally. But wanted first some discussion, to get a valid, viable model and then do the work of creating Legalfiles for most popular existing licenses.

</comment></comment><comment><USER5> In case you missed it, Github open sourced Licensed, a cross-language cross-(package manager) tool to find and store metadata about all licenses used in a git repo, to surface potential dependency problems.

Official announcement here: [https://githubengineering.com/improving-your-oss- dependency-...](https://githubengineering.com/improving-your-oss-dependency- workflow-with-licensed/)

Repo here: [https://github.com/github/licensed](https://github.com/github/licensed)

</comment><comment><USER6> Who's the supposed audience?

Companies don't really care for this, as they'll use their lawyers to vet compatibility, and lawyers rely on the original license's verbiage.

Individuals and smaller companies will still continue to comply/violate terms, as small fish typically face no consequences from violating terms

<comment><AUTHOR> This should be for developers, for creators. A way to ease the task of checking legal compatibilities.

Also, in my opinion, a way to give this to all developers is the commitment of package managers maintainers to include legality checking in the process of installing third-party packages.

</comment></comment><comment><USER7> It's fine to create a table or tool or app to help people find the license they want, but please do not encourage people to put this file you are describing in their repos.

There is no form of law that is as complex or specialized as copyright law. The forms of these licenses are complex not because no one was smart enough to realize it would be nice if they were simpler but because that complexity is required to adequately and accurately define the terms of the license being granted.

If a developer posts some code on github with an MIT or Apache or GPL vWhatever license, that's how that code is licensed. The legal terms and issues are clear and well defined and done in a way that is known to stand up in court. If they post their code with that license AND your file containing your description of the license's meaning and implications AND there is some subtlety of copyright law in some region somewhere around the world that you didn't appreciate then in the best case that package is now licensed under two licenses, one written by an experienced lawyer and one written by someone with no knowledge of copyright law in that location (which is unlikely to be interpreted the way you want by the courts in that region) because yes your legal file could well be interpreted as a form of license. That's the best case, the case where you just created a new, non-OSI-approved license that has implications neither you nor anyone else thought about, wanted, or anticipated. In the worst case, which is actually the important case in most legal scenarios, the developer is now guilty of making false representations about how their software is licensed, because that summary they added describing how the software is licensed does not align with how that region's copyright law history interprets that particular form of license and the court views the legal file as a form of advertising that makes claims of a legal nature. It's more than possible to have both the best case scenario (which is bad, because that code is now licensed by a license written by someone who didn't understand copyright law) AND the worst case (the developer is guilty of fraud or misrepresentation or false advertising or some other crime for having attempted to license it under the well-written license while advertising it as being available under what the court views as a different set of license terms).

You're a software developer. Law is like C++. It's an incredibly powerful language designed by professionals to be used by professionals as a means of discussing edge cases most people never have to think about but that courts do. Think of courts like compilers, except every court compiles the code just a little bit differently in ways that are not entirely deterministic in advance and are determined in part by watching the historical behavior of thousands of other non-deterministic compilers acting on other pieces of code in the past. Sure you can come along and make a "simplified" version of C++17 that's "much easier for normal people to read" but unless you are a world class language designer with decades of experience in C++ the odds your simplified version of C++ is actually a good idea are very slim. Law is like that. It's hard, for a reason, and the reason is that it needs to be able to encode hard concepts that are rare in normal contexts but have to be addressed by the law, just like the way C++ needs to encode hard concepts around object lifetime behavior and ownership and etc. that most causal programmers never need to worry about but that sometimes are needed and are why C++ exists and is hard.

There is a movement in law directed at making legal documents more human readable. It's an important effort being undertaken by people with tremendous experience in legal language. That's very different from a developer saying "I'm not a lawyer but hold my beer because this is easy."

tl;dr this is fine for helping people search a database of existing licenses but don't encourage people to put this kind of file in their own repos next to their actual license.

<comment><USER8> @yodon, I gather you're a lawyer? (I am.) @Sirikon's idea could work if each phrase in his taxonomy (e.g., "cannot" and "hold-liable") were mapped to standardized, more-detailed language, akin to a macro.

This would be analogous to the widespread use of three-letter abbreviations in INCOTERMS 2010 [0], such as "DDP" to signify that goods are to be "delivered duty paid," or "EXW" (ex works) to signify that the customer will pick up the goods at the seller's factory. Each of those terms, and many others, is fleshed out in INCOTERMS publications [1].

It'd also be analogous to the old commercial code books in the days of charge- by-the-word telegraphy, where COGNOSCO might mean "Dining out this evening, send my dress clothes here" or DIONYSIA might mean "Amputation is considered necessary." [2]

[0] [https://en.wikipedia.org/wiki/Incoterms](https://en.wikipedia.org/wiki/Incoterms)

[1] [https://iccwbo.org/resources-for-business/incoterms- rules/in...](https://iccwbo.org/resources-for-business/incoterms- rules/incoterms-rules-2010/)

[2] [https://en.wikipedia.org/wiki/Commercial_code_(communication...](https://en.wikipedia.org/wiki/Commercial_code_\(communications\)#Examples)

<comment><USER7> @dctoedt As they say IANAL, but more importantly I suspect the project author isn't a lawyer. The issue isn't the viability of a standard for simplifying legal documents (insert overused XKCD standards comic), its the viability of a standard for simplifying legal documents that was designed by non-experts.

That said, I'm doubtful a code-book approach like you suggest would result in a net improvement in readability of existing licenses (which I think is the goal), particularly in an era when AI-driven contract analysis engines are starting to be able to read and summarize legal documents for informing normal people on the document's meaning as well as experienced lawyers. My guess is in 2-3 years something like google translate will actually be able to do a better job of achieving these license readability goals than any of the human- authored approaches in discussion here.

<comment><AUTHOR> No, I'm not a lawyer, only a developer with interests on legal terms for open source software, and maybe should have clarified this on my repo.</comment></comment></comment></comment>


Consumer Bitcoin spending increased 110% in 2015 - <AUTHOR> https://twitter.com/BitPay/status/690655387108835328 <comment><USER2> Bitcoin isn't really for the average consumer unless they want their files decrypted.</comment>


The BeagleBone's I/O pins: inside the software stack that makes them work - <AUTHOR> http://www.righto.com/2016/08/the-beaglebones-io-pins-inside-software.html <comment><USER2> TLDR for old C hackers:

The pins are memory-mapped registers at fixed physical memory addresses. You can use mmap to map the physical address to your process's virtual address space. From there, you can just read and write the array. Note that you will run into hardware timing issues if you try to do this too fast.

> By using mmap and toggling the register directly from a C++ program, the > GPIO can be toggled at about 2.8 MHz, much faster than the device driver > approach.[3] If you think this approach will solve your problems, think > again. As before, there are jitter and multi-millisecond dropouts if there > is any other load on the system.

There is a system file abstraction in place. But, it seems like a lot more work for a 20x overhead vs manipulating a struct. The tiny example program at the bottom is what more my style. [http://www.righto.com/2016/08/the- beaglebones-io-pins-inside...](http://www.righto.com/2016/08/the-beaglebones- io-pins-inside-software.html#ref3)

I read through this article rather quickly. I'd be happy to hear if I got anything wrong.

<comment><USER3> The interesting thing about the BeagleBone is there are two microcontrollers inside the processor chip that you can use if you want to do anything that's genuinely real-time. (I'm in the middle of using these to emulate an Ethernet for the Alto restoration. There's a big learning curve to use them.)

As far as the file system abstraction, I'm not sure if it's clever or over- engineered. It seems like a whole lot of infrastructure to simply flip a bit. And the BeagleBone device trees - I can see why they did that, but it seems like there must be a better way.

<comment><USER4> Do you use the MII interface for the PRU-ICSS to do the Ethernet?

I can't really understand why they don't have even a one-page documentation on that stuff, but I've found code to interface that in parts of their industrial SDK.

<comment><USER3> I'm using bit-banging since the Alto's Ethernet is only 3 megabits/sec so the PRU (the microcontroller inside the processor chip) is fast enough. I'm pretty sure that using the MII (Media-Independent Interface, i.e. the Ethernet controller inside the PRU inside the chip) would just cause me more problems.

</comment></comment></comment></comment><comment><USER4> Hilarious, GHz+ processors and they can toggle a GPIO pin at 2.8MHz with millisecond jitter (so, not really 2.8MHz).

This is what it has come to.

Honestly, the BeagleBone (or the TI AMx series) has got it right: modern processors with their layers upon layers of caching and modern operating systems are utterly useless for this task. The deterministic 200MHz PRU-ICSS processors however are perfectly suited to do it. Don't bother fighting the OS and 30 years of CPU evolution when a PRU can toggle at 5ns intervals.

<comment><USER5> > Hilarious, GHz+ processors and they can toggle a GPIO pin at 2.8MHz with > millisecond jitter (so, not really 2.8MHz).

Um, allow me to flip your statement around "GHz+ processors so _CHEAP_ that you can use them to toggle a GPIO pin."

However, that's not generally how I use a BeagleBone. The BeagleBone provides the user interface (USB, Ethernet, etc.) while a cheap cape provides the hardware specific part. BeagleBone's have absolutely proliferated around me once the started being able to run mainline Debian instead of weird things like Angstrom.

That having been said--I have bit-banged the bone. The annoyance isn't the speed so much but you have to be in Supervisor mode to change the direction of the pin. That's really annoying and is a limitation of the TI Sitara SoC. The RaspberryPi does not seem to have that limitation. So, if you're gonna bit- bang, an RPi is probably a better choice.

As for why it's so slow, there are two parts.

1) mmap() marks the writes as strongly-ordered and slows things down

You can actually get to 12.5MHz. [https://groups.google.com/forum/#!category- topic/beagleboard...](https://groups.google.com/forum/#!category- topic/beagleboard/xuHRlDL19NI)

2) The system seems to have internal packetized transfer buses that gate the speed

The _bus frequency_ determines the ultimate speed. This is no different from the much smaller microcontrollers, except that the smaller microcontrollers tend to run their bus frequencies at the same speed as the internal frequency since they are running much slower.

<comment><USER4> The PRUs have no bus, their GPIO is in the register file and memory is SRAM.

They do have access to the beefy ARMs bus, which makes them infinitely more useful than a cape. More often than not a cape will not solve the problem because quelle surprise, there is then just no low latency reliable path to control the cape from the ARM. So you've just shifted the issue for a 100x increase in complexity.

<comment><USER5> Sure, if you need hard real-time control, a much simpler processor with a much simpler OS (or none at all) is going to do it better. Absolutely. Arduinos and Cortex-M's win here.

 _However_ , I find that a _VERY_ small amount of programmable logic on a cape often takes care of the hard-real time problem while the BeagleBone gives me a Linux backend to work against. Even if I find that the Linux side of things has too many hiccups to be reliable, the time saved in development because I can lean into a very powerful process with quick iterations before transferring to a leaner, more restricted processor is valuable.

And, often, people find out that their hard real-time isn't as hard as they thought. Sure, if I have a safety system, I'm going to be religious about maximum latency. However, if I have a machine controller, overkilling processing power is often way cheaper (and faster to develop) even if I get the occasionally glitch that causes a fault which needs human intervention.

<comment><USER6> The BeagleBone's CPU has a normal ARM processor and a pair of PRUs. (This is much like how the Cell processor had a normal Power processor alongside some Cell SPUs.) PRUs can control GPIO pins running your dedicated, hard-realtime code without an OS, _and_ they can do it while Linux runs on the same chip.

[http://beagleboard.org/pru](http://beagleboard.org/pru)

<comment><USER5> I'm well aware of the on-board PRU's. They are very cool.

They also are _very specific_ to the TI processors and lock you into using the Sitara's forevermore. Not so good if I have a product with volume.

In addition, the PRU's had _absymal_ documentation when I last checked. Fortunately, that seems to be changing.

</comment></comment></comment></comment></comment></comment><comment> fake-name The BeagleBone suffers from the same exact issues the Raspberry Pi does, namely that there are only two real ways to run the peripherals: The horribly, horribly slow filesystem interface, and "Open /dev/mem RW! YOLO! Run Apache as root for your crappy internet of shit project!".

There are basically no actual sane drivers for doing anything fast.

At one point, I spent a while looking at writing my own driver, but apparently I'm not a good enough hacker to write kernel drivers.

<comment><USER7> Except the BeagleBone has PRUs, which are two 32 bit microcontrollers on the same silicon that can also access the GPIO peripherals. They share memory with the main processor but can be exclusively dedicated to your needs, and so peripheral access can be very fast indeed.

Here is someone who has used them to turn the BeagleBone into a 100MHz Logic Analyser: [http://theembeddedkitchen.net/beaglelogic-building-a- logic-a...](http://theembeddedkitchen.net/beaglelogic-building-a-logic- analyzer-with-the-prus-part-1/449)

</comment></comment><comment><USER8> It's sad how the software stacks have gotten to this point where toggling a pin is so horribly inefficient. And there's no good reason it has to be.

\- Instead of filesystem operations there could be ioctl, which is still safe from the OS perspective (yes there is overhead compared to direct register manipulation but much less than putting strings into the /proc filesystem).

\- With a real-time kernel combined with understanding of the scheduling and relevant concepts (e.g lock memory), it should be possible to achieve much better latencies, possibly on the order of tens of microseconds. I'm not sure how much variance there invariably will be due to processor cache or other sources but I suspect it's too little for most people to care.

\- Finally, does anyone have an idea about the possibility of handling interrupts in user space? I don't mean "second-level" (bottom-half) handlers, but the raw interrupt handlers, without any overhead of scheduler or work queue in front of your code. Sure there are more things to be careful about like making sure you're acknowledging an interrupt but that's a given. Doesn't it mostly boil down to the kernel setting up appropriate context like virtual memory within the ISR? Do CPU designs prevent doing this?

Saying to "leave the real-time things to microcontrollers" is basically giving up. Hardware should be as general-purpose as possible and this also applies to being able to do real-time things. I'm not saying the PRUs are not useful, but they are a very awkward solution for probably most real-time programming problems that are not currently easily solvable with just the main CPU. These things use a custom assembly language and there isn't even a C compiler for them! I would be much happier with an integrated ARM microcontrollers.

<comment><USER4> There is a C compiler for the PRUs, but frankly you're missing the point if you're asking for that, the whole reason of their existence is to manage processes that require extremely deterministic timing. You might update your C compiler, find something is compiled differently and now all the timings are off. They are not so much meant as microcontrollers, they are for things you would otherwise have to do on an FPGA to get the timing reliably correct.

Tens of microseconds just don't cut it. Some areas such as realtime ethernet protocols require nanosecond-accurate packet insertion.

The summary of why things are the way they are is that modern operating systems and CPUs value throughput over everything.

<comment><USER8> Let me reiterate, I don't think the PRU is a problem. But it's just about the many orders of magnitude in the real-time latency achievable with the PRU and achievable with the CPU under the default software stack. I shouldn't have to use the PRU for every problem that has some real-time requirements, I should be able to use the actual real-time abilities of the CPU. There are many benefits to being able to do so (e.g. portability, less effort).

Real-time is not a binary thing, there's a whole spectrum. In many cases compiling real-time code is a non-issue.</comment></comment></comment>


India to launch "world's cheapest" tablet computer for $35 - <AUTHOR> http://www.reuters.com/article/2011/10/05/us-india-tablet-idUSTRE7940YV20111005

<comment><AUTHOR> I wouldn't complain even if the components used in this device is cheap, but this will give an opportunity to the poor children whose parent's can't afford to buy a PC. They could learn about computer and stay competitive in the world once they grow up</comment>


MIT Media Lab Design Innovation Workshop 2013 in India - <AUTHOR> http://mitdi2013.pes.edu/ PES Institute Of Technology, Bangalore is collaborating with MIT Media Lab to host the third "Design and Innovation" workshop in Bangalore from 21st to 25th of January, 2013. The aim of this workshop is to enthrall and inspire Indian Youth to proactively involve themselves in designing a better future. The weeklong tour will involve engaging activities including, but not limited to ideation, design, and implementation of prototypes together with MIT Media Lab and local mentors. <comment><USER2> Awesome! In the FAQ they say there is an opportunity for other universities for similar programs in collaboration with mit media lab.

So how would somebody approach his head of institute at the uni he attends for something like that?

<comment><USER3> I am sure your head of institute will know about MIT and the Media Lab (if not show him this <http://goo.gl/Vj4KF> and <http://goo.gl/jlF4o> :P). Write a nice proposal saying why your institute deserves this event and how it will help the students of the institute. Rig up a nice presentation about kind of works carried out in the previous MIT Design Innovation workshops conducted... and there you go... your institute's head will he more than willing to conduct this workshop! :D

</comment></comment><comment><USER4> PS: In case you are unsure about attending: Do attend. Lots of new things to learn, great mentors, and great conversations among participants. (I attended the first edition in Pune (COEP). One of the best events I've been to).

</comment><comment><USER5> Interesting. Are we supposed to bring any kits of our own?

And the schedule doesn't say much about the specific talks.

<comment><AUTHOR> > Interesting. Are we supposed to bring any kits of our own?

If you have an idea beforehand, and if there is any specific need of a tool for the implementation of the idea that is sparsely available, you have to bring it yourselves. Otherwise, the necessary tools will be provided in the venue

> And the schedule doesn't say much about the specific talks.

There are just five 'tracks' and each track will focus on that specific field. All talks and activities will remain within the scope of that track's description

<comment><USER5> Sweet. Is there a provision for delegates to talk about their hacks?

<comment><AUTHOR> Yes. The last day is when the hacks developed during the entire course of the event will be showcased in front of industry, academia, and the media, and the delegates will demonstrate the hacks they developed out of the things they learnt during the workshop</comment></comment></comment></comment>