HN user

tushartyagi

100 karma

[ my public key: https://keybase.io/tushartyagi; my proof: https://keybase.io/tushartyagi/sigs/UDeDqon32vJme_BlEWdHI0cJfM1VD0k4CaK_ijLO6v4 ]

Posts3
Comments30
View on HN
EmacsConf Live Now 3 years ago

I've been using Emacs as my editor for the last decade or so. I used it for general purpose editing for the first 6 years because I was doing C# development (Web/a bit of Xamarin) and VisualStudio (not code) was my daily driver.

For the last 4 years I've been using it full time as I changed technologies and moved to a Python/Vue shop. I initially used vanilla python-mode, then elpy, and now I'm currently using LSP for Python development. Everything is setup well, I just write code, commit using Magit, and create Github PRs using Magit/Forge. For major refactors, I do fall back on using PyCharm.

For Vue I just Web-mode because I haven't found LSP to provide me anything useful (maybe code jumping, but nothing else). Maybe it has better integration with TypeScript? I'm not too sure.

My emacs setup is pretty standardized with a dotfile. I use Projectile to jump between projects, and use Eyebrowse to assign each project its own window (I usually have anything from 2-5 open at a time). The pattern I've found useful is to have the same number assigned for Eyebrowse workspace and terminal, so `Alt+n` opens my nth project in terminal and in emacs.

For the features/tickets that I'm working on, I use an org file to note down my thoughts, subtasks, blockers, and also the status (TODO/DONE/IN-PROGRESS) etc. It's synced with my org's Google Drive, while the rest of my personal org files get synced to iCloud. Any topics for 1-1 with my peers/managers also get noted and synced.

There was a time in my previous job where I was using emails for discussions, and back then I had tight integration with Mu4e too. I've dabbled with Jira/Slack modes but they're not worth the hassle.

I'm the only one using Emacs in my org, and I feel fine doing it. Pairing works fine since the driver uses their editor of choice.

I think it's mostly about drinking too much Kool-Aid of owning my data.

But probably because ttrss's pretty nice with quite a few plugins, so I can mold it based on what interests me. For example, I am also self hosting wallabag, and there's a single key shortcut to export the stuff from ttrss over to wallabag. Then there's a plugin to pull the data from the source websites and change it using XPaths. I use that to pull down the entire content instead of a single paragraph summaries, and to pull down the actual comics that I'm reading instead of the descriptions that are being sent to the readers. (As an aside, I donate/fund the makers in whatever capacity I have so that it compensates with me not getting their ads).

Did you know that even Youtube, HN & Reddit host their updates via RSS feeds? I have Youtube feeds for some of the channels that I find interesting, so that I can watch the stuff whenever it becomes available. For some low volume subreddits, you can use that as well.

With elfeed running in Emacs, I had bound a single key to download the youtube video via youtube-dl into my archive folder. I miss that stuff with ttrss, but I guess there would be some plugin somewhere to do that.

Yes. Self hosting tt-rss[1] and using it for close to an year now. No problem what so ever; It's so low maintenance that I would've quite possibly forgotten about it if I wasn't reading the feeds everyday. Before this I was using elfeed[2] which is a great piece of software, but I read things across various devices and elfeed had some issues with that (after all it's supposed to run inside emacs).

For podcasts (since these are also technically feeds) I use AntennaPod[3] on my Android phone, but don't use it too often because of all the time commitment required with podcasts.

[1] https://tt-rss.org/ [2]: https://github.com/skeeto/elfeed [3]: https://antennapod.org/

I've started dipping my toes in Rust and Elixir. Rust because of the concepts like borrow checker, highly strict compiler, traits etc. Elixir because it is based on Erlang and is highly concurrent due to Actors, and overall a very clean language syntactically. Both of these are very different from the traditional OOP language that I'm using at work (C#).

Actually this is something I wanted to do last year but didn't get enough motivation/energy to actually pursue it. Now I've forced myself to actually do stuff with Rust for the first quarter of 2019 and have made some progress. If things go as per my timelines, I'll focus on Elixir & Rust in alternate quarters. I've found this to be much better than tackling both in parallel which I was doing last year.

As an aside, in the last month of 2018 I dabbled with Pharo/Smalltalk just to investigate its highly dynamic nature, improvement to dev productivity & how things really were supposed to work in real OOP. It was very impressive, especially considering we had something like in 80s & 90s.

These posts can get your ball rolling. The first one is pretty detailed, I started with copy-pasting a large hunk of code from it and using as is.

Once you get the hang of it, the second one gives a gentle introduction to the entire process of capturing, refiling and prioritising.

http://doc.norang.ca/org-mode.html

http://www.newartisans.com/2007/08/using-org-mode-as-a-day-p...

Also, this one on quickly capturing anything from the browser:

https://orgmode.org/manual/Protocols.html#Protocols

This is really impressive. Thanks for posting it.

This website tells the truth when it says that following the deep work ritual is a pain. I've read the book and wholeheartedly agree with whatever Cal Newport says, but so far planning my day has been the most difficult thing to do, especially when I have to update it after the planning derails. I keep jumping between planning my on my computer using org-mode or planning it on paper. So far, nothing has stuck.

I'll give this website shot for some time.

I've tried a lot of different time slots and so far only two have worked for me:

1. Wake up 1.5hr earlier than my family. This gives me around 1.15hrs of solid focused time.

The downside is, of course, I have to sleep around 10 so the family time takes a hit. I have to leave early from office to compensate and if there's something that holds me back in office then there's a high chance this plan derails. I try my best to juggle work, self-time and family time and while it's not impossible, it sometimes becomes difficult. Last one week, for example, was such where I had a lot of issues at work, and fixing them and reaching home would mean I'll be back around 9.30PM and I had absolutely no interest in rising early.

2. Reach office an hour or so early and try to focus. I say try because there are things which are out of my control, especially the traffic. If there's bad traffic then reaching office and getting into a focused mode takes a lot of time.

Evenings I've tried working but this isn't consistent. Sometimes when the office is empty and most of my office work is done, I might get some time for focused work but this is pretty impossible to get. By the time I reach home, I have to swim through a lot of traffic so there's hardly any mental cycles left that I can spend on focused work.

Additionally, I would say that it works best when your focused time is same everyday. For me, that has been waking up early.

+1 for i3. I have a 13" laptop as my primary driver and using i3 is so much faster & convenient on such a small screen. Though I have made 2 changes to my workflow to get better out of it:

- I use i3 inside XFCE. This allows me to use the xfce launcher, status bar, tray icons and other goodies, e.g. adding external monitor pops open the display properties, volume bar is available anytime. All this saves me from binding buttons & doing other changes in my i3 config.

- Since Win+{1,2,...0} (buttons which change workspaces in i3) are now hardwired in my brain, I have arranged the icons on the taskbar of my Windows-10 machine to what I have in i3.

Win+1 is assigned to Emacs on i3, so that's the first icon on my windows taskbar.

Win+2 -> shell/git bash

Win+3 -> Thunar/Windows Explorer

Win+4 -> Firefox/Firefox

Win+7 -> Anki/Anki

This saves a lot of brain cycles, as my Windows workflow is also a bit like what I usually use on Debian.

Last week I try using EXWM but wasn't able to make it work as per my expectations, so switched back to i3, but EXWM is definitely a TODO on my list.

I had the same frustration with org when I started, which has since disappeared and I keep working with saving the screenshots and linking them to my docs. :|

Anyhow, some time ago I came across a blog post where the author wrote some elisp just to copy the stuff from clipboard, save it, link it to the buffer. I don't have the link handy, but maybe this SO answer might help you:

https://stackoverflow.com/questions/17435995/paste-an-image-...

The problem with this is that the bootloader is now becoming more and more locked down and the consumers have to jump ever more hoops to unlock it.

Some years ago I had Samsung S2 where unlocking the bootloader was an offline activity. I don't remember how but doing that was quick and easy. Now I own a MotoG4 where unlocking means going to some website, entering my email address and then receiving unlock code in my email. If Motorola knows my email address, or can link the (supposedly unique) unlock code to my phone, what's stopping them from voiding my warranty?

I have a hunch that newer versions of some mainstream phones do not allow unlocking the bootloader, and this is going to become more and more common.

Assuming the mails are still online with the mail provider, I think that copying that data on local disk, indexing and then running queries on it should work. Doing this locally will save time and then you can sync back the changes.

I know of two tools which might help.

One that I use is more Emacs oriented. My personal setup uses mu4e[1], fetches emails using mbsync, indexes the emails using mu and allows you to run queries based on date/time/subject/content etc. You can quickly search, mark, delete and archive emails.

The other option would be to use a similar combination of notmuch, offlineimap and mutt[2]. I have used mutt but with the online services (i.e. without downloading my emails locally), so I am not sure how that will work. But mutt also support similar tagging and searching and running operations on selected emails.

Caveat: Make sure you have enough understanding with what you do with these tools, they also have the capacity to delete all your emails on cloud. Perhaps run the queries on some test emails first.

[1]http://www.djcbsoftware.nl/code/mu/mu4e/

[2]stevelosh.com/blog/2012/10/the-homely-mutt/

My new HDD started having problems in just 1.5 years.I just salvaged an old HDD from my dad's 9 year old laptop (Dell Vostro) and used it.

This old laptop is what I would go to whenever I was between laptops. It's a C2D, 4GB RAM. I installed debian with i3 and it was good enough for browsing internet, to do random coding stuff, reading PDFs, watching movies (although it would run hot). Also I played a lot of Roller Coaster Tycoon[1] on it. Man, I love RCT!! I just might plug in an SSD in it during the next windfall.

[1] https://github.com/OpenRCT2/OpenRCT2

Can you please explain what would be the best option to break out of the rut when one is mostly working on his/her own and doing a lot of suboptimal learning?

I frequently find myself in the second situation and only a handful of times have I been in the first situation.

That's my story as well. I tried the Anki plugin and didn't find it as per my taste.

Now incremental reading for me is a multi-monitor and multipass approach. One monitor has Anki, the other has the thing I'm reading. I keep on reading and keep noting down questions.

I've also come to realise that the context is totally different when I frame a question during reading, and when I revisit the same question later. A lot of times I have to clean-up the question: perhaps add a little more context, change wording etc. so it becomes a bit easier to answer.

Since we are talking about Emacs now, there's a package[1] for Anki just like everything else in Emacs. :) This basically connects to a background server of Anki, you create a card and press C-c C-c to send it to Anki. End of the day, just sync it.

I am one of those guys who try moving everything to Emacs, but personally I found Anki to be much better than org-drill just for the simple reason that I can go through the cards quickly using the phone app when I have some time (waiting for someone, something, etc.). With org-drill I have to be in front of my machine.

But yeah, I've pretty much sold to org-mode. I, too, have been creating a knowledge base inside org-mode. This contains the deeper knowledge and explanations, while the tidbits are in Anki. Org mode notes are like fat nodes, and Anki cards are the threads which bind them. I personally have found both to be very useful together.

[1] https://github.com/louietan/anki-editor

Also worth reading is the excellent (and pretty extensive) article by Michael Nielsen[1] showcasing how he used Anki to create an in-depth knowledge about AlphaGo.

Personally, I've used Anki to keep remembering/revisiting the concepts that I use for a while and then move onto something else. Common APIs of programming languages and their standard libraries is one such area. I've found that while it's not really difficult to learn and get into the flow of using a programming language (or history, mathematics, physics for that matter), it's more difficult to try using the same knowledge after a break of few months.

My main language at work is C# and Web Development, but I keep trying to learn other languages and domains in my free time. If I do not use the knowledge for a few months, I forget everything. But with Anki I have to just open the app for around 10 minutes a day and it helps me to recall such concepts in a timely fashion.

I would suggest everyone who has the time and faces similar issues should give it a shot.

[1] http://augmentingcognition.com/ltm.html

The problem that I personally see, at least with Netflix India, is that finding content is like finding needle in a haystack.

Some time back (last year or so), they were showing IMDB ratings for their content, but not now (maybe a falloff with Amazon since it owns IMDB). Now they try to find similar to what I've already watched, which IMHO does not make sense most of the time. I am here to find something new, not exactly same to what I've already seen. Moreover, I first look up the rating on IMDB of whatever I want to watch, and these days it mostly hovers around (5 or 6) out of 10 for almost all of their content.

PS: IMDB isn't silver bullet, but the user reviews are quiet spot on.

As an extension to your comment, here's a decent advice which is based on the principle of DeepWork.

https://azeria-labs.com/the-importance-of-deep-work-the-30-h...

So basically, instead of just going through different subjects try to work on 1 subject/topic for 30 hours (across multiple days, maybe take a break between days) and then check if you want to go further on the subject. Apparently, 30 hours is a good enough time frame to realise if you have an interest on the subject of your choosing.

I'm struggling to actually start with something interesting, and after reading your comment I remembered the process outlined in the article. Thanks!!

Not to counter your point, but I had that new remarkably stupid ":( Oops something went wrong" error popping up the morning I had to give a presentation. I have Windows 10 Home and it forced the updates, failed after an hour, and fucked up the boot partition, removing grub. So just before the presentation, I had to setup grub again and boot into Linux because windows was still stuck with updates. Thankfully my slides were on google drive.

On my office laptop though, Win 10 Pro has been pretty stable.

To get back to the main point, I usually have to spend a day with both Windows and Linux to install everything right from VLC to compilers. IMO setting up needs to be done on every machine, independently of the OS.

I have found it to be remarkable over the last few years. I keep coming back to Debian although I've used OpenSuse Tumbleweed in recent times, and some other flavours before that.

With Debian, I've used a very old Dell Latitude (circa 2010, Core2Duo, DDR2, i3wm or XFCE) and newer Dell Inspiron (2017, i5 7th Gen, DDR4, full HD touchscreen display, KDE/XFCE+i3wm) and never had trouble with either sleep/wakeup or with wifi. Touch isn't as great as Windows, so it detects only "left click", not right click, zoom, etc. but I never use touch so it's something I can live with.

Incidentally, I installed Linux because the Windows 10 that came preinstalled had some hardware issue and the fan was always on, so I was getting around 1 hour of battery life. Switching to Tumbleweed (Linux 4.x at that time) gave me amazing battery life, around 5-6 hours. And when Debian 9 (kernel 4.x) got released, I quickly moved to it, and still get around 4-5 hours if I'm doing text editing, browsing and little bit of compiling.

That's an interesting viewpoint to strike a balance between privacy and secrecy.

Can you shed some light on how you share the photos with non-technical family and friends, given that B2 has no app as such?

I have some experience with AWS/Azure and both of them do not support folders, and the workaround is to have slashes in the filename to create a virtual directory. Is it the same with B2?

The fact that it is biodegradable is a positive here - it won't break down into toxic substances.

The problem is that most of these biodegradables take a few years to fully break down, which is slower than the amount we keep on adding garbage in the landfills. So it's a net positive inflow into the landfills.

I have started doing something along these lines because I have the habit of dabbling around with new shiny programming languages and libraries. I also consume a lot of information online -- blogs, articles, and ebooks of things that I am interested in.

Previous to this, I had a paper based notebook to hold all my thoughts and whatever I learned. The problems that I faced with that setup were:

- For offline notes, I lose out the luxury of editing cleanly and indexing. Writing technical notes on paper go out of hand after some time. (I still have a paper based journal and personally find paper to be better in all other respects but I digress).

- Because indexing is tough, so is searching. I can make a hundred tags, but if I lose out on giving that page an entry in index then it becomes difficult to find.

I have been an Emacs user for some years now and have gradually moved my setup to org-mode[0]. I arrange my thoughts/knowledge across various files and folders, give tags to the data and searching and arranging this has been pretty solid. Searching is just a single command "Ctrl-c p s g" and it greps through all the entries, e.g: https://imgur.com/a/IY0TE3Y

Coming to the points that you mentioned, I do the following

1 & 2. Active Engagement & Summary: With a dual monitor setup, Emacs is (almost) always opened. If I come across something, then I quickly open/create the associated file and log my thoughts. This is true when I'm at a computer, both at office and at home. Otherwise, I try to make an entry in some note taking app on my phone (I've been using ColorNote for Android for last 6 years or so, it syncs and backs-up the data). This phone based approach is something I still am not 100% comfortable with, but at least I have some place to dump my ideas.

3. Linking is done by org mode tags[1], and the file/folder structure that I have on disk. For metadata (webpage, context, etc.), we can associated a property drawer with every entry.[2]

4. Contextualization: Maybe a combination of tagging and searching can do that? I'm not an expert with org, but it supports searching tags with boolean operators[3], so that might float your boat.

This setup is plain text, and supports encryption via Emacs (and auto backup if you save in Dropbox). I have a private repo at gitlab and push every couple days.

[0] https://orgmode.org/

[1] https://orgmode.org/manual/Tags.html

[2] https://orgmode.org/manual/Drawers.html

[3] https://orgmode.org/manual/Matching-tags-and-properties.html...

I just want to understand that given the mostly negative reaction that's here at HN to the npm ecosystem which is based on the same "minimalist libraries" idea, how is this different?

I'd appreciate if the response is not about JS and/or C, but about the minimalist libraries in JS, C, or any other language. Should I use a large number of small libraries? Should I wrap up some of the code which I use into a libraries even if that code is just a couple of functions without any data structure?

Moreover, I'd admit that I'm a great fan of Chris Wellons blog posts which are pretty technical and original, and use some of his emacs libraries on a daily basis.

Also lack of fullscreen support (pre-windows 10), no history and it seems that command line was just a joke for MS for the longest time.

I think it's the explosion of open source and the corresponding command line tools that they started investing some time and effort to the command line.

I also tried using bullet-journaling for a while but fell back to the yearwise hardcover diary of sorts (something like my father used)[1]. I think that does the job easily without me getting bothered by creating things like monthly and yearly calendar and some other lists. The templates are already present.

Just for information, did you pick up bullet journal after using any other (paper or web) tools? Were there any advantages compared to the other tools?

Having said that, my problem is more about following the systems religiously rather than starting them. For example, creating a morning ritual to plan my day/month/etc. has been a difficult task because most of the times I plainly forget about it. :(

[1]http://www.graphicimage.com/v/vspfiles/photos/AJL-GTI-TUP-4....

Can you please explain a little more? I always thought Germany (and Scandinavia) to be a strong economy where although you pay a lot of taxes, the returns are extremely well in terms of childcare, hospitalization, etc.

I second org-mode. Previously I was using OneNote but that is limited to Windows, and on Linux I need to be always online to use the web interface.

To add one more use case: I was thinking of creating flash cards and came across org-dribble which provides the entire functionality of creating and revising flash cards using Supermemo method.

When it comes to note-taking and organising, org-mode is an excellent choice.