Play Emacs like an instrument

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

Thank you for sharing my talk, https://www.reddit.com/user/mykyta-shyrin/

If you like the topic, just yesterday I wrote a blog post on the merits of FOSS (Org Mode) vs closed source applications: Great option for editing Org mode files on the go: org-web

If you like the things, I did in the talk, you can check out my Emacs configuration which is written in a literate programming style, so it's quite quite nicely documented: https://github.com/munen/emacs.d/

Thank you everyone for watching. If you've got questions, just ping me up any time!

👍︎︎ 18 👤︎︎ u/preek 📅︎︎ Aug 06 2019 🗫︎ replies

Curious that he not used epresent/zpresent etc preferring a classic "not live" pdf. I normally do not do much presentation but I find them nice enough to be quick and avoid wasting time in creating slides. A bit o themes to org-mode (org-bullets etc) and the audience remain more "stunned" than a sugar-eye classic graphic intensive slide :-)

👍︎︎ 3 👤︎︎ u/ftrx 📅︎︎ Aug 06 2019 🗫︎ replies

I've watched this talk before, it's really awesome! Btw check out i3wm on a macbook :)

👍︎︎ 3 👤︎︎ u/valignatev 📅︎︎ Aug 06 2019 🗫︎ replies

I cannot reply this guy,

"Androth there should be a linux distro that goes directly into emacs as the front end. 4 months ago | [YT] | 1 Hide replies

Alain M. Lafon

You can just start Emacs from your .xinitrc and not call a Window Manager. I've seen people do it^ On a more serious note - you can use Emacs as your Window Manager: https://github.com/ch11ng/exwm 4 months ago | [YT] | 1"

Because he wrote this comment on YT. And I use "invidio.us" that has not yet the capability of writing YT comments And also the professor who gave the talk. But, there is a TW that is totally integrated with emacs. It is called "stumpwm". I use it as my main Window Manager. I am an ex-heavy I3-wm user

https://invidio.us/watch?v=tKt_rVO960Q

https://github.com/stumpwm/stumpwm

👍︎︎ 2 👤︎︎ u/OrionRandD 📅︎︎ Aug 18 2019 🗫︎ replies
Captions
and an hour will give us today a talk about Phoenix and I'm very well informed that he has prepared a lot so please don't ask any questions actually I know that he likes us and then we will probably depending on the time schedule have to rush after the term rush off to the place that I made a reservation at and we all have our discussion there when is the reservation at 9:00 so two of us in a discussion okay so it's nice to see so many of you here I'm quite happy about that growing quite nicely something related to an ancient text editor but we're going to place like an instrument to be fun okay so today will be a lot of demonstration but there's also going to be a lot of slides so in the beginning I'll start just with a couple of impressions so what can MX actually look like then in goes closer to our profession our first declare and define all the terms of my title because otherwise no one has a clue what I'm talking about then will be the actual live demonstration - playing like an instrument then I will come to a conclusion which and hopefully some of you will come to as well and then there will be time for closing words okay so but first so I found this the company 200 okay together with Phil we're a small shop building software sometimes we can use clover that's quite nice we actually have our own products building closure I'm also a lecturer at the local university of applied sciences of Zurich and of course software engineering so I try to sneak in as much functionality as possible so usually I'm teaching something related with JavaScript but that's about as good as it gets but that's quite nice I like it also there's a couple of students and former students in the room so that works out quite nicely I mean teaching is really cool because you get to know a lot of people and those people they all come from various different backgrounds so you always have to kind of figure out what today what it needs why are they sitting in the room so every class and every person is very different so it actually hones the skill set of home box you can't just blurt out like this is good why and then you have to come up with something so now you see what happens if you ask question I apologize first strike so as a monk usually when I talk about the subject is either one second talk or a two-hour strong so you read for the letter okay very well so before we begin with anything I have to do the formal introduction here so who actually uses Emacs Wow quite a lot of you that's nice yeah okay this is quite nice and it's actually the email source code on the left see on the right give us and the groom that you're probably familiar with okay so since most of you are already using Emacs is it kind of because of closure or who is it using because of children who pivoted to Emacs so maybe a fifth or fourth and the remainder of you what are using Emacs for what's your daily driver the coding or by doing other stuff anyone's doing any other stuff than coding with the Emacs wow that's a lot okay so maybe you can teach me later this would be a good beer afterwards I'm looking forward to that so and you main users and a couple that's nice that's nice that's a good choice as well as you can see I'm kind of in the middle of the holy war so I've got my 14 years of women before I pivoted to Emacs which is nice because you can take all in knowledge with him it's quite nice so what's than anyone else left I'm not even sure who is not using Emacs or women at least one person two people okay 304 so maybe sometimes this is you maybe but maybe not and I also don't mean way this is actually a part of it's not a random rant I'm actually leading up to a point which I will be getting at in like an hour or so so don't judge me no it's not it's really not meant to be harmful or something it's not like I know better because it don't ok so I asked for questions I will cover a whole lot of ground in this talk and this is due to the fact that most of my time spent on the computer is spending Max and for the worse or better I spent a lot of time on the computer so yes so it's not going to be lightning talk huh however if there is any questions at any point in time please don't hesitate to ask because I'm friendly guy so just tell me from whatever you said is plainly wrong or stupid and I can totally deal with it I would be happy to learn something you okay so now that we have let's see what Emacs can actually look like so I call this the faces of Emacs of course obviously there is inception as the first slide because we are actually in MX r ight now of course I have written this code in Emacs and all the stuff on the right kind of business stuff all the stuff on the left there's the stuff on the right so kind of nice the tools that I use for that is org-mode and PDF tools so I'm actually looking at a piece within Emacs my bills from a markup language up to a PDF so of course as the tech in the background as well it's quite nice I'm not only using it for presentations like that it's actually my PDF viewer and editor of choice I have not yet seen a better one okay then of course you can do other stuff for example I do all my mail and fortunately I'm in the position to may do a lot of mail so I have to do it efficiently and I prefer to do it in Emacs for various reasons so this is just a little teaser image to show you that you can see HTML mail just as well as texture mail and I want to take this slide as a special tribute to respect to stand will let closer meter for so many years and see you today and has handed it over to us for the time being but he's a co-host you can do anything with the meet up definitely soup course so this is my mail client it's called move for e so me for Emacs and then you can do all that stuff for example and I do sometimes coding or other kinds of texts and all of those texts of course like many could be configuration or letters or even email or code all of this of course is in revision control and I do all my revision con directly from within Emacs so this is get that's a rapper called maggot or make it some people called it's actually a swiss product that has been recently crowdfunded but it's completely open source it's a very nice tool some people call it one of the killer applications of Emacs they actually switch to Emacs just for that and if the Beamer would be a little bit thicker you could even say that right now I'm sorry configuring my Emacs in a literate config but I will get to that later it's green doesn't enter high rest here of course I do all of my organizational tasks and Emacs as well for example this is a list of money dance someone might owe me and it's nice it's a spreadsheet it's just a text I can easily have it under revision control and they can do the regular things like [Music] accumulate rank different numbers and it even handles it nicely so for example this particular situation owes me a Japanese yen euro US Dollars and francs and everything accumulates just nicely to say sum it up and it just works okay of course sometimes you can look stuff up when you browse the web no better tool than to use emacs especially in those days where everyone tries to track you and steal all your data and I mean it's not so much a moral issue for me it's more browsing for me if you've been tracked by so many different pages then it's bad so when I read my news I actually do use Emacs and the package is called uw-w or this person actually came up with the name before she wrote the thing so now it's called the Emacs web browser because she had the acronym before she had the product okay okay and then some people might actually even use Emacs for coding right I mean since there's closed variants in the room I thought of that a screenshot of that so that's actually Georgia code and there is a test that is failing and it's probably pretty much the nicest error message I've ever seen in an IDE for a failing tests because I can clearly see where the test is failing and I get very nice semantic information I can see that I was expecting a 42 when I'm getting back 24 so very much in line they can immediately change everything and of course this is all you to cider and the nice contributions of the Apostles but like I mentioned you can actually write your configuration in literate style and you mix that's quite nice so this is my configuration which just so happen that just so happened to be also good easily to read so if we opened it up in the browser I was prepared actually for that but then my machine died so so all of that is my Emacs configuration and all of that is quite nicely readable and has a lot of text in there not just code you can easily read it and understand what it does so literal programming quite a nice feed I am also doing that with or not to quote some other geek there's infinite diversity in infinite combinations so you know so what really is Emacs time I mean it can look very very differently what does it mean okay so let's go into some definitions well you can actually ask Emacs what it is you can just hit up control H I for all the info manuals and then ask it well where does it say Emacs and kind of blind here he makes and then it says origin of the term Emacs and then explains to you that it was originally an acronym for the editor macros okay so when the first Emacs was a set of macros written in 1976 this is quite old at MIT by some guy that goes by an acronym RM s so and they build it for this an incompatible time sharing system which used to be the operating system of choice okay so 1976 that's a quite old maybe someone might think well okay maybe it back like 42 years way he makes was kind of good-looking but I mean what's a powerful that I mean machines in the seventies were they really powerful compared to what we have today maybe like with old age and Dancing with it it kind of slowly wears it down and then that maybe it's time to put it down and maybe bury it even there so doesn't it make sense to use emacs I mean I hope you believe the opposite because you're still here and if you want to know why you're totally at the right place I will get to that now all the pictures are taken from 1986 also younger than 10 years old back when I saw this movie okay okay so max come from it's actually quite interesting because Emacs is the mother of all that is free software I mean that should be like a little breather and free software actually is a very specific tournament doesn't mean open source it's a very different thing this drawing was there before there was open source so this guy that I mentioned called RMS or Richard Stallman in the 70s he was working for the MIT and they did some code sharing back then and then they switched to something after the pdp-10 like this old machine and then they couldn't share a source anymore because the operating system was proprietary the editor was proprietary and the compiler was proprietary and he said to himself well most of my buddies were already bought by this other evil company I'm the guy left knows how to build something better so he actually tried to build an operating system and for that he needed a lot of stuff and in the beginning the first thing that you need is actually in text editor which was Enix but you also did other things that you probably know like a GCC the compiler collection or operating system and is also the founder of these other things that might ring a bell like the GPL license and the Free Software Foundation and all of that is very well known through glue and Linux and this version of Emacs that we're talking at the bottom that I'm using is the goon max there's lots of different emacs's in the world and this one right here dates back to 18 and 1985 so it's a much it's very and of course I also saw that by going into the manual and reading the manual so it's quite nice I would even go so far to say we have a soft documentation wind because all the information I've given you so far is within Emacs and just behind the shortcuts so what I did is I went into the info page pages control age what I for info and I read the tutorial under control age T for tutorial of course we will go much further into the amazing soft documentation capabilities of Emacs in the moment okay so yeah I mention this probably I mean it's a little away from from Emacs but I kind of like at least to mention it was this idea to bring an operating system into the world that actually respects users freedom so that we can actually see what runs on our machines we can modify it and we can distribute it and we can do with it whatever we like and I mean in this day and age this these options are getting their own again so it's good to remember that the tools that we use actually come from this time okay we were talking about EMS so what was the initial selling proposition what did he try to achieve because there were other editors out there already was the 70s computing was around since ages so what what the next day what made it special is that it's a real time editor this didn't there wasn't a thing before the world line editors before and it could actually be extended by the user while it was running for release views or such and such as yourself this might sound like a good idea because extensibility or this particular extensibility actually makes he makes much more flexible than other editors because he makes users are not limited by the decisions made by the Emacs implementers and Stallman that in a paper that he submitted to the ACM in the 1981 okay but enough about Emacs definitions we kind of got that down but then I said we're also changing talking about playing Enix like an instrument so what is actually playing and this is kind of important for this talk so let me start with a quote by a guy called almost a on he's a 94 by now still very very much alive doing a lot of stuff and he is working as an artist with a children since 70 years or 75 years I mean that's a very long time and for him playing is immensely interesting and he says that adults kind of lose disability and it's getting worse in the last 75 years so what he says for example that's a nice quote of him a brush stroke on paper and utterance without intent which only follows its own needs brings man back to the self so it's kind of important disability of plane so what does plane look like how can we as play I mean usually we think about children doing stuff on the floor or whatever I mean as geeks we can totally go and constrain ourselves right so this was me in 2004 I kind of imagined to be in a world without a graphical user interfaces and trying to live through it and happens to be internet was actually quite efficient so even in 2004 there was good browsers on the on the console I could watch movies I could do everything I could even play quake with a ski alright this was quite nice ok so you can see how far can you go with a constraint and this is a this is the most interesting form of play that I like to immerse myself in and I try to go down the rabbit hole quite intensely so on a couple lifetimes ago I gave away all my stuff went back taking for one and a half years did all kinds of crazy stuff like go to Japan and after everything that usually is convenient and considered to be important after all of this and it goes away then you must just start to ask yourself like what is this this is a picture from enfoque GU monastery in Japan so uh I kind of like to constrain myself with things and this is actually very interesting because then you have to find a creative solution not just the obvious solution the first kind would obviously find things like play with color or throw people into some Mountain Lakes come to blows nice but Glarus good place we have a place that's open daily and you can actually even play an instrument okay so those are the forms of playing that you could do or other stuff but what does it mean what's the official definition well play actually is a range of voluntary intrinsically motivated activities and it occurs at any stage at life so it kind of goes with Southwick exploration and my did I may go into this deep rabbit hole of our playing well this actually used to be the original definition of hacking like in the 70s people kind of had this as hacking and I I'm not just saying this at least one article I put down there and so probably we are onto something maybe we should like try to figure out creative ways of doing stuff but why well let's go and see so now I'll be switching gears there will be more static slides and there will be some real-time coding so I will use a lot of features of Emacs and I will try to announce everything that I'm starting for the first time but probably I will miss one once or twice if I'm losing you or something was too fast or too slow just don't hesitate to ask okay so life coding what can go wrong keyboards because we're not getting younger right okay so life coding first thing that you should do when you start to do anything right is start an editor so for the first stigma of Emacs that is slow let's see how long it takes hats instant it's quite nice because emails can actually also run as a daemon right so now I connected the clients to my demon of all as many as I'd like and do all kinds of things in them so it's actually fast I mean taking the day Emacs was also called 80 megabytes and constantly swapping but now we have so many we have such great machines Emacs is not big anymore so that's a no-brainer okay so what should i do first right maybe also check might reduce for the day function here called things this opens my general project management and will also show me what I have to do today so this is also an org note there's all kinds of stuff here this looks like a small file but if you go down here and see it actually has close to 4,000 lines of stuff and this is only the stuff that I'm working at right now there's linked files up there as well and I can drill down in everything and down here I can see my agenda for today there are obviously one task for me I mean it's a little bit of a stretch but the remainder is covered under an NDA so I had two killers I had to prepare a talk okay that's done next thing is play makes like an instrument okay so maybe that's that's probably what also done but later they will be having a beer okay so that's quite nice okay so organ what you can do stuff with it I can say I have tasks that are schedules I can them around I can tag them I can search for them it's amazing or ignored you should check it out definitely one of the big ones out there okay so how do we continue maybe I should check my mail or something and then once this mail from mr. important customer so now I'm using move for me that's that's a mail client move for II and it's completely short string I actually have four different email accounts private business other business Zen temple and all of it is in on my machine locally stores as well through offline IMAP sorted through crop mail and then there is a search filter on top of it called moon and I have a client accessing all this goodness for e in Emacs and it's quite nice because for example I give all my unread messages and this is all my unread messages for all my different mailboxes or I can go into a very specific one and say I want to go into the inbox of 200 ok or I can see what is the spam that I got Oh No maybe I have to know this is really span that's going to get rid of it so it's very fast it's very convenient it's almost Orkut rhythm and it's all open source and it will stay the same in the same configuration workable for me yawns it's quite nice ok so I had this one interesting made from this customer event so let's try if I consider find that one again and where was it its retina of course so it's but it it go to so I lost it but I remember it was mr. important customer so I can search for it mr. important no important yes okay of course I can search for all kinds of stuff like from someone with an attachments what kind of attachment I can search for everything it's very fast very nice okay so there's mr. important customer says dear Lau I have a high priority task for you please create an image gallery of some Emacs related pictures a static page will do this is the host Bill anymore if you never leave Emacs to do it well he left often if but it meant well of course this is a clientele I always have these kinds of customers okay so but this is usually her work starts around you get like an email and then it gets tricky because now you have to use your project management software like or something right and then there's already like missing information how do you link your email to JIRA of course you can forward it to some JIRA or whatever but why should you lose your best possible tool set so what I will do now is I will create a to-do or a project right from this email and they will be forever interlinked so I will have maybe this was a little too fast I have a nice little feature here called capture templates it's also boring feature like I mentioned or it really is totally a killer feature and I have some captured templates things that I usually like to capture when I am with max capturing means I will create a new entry in my organization system so I could create a code snippet shopping item or a media link all of those have different metadata of course might like a link as a URL or something and to do has a some information so let some Hollis this should be probably a product there's more than one thing that I need to do here it says when I started this project and here there is the link to the email so let's call this a create static page of Emacs images and then I can just find it and it's gone a nice thing now is I can actually archive this email and it will not be my inbox anymore but I can still find it because when I in my inbox I can see well there is this project ok so maybe I should file this properly it's not in the inbox right this is my next to do so my next step is to put it in a proper place so maybe let's go down to 200 ok next 200 ok let's move it down here and now I have a proper to do and a proper product but you know this is messy I should probably drill down a little bit maybe I just want to work on this right now so this is narrowing a buffer standard feature and it makes very nice in ordinate ok so it's a project so it has lots of different tools right so he said I mean he wants an image gallery of some emails related pictures I mean that's a kind of a weird task but let's do it so first let's find some Emacs related pictures maybe and then maybe we should copy them to some server known to the customer so of course and what should we do when I create a gallery page then we should probably deploy it somewhere like this gallery page of course I can totally reopen my email message because I have a link here so I can totally just jump into it yes should I read it again or did you just want to test if I can actually come back to it I can totally go back to it and this is just one place that I can't jump right all kinds of stuff because Emacs has an intrinsic bookmarking feature so everything that I can do in Emacs can be bookmarked and since I can do everything in the MS now everything is linkable and this is quite nice so I never lose context I have my meeting minutes at the same place where I have my traduz where I probably have some code snippets where I have emails all kinds of stuff I will never lose track of anything ever again unless it's my fault this can still okay so deploy the gallery page inform the customer that it's done we are done this is the point where we would have jumped back to them you know and write a bill and send it right and send it okay proper spelling okay so maybe we can like say the deadline for this is tomorrow but we already scheduled it for today or something and then we can if I save this I can see okay there isn't you to do that I should do it's actually project create a static page of the unix and i can directly jump into it quite nice okay so first things first because I want to build this person and he said I should build him more I should probably track my time some all right of course I can go down the rabbit hole and find some good tool that builds me money to do that or I could just use Emacs so I will track my time on every specific thing that I can do and it's nice because I can directly do it within my to do system so I can later send a very specific bill that says I spent this much time on very every single task so let's first find something you makes related pictures so I'm starting the clock it starts today and 70 and 41 okay so now all the time that I'm speaking and work we'll be built to this legendary important customer but he only said that shouldn t be max totally still and he makes all is good okay so fortunately I have a place with some MX related pictures because I'm just giving a talk on Emacs which has some features in there so maybe I should jump to this very deeply nested directory it's far far away somewhere in mount share switch drive over the reference to Anna dukay ultimate start and getting started guide for startups so I mean I could totally type that in but it's very far away or I could just use projectile it's a tool that understands the various kinds of projects that I mean for example because the key trick for Satori or I have a gem file or I have a package.json file or files of course it's a prototype it's a list towards what totally works so now I'm in this folder but now I can drive deeper I want to go to a specific place I want to go down to toss he makes playing like an instrument or ik okay and here I have some images quite nice of course I can watch it look at all of those images but this is kind of a bad situation to just look at them like this but it's nice I can actually start like a thumbnail mode and go through the images like this and look at them that's quite nice I can jump to the next one a file I usually don't use this keyboard a lot so if I'm I found if it doesn't work it's just my mistake it's never you make this mistake okay so let's do a quick voting I will go through those and images and you say which ones I want to use and magically all of them will become but not the other ones so let's start maybe here so that's no no it makes relators now all of them are that's totally makes release no okay next one totally not good enough that's emasculated okay anyway there's an EMS but still no wanted okay no nothing nothing I think this is Richard Stallman he's wearing a hat this is uh yes she's actually called this he calls himself st. Ignace yes and it's a talk about why we is bad and he makes the school but you also says don't there's a church of emacs of course but he also says like any chance to don't go too far into the details yes I'm the saint of the church and he makes well okay there's no pictures of emails okay so now I want to bring them somewhere what did I actually do well I marked all the who know they were marked before installed and this is my mistake Wow all of them are marked I'm so sorry all of them are marked they should be marked totally my mistake see and usually they are not marked I probably had an old buffer open where did some testing if I just go over them I can totally ignore them right and the same thing is in my image buffer but the same thing happens in gooey things as well right sometimes you like hold down the Alt key and Mark a lot of stuff and then you miss click okay so same thing happens to me my mistake okay so that's get rid of them again and let's quickly go through them like The Closer he makes definition all of those Emacs demos and the wallpaper okay so I'm Marty couple wants sorry that the voting went wrong okay so this is on my machine now I want to go to this host I remember the host name was called he makes them all 200 okay ch so that's going to split buffer and I want to go to this machine now oh can I go there so maybe I could like SSH or something or FTP or I could totally use a GUI program for that or the shell whatever but then I would like have to do all this work again I don't want to do it so I do it with an e max so you have already seen by the way this is called dierent the directory editor and there is like a nice extension - they call trunk and trap oh my god I hit what did I do I hit the power button for justice very short seven seconds my screens gone what does it do is black is it shutting down why is it shutting down it's black okay so dear Editor is totally a nice feature of the next and what we're going to do is like we will extend that like very nicely because sometimes you need to go to other places other machines than yours right and on these machines you have very bad intrinsic problems for example there's no editor that you like maybe there's VI and then you that's okay but you makes users don't always like to use VI so there's that and even if there is VI it might not have your configuration and it has no connection to your local settings it has no connection to Europe machine so you have to like SCP stuff around or whatever it's very very tedious so do we have yes we have system this is totally not true this is a different screening or than mine please what do we say I think I have to make it work done yes does anyone know why hitting the power button for like a tenth of a second world shut down machine okay there we go let's go back to the images playing Emacs images okay so third time is the charm if he loves me okay get a split laughter and go to this machine so I can totally go to this machine through various means from within Emacs through trend trend understands all kinds of protocols and one of them is SSH and it just happened to know that I can access this machine when the customer said so Association then I can SSH to all kinds of different things for example this machine he remembers that when there once before and I now for the demo I'm going to do a lot of editing on [Music] [Laughter] both of them so many shells are inside of Emacs how many shots will build any two emails yes turn-turn tournay also eater isn't it no e term is an e 17 module as far as I know I don't have an internal okay we know exactly the same amount of shells Emax comes with a great shell integration building so you're totally right we'll get to those okay so finally I can totally connect to this mission sshh now that since I rebooted my SSH personnel prime that's not this is AJ and I get a nice pop up this is totally this is what the in Emacs it's magic secret stuff it's perfect and now I can add a password to unlock it now in the password for the machine actually and that that already sucks right I probably should be able to log in without a password on the machine but we could do that how do we do that we add our SSH key to the why is it so slow and to the authorized keys that totally works right so let's get one more splits down here and find my private key so that in the future I don't have to log in anymore with the password if he lets me SSH and then some public key maybe this one let's go back here authorized keys and copy it in here okay what is good for the future I don't have to do this anymore okay let's get rid of one of those buffers and then do some work okay so now there is a WWWF a tiny folder and I can probably access this hopefully oh this is bad all of my taps of course so that's quickly we store all of my tips okay this doesn't come and it's not a pleasant comment because the first ones an image gonna read it works in modern browsers man he didn't say so but he meant it okay that's okay let's go down okay there's an empty thing okay let's let's maybe create a index.html file and see what happens so now I'm in web mode whether world is quite nice it has like Google things for example if I don't remember how to write HTML I can add an HTML snippet and say UMAX image gallery and then that's really loud okay that totally works we want to get those images over there now comes for the fun part this is what I was building up to I can easily copy them over now because I can just say C for copy and then I can go down one no I cannot because there is no open bathroom here I copied them and then I say I want to copy it to the other buffer and then it copies all of those files over there quite nice will take a while because it's through the internet well notice nice web mode it should all use it if you have to do like any kind of web markup thing it's totally all so you can do code folding jumping around it's quite nice what mode okay so the copying is done and we still have already index file okay what's next what did I want to do actually I don't remember image these oh yes yes yes okay just for kicks I can do cool stuff now because now let's say I need a shell because I want to have a gallery here right so I probably need to have some list of file names or something I could only use direct for that but I wanna shop for stuff so let's use a shell shell is shell written in a lisp so it's 100% portable that's already nice so you've got the same shell on Windows Linux and Mac OS and other weird operating systems and now magically I'm in the right directory on this remote machine and no one's amazed I mean so if I say LS this is a remote machine right and I can totally copy stuff from my machine like home that's my machine and since it's a shell I can do everything that regular shells can do better can also write Lisp who knows what controls X and usually does that that actually does find file so I can totally say find file and it will open this file and a buffer is yes so I can do everything that I can do any Lisp and everything that I can do in the shell and even in a remote system okay so let's now get a list of all of those file names and of course I can totally do is do it like like with walk and then saying what print dollar for said like this I'm never assured I think maybe doesn't work yes No okay so it's not for it's one two three four or five six seven eight so it's me I should have counted I could totally do it like this but who remembers this I mean this is weird stuff this is totally weird so I should do it differently I'm still in text editor so I could just go up dinner and maybe like copy this stuff over here and go back to my index.html file and paste it there and I can totally scare the phone for that because I have a shortcut made for it this is a custom future okay now I can let's do let's let's go for a little more fun and I forget this again because this is super slow right who hates it if they have to write like markup and then go over to the browser and then reload right I mean the Sophie life but we're not doing closes we're doing old-school but still it should be better so what can I do I can actually start HTTP and at HTTP server within this remote thing that's quite awesome so now I have one port 8080 and I have something going for 8080 but this is still like with reloading so I can save stuff go over there reload this system good enough I can do one better I can start them all calm impatient mode because I'm an impatient guy and now I have this fun new namespace in and all of the things that I will be doing in here are totally life I don't even have to say and I'm just doing stuff okay if that's not playing like an instrument and I don't know okay so I want to do it those those things right so let's get them back let's go over here and copy them over here this is obviously wrong so let's go and do something magic because what does what does he make slacking text editor so someone wrote them in realest it's called evil mode for some weird reason and it's great I mean not that Emacs cannot do this but it's it's under this archaic Lee weird shortcut and for women so much easier and this is all life okay so stuff so who knows how to do a knee makes macro only two people okay amazing right okay finally something that you don't know thank you okay so have you ever had to do the same thing a couple of times cool stuff that's new and it tends to be done once so I have to do you know you guys seem a little right so I mean I did and I want to do a list right this I want to have a list of stuff so I wanna have a list of stuff right so I have to write Li around all of them and I kind of want to have a link to those images so that I can see them so I have to write a lot of code it sounds very bad and I have to do this for all of them so of course I can do copy paste or whatever or I can just do it once and then say please repeat it and that's what I'm going to do so I will say I want to start a new macro and I will write the Li tag jump to the end right the Li tank go to the one down and say my macros done and then I just repeated a couple of times and this is already quite good so we do all tag around that you all check around that and maybe give it some better spacing okay so this is already looking good but it's totally not pictures anymore right so something went wrong I need to like add some picture magic to that so I need to actually write an image tag and your same thing as very tedious I'll just do it once if I can type correctly typing in front of people is the worst I can never do it I think it's just here and it's in the same forum so now I know I have put myself into a bit of a pickle okay here we go down there don't you where did I start did I start here I forgot yes yes yes nice Tony works okay and now I just said repeats the last macro I just said II for repeat but if it would be a gazillion times I could just say one gazillion E and it would do it or I could say until there's an arrow because maybe I hit the end of the buffer or whatever right so those macros they are mighty powerful it's really amazing okay but now the gallery looks weird because all those pictures are too big this this doesn't work so let's add a little bit of styling let's maybe say those images they cannot be bigger than what like mix right or something yeah I said yeah maybe a little bigger I can't by the way who knows how to do this huh great increasing numbers is the best and then I don't want to have those dots those are totally ugly so it's not like I think this style this style who remembers no one remembers right so we need something better we need a mode that understand CSS or something I will be great so let's extract the CSS code out into its own file let's call it style.css yes this is only so slow because I'm doing it on a very remote machine it's true it could be faster if it would be local okay let's do some indentation magic okay and now I can say you are list-style-type while we notice all the stuff no well but it doesn't reload why because it didn't say this buffer should also be an impatient buffer so maybe I should do this and then also I didn't link it actually so who remembers how to do that I never like a link rel stylesheet' a lot of HTML and CSS in my regular job this is like just I tried to figure out the way how to present a lot of UNIX features with something that everyone is waiting familiar with I usually write code or emails this is what I do style.css okay now we've got some magic going ok let's start I'm not max height what else can we do maybe give it a margin of some pixels or something and maybe a quarter how does it work border two pixels or the black like ass bad of course and why does it not feel about is it not sure it really does because black is stupid although direct goldenrods that's a better color it totally does I'm so stupid in front of people that's amazing okay so it's a very image gallery let's make it by the way did you see how magically it shows me what color those colors are this is quite nice right so who knows what this color is mean obviously it's red and anywhere in emacs when typing any kind of color I can see what color it is it some color who knows how that mode is called because I forgot who knows how I can see all the modes that are active in my buffer super important because Emacs is self documenting alright so I say control H for help M for mode and now I can see all the glorious modes that are working in your auto complete auto composition all kinds of stuff and something probably is called rainbow mode color right strings that represent colors nice I forgot how it's called and I remember now I said control H for health and then I say M for mode yes this is actually super interesting because there's other kinds of self documentation that we will see by the way I totally lost all the good buffers that I had wouldn't it be good if I could go back to the like the composition where I had like the HTML file and the CSS file of course I can't say like whatever close this one and open the other one and then go down here and true index whatever this was already quite okay because there's good tooling but wouldn't it be better if finally the stack of all the things that I had open and I could go back and forth in any way that I wanted to wouldn't it be awesome like a cape goes forward and back this pretty test didn't work back and forth yes totally works this feature is called winter mode it's I think it's even built-in I'm not sure I forgot but I can check winner it's totally so it's totally built in have you ever had more than one window open or one more than one buffer open or more than one split open I assume yes and some people they like to use like the window managers to drag around windows and make them like stick nicely order I think that success you should have like a tiling window manager but even the tiling window manager sucks because say I do this and this and this and now I want to go back to the old configuration should they like me a stack that would be nice Emacs has that Lemax has a window mode index remembers all the configurations of left so I can go back okay so let's go yes Emacs web browser there is multiple ones of course one that I like to use is called there's also good like like good bookmarks like you could use read Hecker news for example very nicely for Integra news yes do you also hate it when you go to like an article and there's 40 gazillion pages tracking you and it does notes for eons here like if I spy stuff comprises like an amazing but if you open it in new max it's like instance because yes we told you can just look better yes yes and something is taking a long time it contacts the host for some reason ah this is because I'm using the life reloading feature there's like JavaScript embedded so it has like a JavaScript page that embeds my original page this is why this is the proper this is the proper version without JavaScript but if we reload here in this one except I copy this in here to totally work that's my image gallery huh totally works no 100% works I'm not saying you should look like a Flickr or whatever image but like honestly reading like news pages not really going into hacker news and then going to the by stage one two three okay this is very fast internet here and I have all kinds of ad blockers enabled I forgot I have on there so this can take like sometimes 30 seconds or whatever and there's like all kinds of ads embedded and in here it's just an instantaneous so where were I try to make an image gallery that didn't completely suck but let's continue with it's just sucking okay no one complained but I'm doing very unprofessional stuff here I'm writing code on a remote server and it's not even in revision control why did no one say you totally suck we should put this stuff under water control right I mean I think it's totally all right to once in a while open a file that I'm doing a lot of coding configuration files totally is a thing so let's make this a good thing let's call magic in it which runs and get in it it asks me whether you want the repository and I say yes please in this directory all kinds of untracked files and so let's add a couple of them or maybe just that and all of them this is probably faster this would all be instantaneous if it would be on my machine I took the wrong files they are big so nice takes all clients and I can say this is committed or something this is really slow because it's on the remote machine hopefully like honestly on my machine it's all instantaneous so probably we should switch back why is it loading loading by the way if you've got if you are stuck in like a recursive saying a thing or something who knows how to go and make that skin will go away if it's like a deco like if Emacs get stuck what do you do yes ctrl G that's the one yes so I could totally control G this and have this all staged this is too much let's just stage the index file for the moment because it's remote in one and let's make a commit out of that so what's happening come in please Queens yes opening a remote file bedroom none this is still very slow what's happening on my machine if randomly reboots doesn't work this is true why did you copy the whole thing to your machine yeah and I totally should do this let's do this this is so much smarter I mean I mean honestly you should never like do development on a remote machine I never do it I just thought this would be like a nice gimmick but obviously I kind of fell off with the nice Caymans let's copy it to temp where it belongs yes recursive copy of that it's not a very playful gallery so far okay so let's go to temp and do something there thanks for the good suggestion this is a very good suggestion okay let's call mega doing it here then I can stage all the things I can totally commit at it's instant it's really the best thing since revision control like get within Unix I can see all the regular things and I can say like initial comments okay it's really nice you can do everything you can like Mars you can push you can rebase you can diff different branches you can narrow down and see only specific limits it's instant for everything it's really nice let's maybe a duel small change because we don't have links to the images yet I want to be able to click to them and see the full width this will be the end of my web demo but let's see you make it once in action nicely so we'll kind of do the same thing maybe I first have to kill that HTTP over now and then start it again yes and then say impatient mode because there's a new directory now right forbidden forbidden let's make it different let's just open it without external - let's open it from you there we go because life reloading that's five minutes ago no it's only about make it okay I want to have some links for this so again let's make a macro and say I want to have like an a eh ref that's going somewhere and this is now I have to focus oh no no this is much better in like this of course then go back copy it in there go back do it like this hopefully not defining the Metro okay so exhausted hey Trev okay so it doesn't really matter so I'm doing some changes to this machine - and let's leave this one out here as well and then add something up here or something now we get shows me all the changes that I did in a nice manner who sometimes has to do a patch commit and get we know the patch commit is yes sometimes like most people just say like get and talks or something and everything and it's totally proper but sometimes I want to make I made two different things and I want to make like a semantic commit and sometimes I even to semantically different things in one file so I probably just want to stage this because I totally wanted to get it down this I don't know who typed a DF so we should get rid of that and kill us discard funk and now we have staged just those changes quite nice and of course I can commit this as well some that's it okay so there is my peeps remote editing life editing oh yes yes I also want to show something else if you completely up but sometimes they do you probably know that undo feature but who knows undo tree three people for I know who that doesn't come so one more magical feature of Emacs because undo usually is a undo but sometimes you do something and it's wrong you go back then you do something new it's kind of a new branch and then you realize the only way I wanted to go back but you can't then he makes it all you can because you've got a new tree and it actually shows you a tree and I didn't do a whole lot of different things but I can totally switch between the different branches quite nice Andrew tree I think it's built in as well so I showed that yes I could totally do other things as well but let's leave that out I did this I did this I did this okay let's go back to our small little project what was it called it was called an important customer I know where it is it's down here we can afford to take a your agenda yes I could totally have check my agenda you're so right yes thanks very much I could also have checked my gift for by the way because uh it's there and they can jump to this change there's so many ways that I didn't figure I do okay so we already did a couple of those things we like fine found it makes related pictures yeah we totally copied them to a server we created a gallery and we already deployed all of those things are done okay so this is all quite nice but what I really know it is a different workflow because who knows technique a couple yes the Pomodoro took me for the three people who don't know it if you work for 25 minutes on something very intensely focused and then you've got like a five minute break just like off and read hacker news or your favorite Emacs blog and I really need to have Pomodoro who have any max so let's write it let's write some Emacs Lisp wouldn't it be great if I like had a timer that starts at 25 minutes every time that I start a new claw in Emacs that would be nice right I mean I would like it who knows how to do that ok perfect thanks this is ready this is an important part because Emacs has lots of great functionality and there's lots of good libraries and you can install other libraries but you cannot only write your own life is you can extend the other ones and it's so much easier than usually because I mean how do you usually extend other people's stuff you got to download the repository read all their code understand it compile it change something and then use that thing on your machine and you kind of fork the whole thing but now I just want to make a small amendment I want to say well when I clock in here I want to see a timer down there this is like another major change I shouldn't have to go to like org-mode for a Gore mode build this one feature and then use my fork off or this is weird and I don't have to do it because team X is not only in this that I can change at runtime it's also completely event oriented and I would bet that because it's a well maintained library throws a specific hook when I go into this maybe it doesn't if it doesn't I can still change it but maybe it has a hook so first things first I want to change what happens when I clock in who knows what happens when I plug in who knows how to figure out what happens underneath a keystroke this is one of the coolest features of Emacs because it's not random you know stuffs yes please we press ctrl H yeah okay maybe I would have C but let's try ctrl H K and then you press the key this is very much very very similar let's let's figure out what that does control it ready see control HK this runs described here okay and my shortcut would have run described briefly okay perfect answer so one of the coolest things there's lots of cool tools out there and I'm like IntelliJ but you cannot like change anything and you don't know what happens underneath every menu right there is like the application and there is an interface to them and they are completely disjunct not so analyst right in the list you can change everything you can see everything so here I want to know what happens when I actually plug in so I say ctrl H K because I just learned that I would have said control HC and now it asks me to describe the key which means I just type what I should have typed in anyway which is control C control xi4 locking it and now it says okay it runs the command or clock in which is a regular list function which I could also call like this by the way that I have this nice fuzzy matching here down there this is called smacks it's a very nice and I don't know it's max and either mode okay it also tells me this function or o'clock in is defined in Oracle lock and now I am totally at the place where overclocking is defined and I could totally read all of this code and but I will make it a little quicker like I said Emacs Lisp is event oriented and those events are called hooks in Emacs so I would imagine that when I clock in the org people they made a hook for that so that I can add more code some clock in book there is totally one I could have read the function right but it's like 50 lines of code so I discarded it okay so I wanna add my code to this hook it's like it ments right everyone was a mentor Ranger program like in JavaScript observe event post something okay where do I write new code of course in scratch right I can just type of random stuff okay so adding books is he it's called Hansel then my book is called or clock in so nice I have like Auto completion and everything through a nice library for autocomplete and I have document strings if this is the nicest language than the doula and I want to add something so I want to add that runs my cold but I don't know yours what code I want to run I want to have a timer okay so maybe we can test it would like a message for us or something that's a massive shot this works this size would work let's evaluate that let's go to the things and clock into this task and we get this message this works okay so far so good so now we know how to add cold through an event but I'm going to change to a timer and hopefully you know which kind of functions I can find within my system because I mean I can build the time for myself but maybe someone came along and already did that how do I find functions probably find functions inside or how do I know what closure can do because I mean it's a list friend so there's a gazillion functions and two data structures functions I don't so Emacs s is function as a control age a if I type it correctly control H a and now I can search for a regular expression through the document string and the function name so I'll just try it or a timer or something and there it is but I could also just have searched for timer it's not like too many and there's a timer and there is like an or except timer and it says from for duration set the timer so maybe let's try that one out quickly or sad timers or what is it called or crying or set timer first timers obviously 25 or something how many minutes left notice is not right how do we do it correctly I forgot to set that's not in quotes of course yes of course so this function only runs within but it seems to kind of work so that's control please let's add it here let's get rid of the message okay you don't get that again go back to the things and then clock in again and now we have a very big problem because the Beamer or the thing is not big enough there's no stuff down here on the very right I promise you it's event oriented programming so I totally promise you there is a there is a timer okay and now even if there wouldn't have been a hook you can totally always advise a function so you probably know the dynamic languages sometimes you can do like man monkey-patching or something right or freedom fetching as we like to call it you can go so much further you cannot just like reopen the namespace and rewrite stuff no for every single function that you call you can say a wall right code that runs before it after it within it replace it you can do anything it's called advising a function that's I'll just show you although I can't really you can't really use Google hi sis we told you should do it in UNIX because I shouldn't use the browser at all because we should ask the manual because Emacs not only describes all the emails features it also includes a manual for writing Emacs Lisp it's the best book written on this so I say control age and then I have max list makes less speed less times evaluation totally through that I didn't prepare food and some somewhere it says advising functions for example say for this function this is the function that exists and I want to edit code before this function and it's totally think I'm totally doing this in my projects for example I when this type stuff I won't have spell checking yes this is not a properly written word I have spell checking in here by the way stuff I spell and a spell and what else does it use fly spell a spell and I spell is a Linux thing and then fly spell is the Emacs wrapper around them and now this these things kind of have a small bug because if I if I add something to the dictionary it will completely all of the spell checking on this buffer so it finally had like weird words in this review this would be like a wrong word and I have it like twice and I entered this to my dictionary then this would still show up as wrong usually but I advised the function that when I added to my dictionary that it just reruns the thing so at minus function advice here it's just this much code by the way this is totally good and readable do not on speck in a spell checking information after adding one word to it for some dictionary it nice to recheck blah blah again this totally works on guitar 3 max don't even have to go through this page yeah nice so this is documentation and this is code this is actually the real code I said okay well I want to advise the I spell px a function and after it has run I want to run my function which just says okay while spell check the buffer again easy thing but it's totally awesome because before it was freaking me out doesn't advising a function cool stuff by the way can you see this is my this is really my this is really my configuration it's just text in org-mode that can also evaluate itself it's quite nice okay so we didn't let's go back to the tasks yes let's go back to the tasks and Martinez done yes okay so let's and it's fine yes let's maybe write an answer to the customer or what's the next thing yes let's maybe a write a mail to the customer where did it go what this is this is probably due to the fact that my machine died this is not this doesn't happen usually just I changed a lot in my mail configuration last week it's not a smart thing to do just before where is it it's not here but it's still here but why did I delete it before by accident because as you can see I tried a couple of things those are old males okay so I'm using org-mode for this thing since three years and honestly I've never lost a link this is the first time I really don't know what happened - so let's reply to that guy and say all finished okay so we control you also send emails back okay and that's the next thing okay we wanna make a clock report all right so no I never tracked some time in here I totally tracked some time in here and I want to see how much so let's see it's probably not too much because I stopped all my timers before but let's cheat a little and say well I work on this longer ok 29 minutes let's make a crop report for that now I have a nice little table that says okay while I worked on this for so long ok that's quite all right but I want to have like a better table that says on which tasks to divert who how long and how much money did I earn I can totally do this by changing the metadata of the generation of this clock table and I can quickly steal one that I'm regularly using which is an ultimate it's down here so yes deputies so I can edit x-ray to the project as like metadata let's make it here let's say I want to run the clock on here and I can give all kinds of this didn't work sort of being up here yes okay so now I have a table that is very nice I can say how many levels down do I want to go this should only work for the subtree of this not for my whole things file I can set when should it start when should it end run I can totally move through here or completely change it out for some other date and go somewhere right totally works this is very important when building customers right like someone I have like weeklies or whatever I can do other stuff I can say I actually want this stuff indented so I can see what are the subtasks that were done here which are tasks that are underneath under tasks I can say as a daily step so I can edit like - a time tracking system or my customer if they have something right I mean this is like a daily report now between the 30th of March until the end of time so that's not your step day and I can totally say how much money I'm learning on this so that's not maybe it's Lisp so it should have a better okay so I learned at least a hundred bucks he goes 29 minutes okay so far so good but it should be a bill now right this is all text within Emacs I can totally see this and make it I want to have this now as a proper table that I can add like to a let tank letter or something we have tooling for that that automates the whole thing so we have very pretty things but let me show it or you could do it manually so I can export every horrible buffer into different formats I can export it to I calendar for all those appointments that I have I can export it to HTML tag plain text you can expand on that and now I just want to have like an attack statement because who has ever written in the tank a table who remembers how to do it okay I totally don't so what I do is I export this file not into a PDF file I just want to export it into a buffer that has latekka code so it can copy paste it into my letter so let's export it into a latech buffer I am totally blind okay so now we have a buffer there's all kinds of stuff and somewhere it has a table in there nice so I can totally copy/paste this table yes yes I totally do this a lot if I'm in who has to write the tables in markdown sometimes this sucks like I should go to like a project of the customer say huge documentation is all in markdown and they have they have lots of tables and they told me they don't align the text right so they probably use some tool for that and it looks right on keeps happening when you open it in the editor it sucks let's quickly do this because it's such great information like let's create a markdown file and this is totally totally marked on I write a lot of markdown and other projects now let's have like a table write the disa snack I don't know bar it's like I don't even know how it's so hard but you can use the ORAC table the mode like not org-mode but the or table mode and it's awesome now I can totally say like what H name name H something and I should take care of types I apologize my name is someone ages 18 or whatever right and the only thing you have to remember because it's actually actually Oryx it's actually marked on I think you have to do this if you want to export it so that it looks nice on github because github has a different notion of how tables should work but this is an easy change and you can do all the cool stuff like sum up columns do all kinds of formulas when it because it's all it's totally or not right okay but let's say I can take this table out and I could bring it to an attack buffer but I'll spare you the details that's a trivia atropine invoice huh let's assume I made the invoice man it's boring everyone knows the text so it's not cool I think we did a lot of work right so we should say okay inform the customer we are done I have sent him an email and virtually I wrote the bill so we should like enjoy a little how should we enjoy him maybe we should like read some news there is a there is this notion that RSS is dead because this bad company the Google shows their reader but I mean who cares because I mean XS I think 3 newsreaders built-in and I'm using a fourth one it's a perfect so this is called an elf eat I can totally read my news it's again totally search driven so this is my default search in the last six months ago which is unread but I can totally do something announced or I can search what is this weird company you're doing and I can see all kinds of good stuff there incubator s and whatnot it's perfect now so reading news and Emacs is a thing we already did some browsing in Emacs that's good as well ok so who's up for some coding I think we did enough project management for a while maybe we should do some coding right okay so Emacs is not only good for Emacs Lisp it's totally good for every language except the bad ones right Java or C sharp and E max but I actually write a lot of Ruby and JavaScript and for any mix and this different like I tried hair scalp and it works again it's better than you mixed another way so let's write some JavaScript and let's open a javascript file somewhere 10 days or something ok it we should have like a ripple feeling in JavaScript as well this will be sweet and we told it can I can say run deus and run deus gives me a rattle okay that's quite nice but I can also do these kinds of things and say I wanna like calculate this this is quite nice right so we have all kinds of good stuff in here like if type stuff and it's all wrong then says okay you probably should add like braces I told it it no it doesn't complain anymore this is nice so who knows how people that she works tests right so people not she says people not she's recursive and it's always you give it a number and the result of people not she is either 0 or 1 if it's smaller than true so if n actually smaller than true just return n if you do your stuff like this it will tell you for example this code has no side effects so there's all kinds of goodness in there we can try this did I do this correctly did I save it what's wrong yes now I have that people not G function available we can say it fib of 2 and run this and it's solely to right okay if an but and should be smaller than 2 if n is smaller than to return it otherwise to something else return hey I can never make those races in the right spot it's so bad okay okay it's a novelty Pollachi function and we can totally run into it like something bigger it's totally sevenths fine didn't evaluators properly why doesn't it we have to say I think I have to serve yes not reevaluated it and it's 13 Fibonacci of 7 is 13 you can go to Wikipedia and check it so the truth so you can totally believe me and it's so cool so it also has like dog strings and whatever dog strings to strings so if I'm on know what this the dog string of this I can totally see its dog strings what the doc string is rock strings you follow me it's very meta I can totally jump to the definition of Fibonacci which is trivial right now because it's in the same file but it will also go to other classes it will even go to stuff in your not marios order you can do all the regular things it's quite nice ok so let's do the same thing in Ruby well that's program Ruby same thing I wanna have like Ruby let's do it differently let's go to a real rails project like not like this gimmicky thing there is a nice little company present right here and called quick shift they are making a good product and let's look at something with it I'll say I will go I said I will look in the shift did you see you know I deeply nested myself into this project right I'm very far away from attempt folder where just was and now I'm in this file and there's all kinds of stuff wrong in it for us onto this line you looks very wrong it's very red and it helps me with that ok someone is not really doing a dramatic Reuben so firstly if you go there in space before first block parameter detected so if you don't know Ruby what I'm doing here is like I call an anonymous function is called a block in Ruby for make this go away then one less error message but they still are no messages and if you know you know you shouldn't like give the block to map you should call the truck on the thing that you want to do so what I'm doing here it's like we have some data for a week and I just wanna match the IDS outright like a filter so you do this differently Ruby and it says how to do it it says pass and percent : parent ID as argument to map instead of a block it says in which code I should write if I do exactly what it says parent ID and I give it some quotes and delete this then mismatch parentheses then my error goes away so it's it's magic so I didn't even start a record yet this is just a very small interval program in the background called Robocop again by the sample sit on our butts off guy who gives us all kinds of code Ruby and Heelys and rows of things he is amazing I met him once okay yes so all kinds of stuff okay so you've got these things down so let's again write our Fibonacci like again back to the I can again do all these cool things I can like jump to definitions but I can't because it needs Ruby running for that okay Nancy yeah of course if you know rails you know rails can run in different environments like development testing and production so it's now on a running development now I have a real not only Ruby I have a real race rebel running in the background and then I can all kinds of things I can say I want to know what is focus and then I actually jump into core rails code this is not our code this is like the library that were using and then if i won what does extend - aunt sassy method okay well okay it just can give me the documentation of this the C methods cannot really show me the seeker because that's compiled but I could do other stuff I could say okay what's the current scope whatever it can jump back to where where I came from right the regular meta dot the same as in Snyder and drill down the rabbit hole go back you can do anything okay so I will not write the Fibonacci because I kind of thought showed everything already you can do the doc string lookups you can totally do this you can jump to definition you can evaluate stuff this is totally evaluatable if I run I always forget I don't know why they call them differently in food processor touched here and I can totally run Ruby code no such process this is still starting my Ruby is still starting maybe because I'm running a rails process and the same he makes already this is probably overkill I'm already running and a lisp raffle a JavaScript rattle and rails reference I may need a ruby rattle doesn't work but if I kill out the other one Rove or what is it call rails if I can't kill this one then maybe this will work totally makes sense right you can only have one we process in your email okay I can live with that and I can totally do things right one plus one is two and it's Ruby okay the last thing let's do some closure okay for this I will go into an existing awesome plural project our website static site generator I will start at this prep Oh insider this will now connect to the repple are you are using cider already because then I don't who doesn't use cider okay at least three people that's good so now I have a real record running but within Emacs I can do regular things in the ruffle I have so many ruffles here I can move things right but I can also do it like in a file like this and then some like demo will see okay or something no there's already some stuff in there you should get rid of that I can't evaluate that I can evaluate that and I can write some code and what can I can figure out like if I had like list of stuff and I don't know how to make this distinct I can search for stuff do you remember how I search for an eel is function here I can do anything I can search with a regular expression for all the list functions I can say for example distinct it's a super boring example because it's actually called distinct but it searches through the doc string and the function name so if you can come up with a better example it works I'm coming up with it because distinct and distinct question mark are something that are sometimes get it wrong so distinct on this totally works but if I run this thing question or I get told it doesn't work right because I gave it one argument and here it says return true if the arguments are ok so that totally makes sense it should be like arguments ok so let's do a little more complicated coding that's again right and if you're gonna cheat your function it should take something like this and I'm doing it in the worst possible way like regular recursive no fancy stuff because I'm showing not how to write good closure and I'm showing how to use Emacs insider yes so if and it's smaller than true return n and otherwise please return people not G of I can't type anymore this is Fibonacci of n plus 1 right it's - thanks it's - okay so let's do this time I was to do this and then figure out is it still 13 totally still 13 okay so far nothing totally awesome but again I can look at the TOC strengths for example if this had some drawstring and I wanted to know it I can totally totally see it talk for a few Bonacci is sundog string right I can totally again jump to the definition which again is boring because it's in the same thing but if it would be for example distinct and I can again go down here now I'm call closure code I can further down what does actually contains - because who remembers contains so beard okay and now for one of the coolest things something that even the other nice IDE soldier doesn't do this refactoring if you want to export extract the function I hear that curseth cannot do it and it's a true not yet right and decider does it like sense forever because what CDR is the best so if I wanted to because this is this is very complicated code right this should be its own function let's agree on that I can extract it to a function and let quality algorithm or something just works there's like a gazillion different refactoring tools available like put stuff in the maps everything testers gazillions of things for that okay I think that was about it for the demo of closure right so if you want to know more there check out cider and cider and flow to refactor the refactoring is actually closer refactor but wrapper things is actually cider okay so let's go back to that and maybe I have some more slides they should be open but yeah i was playing PDF plane for work okay so i skipped all of the things that we already so yes yes yes okay conclusion so what i want to get to is the following there's so many things that we can see and learn as developers and it's kind of crazy so this is a quote that empowered phrasing from the diamond sutra perfect wisdom very old ancient texts and it goes like this developers if there were as many ganges river says the numbers of grains of sand in the ganges like this river random the river would you say that the numbers of grains of sand and all those changes rivers will be very many to be very many right very many indeed developers if after studying and observing even a single function of Emacs Lisp another process over to explain it to others the happiness and merit of that would result that would result from this virtuous that could be far greater and it's it's very true because well most work on the computer is done is at the text processing or consumption of text right so if you don't have a generic tool they can actually do this well then it's either like if you were a carpenter that doesn't have a hammer or you only have it a 3d printer right four videos new tools like IntelliJ they can do amazing things right but one thing is they change all the time what it used to be eclipsed than it used to be NetBeans those things change all the time you lose all the knowledge you cannot change them and you can only use them for a couple of things so it maybe can use it very nicely for Java but then you wanted to see sharp but then you were gone so you should have some knowledge of some deep down paradigm so if I would say like probably wouldn't because I'm paraphrasing wrong but he would say phenomena are infinite and you shouldn't change them right because you cannot you can never catch them there's so much new stuff coming out all the time you cannot keep up I'm not saying that new stuff is bad I'm not saying this it's the only Holy Grail not at all but what I'm saying is you should try to figure out what's the core paradigm of the thing that you like doing and you should get yourself familiar with this there's like this Zen proverb that says the tiger bites the thrower the dog chases to my paw so imagine a guy throwing him up all right the dog would always chase behind but you would never go to the source and the tiger would immediately jump me and crush me he would immediately get it done so the thing is go from the outside move the focus from the outside from all the things that you could do or try and learn to the inside and figure out what is actually the core of the thing that I wanna do so in conclusion what is MX it's a lisp revell and this makes it magical because you can't do anything with it it's not documenting you saw that I never had to actually look up something in the manual I can just check out what is Linux doing and you can change the behavior it can be drastically changed many of those tools that I have shown you are not built-in and remix there are libraries that people wrote so to me he makes extras like the Swiss Army knife but not of text processors or text editors actually of programs it's the thing that I'm spending most of my time in and not because I have to or whatever but it turns out that the older I get that I realize okay I'm being more efficient if I'm using this tool which I understand which I can change which runs which only runs on text that I can put in revision control it's all paradigms that I can completely grasp and continue to use over the years it's a little bit like that okay so in conclusion I would say it comes with practice and this is not to say that I did something great here this is to say if you're learning a tool like IntelliJ you can click the one button and it's very complex and it's doing the one thing perfectly great but then it doesn't work anymore or you need to do a different language and then you're just stuck right I'm teaching young people and they sometimes they like don't understand the difference between Java the compiler the text editor their computer and operating system it's just one thing and you got to be able to like split them out a little bit so if you have a tool that you can continue to use you can actually become virtuous over time which is nice because it's our job to be able to do what nice things okay so further reading for you if you're interested would be to read the emails tutorial control HT or remakes manual control eh alright or in the info manuals I didn't even mention that control h1 the way is incredible because your computer if you have if you have a UNIX or Linux then you actually have info manuals and if you want to learn what your computer can do this is the best way to go because all the info manuals or all your open for the whole operating system are in there so it's not only Emacs it actually can show you everything so if you want to learn crazy stuff like for RTL or other stuff like what's base64 core OTO can do awesome stuff I'm using it all the time you can just read it with in Emacs okay if you're interested in some of those tools the core tools that I've shown you is or node for all the organization time tracking reporting project management creating of these slides for example or books anything and make it for agate and movie 444 and maze and then this is website that sometimes also writes nice stuff about Emacs yes okay so I would say give yourself a chance use Emacs if you like the talk you can totally head over to my configuration and steal some things a couple of people fork that or just copied some data out of there there's other good examples out there of course both sit our butts off has a good one for example don't use space snacks or something because that's again is a very complex piece comes very pre-configured changes all kinds of defaults not saying it's bad but it kind of goes against the spirit of the talk if you're a good user and you want to change quickly it took me just half I actually did win for like 14 years and it took me half an hour to switch to Emacs because I only had to figure out how to install evil mode I don't need to install space magazines you don't yes if you really like that you totally can for the star on the repo okay that's it how long did it take to like this [Music] my to-do say we have to go and have a beer yeah and I assume there are no questions which can't be discussed over this if someone's leaving thanks for coming
Info
Channel: Alain M. Lafon
Views: 29,684
Rating: 4.890625 out of 5
Keywords: emacs, clojure, ruby, javascript, elisp, org-mode, org, inf-ruby, mu4e, mu, pdf-tools, magit, eww, cider, clojure-refactor, dired, tramp, ssh, gnu, impatient-mode, evil-mode, evil, undo-tree, event-orientation, event-oriented, elisp-hook, clock-report, repl
Id: gfZDwYeBlO4
Channel Id: undefined
Length: 111min 38sec (6698 seconds)
Published: Fri Apr 27 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.