From b7ff77b1b3cd271944661d6adfeed4b9ccdc8a10 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sat, 3 Dec 2022 14:16:25 -0500 Subject: Add captions --- 2022/info/realestate-after.md | 584 +++++++++++++++++++++++++++++++++++++++++ 2022/info/realestate-before.md | 31 ++- 2 files changed, 614 insertions(+), 1 deletion(-) (limited to '2022/info') diff --git a/2022/info/realestate-after.md b/2022/info/realestate-after.md index 4375089a..911020e8 100644 --- a/2022/info/realestate-after.md +++ b/2022/info/realestate-after.md @@ -1,6 +1,590 @@ + +# Transcript + +[[!template new="1" text="Hey, I'm Gopar and this is the" start="00:00:00.000" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Real Estate and Org Mode Table Formulas talk." start="00:00:05.454" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Not very creative, but it is what it is." start="00:00:07.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Now I just want to say that everything I talk about here" start="00:00:09.880" video="mainVideo-realestate" id="subtitle"]] +[[!template text="is in the Org Mode in the Emacs manual." start="00:00:13.052" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I posted a link to the web version," start="00:00:15.903" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but it should be inside of Emacs as well." start="00:00:17.910" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="Now before I start, I want to showcase the end goal." start="00:00:20.480" video="mainVideo-realestate" id="subtitle"]] +[[!template text="That way you know if you guys want to" start="00:00:25.097" video="mainVideo-realestate" id="subtitle"]] +[[!template text="actually see the talk or not." start="00:00:26.807" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So I always think that's pretty cool to see" start="00:00:28.740" video="mainVideo-realestate" id="subtitle"]] +[[!template text="what you're actually going to build" start="00:00:30.492" video="mainVideo-realestate" id="subtitle"]] +[[!template text="before you start building it." start="00:00:31.518" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Alright. So let me start off with the goal," start="00:00:32.680" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the end goal. Here we have a simple table formula" start="00:00:34.286" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and we have some constants, some values inside the list--" start="00:00:38.763" video="mainVideo-realestate" id="subtitle"]] +[[!template text="inside the table, I'm sorry," start="00:00:42.614" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and some other stuff that we will get to," start="00:00:44.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but for now... I don't want to spoil too much." start="00:00:47.673" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I just want to give you a demo" start="00:00:49.280" video="mainVideo-realestate" id="subtitle"]] +[[!template text="of how it actually works." start="00:00:50.328" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="We have a few values. Let me first go over the constants." start="00:00:51.800" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We have PMI, which stands for" start="00:00:56.095" video="mainVideo-realestate" id="subtitle"]] +[[!template text="private mortgage insurance," start="00:00:57.582" video="mainVideo-realestate" id="subtitle"]] +[[!template text="so it's insurance that you'll have to pay" start="00:00:57.591" video="mainVideo-realestate" id="subtitle"]] +[[!template text="depending on how much money you put into the deal." start="00:01:00.537" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The property tax, which is self-explanatory," start="00:01:03.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the tax that you owe for owning the property," start="00:01:06.068" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then home insurance," start="00:01:09.317" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and the interest rate at the loan that you get." start="00:01:11.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, here we have a few columns." start="00:01:13.440" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The first one is called House," start="00:01:15.667" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which I usually just put a description of the house" start="00:01:17.412" video="mainVideo-realestate" id="subtitle"]] +[[!template text="with the link of the posting," start="00:01:20.624" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the price of the house," start="00:01:21.127" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the percentage down payment (this I play around with" start="00:01:22.494" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to see how much the deal will be structured)," start="00:01:26.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the down payment (which is calculated from" start="00:01:27.474" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the previous two columns)," start="00:01:30.529" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the monthly mortgage (which is calculated as well)," start="00:01:31.755" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then the tenant income (which is what I suppose" start="00:01:34.145" video="mainVideo-realestate" id="subtitle"]] +[[!template text="would be an example of the tenant income" start="00:01:37.996" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that I can potentially make off the property," start="00:01:41.006" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the 1% rule and the ROI." start="00:01:42.753" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I'll quickly go over the last two columns." start="00:01:45.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So first is the 1% rule." start="00:01:47.708" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The 1% rule is essentially" start="00:01:49.300" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a "rule," in quotes, that says that" start="00:01:50.880" video="mainVideo-realestate" id="subtitle"]] +[[!template text="if a property matches this specific formula," start="00:01:53.589" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it is a good deal to look into." start="00:01:56.278" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So for example, the first two pass," start="00:01:58.320" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and the last one does not pass." start="00:02:00.890" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The last one, at a quick glance," start="00:02:02.677" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we can just ignore it and say," start="00:02:04.105" video="mainVideo-realestate" id="subtitle"]] +[[!template text=""hey, that's not going to fly,"" start="00:02:05.472" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we'll just ignore it." start="00:02:06.477" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I won't go too much into details." start="00:02:08.000" video="mainVideo-realestate" id="subtitle"]] +[[!template text="That's just a brief summary." start="00:02:09.891" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So now the ROI is the return on investment." start="00:02:11.520" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So it says "how much of a return am I getting" start="00:02:14.149" video="mainVideo-realestate" id="subtitle"]] +[[!template text="on the amount that I invested?"" start="00:02:17.600" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's say you put in $12,000," start="00:02:18.960" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and at the end of the year, you cashflow $6,000." start="00:02:21.168" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So if you calculate the ROI off of that," start="00:02:23.456" video="mainVideo-realestate" id="subtitle"]] +[[!template text="you get a 50% return on investment." start="00:02:26.127" video="mainVideo-realestate" id="subtitle"]] +[[!template text="In two years, you'll make your money back," start="00:02:28.477" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is pretty good." start="00:02:30.086" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Then all the rest of the years," start="00:02:31.734" video="mainVideo-realestate" id="subtitle"]] +[[!template text="you'll just slowly be reaping in all that," start="00:02:32.719" video="mainVideo-realestate" id="subtitle"]] +[[!template text="all the excess cash flow." start="00:02:34.348" video="mainVideo-realestate" id="subtitle"]] +[[!template text="But yeah, that's it in a nutshell." start="00:02:36.640" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So let me demo it real quick." start="00:02:40.040" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So for example, I'm going to change the down payment," start="00:02:42.270" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but I want you to pay attention" start="00:02:44.259" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to this column [down payment]" start="00:02:45.745" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and the monthly mortgage column." start="00:02:48.214" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So right here [down payment] is $25,000," start="00:02:49.840" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and here [monthly mortgage] is around $1,200," start="00:02:51.727" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a little under $1,300." start="00:02:53.473" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So what happens if I say, you know," start="00:02:55.180" video="mainVideo-realestate" id="subtitle"]] +[[!template text="what I'm going to change the down payment" start="00:02:57.350" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to 5% instead, because I just" start="00:02:58.796" video="mainVideo-realestate" id="subtitle"]] +[[!template text="don't want to put 10." start="00:03:00.949" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's just put say 5." start="00:03:02.560" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Then I tab out of here, and voila -" start="00:03:04.126" video="mainVideo-realestate" id="subtitle"]] +[[!template text="you see it updated to half of $25,000." start="00:03:06.275" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So now it's $12,000," start="00:03:08.523" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and this [monthly mortgage] went up" start="00:03:09.947" video="mainVideo-realestate" id="subtitle"]] +[[!template text="over actually $1,300," start="00:03:10.690" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then this [1% rule] hasn't changed at all" start="00:03:12.234" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and the ROI is there." start="00:03:14.784" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So one thing that I should mention is" start="00:03:17.680" video="mainVideo-realestate" id="subtitle"]] +[[!template text="everything that I'm putting here" start="00:03:19.148" video="mainVideo-realestate" id="subtitle"]] +[[!template text="is just example numbers," start="00:03:20.194" video="mainVideo-realestate" id="subtitle"]] +[[!template text="should not be taken into literal real estate advice." start="00:03:21.280" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I just want to put that out there." start="00:03:25.635" video="mainVideo-realestate" id="subtitle"]] +[[!template text="These are just examples to show you" start="00:03:26.860" video="mainVideo-realestate" id="subtitle"]] +[[!template text="how you can potentially make it on your own," start="00:03:28.368" video="mainVideo-realestate" id="subtitle"]] +[[!template text="do the formulas on your own." start="00:03:30.520" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="Alright, so another cool thing that I did was" start="00:03:32.240" video="mainVideo-realestate" id="subtitle"]] +[[!template text="if there is no tenant income and I tab," start="00:03:35.651" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it says "Enter Tenant Income"." start="00:03:37.738" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So if I don't put anything," start="00:03:40.049" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it will automatically tell me, hey," start="00:03:41.033" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I can't calculate without the tenant income." start="00:03:42.400" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I can also do this right here [ROI field]," start="00:03:44.920" video="mainVideo-realestate" id="subtitle"]] +[[!template text="say the same thing, Enter Tenant Income," start="00:03:46.608" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but I just didn't put it for whatever reason, but" start="00:03:48.476" video="mainVideo-realestate" id="subtitle"]] +[[!template text="after this video, you should be easily able to" start="00:03:50.564" video="mainVideo-realestate" id="subtitle"]] +[[!template text="put it without much struggle." start="00:03:53.813" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Alright, so if that's something you're interested in," start="00:03:57.400" video="mainVideo-realestate" id="subtitle"]] +[[!template text="then keep watching." start="00:04:00.131" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So let's go over the basics first." start="00:04:02.240" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, how do we create a table?" start="00:04:05.240" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, we can do M-x org-table-create." start="00:04:07.400" video="mainVideo-realestate" id="subtitle"]] +[[!template text="If we run that it, will prompt us in a minibuffer." start="00:04:10.369" video="mainVideo-realestate" id="subtitle"]] +[[!template text="It says table size, columns times row." start="00:04:14.302" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Usually it's rows times columns," start="00:04:16.893" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but it is what it is." start="00:04:18.178" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's just leave" start="00:04:19.602" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the default of 5 times 2, and voila, we get this." start="00:04:20.466" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Beautiful. Awesome." start="00:04:24.960" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So the other way is using the magical C-c C-c" start="00:04:26.400" video="mainVideo-realestate" id="subtitle"]] +[[!template text="in Org Mode, which basically is context-aware" start="00:04:29.511" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and does anything, does the right thing like," start="00:04:32.402" video="mainVideo-realestate" id="subtitle"]] +[[!template text="almost 100% of the time, which is pretty amazing." start="00:04:36.054" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Alright, let's just say I write a pipe, some words," start="00:04:38.600" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then another pipe, Gopar, and then" start="00:04:42.432" video="mainVideo-realestate" id="subtitle"]] +[[!template text="another pipe. Let's just say we're trying to" start="00:04:44.680" video="mainVideo-realestate" id="subtitle"]] +[[!template text="write it out via text, because in Org mode" start="00:04:47.269" video="mainVideo-realestate" id="subtitle"]] +[[!template text="everything has text." start="00:04:50.600" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There's nothing fancy about it." start="00:04:51.547" video="mainVideo-realestate" id="subtitle"]] +[[!template text="If I do C-c C-c, Org mode should automatically be" start="00:04:53.380" video="mainVideo-realestate" id="subtitle"]] +[[!template text="context-aware that this area is a table." start="00:04:57.673" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, C-c C-c, boom. So if I press enter, another column." start="00:04:59.840" video="mainVideo-realestate" id="subtitle"]] +[[!template text="If I press tab, it should automatically move me." start="00:05:04.295" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So yeah, so that's pretty much it." start="00:05:06.964" video="mainVideo-realestate" id="subtitle"]] +[[!template text="That's how you get started into the column." start="00:05:09.392" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, I'm assuming most of the people here already know that." start="00:05:11.920" video="mainVideo-realestate" id="subtitle"]] +[[!template text="This is just the primary basic review." start="00:05:15.592" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So, let's first go..." start="00:05:17.960" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's go dive right into our first formula." start="00:05:19.808" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So I copied some values over here," start="00:05:22.820" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just to save time, and the columns." start="00:05:24.767" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, let's go ahead and say that" start="00:05:27.697" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we have single family house," start="00:05:29.164" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and the price is a hundred thousand." start="00:05:30.750" video="mainVideo-realestate" id="subtitle"]] +[[!template text="And, Let's say that I want the price," start="00:05:33.019" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the down payment that I want to put is 10%." start="00:05:34.164" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Right. Alright. 10%. Now if I tab" start="00:05:36.432" video="mainVideo-realestate" id="subtitle"]] +[[!template text="or go to the next column, nothing happens." start="00:05:40.528" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Why is that? Well, it's because" start="00:05:42.394" video="mainVideo-realestate" id="subtitle"]] +[[!template text="(you probably guessed it)" start="00:05:43.880" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we haven't written or tied any table formulas." start="00:05:44.985" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So we're saying, alright, enough talk." start="00:05:47.756" video="mainVideo-realestate" id="subtitle"]] +[[!template text="How do we do that?" start="00:05:49.564" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, the answer is very simple." start="00:05:50.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We do a pound sign (#), if I can find it." start="00:05:52.094" video="mainVideo-realestate" id="subtitle"]] +[[!template text="#+ and then we do TBL for table" start="00:05:54.984" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then FM for formula." start="00:05:58.713" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, table formula, and the column." start="00:06:01.120" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So this, you're already halfway" start="00:06:03.429" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to writing your first table formula." start="00:06:04.935" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's say we want to automatically," start="00:06:07.064" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's just, for exercise," start="00:06:09.172" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we want to put the down payment," start="00:06:10.979" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just put some type of value in there," start="00:06:13.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just to make sure that it's working." start="00:06:14.616" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So the way Org Mode refers to columns is," start="00:06:16.383" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we start with the dollar sign ($) and then" start="00:06:20.993" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we put the number that the column is." start="00:06:24.141" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Indexes start with one, not a zero." start="00:06:26.869" video="mainVideo-realestate" id="subtitle"]] +[[!template text="As most of us watching are programmers," start="00:06:29.114" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we're probably used to starting with zero," start="00:06:31.624" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but it starts with one." start="00:06:33.793" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So one, two, three, four, five." start="00:06:34.960" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So down payment is the fifth column," start="00:06:38.331" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we say five, and then we say equal to," start="00:06:39.655" video="mainVideo-realestate" id="subtitle"]] +[[!template text="let's say Gopar." start="00:06:42.304" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Then we do C-c C-c to evaluate it," start="00:06:44.289" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and the table is automatically updated." start="00:06:47.938" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Look at that." start="00:06:50.546" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So when you do just this, dollar sign ($) 5," start="00:06:50.957" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it updates every single column." start="00:06:55.863" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There is a way to specify that this cell only and" start="00:06:57.806" video="mainVideo-realestate" id="subtitle"]] +[[!template text="this cell only but this is out of scope and it's" start="00:07:00.680" video="mainVideo-realestate" id="subtitle"]] +[[!template text="not that hard it's just not in this video." start="00:07:03.324" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I would recommend, I commend you, or, actually" start="00:07:05.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I recommend that you go check out the manual for that." start="00:07:08.874" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="All right so, let's say we want to do some basic" start="00:07:13.000" video="mainVideo-realestate" id="subtitle"]] +[[!template text="arithmetic we want to do some list values" start="00:07:17.724" video="mainVideo-realestate" id="subtitle"]] +[[!template text="instead of just putting in text." start="00:07:19.324" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So how do we do that?" start="00:07:20.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, we have to pull the expression that we want" start="00:07:21.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to put in." start="00:07:24.557" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, for example, if we want to add we'll do 20 plus" start="00:07:25.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="20 and if we do C-c C-C to evaluate it, it should" start="00:07:27.959" video="mainVideo-realestate" id="subtitle"]] +[[!template text="update every single column, the entire column," start="00:07:31.457" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the fifth column I mean and, tada, it does." start="00:07:34.324" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Cool! So now let's say we want to do a little bit" start="00:07:38.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="more advanced." start="00:07:41.899" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's say we want to add the previous column to" start="00:07:42.656" video="mainVideo-realestate" id="subtitle"]] +[[!template text="this column, so how do we refer to this one?" start="00:07:45.007" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, 1-2-3-4 is the fourth column, so we would" start="00:07:47.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just simply do $4 and this should automatically" start="00:07:50.990" video="mainVideo-realestate" id="subtitle"]] +[[!template text="be referring to this column (% DP)." start="00:07:55.931" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So we'll do 10 + 20, it's going to be 30 over here," start="00:07:58.157" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and let's do C-C C-c." start="00:08:02.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Ooh, error, what happened?" start="00:08:04.274" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Oh my god, oh my god." start="00:08:07.124" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, this seems scary but no worries." start="00:08:08.974" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="This is where debugging comes in pretty handy," start="00:08:11.720" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is actually our next section as you can see." start="00:08:14.078" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, what happens if we do, if we go into the" start="00:08:16.940" video="mainVideo-realestate" id="subtitle"]] +[[!template text="debugging section, what is the first step?" start="00:08:19.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, the first step is to try out, is to enable" start="00:08:21.440" video="mainVideo-realestate" id="subtitle"]] +[[!template text="formula debugger." start="00:08:24.890" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, if you do C-c {, it will turn on a minor mode" start="00:08:26.516" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that whenever you evaluate a table formula," start="00:08:31.394" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the debugger will be enabled," start="00:08:35.510" video="mainVideo-realestate" id="subtitle"]] +[[!template text="will automatically kick in." start="00:08:38.291" video="mainVideo-realestate" id="subtitle"]] +[[!template text="And if you want to disable the debugger," start="00:08:39.457" video="mainVideo-realestate" id="subtitle"]] +[[!template text="you just run the command again, and it will turn off." start="00:08:41.074" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, let's go ahead and run it. C-c {." start="00:08:43.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="As you can see in the mini buffer, it says," start="00:08:46.608" video="mainVideo-realestate" id="subtitle"]] +[[!template text=""formula debugging has been turned on". Awesome!" start="00:08:48.791" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So if we go back to our table" start="00:08:51.541" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and we try to run this, and see what's going on, we see..." start="00:08:53.158" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Oh, first off, before we look" start="00:08:58.500" video="mainVideo-realestate" id="subtitle"]] +[[!template text="at the buffer that just opened," start="00:09:00.441" video="mainVideo-realestate" id="subtitle"]] +[[!template text="look at the mini buffer," start="00:09:01.391" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it says "Debugging Formula. Continue to next?"" start="00:09:02.491" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So if you have multiple or a series of formulas," start="00:09:05.074" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it will say, "hey, do you want to debug this one" start="00:09:07.974" video="mainVideo-realestate" id="subtitle"]] +[[!template text="or the next one?"" start="00:09:09.691" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So this is just saying, "hey, do you want to go" start="00:09:10.474" video="mainVideo-realestate" id="subtitle"]] +[[!template text="into the next formula?"" start="00:09:12.058" video="mainVideo-realestate" id="subtitle"]] +[[!template text="And since there's no next formula," start="00:09:13.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="debugger will just exit out" start="00:09:14.991" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and leave you with the other buffer to see." start="00:09:16.058" video="mainVideo-realestate" id="subtitle"]] +[[!template text="For now, we'll just click no." start="00:09:18.299" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Right now, it doesn't matter if you click yes or no" start="00:09:20.049" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because there's only one formula," start="00:09:22.591" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but we'll just click no, and let's go ahead and" start="00:09:23.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="pay attention to the new buffer." start="00:09:26.172" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, over here it might seem a little confusing," start="00:09:27.757" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but don't worry, we're just going to ignore most of this." start="00:09:29.808" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The first thing that we're going to pay" start="00:09:32.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="attention is to the original." start="00:09:33.990" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So it says, okay, this is the original, so we have" start="00:09:35.557" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a quote expression, which is just trying to add the" start="00:09:38.167" video="mainVideo-realestate" id="subtitle"]] +[[!template text="fourth column." start="00:09:41.324" video="mainVideo-realestate" id="subtitle"]] +[[!template text="And if we go over here" start="00:09:41.840" video="mainVideo-realestate" id="subtitle"]] +[[!template text="once everything is finalized," start="00:09:42.841" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it says "hey, we're trying to add this 10," start="00:09:44.208" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but it's actually a string 10, and added to 20." start="00:09:47.207" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So of course it's going to be an error, so now we" start="00:09:50.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="know what the error is." start="00:09:52.425" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So you're saying all right cool, awesome, now how" start="00:09:54.099" video="mainVideo-realestate" id="subtitle"]] +[[!template text="do we transform that string into a number?" start="00:09:56.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, Org Mode formulas have these flags" start="00:09:58.940" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that you can use, and essentially a flag looks like this." start="00:10:02.608" video="mainVideo-realestate" id="subtitle"]] +[[!template text="It's a semicolon (;) followed by some letter" start="00:10:05.774" video="mainVideo-realestate" id="subtitle"]] +[[!template text="or some identifier" start="00:10:10.258" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that will let Org mode know that hey," start="00:10:13.370" video="mainVideo-realestate" id="subtitle"]] +[[!template text="this should be turned into a number" start="00:10:16.590" video="mainVideo-realestate" id="subtitle"]] +[[!template text="or this should be turned into whatever." start="00:10:18.291" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There's different ones for alpha literal" start="00:10:20.307" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and for a bunch of..." start="00:10:22.725" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I think there's even "i" for "integer"," start="00:10:23.963" video="mainVideo-realestate" id="subtitle"]] +[[!template text="so it depends what you want." start="00:10:25.474" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So for now we're just going to put "number"" start="00:10:26.919" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because it's a real number." start="00:10:28.203" video="mainVideo-realestate" id="subtitle"]] +[[!template text="If we do this and the debugger is still on," start="00:10:29.590" video="mainVideo-realestate" id="subtitle"]] +[[!template text="(remember because it automatically" start="00:10:33.707" video="mainVideo-realestate" id="subtitle"]] +[[!template text="stays on until we turn it off)," start="00:10:35.374" video="mainVideo-realestate" id="subtitle"]] +[[!template text="if we reevaluate the the formula," start="00:10:36.474" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we should be able to see it." start="00:10:41.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="But first, before I do that, let's check step two." start="00:10:43.724" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I'll now rerun formulas with C-c * and table," start="00:10:47.479" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which calls org-table-recalculate." start="00:10:52.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="To do this, you actually have to be inside the table." start="00:10:54.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Otherwise, Org mode will try to do some other stuff" start="00:10:58.607" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because it is context-aware, so depending on" start="00:11:02.454" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the context it might do something else." start="00:11:04.425" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So if we do C-c *..." start="00:11:06.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="As you can see the debugger has kicked in," start="00:11:09.224" video="mainVideo-realestate" id="subtitle"]] +[[!template text="says, "Do you want to continue to next?"" start="00:11:12.824" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's press yes (y), and it has been applied." start="00:11:14.202" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So as you can see, it only updated one column--" start="00:11:17.680" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I'm sorry, one row--and the thing is," start="00:11:21.071" video="mainVideo-realestate" id="subtitle"]] +[[!template text="when you run this, the recalculate, it will only" start="00:11:23.077" video="mainVideo-realestate" id="subtitle"]] +[[!template text="run for the current row that you're in." start="00:11:28.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="If you want to run for the entire table," start="00:11:30.461" video="mainVideo-realestate" id="subtitle"]] +[[!template text="you're going to do C-u C-c *." start="00:11:32.885" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Before I do that, let me turn off the debugger" start="00:11:36.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="since we no longer are in need of it." start="00:11:38.507" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So C-c {, and debugging has been turned off." start="00:11:40.907" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Now let me do C-u C-c * and as you can see" start="00:11:45.077" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the other rows also calculated, updated as well." start="00:11:50.808" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Beautiful!" start="00:11:54.420" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So as I mentioned, feel free to look / browse the" start="00:11:55.024" video="mainVideo-realestate" id="subtitle"]] +[[!template text="documentation for more flags" start="00:11:58.607" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because each flag has its own special meaning" start="00:12:00.108" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and will do different things, which is pretty cool." start="00:12:02.641" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="All right, cool." start="00:12:07.140" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We're done with debugging and we fixed it." start="00:12:08.224" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So there, now we know how to create formulas" start="00:12:10.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and how to debug them whenever they break," start="00:12:12.076" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is awesome." start="00:12:14.307" video="mainVideo-realestate" id="subtitle"]] +[[!template text="All right, but remember how I said that you can" start="00:12:15.140" video="mainVideo-realestate" id="subtitle"]] +[[!template text="only debug... Whenever you run recalculate," start="00:12:18.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="It will only run the first formula?" start="00:12:23.660" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, let's say you want to have multiple formulas?" start="00:12:25.440" video="mainVideo-realestate" id="subtitle"]] +[[!template text="This is completely valid, except the bad thing is" start="00:12:28.539" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that you have to do C-c C-c C-c on each each one," start="00:12:30.907" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because C-u C-c * won't recalculate everything." start="00:12:34.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="It won't." start="00:12:39.557" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Sadly, it doesn't do it." start="00:12:40.450" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There is a way that you can do it," start="00:12:41.657" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is hacking together some elisp." start="00:12:44.289" video="mainVideo-realestate" id="subtitle"]] +[[!template text="You can probably find it" start="00:12:46.460" video="mainVideo-realestate" id="subtitle"]] +[[!template text="or you can probably make it yourself" start="00:12:47.475" video="mainVideo-realestate" id="subtitle"]] +[[!template text="if you look around, but that's out of scope for this." start="00:12:48.807" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So now, how do we... We can write all the formulas" start="00:12:51.207" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we want in one single line." start="00:12:57.100" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There's a way to to distinguish" start="00:12:59.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="when one ends and one begins" start="00:13:01.741" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and that is the double colon (::)." start="00:13:03.341" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So right there, and a new formula will begin." start="00:13:04.807" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So for example," start="00:13:07.707" video="mainVideo-realestate" id="subtitle"]] +[[!template text="let's say for the seventh column we say "gopar"." start="00:13:08.474" video="mainVideo-realestate" id="subtitle"]] +[[!template text="If I do C-c C-c, it'll run every single thing" start="00:13:12.324" video="mainVideo-realestate" id="subtitle"]] +[[!template text="so that... "gopar". Tada!" start="00:13:17.507" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There, awesome." start="00:13:19.326" video="mainVideo-realestate" id="subtitle"]] +[[!template text="But this is going to get very annoying if you're" start="00:13:20.724" video="mainVideo-realestate" id="subtitle"]] +[[!template text="simply trying to edit formulas like this, right?" start="00:13:22.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So that's where the nicer debugging," start="00:13:25.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="nicer editing section comes in." start="00:13:27.033" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, yes, just like as mentioned, table calls" start="00:13:28.890" video="mainVideo-realestate" id="subtitle"]] +[[!template text="only the first formula." start="00:13:32.300" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So what's the step onto this nicer editing section?" start="00:13:33.607" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Try out "C-c ," or `org-edit-special'." start="00:13:36.449" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's go back to the table formula and call it..." start="00:13:40.524" video="mainVideo-realestate" id="subtitle"]] +[[!template text="oh my god, look at that," start="00:13:44.657" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a new buffer just for editing," start="00:13:47.690" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and each formula is in its own line to make" start="00:13:49.990" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it easier, which is beautiful!" start="00:13:52.699" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, let's just say I want to do another calculation." start="00:13:54.724" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's do eight times eight, which should be 64," start="00:13:58.815" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and we have no need of putting this flag" start="00:14:02.707" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because the flag only affects it on the input coming in." start="00:14:04.741" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I should have mentioned that earlier." start="00:14:07.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Only input coming in." start="00:14:09.174" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There is ways to affect the output," start="00:14:10.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which we'll also cover in this topic later on," start="00:14:13.274" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but for now, you can either leave the end flag" start="00:14:16.574" video="mainVideo-realestate" id="subtitle"]] +[[!template text="or leave it out. It will still work fine." start="00:14:19.231" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's just leave it out for now." start="00:14:21.991" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's just do C-c C-c to make sure" start="00:14:23.508" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that everything is working." start="00:14:26.625" video="mainVideo-realestate" id="subtitle"]] +[[!template text="64. Beautiful." start="00:14:28.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So there you have it. You can have multiple formulas" start="00:14:30.790" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just stacked up into one line," start="00:14:33.166" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and whenever you need to edit it," start="00:14:34.878" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just go into that into that line" start="00:14:36.391" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and "C-c ,", and tada!" start="00:14:38.357" video="mainVideo-realestate" id="subtitle"]] +[[!template text="You have this ready, good to go, and for editing." start="00:14:41.124" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Oh and if you want to exit out," start="00:14:44.450" video="mainVideo-realestate" id="subtitle"]] +[[!template text="also just do "C-c ," again and you're back." start="00:14:45.825" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I did not mention that. Sweet!" start="00:14:49.040" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So now we know how to have" start="00:14:51.990" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a better editing experience. Sweet!" start="00:14:54.775" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So now comes the formatting section which I talked about." start="00:14:57.106" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So what's the first step?" start="00:15:00.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well for formatting, Org mode uses" start="00:15:01.974" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the printf function from C." start="00:15:05.508" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So those who are familiar with C," start="00:15:08.674" video="mainVideo-realestate" id="subtitle"]] +[[!template text="you'll feel right at home because the way you format it" start="00:15:10.375" video="mainVideo-realestate" id="subtitle"]] +[[!template text="is exactly the same way." start="00:15:12.923" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So for example, this will print off" start="00:15:14.040" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a floating number with two decimal points." start="00:15:16.558" video="mainVideo-realestate" id="subtitle"]] +[[!template text="As you can see here, this is how you will use it." start="00:15:18.973" video="mainVideo-realestate" id="subtitle"]] +[[!template text="It will be after the semicolon and it will be "%.2f"." start="00:15:21.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's go ahead and test that out." start="00:15:26.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Actually, let's go ahead to our latest function--" start="00:15:28.158" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I mean, to our latest formula." start="00:15:30.690" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's go ahead to the nicer buffer" start="00:15:32.440" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and let's do, Ctrl... Let's enter the semicolon," start="00:15:33.841" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then let's put the percent sign, we do 2f." start="00:15:39.208" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Actually, let's make it five" start="00:15:45.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just to differentiate from the formula, and let's see." start="00:15:49.175" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let's run it, and tada!" start="00:15:52.690" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So yeah, as you can see, five decimal points." start="00:15:57.274" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and if we want zero decimal points, we can also" start="00:16:00.180" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just move point zero, and tada!" start="00:16:01.957" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Just like that." start="00:16:05.057" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We can also just leave it as is how it was before," start="00:16:06.224" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because before, we didn't even actually need it," start="00:16:08.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but yeah, just an example." start="00:16:10.875" video="mainVideo-realestate" id="subtitle"]] +[[!template text="And just a reminder, there are" start="00:16:13.114" video="mainVideo-realestate" id="subtitle"]] +[[!template text="plenty more ways of formatting," start="00:16:15.091" video="mainVideo-realestate" id="subtitle"]] +[[!template text="just look at the documentation." start="00:16:17.358" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There will be more. Basically every single thing" start="00:16:19.740" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that you need, just use the documentation as reference." start="00:16:21.725" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Cool! So now we know how to debug," start="00:16:25.674" video="mainVideo-realestate" id="subtitle"]] +[[!template text="how to write formulas" start="00:16:28.341" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and how to get a better, nicer editing buffer" start="00:16:29.775" video="mainVideo-realestate" id="subtitle"]] +[[!template text="for the formula so we don't have to do it all" start="00:16:32.825" video="mainVideo-realestate" id="subtitle"]] +[[!template text="in a single line." start="00:16:35.125" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So, what about conditional prompts, like I was" start="00:16:36.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="showing in the first table in the end goal?" start="00:16:38.757" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well that's actually pretty simple because we already" start="00:16:43.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="know how to do this." start="00:16:47.300" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Yes, if you think about it for a second, if we are" start="00:16:48.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="able to pull lisp s-expressions, then we are able to" start="00:16:51.233" video="mainVideo-realestate" id="subtitle"]] +[[!template text="basically do it already. Here's an example." start="00:16:54.321" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We're saying if the second column is empty, is zero--" start="00:16:56.390" video="mainVideo-realestate" id="subtitle"]] +[[!template text="so actually, this should be with the N flag" start="00:17:01.907" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because we will transform empty values as zero," start="00:17:04.620" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and that's how Org mode will read those." start="00:17:07.040" video="mainVideo-realestate" id="subtitle"]] +[[!template text="It's saying if the second flag is zero," start="00:17:08.820" video="mainVideo-realestate" id="subtitle"]] +[[!template text="then I want you to put "Enter the values."" start="00:17:12.425" video="mainVideo-realestate" id="subtitle"]] +[[!template text="And if it's not empty, we're going to put" start="00:17:17.052" video="mainVideo-realestate" id="subtitle"]] +[[!template text=""Values entered." We're going to recognize." start="00:17:20.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's go ahead and actually do this." start="00:17:22.290" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's grab this, and let's type it in." start="00:17:24.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's go ahead. "Enter the values," because it" start="00:17:29.090" video="mainVideo-realestate" id="subtitle"]] +[[!template text="doesn't have any." start="00:17:36.557" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's go ahead and say "Hello EmacsConf"" start="00:17:37.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and let's go ahead and run it again." start="00:17:42.441" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Since there are values," start="00:17:47.324" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it's going to overwrite what's here and put value entered." start="00:17:48.458" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's go ahead." start="00:17:51.674" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Tada, so there you go." start="00:17:53.498" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So that is pretty much how you do conditional props," start="00:17:55.790" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is pretty straightforward" start="00:18:00.624" video="mainVideo-realestate" id="subtitle"]] +[[!template text="once you think about it" start="00:18:01.941" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because if you are able to insert Lisp expressions," start="00:18:02.725" video="mainVideo-realestate" id="subtitle"]] +[[!template text="then you are able to just do that check" start="00:18:05.441" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and do the conditional check yourself." start="00:18:08.241" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, custom formulas." start="00:18:11.174" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="Yeah, you'll see what I mean." start="00:18:13.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We want to be able to put our own custom functions," start="00:18:15.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and you probably have an idea how to do this already." start="00:18:20.024" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Yes, we also know how to do this already." start="00:18:23.990" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Before I continue, I'm going to say that I already" start="00:18:27.060" video="mainVideo-realestate" id="subtitle"]] +[[!template text="have some formulas that I use" start="00:18:30.457" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which are not part of this talk" start="00:18:31.941" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because they're just functions that calculate some stuff." start="00:18:33.375" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So for example, they calculate the monthly mortgage," start="00:18:37.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the monthly PMI, property tax, homeowners insurance," start="00:18:40.090" video="mainVideo-realestate" id="subtitle"]] +[[!template text="so a bunch of other stuff." start="00:18:43.357" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I have these functions already and they are a bit off," start="00:18:44.857" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but for this example, they're doing everything." start="00:18:49.829" video="mainVideo-realestate" id="subtitle"]] +[[!template text="It's close enough, so don't worry too much." start="00:18:52.312" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Just an example, you can have your own function" start="00:18:54.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="that does something else like calculate" start="00:18:56.924" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a REI B rental or something like that." start="00:18:59.313" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So you can do whatever you want." start="00:19:01.640" video="mainVideo-realestate" id="subtitle"]] +[[!template text="As long as you can call via Lisp," start="00:19:03.220" video="mainVideo-realestate" id="subtitle"]] +[[!template text="you can call it in Org mode, in the table formulas." start="00:19:04.824" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's exit out of there." start="00:19:07.900" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Now that we know how to do everything," start="00:19:11.437" video="mainVideo-realestate" id="subtitle"]] +[[!template text="let me go back to the original table and go from there." start="00:19:13.808" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Let me close all these out actually." start="00:19:21.024" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Now let's go back and revisit this table," start="00:19:26.624" video="mainVideo-realestate" id="subtitle"]] +[[!template text="since we'll be much, much more familiar" start="00:19:29.624" video="mainVideo-realestate" id="subtitle"]] +[[!template text="except for one thing, which I will explain." start="00:19:31.620" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So we have the constants right there" start="00:19:35.518" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and we have the house prices" start="00:19:38.041" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and we have everything just like I mentioned before." start="00:19:39.691" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The main part that we want to look at" start="00:19:42.500" video="mainVideo-realestate" id="subtitle"]] +[[!template text="is the table formula." start="00:19:44.123" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So let's open up our special editing buffer," start="00:19:45.124" video="mainVideo-realestate" id="subtitle"]] +[[!template text=""C-c ,"," start="00:19:47.574" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and as you can see, I have some right here." start="00:19:49.774" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, the fifth column I'm saying," start="00:19:52.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text=""Hey, we're gonna call this function" start="00:19:53.624" video="mainVideo-realestate" id="subtitle"]] +[[!template text="rei-calculate-down-payment, and I'm gonna" start="00:19:55.924" video="mainVideo-realestate" id="subtitle"]] +[[!template text="pass in the third column and fourth column" start="00:19:58.657" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and I'm going to pass in t." (true)" start="00:20:00.758" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I believe this is just to normalize," start="00:20:02.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to convert to the proper decimal place," start="00:20:07.174" video="mainVideo-realestate" id="subtitle"]] +[[!template text="so let's not worry too much about that." start="00:20:12.157" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Then for the sixth column, we're going to say" start="00:20:14.179" video="mainVideo-realestate" id="subtitle"]] +[[!template text=""I calculate the monthly mortgage."" start="00:20:16.790" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We're going to pass in the third column" start="00:20:18.145" video="mainVideo-realestate" id="subtitle"]] +[[!template text="the INTEREST_RATE, which we have" start="00:20:20.224" video="mainVideo-realestate" id="subtitle"]] +[[!template text="defined over here in the constants." start="00:20:21.439" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The 30, I believe this is for 30 years," start="00:20:22.980" video="mainVideo-realestate" id="subtitle"]] +[[!template text="PMI, the PROPERTY_TAX and HOME_INSURANCE," start="00:20:26.374" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then the fourth column." start="00:20:29.423" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Then everything is going to be accepted as numbers," start="00:20:30.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and we're going to have two decimals" start="00:20:33.924" video="mainVideo-realestate" id="subtitle"]] +[[!template text="at the end of the place." start="00:20:35.174" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, what else?" start="00:20:36.274" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Over here is where we have our conditionals." start="00:20:37.607" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We're saying, "hey, if the seventh column is 0," start="00:20:40.174" video="mainVideo-realestate" id="subtitle"]] +[[!template text="press 'Enter Tenant Income'."" start="00:20:42.374" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Over here as well, if the seventh column is zero," start="00:20:44.402" video="mainVideo-realestate" id="subtitle"]] +[[!template text="we're going to press 'Enter Tenant Income'" start="00:20:48.507" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and for this one we're going to say," start="00:20:51.824" video="mainVideo-realestate" id="subtitle"]] +[[!template text=""Hey, we're going to normalize the price."" start="00:20:53.705" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I believe this is a 1% rule." start="00:20:56.040" video="mainVideo-realestate" id="subtitle"]] +[[!template text="This could have been extracted into a function," start="00:20:59.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but I just did the calculation right here." start="00:21:01.490" video="mainVideo-realestate" id="subtitle"]] +[[!template text="This, I believe, is the ROI, 12 months." start="00:21:04.239" video="mainVideo-realestate" id="subtitle"]] +[[!template text="This is just calculating the cash flow." start="00:21:07.990" video="mainVideo-realestate" id="subtitle"]] +[[!template text="This is a very rudimentary function or formula." start="00:21:11.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Do not use this because there is way more" start="00:21:15.407" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to go into calculating the cash flow" start="00:21:16.733" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and also, it differs from person to person." start="00:21:18.841" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Some people are more conservative," start="00:21:21.599" video="mainVideo-realestate" id="subtitle"]] +[[!template text="other people are way more liberal, so it just" start="00:21:23.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="depends how you want to calculate it." start="00:21:26.960" video="mainVideo-realestate" id="subtitle"]] +[[!template text="As you can see, we have the N flag for numeric number" start="00:21:28.974" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and then we're saying we're formatting" start="00:21:34.241" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to one decimal place." start="00:21:36.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="The %% sign is just to input a percent sign as itself." start="00:21:37.794" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Otherwise, Org mode is going to think" start="00:21:43.208" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it's some type of a formatter, which it's not." start="00:21:45.420" video="mainVideo-realestate" id="subtitle"]] +[[!template text="If you do... As I mentioned," start="00:21:48.040" video="mainVideo-realestate" id="subtitle"]] +[[!template text="if you've used the printf function in C or C++," start="00:21:49.240" video="mainVideo-realestate" id="subtitle"]] +[[!template text="then you probably know how to use it." start="00:21:51.790" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Okay, so this is pretty much everything in a nutshell." start="00:21:55.607" video="mainVideo-realestate" id="subtitle"]] +[[!template new="1" text="So, one thing that I do want to say" start="00:22:01.924" video="mainVideo-realestate" id="subtitle"]] +[[!template text="is the last section," start="00:22:05.070" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is automatically updating," start="00:22:06.479" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is the part that blew my mind" start="00:22:07.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="when I realized that Org Mode can do this." start="00:22:10.175" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So how do we do it?" start="00:22:11.557" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Well, you probably guessed just from looking at" start="00:22:12.577" video="mainVideo-realestate" id="subtitle"]] +[[!template text="at the first table that we have right now." start="00:22:14.660" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We add a column at the beginning" start="00:22:18.424" video="mainVideo-realestate" id="subtitle"]] +[[!template text="of the table with a percent (%)--" start="00:22:20.874" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I'm sorry, with the pound sign (#)" start="00:22:22.957" video="mainVideo-realestate" id="subtitle"]] +[[!template text="or hashtag as the younger kids call it." start="00:22:24.957" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So this is what we do." start="00:22:28.557" video="mainVideo-realestate" id="subtitle"]] +[[!template text="We added a column at the beginning of the" start="00:22:31.145" video="mainVideo-realestate" id="subtitle"]] +[[!template text="table, we do pound sign (#)." start="00:22:32.820" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So this is what it's for." start="00:22:35.084" video="mainVideo-realestate" id="subtitle"]] +[[!template text="This lets Org mode know that "hey," start="00:22:35.890" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I want the values, the table formulas," start="00:22:38.840" video="mainVideo-realestate" id="subtitle"]] +[[!template text="to automatically run on each tab change."" start="00:22:41.240" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Now I believe that you can make it so that" start="00:22:44.057" video="mainVideo-realestate" id="subtitle"]] +[[!template text="it changes, so that it updates on every keystroke." start="00:22:46.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I think that's too much." start="00:22:49.223" video="mainVideo-realestate" id="subtitle"]] +[[!template text="And then you can also make it so that" start="00:22:51.124" video="mainVideo-realestate" id="subtitle"]] +[[!template text="only certain rows update or certain columns." start="00:22:53.107" video="mainVideo-realestate" id="subtitle"]] +[[!template text="There's a plethora of things that you can do." start="00:22:56.020" video="mainVideo-realestate" id="subtitle"]] +[[!template text="You should definitely read up on the documentation," start="00:22:58.319" video="mainVideo-realestate" id="subtitle"]] +[[!template text="because you will probably make a way better talk," start="00:23:01.024" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a way more advanced talk than I on this one," start="00:23:03.525" video="mainVideo-realestate" id="subtitle"]] +[[!template text="so I'm looking forward for that." start="00:23:07.074" video="mainVideo-realestate" id="subtitle"]] +[[!template text="But this is essentially how you build" start="00:23:09.674" video="mainVideo-realestate" id="subtitle"]] +[[!template text="a Org mode table formula that will help you know" start="00:23:12.460" video="mainVideo-realestate" id="subtitle"]] +[[!template text="if a property is correct." start="00:23:15.508" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So, let's go ahead and as a final out to this demo," start="00:23:17.225" video="mainVideo-realestate" id="subtitle"]] +[[!template text="let's go ahead and enter a new column." start="00:23:22.440" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Org-mode automatically puts the pound sign (#)," start="00:23:25.420" video="mainVideo-realestate" id="subtitle"]] +[[!template text="which is awesome, and let's just say 'Emacs House'," start="00:23:30.274" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and let's say it is 100k." start="00:23:35.540" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So 100k, and as you can see it's already trying to" start="00:23:39.690" video="mainVideo-realestate" id="subtitle"]] +[[!template text="calculate the monthly mortgage," start="00:23:44.340" video="mainVideo-realestate" id="subtitle"]] +[[!template text="but we'll see about that," start="00:23:46.140" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and let's just put 10% down." start="00:23:47.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So 10% of 100k should be 10,000." start="00:23:49.880" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So 10,000, correct, and the monthly mortgage is that" start="00:23:53.157" video="mainVideo-realestate" id="subtitle"]] +[[!template text="and let's just say the tenant income is," start="00:23:56.408" video="mainVideo-realestate" id="subtitle"]] +[[!template text="as you can see right here," start="00:24:00.190" video="mainVideo-realestate" id="subtitle"]] +[[!template text="tenant income is, let's say 1500." start="00:24:01.757" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Is it passing the 1% rule?" start="00:24:05.974" video="mainVideo-realestate" id="subtitle"]] +[[!template text="Yep! What's my ROI?" start="00:24:07.374" video="mainVideo-realestate" id="subtitle"]] +[[!template text="118%, which is kind of cool actually." start="00:24:09.524" video="mainVideo-realestate" id="subtitle"]] +[[!template text="That's a nice deal." start="00:24:13.880" video="mainVideo-realestate" id="subtitle"]] +[[!template text="So this is a rudimentary way of" start="00:24:14.907" video="mainVideo-realestate" id="subtitle"]] +[[!template text="calculating deals in Org mode." start="00:24:17.757" video="mainVideo-realestate" id="subtitle"]] +[[!template text="I hope you found it interesting, and yeah, that is it." start="00:24:20.419" video="mainVideo-realestate" id="subtitle"]] + + Questions or comments? Please e-mail [gopardaniel@gmail.com](mailto:gopardaniel@gmail.com?subject=Comment%20for%20EmacsConf%202022%20realestate%3A%20Real%20estate%20and%20Org%20table%20formulas) diff --git a/2022/info/realestate-before.md b/2022/info/realestate-before.md index f7cf2bb4..3cd25bb5 100644 --- a/2022/info/realestate-before.md +++ b/2022/info/realestate-before.md @@ -10,9 +10,38 @@ The following image shows where the talk is in the schedule for Sat 2022-12-03. Format: 25-min talk followed by pad Q&A (#emacsconf-gen) Etherpad: Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen) -Status: Talk captioned +Status: Now playing on the conference livestream
Times in different timezones:
Saturday, Dec 3 2022, ~2:15 PM - 2:40 PM EST (US/Eastern)
which is the same as:
Saturday, Dec 3 2022, ~1:15 PM - 1:40 PM CST (US/Central)
Saturday, Dec 3 2022, ~12:15 PM - 12:40 PM MST (US/Mountain)
Saturday, Dec 3 2022, ~11:15 AM - 11:40 AM PST (US/Pacific)
Saturday, Dec 3 2022, ~7:15 PM - 7:40 PM UTC
Saturday, Dec 3 2022, ~8:15 PM - 8:40 PM CET (Europe/Paris)
Saturday, Dec 3 2022, ~9:15 PM - 9:40 PM EET (Europe/Athens)
Sunday, Dec 4 2022, ~12:45 AM - 1:10 AM IST (Asia/Kolkata)
Sunday, Dec 4 2022, ~3:15 AM - 3:40 AM +08 (Asia/Singapore)
Sunday, Dec 4 2022, ~4:15 AM - 4:40 AM JST (Asia/Tokyo)
Find out how to watch and participate
+[[!template id="vid" vidid="realestate-mainVideo" src="https://media.emacsconf.org/2022/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.webm" poster="https://media.emacsconf.org/2022/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.png" captions="""""" +size="52M" duration="24:25" other_resources="""[Download .webm (51MB)](https://media.emacsconf.org/2022/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar.webm) +[Download --main.webm (52MB)](https://media.emacsconf.org/2022/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.webm) +[Download --main.vtt](https://media.emacsconf.org/2022/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.vtt) +[Download --main--chapters.vtt](https://media.emacsconf.org/2022/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main--chapters.vtt) +[View transcript](https://emacsconf.org/2022/talks/realestate#realestate-mainVideo-transcript) +[View on Toobnix](https://toobnix.org/w/wNqs2ukhcQwCzUkar2bq55) +"""]] +[[!template id="chapters" vidid="realestate-mainVideo" data=""" +00:00:00.000 Introduction +00:20.480 The end goal +00:51.800 Constants and variables +02:11.520 ROI +02:40.040 Demo +03:32.240 Detecting input +04:02.240 Creating a table +04:26.400 C-c C-c +05:17.960 Our first formula +07:13.000 Basic arithmetic +08:11.720 Debugging +09:53.600 Flags +12:07.040 Recalculating +12:50.040 Multiple formulas +14:56.777 Formatting +16:36.202 Conditional prompts +18:12.203 Custom formulas +21:57.857 Automatically updating + +"""]] # Description -- cgit v1.2.3