 Sebenarnya, saya bercakap tentang sesuatu yang sama beberapa bulan lalu Jadi, saya tidak mahu mengenai perkara yang sama lagi Jadi, saya memutuskan untuk mengucapkan sedikit dan bercakap tentang Setup general saya sebagai bagaimana saya menggunakan komputer saya dan sebagainya Jadi, link untuk slide ini di bawah Saya akan link ke software yang anda mungkin menemukan yang menarik atau menarik Jadi, jika anda menemukan yang menarik, pergi ke sini dan mendapat slide Saya berfikir tentang produktif untuk lama Jadi, ini sebenarnya dari archive.org Saya mengucapkan URL kerana saya tidak mengucapkan Jadi, ini pada tahun 2014 Jadi, ini adalah jenis lembaga saya Untuk mengucapkan komputer saya untuk mendapatnya Untuk menjadi masyarakat yang lebih produktif, saya rasa Jadi, ia akan menjadi sangat mengucapkan Dan perkara yang saya beritahu tidak akan berfungsi untuk anda Jadi, anda akan mengucapkan sangat Saya akan menjelaskan 3 perkara yang saya cuba mengucapkan dengan masyarakat saya Pertama, saya tidak mahu meluncurkan sesuatu Saya perlu menunggu beberapa minit untuk dibuat Jadi, ia akan mengucapkan atom atau sesuatu Pertama, simpliciti Saya memilih software yang minimal Ia akan melakukan sesuatu yang saya mahu dan tidak ada apa-apa lagi Pertama, ia adalah extensibiliti Jadi, saya mahu melakukan sesuatu yang masyarakat saya tidak mengucapkan Saya boleh menulis atau menemukan sesuatu yang mudah untuk mendapat fungsi Jadi, saya akan mulakan dengan sesuatu yang saya harap tidak terlalu terlalu mengucapkan Jadi, saya rasa ini seperti yang saya percaya Seperti rangkaian antara sistem yang berbeda Jadi, Windows adalah... Siapa yang menggunakan Windows? Hmm, okey Siapa yang menggunakan Mac? Mac Dan siapa yang menggunakan Linux? Ada sebenarnya lebih banyak Linux dan Mac Jadi, tidak banyak yang menggunakan pendapat saya di sini Jadi, saya tidak akan menjelaskan banyak Saya hanya akan melalui beberapa distribusi yang saya mencari Dan beberapa perkara yang saya telah menunjukkan Jadi, saya rasa yang lebih ramai adalah Windows, Debian dan Fedora Jadi, pro-nya adalah bahawa mereka cukup mudah untuk digunakan Tidaknya, mereka datang dengan installer GUI Mereka juga memiliki komuniti yang besar Jadi, software yang selalu dibuat untuk distribusi Jadi, bagaimanapun, TensorFlow berhasil dengan Ubuntu Ia dibuat dengan... Ia dibuat, seperti penggunaan yang dibuat untuk Ubuntu Dan kemudian, dalam beberapa keadaan Seperti jika anda mengembangkan penggunaan Di sini, distribusi ini adalah lebih jauh daripada Perlukan perlukan VN Jadi, terutamanya Debian Saya harap orang menggunakan Debian dan bukan Ubuntu Dan ia juga lebih stabil Tetapi, penggunaan yang saya melihat di sana adalah penggunaan penggunaan Biasanya, sangat berguna Jadi, bagaimanapun, untuk Ubuntu Kami perlu mempunyai PPA Dan kemudian, anda menggunakan suduk untuk mendapat update Dan kemudian, mungkin 3 minit Ya, suduk Saya tidak tahu apakah anda menggunakan suduk untuk mendapat PPA Kemudian, menggunakan suduk Dan kemudian, hal ini mengambil 5 minit Sangat lama Dan kemudian, bagi saya, saya rasa Yang ini tidak ada banyak perkara yang saya tidak gunakan Jadi, ia mengambil perkara yang tidak gunakan Dan ia sangat menggunakan Dan saya menggunakan PC di rumah untuk mempunyai 64GB Hal ini saya mempunyai 64GB Jadi, saya tidak dapat menggunakan Jadi, saya mengubah ke Arq Dan yang di bawah saya adalah Manjaro Yang seperti Arq yang besar Yang baik adalah, ada komuniti yang besar Dan itu tidak terbaik Jadi, apabila anda membutuhkan Kami hanya mempunyai TUI Dan kemudian, anda membutuhkan perkara yang anda inginkan Saya menemukan perjalanan di Arq yang lebih baik daripada keadaan yang sebelum Dalam keadaan ini, perjalanan ini sangat cepat Dan anda juga mempunyai Perjalanan keadaan yang besar yang digunakan di AUR Apa ini? Perjalanan penggunaan penggunaan Perjalanan penggunaan penggunaan Dan membutuhkan Arq adalah penggunaan yang sangat baik Saya belajar banyak tentang Linux Sebenarnya, untuk membutuhkan Arq Yang terbaik yang saya ada di sini adalah Semuanya boleh membutuhkan Jadi, biasanya saya hanya membutuhkan Sudo, Pacman, Dash, S-Y-U Yang adalah membutuhkan perjalanan penggunaan saya Yang membutuhkan perjalanan Linux kadang-kadang Dan kemudian, sistem saya membutuhkan Dan saya tidak dapat membutuhkan lagi Jadi, itu bukan perkara yang sangat produktif untuk dibuat Jadi, saya memutuskan untuk mencari sesuatu yang lain Jadi, sebenarnya Meme orang di dalam bilik ini akan memperkenalkan Meme ini akan memperkenalkan sebuah ruang, bukan? Jadi, saya memperkenalkan Jadi, saya memperkenalkan sistem yang digunakan oleh NixOS Jadi, NixOS sebenarnya tidak terlalu baru Sebelumnya, ia telah diperkenalkan sejak tahun 2003 Dan kemudian, ia mempunyai lebih banyak populasi di tahun 2014 Jadi, perkara tentang NixOS adalah Ia juga sebuah komuniti yang besar Dan kemudian, Ia sangat berbeza daripada apa yang anda selalu menggunakan Dan saya akan menunjukkan ini sekejap Yang kita dapat adalah perubahan otomik Dan memperkenalkan sesuatu yang berlaku Dan kemudian, saya akan memperkenalkan semua ini sekejap Sebuah masalah yang saya melakukannya adalah Ia susah untuk memperkenalkan langkah yang baru Untuk memperkenalkan sistem Jadi, ia adalah perkara yang sangat mudah Ia tidak disebabkan oleh pelajar Jadi, ia sangat teruk Tapi apabila anda menggunakan NixOS Saya rasa anda akan mencubanya Saya akan menunjukkan sesuatu tentang NixOS Sebelum tadi, saya... Jadi, ini sebuah artikel dari LWN Yang adalah sebuah berbicara tentang Linaq Linaq sebenarnya memperkenalkan Komin yang... Ia ada sebuah perubahan di Linaq Linaq adalah 4.20.8 Dan beberapa versi 5.0 Dan saya menggunakan sistem saya di Linaq Jadi... Apabila saya memperkenalkan ke Linaq, sistem saya telah memperkenalkan Tapi sebabnya, NixOS adalah okey Jadi, saya akan menjelaskan seronok-seronok yang berlaku Jadi, NixOS bergantung pada sebuah langkah yang lama Jadi, sesiapa yang tidak menjelaskan adalah Okey, jadi... Saya rasa baiklah, saya hanya melakukannya Jadi, biasanya apabila anda menulis skrip Anda melakukan sesuatu seperti... Pembuan... Pembuan... Dan kemudian, anda melakukan sesuatu seperti itu Jadi, perkara di atas sini... ia adalah sebuah penggunaan Jadi, ia beritahu skrip Seperti apa program yang sepatutnya berlaku Jadi, mari kita katakan Anda benar-benar perlukan python Kemudian, mungkin... Dan python Dan kemudian, anda menulis kode python di sini Ya Ya, jadi... Pada Lina Skano, mereka sebenarnya menulis kode python yang mempunyai 128 kode Dan NixOS bergantung pada sebuah langkah yang lama Jadi, bagaimanapun... Pada Lina Skano, mungkin anda tidak dapat melihatnya Tetapi, ia bergantung lebih daripada 128 kode Jadi, apa yang berlaku adalah... Lina Skano menggantungkan Dan ini sebenarnya baik untuk skrip perlukan kerana perlukan ini menggantung Dan kemudian, mereka menggantung kode python saja Jadi... Dan NixOS bergantung pada sebuah langkah Dan kemudian... Mereka menggantung kode python dan semuanya berlaku Tapi kemudian, ia okey kerana NixOS Jadi, apa yang berlaku di sini adalah... Setiap kali saya berubah kode python Saya membangun kode python baru Dan apa yang anda lihat di sini? Apa yang saya lihat di sini? Jadi, saya tidak benar-benar dapat melihatnya Tetapi, ini... Seperti generasi yang berlaku, ia beritahu saya Apa yang saya lihat di sini? Apa yang saya lihat di sini? Apa yang saya membangun? Jadi, kemudian... Yang paling terlalu terlalu terlalu berlaku Dan saya hanya perlu membangun ke O1 Dan semuanya baik Ini lebih kecil Jadi, ini... Berlaku dari kemaharan di sebuah kode python Jadi, AOR ini... Ia berlaku di sebuah kode python AOR adalah kemaharan yang lebih besar Tapi, bagi nixos... Ia ada kemaharan yang lebih besar dari kemaharan Sebenarnya, ia berlaku di belakang AOR Jadi, ia ada kemaharan yang berlaku Macam mana kemaharan ia berlaku Biar saya katakan kemaharan... Biar saya katakan kemaharan yang berlaku Biar saya katakan kemaharan yang berlaku Jadi, saya akan menunjukkan beberapa demo Untuk... Jadi... Semuanya dari sistem operasi saya Ia dikenalkan di sebuah kode python Jadi, saya akan menunjukkan beberapa kemaharan Ya, jadi... Setiap kali saya mahu membangun sesuatu di sistem saya Saya mahu mengubah beberapa kemaharan Dan... Membangunkan konfigurasi Jadi... Biar saya katakan... Ia adalah Julius di sini Ia tidak di sini Jadi... Siapa di sini menggunakan Luminous untuk membangun kemaharan? Tidak ada sesiapa lagi Okey Luminous adalah perkara baru di NUS Untuk yang tidak ada di NUS Ia adalah sistem baru yang NUS mahu membangun Yang tidak ada sesiapa lagi yang mahu membangun Returisi Jadi... Ini adalah cakes dari Nick sending b Rocky Ini berdasarkan spice yang mengarah bagaimana saya membangun Bagaimana saya membangun Next is also a package manager, so it's quite confusing. So this is an expression for updating the Rust package, I guess. All packages are specified as derivations like this. He pushed a new commit recently, so I can go and update it. So I fetched the latest revision in the Git repo and the shell that Git repo changes also. So once I have this changed, I can go ahead over here and rebuild my config. And then go ahead and fetch a new Git repo and rebuild the Rust binary. So I push these changes up to GitHub and I have a couple of machines. So every time my operating system environment on both my desktop and my laptop is exactly the same. So it goes ahead and does a couple of things, which I guess I'll explain in a while. So here it's fetching the new source code for that Rust binary and builds it using Rust C 1.3.1.0. I guess I can cancel this. So how does Nix work? So Nix has this store, which is basically like a bunch of files bunch of derivations and folders. So let me show you what maybe derivation looks like. Where's my card? I can't see my mouse. Oh, maybe let's see this one. So it's basically like a specification of how the package needs to be built. So maybe this one has no built inputs and what the configuration flex and so on. So actually a package is entirely like contained. So this is like a specification of what the entire package is and basically all packages live in the Nix store. So if I check user bin, there's only like amp here. And everything else in the user path is a sim link to something in the Nix store. So let's say a witch SF. This is a sim link to something in the Nix store, for example. So every time you rebuild a system, if a package changes, then new sim links will be formed and that's how the atomic upgrades are being done. So how do you use this? Like in general, let's say I'm working on a project. So you can just specify the project dependencies over here. So the first line imports Nix packages, which is a repo I have locally that contains like all the packages in the Nix packages repository. And I'm saying that in this shell, I want Python 3 inside as well as Netcat. And then if you're doing Python development, maybe you want some tooling like YAPF and maybe a language server for that project. And then you just run a Nix shell in there. So let me go to that repo. CS205. So if I run Netcat here, it actually doesn't exist. But if I go into a Nix shell and then I run Netcat, now it exists. So you can use it in multiple ways. So for example, there's another tool to download files from IVLE, which is now a system that NUS uses. Oh, s**t. So let me... So here I changed the shebang. Oh, can you all see? I changed the shebang to use Nix shell and specify that I need Python 3 as well as some Python 3 packages. And now even though I don't have Python inside in my user path, I can still run that file. Or then like if I... because I collect garbage, I delete it sometimes. So now it's fetching Python and then after that, you run my program. So Nix is a beautiful for most languages. So there's very good Python support, Rust support, OCaml support even. Just a lot support for almost all projects. So I use Nix to do my project management as well. So in any case, it's called a CS3203 where you have to write like a static static code analyzer, I guess something like Sobe. And we do it in C++. So so this is what it looks like. So I set my standard M to use Clang and then I specify so we need a QT dependency over here. Two step that we might have to use. Then I go to that folder and I run Nix Shell. I just collected garbage recently as well. So you can see over here, right? It's actually downloading two versions of Clang. So what this means is that maybe packages that I require require different versions of Clang and it's actually very tricky for package managers to handle. So the example I usually code is that like let's say a certain Ruby Jam requires a different version of OpenSSL. How are you going to specify that in your repo? Usually what they do is they just call like they just call maybe pull for example. You just call pull but then that refers to the pull in the user path and you can't specify which pull you want whereas over here everything is enclosed so it just works. Ya. Okay. Did I close it? So the other thing is that you can do cool stuff like build docker containers with nicks. So I believe that docker got their abstractions wrong. So typically you have like a typical docker file looks like this. You do like a from from Ubuntu colon something and then you do run sudo app get update and then you do a bunch of stuff later on. Let's say a layer all day on the top changes what docker has to do is it has to rebuild every single layer that that there's a buff like there's below the layer that changed. Right. But then I think that's not true. I mean like dependencies are actually like layer I mean their graphs they're not layers. So let's say something over here change but shouldn't affect the build layers that layer shouldn't have to rebuild. So nicks now also allows you to create like optimize multi layer docker images and I do that for the same project and I guess so this is it all I do is I'm saying build an image with clang, seeming and bash right and that resulted in in a size with a with a docker container with a lot less layers and with a lot smaller size and the interesting thing about this is that I know that the project compiles and it works on my machine I also now know that it definitely works in the docker container because I mean it's exactly the same like the docker container contains exactly the same version of clang or whatever dependencies I require inside it so I use this docker container to run my CI stuff on GitLab because it's on a private repo and like GitLab gives you free CI minutes per month ya so the other difference between nicksOS and Arc is that like contributions to the packages in the AUR are usually done by the maintainers themselves whereas in nicksOS it's actually a public GitHub repo where if you find something wrong you can change it and you can fix it so these shows like I made a couple of fixes to some of the packages in nicksOS they generally get merged within two to three days and they do quite a bit of code review one package has like 16 comments so it's a chance to learn about nicks and also to contribute back to the community which is nice ya so this about the OS do you have any questions for nicksOS at all at this point ya what do you mean by source space gen 2 I don't think there's like there are no OSes that are similar to nicksOS the only one that's similar is Gal Greeks G-U-I-X and that's written so nicksOS is written in the nicks language and Greeks is written in the Gal scheme language but that what oh ya so right so everything is compiled from source the thing is that stuff on nicks packages actually goes through a build farm and then it gets stored in this location like cache.nicks.org so every time you make make changes to the nicks packages and it gets pushed online it gets rebuilt so let's say your derivation like your source code over here is exactly the same as the source code that the build farm used to do it you will figure out a cryptographic hash so this is the hash of that derivation and if it's exactly the same what you can do is you can just download it from the build farm because you know that everything that this package has is I mean it's a it's a closure how do I explain it basically if it's exactly the same you can just download it from the binary cache so you don't actually have to compile it yourself does that answer your question but if it doesn't match then you can compile it if it doesn't match then it will download the dependencies you need to compile it and then you'll compile it on your machine so that's usually what happens when you want to contribute back to nicks packages you have to compile it on your machine and that's the cool thing because if it compounds on your machine in nicks OS it definitely means that it compounds on other people's machine as well because everything is enclosed inside that derivation so moving on from nicks OS so this is like somewhat inaccurate picture of like I don't know what you call this so typically system like ubuntu it comes with a desktop environment desktop manager so ubuntu now comes with let's say I think they replace immunity you can also install KDE, XFC and stuff like that so what I find is that all these desktop managers they actually do a lot of things that you don't really need and therefore it's like quite bloated and the only good thing about it is that it's convenient to install so this is like the kind of the lowdown so whenever it runs on X unless you're a super hipster you probably won't be running Wayland and then most of the stuff you need actually comes from a window manager and I think something right on top of X something very light is the right amount of power and customizability so there's a bunch of tawing window managers that you can try so I put some stuff from r slash unix point it's like it's already such by people who want to showcase beautiful unix desktops and then I looked at it and I think the quality kind of went down but yeah so I actually get is one of the examples of a window manager and this guy just showcasing like how he lays out his like stuff which I think is a bit overkill for sure then there's some more here and there so I try the couple the one that I'm currently using is red poison red poison is basically it's a it's related to the mouse it's just saying that you want to kill the mouse yeah so I'm using a tawing window manager and I can showcase it in a while if you're using a Mac you're out of luck the only stuff you can use is hammer spoon and spectacle if you're really into configuring your window manager and Mac you should go with hammer spoon because you can coat stuff in Lua and make it do funky things so in general when I work on stuff I only tend to use a full screen thing or like a side by side thing over here so this is an example of what tawing managers do la as you can see I don't have any task bars or anything I find them not very useful first of all they take out very precious screen rare estate and then they also do a lot of like polling so let's say your clock up here you have a clock up here it has to run stuff every second to update that thing over there which is annoying what? it's negligible but my PC is to be very bad so yeah so always get bound to a key so if if you use T-marks it's basically like T-marks for your entire environment I guess so I highly suggest I know it might not be for everyone but for me I think it's one of the biggest improvements that for productivity that I got and then there's shell so who here uses bash? who here uses z shell? who here uses fish? yes fish so honestly I don't have like a very strong opinion as to which shell to use I use fish because it comes with a lot of nice things by default and I also have to maintain a couple of stuff that I wrote a while ago but it really doesn't matter what shell to use I tend to recommend against z shell because it's slow but I'm not sure if that's still the case anymore fish is generally the fastest shell it's just that it's not process compliant so if you write certain shell scripts then you might not be able to run it and you might have to fork out to a sub-process in bash and then there's a special mention to mosh which is a like software use when connectivity is kind of intermittent so you can still do stuff and get it when you have shitty internet basically so how many you use like a company bear like terminal company bear so I kind of recommend people to know your terminal key bindings so who here knows the GNU redline key bindings no redline so let me just so let's say I type a really long thing here control A goes to the front of the line control E goes to the end of the line meta B goes backwards meta F goes forward control K kills the thing control Y yang cid there's like a ton of key bindings the good thing is if you use Emacs you probably already know it but it really helps to type code a lot faster I mean like correct your common lines a lot faster especially if you're doing data science where like a lot of your python scripts come with like arguments you pass in this really saves a lot of time control L clears the screen control R does the reverse eye search so this searches for stuff you ran before in your history I mean the next shell so it doesn't show so the thing is you might want to know is like so you use grab to search for stuff there are placements for grab so there's the silver searcher AG and there's ripgrab RG which is like the fastest version of grab you can find now so RG by itself by itself is not very useful but you can combine it with certain things which I'll show later I guess and also find which basically finds files your system actually has an index of like most of the files in your system so you can use stuff like find or locate to look them up so for example over here I use a combination of find and FZF to go to certain directories so this this is a list of directories I should so maybe I want to go to my 2105 assignment for example or whatever so it does a fuzzy search and it changes to that directory other than me having to CD manually into each of them stuff like that then history as well like basically just show stuff that I've run before on my terminal so if you don't use fuzzy file finder maybe you should give it a try yeah so launches so Mac has this thing called Alfred it's non free so it doesn't really fit to the productivity with free software title but there's a free version on Alfred we just can't too much customizations with it whereas if you use Linux you should you should look at something like Rofi so I really suggest to abuse a launcher so use it to like launch program so for example here you just launch like slack whatever emacs whatever and then find file so let's say I want to open a particular PDF I have it's also bound to another key binding in my window manager so here maybe like a textbook yeah for example instead of going opening finder and like clicking through my folders to find that thing choosing my active window not really applicable to people who don't use windows managers so I want to show it a few passwords so there are couple of password managers which I highly suggest people use actually I only suggest people use one but I recommend people just in general so the one that I use is called pass it's a very simple command line utility that encrypts a password using GPG basically so I can just show it here and then everything is in in a Git repo so you can do pass, Git pull and stuff like that and then you push it somewhere you think it's safe so it's in a private repo in GitHub which is not very safe but so so let's say I want to login to IVLE all they do is to invoke another key binding on my PC so this one auto type and then it types it out it goes in so stuff like that so that's actually a utility called Rofi Pass which is not part of Rofi but like an extension to Rofi bindo folder navigation so have you have you all heard of like Ranger or NNN? nobody I don't use either of those but I think like text based folder and file management is very powerful I guess I can show an example in Direct but maybe later on because Direct is the one that I use but it comes in Emacs so and email consumption how many of you hate the new Gmail interface one only I'm surprised because like no one uses Gmail wait what? okay interesting so what I do is I actually download email locally using this tool called MbSync and it creates an index on my system so for example over here I can search for it like I can do a full text search across all my mail in my system or I can do a search by tag and like this output on its own is not very useful but there are like let's say here this is my mail so I can search for stuff like maybe like a recent I recently concluded on hack and roll it's like a full text search across all my email and it's very fast and ya so I think using MbSync and not much also improve my workflow which you won't see until I show stuff it at the end so I guess they will have to read okay Vim and Emacs so Queer is just Vim Vim Emacs Wow, 1 Okay Anything but Vim and Emacs DS Code DS Code Okay So I use Vim for about 4 years and then I switch over to Emacs I have been using Emacs almost exclusively for 3 years and my opinion is that Emacs is better but then I could be wrong now so I'm going to give an energy that's not soup so so in NUS in NUS there's this new initiative where this new grab initiative where you have this like scooter thing where you can drive around now so some people use it as an alternative to get around so I think Vim is something like this scooter you can't really you're kind of limited by the scooter so for example this scooter cannot go up the slope in computing so to me there's like a ceiling as to how powerful Vim can get actually not really because Vim script is terrain compete but it's just like a terrible language to make extensions in so whereas Emacs is kind of like a bus in that in that like it's more powerful but it's also kind of like not great yeah so see the old name of the old acronym of Emacs like some people used to call it 8 megabytes and constantly sopping but but I don't think that's true now like Emacs was built in an era where like memory was super precious and then it was it was just not a software for its time I guess and then now it launches instantly you see there so I think like the bus thing is not super curious so I decided to change it a little so I think it's more like like a proton car like it comes like kind of lousy but then you can start replacing parts in it and it becomes super powerful so people actually use stuff like that for like racing which is nice so an example of like how extensible Emacs is so when I was a internet carousel I used to deal a lot with the Google Cloud Platform so we had to browse like the the buckets inside Google Cloud and then every time you click on a thing here it has to refresh the page and load like new stuff and then it's it grows like the time taken to load it it's actually like related to the number of files inside that directory which is which is terrible so I wrote something in just 100 lines of Emacs list that lets me like browse a cache version of like small so this is the same Google Cloud thing just that now it's like instant and I can preview files and stuff like that which is which is cool I mean I don't think you could do it in 100 lines of Emacs or someone can challenge me and try to do it you also can like basically like you can do everything in Emacs and that's what I try to do so this is another example of me asking for a particular feature and it getting implemented within just a few lines in like by someone in a day so project management so there's this thing called DERMF which I use but I use it concurrently with NICS so I just gonna show you what it does so let me so how do you configure DERMF by creating a .mfc file so DERMF lets you set things like environment variables for specific projects or let's say set up virtual environment so let's say you're using Python and you want to set up a virtual environment it's just basically like layout Python and that's it or you want to maybe set specific secret keys for example for your project you just do like export X equals to 1 or something and then DERMF allow and every time you enter this folder you get that particular keys set so if I echo X it should be there it's 1 so you can do really funky stuff with this so for example what I use is NICS so if I go to maybe my so over here all I have inside my mfc is this thing called use NICS it's just one line use NICS and then it basically loads my mixture environment so now I have NICS available so DERMF is language and austic it works across like any kind of project so it has bindings for Python Rust and so on so I do suggest looking it up and then also like abuse read grab fine and fuzzy file finder if you're using Emacs do use like specific project management tools like projectile and the gig I guess I can show and then finally org mode so how many of you 1, 2, 3, 4 that's a very small amount I guess so org mode it's it's a bit like markdown except that because it's done in Emacs people build a lot extension around it so let me just give an example of an org file so it create oh this like a header hello you can have sub headers and headers and so on it's like markdown except like your hash is replaced replaced with a star and then you you have stuff like inline latex so x equals to 1 you can preview that and so on so it's basically markdown with some more stuff so it's also it's also to do like it was built around this idea called getting things done which is like a system by David Allen which I can which I will go through my workflow a bit but yes like stuff like to do you can schedule deadlines or something so maybe this is deal Saturday schedule stuff you can do like basically a bunch of stuff so there's there's a whole talk on how you use it to build a second brain this was this talk is in November 2018 so it's a bit after I started using it so my the way I do it is slightly different from it so if you're interested you can look at the YouTube video so I use it for live management so like I mentioned getting things done is like a workflow proposed by David Allen to help you get things done interestingly I think this this like productivity industry people like try to monetize it so you don't have a lot of free software that can help you do it so the best thing of it is to do it which is unfree Omnifocus which is for Mac which is good but also unfree remember the milk is a very old Linux application that nobody uses anymore and then there's which I'll show now I guess so this is like can I zoom in so this is the view I get within Emacs every day I guess so I was up at 4.35 so over here I can see my daily itinerary so I have like a AM lecture followed by a 10 AM tutorial and so on and then I also clock in like certain tasks so I know that over here I did my assignment for example so I get an overview basically on like stuff that I have to do and then every time I just every time I need to bit like if I don't write something now I forget so this basically contains everything that I need to do at any point in time and I just pick stuff based on like urgency so for example if this is due in 3 days I might start on it soon so it also has support for habit so clearly I don't I don't do my like my habits are quite bad yeah and then so when I when I find new stuff to do I'll just capture it so I press C and then I type like clean my room so it goes into my inbox and then after I'm done capturing everything I'll do a quick refile so I press R and then read so this one is reading my textbook which is actually already done but I forgot to refile so I set where I can do it which is home and school give it a priority and effort so this an effort estimate like how long I think I'll take to do that particular task so maybe 1 hour and then refile it to the correct project and then basically do this for like every single thing in my inbox so now I have everything categorised according to that particular project so in this case my projects are mainly the modules that I'm taking and I think this system is very useful especially if you're taking a lot of things so you can think about like your brain as like a computer and then if you have to keep remembering things then you're basically using up like precious brain CPU to do that whereas if you write everything down then your brain is free to do like clear thinking that's like the basic idea I guess so actually e-max doesn't come like you do have to do a significant amount of configuration to get something close to my my setup but I think it's well worth it and the whole idea of e-max is that you can build it around a workflow that suits you so this is what suits me I guess so you can do I do things like note taking so if you're on a Mac I recommend using notational velocity which is a very simple like plain text note taking application whereas I use org mode and dev so all my notes reside in a directory and are available here so I do I do quite a bit of reading on AI stuff I don't know so let's say let's say I did something on PGMs and then there's a key term that I need to look up so like D separation so it's basically like a full text search on all my notes then you bring me to the correct place so not only that I can export all these stuff into LaTec whatever so I can export this to KJML, LaTec, Markdown and so on so what I do is generally it's a gift repo so every time I change it I do a commit and I push it up and then a publishing platform I use Nellify so Nellify actually publishes it so this is what it looks like um this is what I get transform to like online so I do like revise some of my notes while I'm on the train and stuff like that so I open my web page on my phone and read it to revise for my modules yeah so I think maintaining like a knowledge repo has been very useful for me and it's a practice that it's one of the practices that I picked up that I think has one of the biggest my studying yeah so publishing with that and you can also use org mode to prepare material so I use it to write some of my like research reports and also to produce slides so this is one of the slides I produce for my research undergraduate research program and you can also export to you can also export nice slides to review JS so this is an example of one of the slides that my friends my friend produced for a tutorial I guess so all this is done just by typing like plain mark down so I guess in summary I find that using a very simple like plain text system is very powerful I try to like I want most of my stuff just a key binding away so if you use a tiling minum manager it's a good idea to make everything behind a key binding and if you find something that you find some block in your workflow if you're using e-max you can aggressively automate it and write code to fix stuff for you so actually like my configuration is not unique the e-max maintainer John Wigley also uses nicks and fish and e-max so it's kind of like validation for like so I feel better about myself ya ya, so I guess that's that's all I wanted to show y'all