summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-12-03 14:16:25 -0500
committerSacha Chua <sacha@sachachua.com>2022-12-03 14:16:25 -0500
commitb7ff77b1b3cd271944661d6adfeed4b9ccdc8a10 (patch)
tree5ab405fd90fd311d328dca058b2bfc66e2d8fb4a
parentbccbe28d87edbaa62f742f35ac22745b7b7fd472 (diff)
downloademacsconf-wiki-b7ff77b1b3cd271944661d6adfeed4b9ccdc8a10.tar.xz
emacsconf-wiki-b7ff77b1b3cd271944661d6adfeed4b9ccdc8a10.zip
Add captions
Diffstat (limited to '')
-rw-r--r--2022/captions/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.vtt1739
-rw-r--r--2022/info/realestate-after.md584
-rw-r--r--2022/info/realestate-before.md31
3 files changed, 2353 insertions, 1 deletions
diff --git a/2022/captions/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.vtt b/2022/captions/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.vtt
new file mode 100644
index 00000000..ba11db44
--- /dev/null
+++ b/2022/captions/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.vtt
@@ -0,0 +1,1739 @@
+WEBVTT captioned by tom
+
+
+00:00:00.000 --> 00:00:05.453
+Hey, I'm Gopar and this is the
+
+00:00:05.454 --> 00:00:07.639
+Real Estate and Org Mode Table Formulas talk.
+
+00:00:07.640 --> 00:00:09.879
+Not very creative, but it is what it is.
+
+00:00:09.880 --> 00:00:13.051
+Now I just want to say that everything I talk about here
+
+00:00:13.052 --> 00:00:15.902
+is in the Org Mode in the Emacs manual.
+
+00:00:15.903 --> 00:00:17.909
+I posted a link to the web version,
+
+00:00:17.910 --> 00:00:20.479
+but it should be inside of Emacs as well.
+
+00:00:20.480 --> 00:00:25.096
+Now before I start, I want to showcase the end goal.
+
+00:00:25.097 --> 00:00:26.806
+That way you know if you guys want to
+
+00:00:26.807 --> 00:00:28.739
+actually see the talk or not.
+
+00:00:28.740 --> 00:00:30.491
+So I always think that's pretty cool to see
+
+00:00:30.492 --> 00:00:31.517
+what you're actually going to build
+
+00:00:31.518 --> 00:00:32.679
+before you start building it.
+
+00:00:32.680 --> 00:00:34.285
+Alright. So let me start off with the goal,
+
+00:00:34.286 --> 00:00:38.762
+the end goal. Here we have a simple table formula
+
+00:00:38.763 --> 00:00:42.613
+and we have some constants, some values inside the list--
+
+00:00:42.614 --> 00:00:44.639
+inside the table, I'm sorry,
+
+00:00:44.640 --> 00:00:47.672
+and some other stuff that we will get to,
+
+00:00:47.673 --> 00:00:49.279
+but for now... I don't want to spoil too much.
+
+00:00:49.280 --> 00:00:50.327
+I just want to give you a demo
+
+00:00:50.328 --> 00:00:51.799
+of how it actually works.
+
+00:00:51.800 --> 00:00:56.094
+We have a few values. Let me first go over the constants.
+
+00:00:56.095 --> 00:00:57.581
+We have PMI, which stands for
+
+00:00:57.582 --> 00:00:57.590
+private mortgage insurance,
+
+00:00:57.591 --> 00:01:00.536
+so it's insurance that you'll have to pay
+
+00:01:00.537 --> 00:01:03.639
+depending on how much money you put into the deal.
+
+00:01:03.640 --> 00:01:06.067
+The property tax, which is self-explanatory,
+
+00:01:06.068 --> 00:01:09.316
+the tax that you owe for owning the property,
+
+00:01:09.317 --> 00:01:11.106
+and then home insurance,
+
+00:01:11.107 --> 00:01:13.439
+and the interest rate at the loan that you get.
+
+00:01:13.440 --> 00:01:15.666
+So, here we have a few columns.
+
+00:01:15.667 --> 00:01:17.411
+The first one is called House,
+
+00:01:17.412 --> 00:01:20.623
+which I usually just put a description of the house
+
+00:01:20.624 --> 00:01:21.126
+with the link of the posting,
+
+00:01:21.127 --> 00:01:22.493
+the price of the house,
+
+00:01:22.494 --> 00:01:26.189
+the percentage down payment (this I play around with
+
+00:01:26.190 --> 00:01:27.473
+to see how much the deal will be structured),
+
+00:01:27.474 --> 00:01:30.528
+the down payment (which is calculated from
+
+00:01:30.529 --> 00:01:31.754
+the previous two columns),
+
+00:01:31.755 --> 00:01:34.144
+the monthly mortgage (which is calculated as well),
+
+00:01:34.145 --> 00:01:37.995
+and then the tenant income (which is what I suppose
+
+00:01:37.996 --> 00:01:41.005
+would be an example of the tenant income
+
+00:01:41.006 --> 00:01:42.752
+that I can potentially make off the property,
+
+00:01:42.753 --> 00:01:45.539
+the 1% rule and the ROI.
+
+00:01:45.540 --> 00:01:47.707
+I'll quickly go over the last two columns.
+
+00:01:47.708 --> 00:01:49.200
+So first is the 1% rule.
+
+00:01:49.300 --> 00:01:50.879
+The 1% rule is essentially
+
+00:01:50.880 --> 00:01:53.588
+a "rule," in quotes, that says that
+
+00:01:53.589 --> 00:01:56.277
+if a property matches this specific formula,
+
+00:01:56.278 --> 00:01:58.319
+it is a good deal to look into.
+
+00:01:58.320 --> 00:02:00.889
+So for example, the first two pass,
+
+00:02:00.890 --> 00:02:02.676
+and the last one does not pass.
+
+00:02:02.677 --> 00:02:04.104
+The last one, at a quick glance,
+
+00:02:04.105 --> 00:02:05.471
+we can just ignore it and say,
+
+00:02:05.472 --> 00:02:06.476
+"hey, that's not going to fly,"
+
+00:02:06.477 --> 00:02:07.999
+we'll just ignore it.
+
+00:02:08.000 --> 00:02:09.890
+I won't go too much into details.
+
+00:02:09.891 --> 00:02:11.519
+That's just a brief summary.
+
+00:02:11.520 --> 00:02:14.148
+So now the ROI is the return on investment.
+
+00:02:14.149 --> 00:02:17.599
+So it says "how much of a return am I getting
+
+00:02:17.600 --> 00:02:18.959
+on the amount that I invested?"
+
+00:02:18.960 --> 00:02:21.167
+So let's say you put in $12,000,
+
+00:02:21.168 --> 00:02:23.455
+and at the end of the year, you cashflow $6,000.
+
+00:02:23.456 --> 00:02:26.126
+So if you calculate the ROI off of that,
+
+00:02:26.127 --> 00:02:28.476
+you get a 50% return on investment.
+
+00:02:28.477 --> 00:02:30.085
+In two years, you'll make your money back,
+
+00:02:30.086 --> 00:02:31.733
+which is pretty good.
+
+00:02:31.734 --> 00:02:32.718
+Then all the rest of the years,
+
+00:02:32.719 --> 00:02:34.347
+you'll just slowly be reaping in all that,
+
+00:02:34.348 --> 00:02:36.639
+all the excess cash flow.
+
+00:02:36.640 --> 00:02:40.039
+But yeah, that's it in a nutshell.
+
+00:02:40.040 --> 00:02:42.269
+So let me demo it real quick.
+
+00:02:42.270 --> 00:02:44.258
+So for example, I'm going to change the down payment,
+
+00:02:44.259 --> 00:02:45.744
+but I want you to pay attention
+
+00:02:45.745 --> 00:02:48.213
+to this column [down payment]
+
+00:02:48.214 --> 00:02:49.839
+and the monthly mortgage column.
+
+00:02:49.840 --> 00:02:51.726
+So right here [down payment] is $25,000,
+
+00:02:51.727 --> 00:02:53.472
+and here [monthly mortgage] is around $1,200,
+
+00:02:53.473 --> 00:02:55.179
+a little under $1,300.
+
+00:02:55.180 --> 00:02:57.349
+So what happens if I say, you know,
+
+00:02:57.350 --> 00:02:58.795
+what I'm going to change the down payment
+
+00:02:58.796 --> 00:03:00.948
+to 5% instead, because I just
+
+00:03:00.949 --> 00:03:02.559
+don't want to put 10.
+
+00:03:02.560 --> 00:03:04.125
+So let's just put say 5.
+
+00:03:04.126 --> 00:03:06.274
+Then I tab out of here, and voila -
+
+00:03:06.275 --> 00:03:08.522
+you see it updated to half of $25,000.
+
+00:03:08.523 --> 00:03:09.946
+So now it's $12,000,
+
+00:03:09.947 --> 00:03:10.689
+and this [monthly mortgage] went up
+
+00:03:10.690 --> 00:03:12.233
+over actually $1,300,
+
+00:03:12.234 --> 00:03:14.783
+and then this [1% rule] hasn't changed at all
+
+00:03:14.784 --> 00:03:17.679
+and the ROI is there.
+
+00:03:17.680 --> 00:03:19.147
+So one thing that I should mention is
+
+00:03:19.148 --> 00:03:20.193
+everything that I'm putting here
+
+00:03:20.194 --> 00:03:21.279
+is just example numbers,
+
+00:03:21.280 --> 00:03:25.634
+should not be taken into literal real estate advice.
+
+00:03:25.635 --> 00:03:26.859
+I just want to put that out there.
+
+00:03:26.860 --> 00:03:28.367
+These are just examples to show you
+
+00:03:28.368 --> 00:03:30.519
+how you can potentially make it on your own,
+
+00:03:30.520 --> 00:03:32.239
+do the formulas on your own.
+
+00:03:32.240 --> 00:03:35.650
+Alright, so another cool thing that I did was
+
+00:03:35.651 --> 00:03:37.737
+if there is no tenant income and I tab,
+
+00:03:37.738 --> 00:03:40.048
+it says "Enter Tenant Income".
+
+00:03:40.049 --> 00:03:41.032
+So if I don't put anything,
+
+00:03:41.033 --> 00:03:42.399
+it will automatically tell me, hey,
+
+00:03:42.400 --> 00:03:44.919
+I can't calculate without the tenant income.
+
+00:03:44.920 --> 00:03:46.607
+I can also do this right here [ROI field],
+
+00:03:46.608 --> 00:03:48.475
+say the same thing, Enter Tenant Income,
+
+00:03:48.476 --> 00:03:50.563
+but I just didn't put it for whatever reason, but
+
+00:03:50.564 --> 00:03:53.812
+after this video, you should be easily able to
+
+00:03:53.813 --> 00:03:57.399
+put it without much struggle.
+
+00:03:57.400 --> 00:04:00.130
+Alright, so if that's something you're interested in,
+
+00:04:00.131 --> 00:04:02.239
+then keep watching.
+
+00:04:02.240 --> 00:04:05.239
+So let's go over the basics first.
+
+00:04:05.240 --> 00:04:07.399
+So, how do we create a table?
+
+00:04:07.400 --> 00:04:10.368
+Well, we can do M-x org-table-create.
+
+00:04:10.369 --> 00:04:14.301
+If we run that it, will prompt us in a minibuffer.
+
+00:04:14.302 --> 00:04:16.892
+It says table size, columns times row.
+
+00:04:16.893 --> 00:04:18.177
+Usually it's rows times columns,
+
+00:04:18.178 --> 00:04:19.502
+but it is what it is.
+
+00:04:19.602 --> 00:04:20.465
+So let's just leave
+
+00:04:20.466 --> 00:04:24.959
+the default of 5 times 2, and voila, we get this.
+
+00:04:24.960 --> 00:04:26.399
+Beautiful. Awesome.
+
+00:04:26.400 --> 00:04:29.510
+So the other way is using the magical C-c C-c
+
+00:04:29.511 --> 00:04:32.401
+in Org Mode, which basically is context-aware
+
+00:04:32.402 --> 00:04:36.053
+and does anything, does the right thing like,
+
+00:04:36.054 --> 00:04:38.599
+almost 100% of the time, which is pretty amazing.
+
+00:04:38.600 --> 00:04:42.431
+Alright, let's just say I write a pipe, some words,
+
+00:04:42.432 --> 00:04:44.679
+and then another pipe, Gopar, and then
+
+00:04:44.680 --> 00:04:47.268
+another pipe. Let's just say we're trying to
+
+00:04:47.269 --> 00:04:50.599
+write it out via text, because in Org mode
+
+00:04:50.600 --> 00:04:51.546
+everything has text.
+
+00:04:51.547 --> 00:04:53.379
+There's nothing fancy about it.
+
+00:04:53.380 --> 00:04:57.672
+If I do C-c C-c, Org mode should automatically be
+
+00:04:57.673 --> 00:04:59.839
+context-aware that this area is a table.
+
+00:04:59.840 --> 00:05:04.294
+So, C-c C-c, boom. So if I press enter, another column.
+
+00:05:04.295 --> 00:05:06.963
+If I press tab, it should automatically move me.
+
+00:05:06.964 --> 00:05:09.391
+So yeah, so that's pretty much it.
+
+00:05:09.392 --> 00:05:11.919
+That's how you get started into the column.
+
+00:05:11.920 --> 00:05:15.591
+So, I'm assuming most of the people here already know that.
+
+00:05:15.592 --> 00:05:17.959
+This is just the primary basic review.
+
+00:05:17.960 --> 00:05:19.807
+So, let's first go...
+
+00:05:19.808 --> 00:05:22.819
+Let's go dive right into our first formula.
+
+00:05:22.820 --> 00:05:24.766
+So I copied some values over here,
+
+00:05:24.767 --> 00:05:27.696
+just to save time, and the columns.
+
+00:05:27.697 --> 00:05:29.163
+So, let's go ahead and say that
+
+00:05:29.164 --> 00:05:30.749
+we have single family house,
+
+00:05:30.750 --> 00:05:33.018
+and the price is a hundred thousand.
+
+00:05:33.019 --> 00:05:34.163
+And, Let's say that I want the price,
+
+00:05:34.164 --> 00:05:36.431
+the down payment that I want to put is 10%.
+
+00:05:36.432 --> 00:05:40.527
+Right. Alright. 10%. Now if I tab
+
+00:05:40.528 --> 00:05:42.393
+or go to the next column, nothing happens.
+
+00:05:42.394 --> 00:05:43.879
+Why is that? Well, it's because
+
+00:05:43.880 --> 00:05:44.984
+(you probably guessed it)
+
+00:05:44.985 --> 00:05:47.755
+we haven't written or tied any table formulas.
+
+00:05:47.756 --> 00:05:49.563
+So we're saying, alright, enough talk.
+
+00:05:49.564 --> 00:05:50.440
+How do we do that?
+
+00:05:50.540 --> 00:05:52.093
+Well, the answer is very simple.
+
+00:05:52.094 --> 00:05:54.983
+We do a pound sign (#), if I can find it.
+
+00:05:54.984 --> 00:05:58.712
+#+ and then we do TBL for table
+
+00:05:58.713 --> 00:06:01.119
+and then FM for formula.
+
+00:06:01.120 --> 00:06:03.428
+So, table formula, and the column.
+
+00:06:03.429 --> 00:06:04.934
+So this, you're already halfway
+
+00:06:04.935 --> 00:06:07.063
+to writing your first table formula.
+
+00:06:07.064 --> 00:06:09.171
+So let's say we want to automatically,
+
+00:06:09.172 --> 00:06:10.978
+Let's just, for exercise,
+
+00:06:10.979 --> 00:06:13.189
+we want to put the down payment,
+
+00:06:13.190 --> 00:06:14.615
+just put some type of value in there,
+
+00:06:14.616 --> 00:06:16.382
+just to make sure that it's working.
+
+00:06:16.383 --> 00:06:20.992
+So the way Org Mode refers to columns is,
+
+00:06:20.993 --> 00:06:24.140
+we start with the dollar sign ($) and then
+
+00:06:24.141 --> 00:06:26.868
+we put the number that the column is.
+
+00:06:26.869 --> 00:06:29.113
+Indexes start with one, not a zero.
+
+00:06:29.114 --> 00:06:31.623
+As most of us watching are programmers,
+
+00:06:31.624 --> 00:06:33.792
+we're probably used to starting with zero,
+
+00:06:33.793 --> 00:06:34.959
+but it starts with one.
+
+00:06:34.960 --> 00:06:38.330
+So one, two, three, four, five.
+
+00:06:38.331 --> 00:06:39.654
+So down payment is the fifth column,
+
+00:06:39.655 --> 00:06:42.303
+we say five, and then we say equal to,
+
+00:06:42.304 --> 00:06:44.288
+let's say Gopar.
+
+00:06:44.289 --> 00:06:47.937
+Then we do C-c C-c to evaluate it,
+
+00:06:47.938 --> 00:06:50.545
+and the table is automatically updated.
+
+00:06:50.546 --> 00:06:50.857
+Look at that.
+
+00:06:50.957 --> 00:06:55.862
+So when you do just this, dollar sign ($) 5,
+
+00:06:55.863 --> 00:06:57.706
+it updates every single column.
+
+00:06:57.806 --> 00:07:00.679
+There is a way to specify that this cell only and
+
+00:07:00.680 --> 00:07:03.224
+this cell only but this is out of scope and it's
+
+00:07:03.324 --> 00:07:05.639
+not that hard it's just not in this video.
+
+00:07:05.640 --> 00:07:08.774
+I would recommend, I commend you, or, actually
+
+00:07:08.874 --> 00:07:12.999
+I recommend that you go check out the manual for that.
+
+00:07:13.000 --> 00:07:17.624
+All right so, let's say we want to do some basic
+
+00:07:17.724 --> 00:07:19.224
+arithmetic we want to do some list values
+
+00:07:19.324 --> 00:07:20.390
+instead of just putting in text.
+
+00:07:20.490 --> 00:07:21.440
+So how do we do that?
+
+00:07:21.540 --> 00:07:24.457
+Well, we have to pull the expression that we want
+
+00:07:24.557 --> 00:07:25.007
+to put in.
+
+00:07:25.107 --> 00:07:27.859
+So, for example, if we want to add we'll do 20 plus
+
+00:07:27.959 --> 00:07:31.357
+20 and if we do C-c C-C to evaluate it, it should
+
+00:07:31.457 --> 00:07:34.224
+update every single column, the entire column,
+
+00:07:34.324 --> 00:07:38.540
+the fifth column I mean and, tada, it does.
+
+00:07:38.640 --> 00:07:41.799
+Cool! So now let's say we want to do a little bit
+
+00:07:41.899 --> 00:07:42.556
+more advanced.
+
+00:07:42.656 --> 00:07:44.907
+Let's say we want to add the previous column to
+
+00:07:45.007 --> 00:07:47.007
+this column, so how do we refer to this one?
+
+00:07:47.107 --> 00:07:50.890
+Well, 1-2-3-4 is the fourth column, so we would
+
+00:07:50.990 --> 00:07:55.831
+just simply do $4 and this should automatically
+
+00:07:55.931 --> 00:07:58.057
+be referring to this column (% DP).
+
+00:07:58.157 --> 00:08:02.190
+So we'll do 10 + 20, it's going to be 30 over here,
+
+00:08:02.490 --> 00:08:04.174
+and let's do C-C C-c.
+
+00:08:04.274 --> 00:08:07.024
+Ooh, error, what happened?
+
+00:08:07.124 --> 00:08:08.874
+Oh my god, oh my god.
+
+00:08:08.974 --> 00:08:11.719
+Well, this seems scary but no worries.
+
+00:08:11.720 --> 00:08:14.077
+This is where debugging comes in pretty handy,
+
+00:08:14.078 --> 00:08:16.740
+which is actually our next section as you can see.
+
+00:08:16.940 --> 00:08:19.324
+So, what happens if we do, if we go into the
+
+00:08:19.424 --> 00:08:21.340
+debugging section, what is the first step?
+
+00:08:21.440 --> 00:08:24.790
+Well, the first step is to try out, is to enable
+
+00:08:24.890 --> 00:08:26.416
+formula debugger.
+
+00:08:26.516 --> 00:08:31.294
+So, if you do C-c {, it will turn on a minor mode
+
+00:08:31.394 --> 00:08:35.509
+that whenever you evaluate a table formula,
+
+00:08:35.510 --> 00:08:38.290
+the debugger will be enabled,
+
+00:08:38.291 --> 00:08:39.357
+will automatically kick in.
+
+00:08:39.457 --> 00:08:41.073
+And if you want to disable the debugger,
+
+00:08:41.074 --> 00:08:43.774
+you just run the command again, and it will turn off.
+
+00:08:43.874 --> 00:08:46.607
+So, let's go ahead and run it. C-c {.
+
+00:08:46.608 --> 00:08:48.790
+As you can see in the mini buffer, it says,
+
+00:08:48.791 --> 00:08:51.441
+"formula debugging has been turned on". Awesome!
+
+00:08:51.541 --> 00:08:53.157
+So if we go back to our table
+
+00:08:53.158 --> 00:08:58.400
+and we try to run this, and see what's going on, we see...
+
+00:08:58.500 --> 00:09:00.440
+Oh, first off, before we look
+
+00:09:00.441 --> 00:09:01.390
+at the buffer that just opened,
+
+00:09:01.391 --> 00:09:02.490
+look at the mini buffer,
+
+00:09:02.491 --> 00:09:04.974
+it says "Debugging Formula. Continue to next?"
+
+00:09:05.074 --> 00:09:07.874
+So if you have multiple or a series of formulas,
+
+00:09:07.974 --> 00:09:09.690
+it will say, "hey, do you want to debug this one
+
+00:09:09.691 --> 00:09:10.374
+or the next one?"
+
+00:09:10.474 --> 00:09:11.958
+So this is just saying, "hey, do you want to go
+
+00:09:12.058 --> 00:09:13.090
+into the next formula?"
+
+00:09:13.190 --> 00:09:14.990
+And since there's no next formula,
+
+00:09:14.991 --> 00:09:16.057
+debugger will just exit out
+
+00:09:16.058 --> 00:09:18.199
+and leave you with the other buffer to see.
+
+00:09:18.299 --> 00:09:19.949
+For now, we'll just click no.
+
+00:09:20.049 --> 00:09:22.590
+Right now, it doesn't matter if you click yes or no
+
+00:09:22.591 --> 00:09:23.540
+because there's only one formula,
+
+00:09:23.640 --> 00:09:26.072
+but we'll just click no, and let's go ahead and
+
+00:09:26.172 --> 00:09:27.657
+pay attention to the new buffer.
+
+00:09:27.757 --> 00:09:29.807
+Well, over here it might seem a little confusing,
+
+00:09:29.808 --> 00:09:32.390
+but don't worry, we're just going to ignore most of this.
+
+00:09:32.490 --> 00:09:33.890
+The first thing that we're going to pay
+
+00:09:33.990 --> 00:09:35.457
+attention is to the original.
+
+00:09:35.557 --> 00:09:38.067
+So it says, okay, this is the original, so we have
+
+00:09:38.167 --> 00:09:41.124
+a quote expression, which is just trying to add the
+
+00:09:41.324 --> 00:09:41.740
+fourth column.
+
+00:09:41.840 --> 00:09:42.840
+And if we go over here
+
+00:09:42.841 --> 00:09:44.207
+once everything is finalized,
+
+00:09:44.208 --> 00:09:47.107
+it says "hey, we're trying to add this 10,
+
+00:09:47.207 --> 00:09:50.240
+but it's actually a string 10, and added to 20.
+
+00:09:50.340 --> 00:09:52.325
+So of course it's going to be an error, so now we
+
+00:09:52.425 --> 00:09:53.999
+know what the error is.
+
+00:09:54.099 --> 00:09:56.090
+So you're saying all right cool, awesome, now how
+
+00:09:56.190 --> 00:09:58.840
+do we transform that string into a number?
+
+00:09:58.940 --> 00:10:02.607
+Well, Org Mode formulas have these flags
+
+00:10:02.608 --> 00:10:05.674
+that you can use, and essentially a flag looks like this.
+
+00:10:05.774 --> 00:10:10.257
+It's a semicolon (;) followed by some letter
+
+00:10:10.258 --> 00:10:13.270
+or some identifier
+
+00:10:13.370 --> 00:10:16.490
+that will let Org mode know that hey,
+
+00:10:16.590 --> 00:10:18.290
+this should be turned into a number
+
+00:10:18.291 --> 00:10:20.207
+or this should be turned into whatever.
+
+00:10:20.307 --> 00:10:22.724
+There's different ones for alpha literal
+
+00:10:22.725 --> 00:10:23.863
+and for a bunch of...
+
+00:10:23.963 --> 00:10:25.274
+I think there's even "i" for "integer",
+
+00:10:25.474 --> 00:10:26.819
+so it depends what you want.
+
+00:10:26.919 --> 00:10:28.202
+So for now we're just going to put "number"
+
+00:10:28.203 --> 00:10:29.490
+because it's a real number.
+
+00:10:29.590 --> 00:10:33.699
+If we do this and the debugger is still on,
+
+00:10:33.707 --> 00:10:35.274
+(remember because it automatically
+
+00:10:35.374 --> 00:10:36.374
+stays on until we turn it off),
+
+00:10:36.474 --> 00:10:41.540
+if we reevaluate the the formula,
+
+00:10:41.640 --> 00:10:43.624
+we should be able to see it.
+
+00:10:43.724 --> 00:10:47.379
+But first, before I do that, let's check step two.
+
+00:10:47.479 --> 00:10:52.240
+I'll now rerun formulas with C-c * and table,
+
+00:10:52.340 --> 00:10:54.639
+which calls org-table-recalculate.
+
+00:10:54.640 --> 00:10:58.507
+To do this, you actually have to be inside the table.
+
+00:10:58.607 --> 00:11:02.354
+Otherwise, Org mode will try to do some other stuff
+
+00:11:02.454 --> 00:11:04.325
+because it is context-aware, so depending on
+
+00:11:04.425 --> 00:11:06.324
+the context it might do something else.
+
+00:11:06.424 --> 00:11:09.124
+So if we do C-c *...
+
+00:11:09.224 --> 00:11:12.724
+As you can see the debugger has kicked in,
+
+00:11:12.824 --> 00:11:14.102
+says, "Do you want to continue to next?"
+
+00:11:14.202 --> 00:11:17.580
+Let's press yes (y), and it has been applied.
+
+00:11:17.680 --> 00:11:20.971
+So as you can see, it only updated one column--
+
+00:11:21.071 --> 00:11:22.977
+I'm sorry, one row--and the thing is,
+
+00:11:23.077 --> 00:11:28.007
+when you run this, the recalculate, it will only
+
+00:11:28.107 --> 00:11:30.361
+run for the current row that you're in.
+
+00:11:30.461 --> 00:11:32.785
+If you want to run for the entire table,
+
+00:11:32.885 --> 00:11:36.240
+you're going to do C-u C-c *.
+
+00:11:36.340 --> 00:11:38.407
+Before I do that, let me turn off the debugger
+
+00:11:38.507 --> 00:11:40.807
+since we no longer are in need of it.
+
+00:11:40.907 --> 00:11:44.977
+So C-c {, and debugging has been turned off.
+
+00:11:45.077 --> 00:11:50.807
+Now let me do C-u C-c * and as you can see
+
+00:11:50.808 --> 00:11:54.320
+the other rows also calculated, updated as well.
+
+00:11:54.420 --> 00:11:54.924
+Beautiful!
+
+00:11:55.024 --> 00:11:58.507
+So as I mentioned, feel free to look / browse the
+
+00:11:58.607 --> 00:12:00.107
+documentation for more flags
+
+00:12:00.108 --> 00:12:02.640
+because each flag has its own special meaning
+
+00:12:02.641 --> 00:12:07.139
+and will do different things, which is pretty cool.
+
+00:12:07.140 --> 00:12:08.124
+All right, cool.
+
+00:12:08.224 --> 00:12:10.007
+We're done with debugging and we fixed it.
+
+00:12:10.107 --> 00:12:12.075
+So there, now we know how to create formulas
+
+00:12:12.076 --> 00:12:14.207
+and how to debug them whenever they break,
+
+00:12:14.307 --> 00:12:15.040
+which is awesome.
+
+00:12:15.140 --> 00:12:18.324
+All right, but remember how I said that you can
+
+00:12:18.424 --> 00:12:23.659
+only debug... Whenever you run recalculate,
+
+00:12:23.660 --> 00:12:25.340
+It will only run the first formula?
+
+00:12:25.440 --> 00:12:28.439
+Well, let's say you want to have multiple formulas?
+
+00:12:28.539 --> 00:12:30.807
+This is completely valid, except the bad thing is
+
+00:12:30.907 --> 00:12:34.090
+that you have to do C-c C-c C-c on each each one,
+
+00:12:34.190 --> 00:12:39.457
+because C-u C-c * won't recalculate everything.
+
+00:12:39.557 --> 00:12:40.350
+It won't.
+
+00:12:40.450 --> 00:12:41.557
+Sadly, it doesn't do it.
+
+00:12:41.657 --> 00:12:44.189
+There is a way that you can do it,
+
+00:12:44.289 --> 00:12:46.459
+which is hacking together some elisp.
+
+00:12:46.460 --> 00:12:47.474
+You can probably find it
+
+00:12:47.475 --> 00:12:48.707
+or you can probably make it yourself
+
+00:12:48.807 --> 00:12:51.107
+if you look around, but that's out of scope for this.
+
+00:12:51.207 --> 00:12:57.099
+So now, how do we... We can write all the formulas
+
+00:12:57.100 --> 00:12:59.007
+we want in one single line.
+
+00:12:59.107 --> 00:13:01.740
+There's a way to to distinguish
+
+00:13:01.741 --> 00:13:03.340
+when one ends and one begins
+
+00:13:03.341 --> 00:13:04.707
+and that is the double colon (::).
+
+00:13:04.807 --> 00:13:07.607
+So right there, and a new formula will begin.
+
+00:13:07.707 --> 00:13:08.374
+So for example,
+
+00:13:08.474 --> 00:13:12.224
+let's say for the seventh column we say "gopar".
+
+00:13:12.324 --> 00:13:17.407
+If I do C-c C-c, it'll run every single thing
+
+00:13:17.507 --> 00:13:19.226
+so that... "gopar". Tada!
+
+00:13:19.326 --> 00:13:20.624
+There, awesome.
+
+00:13:20.724 --> 00:13:22.440
+But this is going to get very annoying if you're
+
+00:13:22.540 --> 00:13:25.007
+simply trying to edit formulas like this, right?
+
+00:13:25.107 --> 00:13:26.933
+So that's where the nicer debugging,
+
+00:13:27.033 --> 00:13:28.790
+nicer editing section comes in.
+
+00:13:28.890 --> 00:13:32.299
+So, yes, just like as mentioned, table calls
+
+00:13:32.300 --> 00:13:33.507
+only the first formula.
+
+00:13:33.607 --> 00:13:36.349
+So what's the step onto this nicer editing section?
+
+00:13:36.449 --> 00:13:40.424
+Try out "C-c ," or `org-edit-special'.
+
+00:13:40.524 --> 00:13:44.557
+So let's go back to the table formula and call it...
+
+00:13:44.657 --> 00:13:47.590
+oh my god, look at that,
+
+00:13:47.690 --> 00:13:49.890
+a new buffer just for editing,
+
+00:13:49.990 --> 00:13:52.599
+and each formula is in its own line to make
+
+00:13:52.699 --> 00:13:54.624
+it easier, which is beautiful!
+
+00:13:54.724 --> 00:13:58.715
+So, let's just say I want to do another calculation.
+
+00:13:58.815 --> 00:14:02.607
+Let's do eight times eight, which should be 64,
+
+00:14:02.707 --> 00:14:04.740
+and we have no need of putting this flag
+
+00:14:04.741 --> 00:14:07.440
+because the flag only affects it on the input coming in.
+
+00:14:07.540 --> 00:14:09.074
+I should have mentioned that earlier.
+
+00:14:09.174 --> 00:14:10.774
+Only input coming in.
+
+00:14:10.874 --> 00:14:13.174
+There is ways to affect the output,
+
+00:14:13.274 --> 00:14:16.474
+which we'll also cover in this topic later on,
+
+00:14:16.574 --> 00:14:19.131
+but for now, you can either leave the end flag
+
+00:14:19.231 --> 00:14:21.990
+or leave it out. It will still work fine.
+
+00:14:21.991 --> 00:14:23.507
+Let's just leave it out for now.
+
+00:14:23.508 --> 00:14:26.624
+Let's just do C-c C-c to make sure
+
+00:14:26.625 --> 00:14:28.774
+that everything is working.
+
+00:14:28.874 --> 00:14:30.690
+64. Beautiful.
+
+00:14:30.790 --> 00:14:33.066
+So there you have it. You can have multiple formulas
+
+00:14:33.166 --> 00:14:34.778
+just stacked up into one line,
+
+00:14:34.878 --> 00:14:36.390
+and whenever you need to edit it,
+
+00:14:36.391 --> 00:14:38.257
+just go into that into that line
+
+00:14:38.357 --> 00:14:41.024
+and "C-c ,", and tada!
+
+00:14:41.124 --> 00:14:44.350
+You have this ready, good to go, and for editing.
+
+00:14:44.450 --> 00:14:45.824
+Oh and if you want to exit out,
+
+00:14:45.825 --> 00:14:48.940
+also just do "C-c ," again and you're back.
+
+00:14:49.040 --> 00:14:51.890
+I did not mention that. Sweet!
+
+00:14:51.990 --> 00:14:54.774
+So now we know how to have
+
+00:14:54.775 --> 00:14:57.006
+a better editing experience. Sweet!
+
+00:14:57.106 --> 00:15:00.240
+So now comes the formatting section which I talked about.
+
+00:15:00.340 --> 00:15:01.874
+So what's the first step?
+
+00:15:01.974 --> 00:15:05.507
+Well for formatting, Org mode uses
+
+00:15:05.508 --> 00:15:08.574
+the printf function from C.
+
+00:15:08.674 --> 00:15:10.374
+So those who are familiar with C,
+
+00:15:10.375 --> 00:15:12.823
+you'll feel right at home because the way you format it
+
+00:15:12.923 --> 00:15:13.940
+is exactly the same way.
+
+00:15:14.040 --> 00:15:16.557
+So for example, this will print off
+
+00:15:16.558 --> 00:15:18.873
+a floating number with two decimal points.
+
+00:15:18.973 --> 00:15:21.540
+As you can see here, this is how you will use it.
+
+00:15:21.640 --> 00:15:26.324
+It will be after the semicolon and it will be "%.2f".
+
+00:15:26.424 --> 00:15:28.157
+So let's go ahead and test that out.
+
+00:15:28.158 --> 00:15:30.590
+Actually, let's go ahead to our latest function--
+
+00:15:30.690 --> 00:15:32.340
+I mean, to our latest formula.
+
+00:15:32.440 --> 00:15:33.840
+Let's go ahead to the nicer buffer
+
+00:15:33.841 --> 00:15:39.207
+and let's do, Ctrl... Let's enter the semicolon,
+
+00:15:39.208 --> 00:15:45.324
+and then let's put the percent sign, we do 2f.
+
+00:15:45.424 --> 00:15:49.174
+Actually, let's make it five
+
+00:15:49.175 --> 00:15:52.590
+just to differentiate from the formula, and let's see.
+
+00:15:52.690 --> 00:15:57.174
+Let's run it, and tada!
+
+00:15:57.274 --> 00:16:00.179
+So yeah, as you can see, five decimal points.
+
+00:16:00.180 --> 00:16:01.857
+and if we want zero decimal points, we can also
+
+00:16:01.957 --> 00:16:04.957
+just move point zero, and tada!
+
+00:16:05.057 --> 00:16:06.124
+Just like that.
+
+00:16:06.224 --> 00:16:08.774
+We can also just leave it as is how it was before,
+
+00:16:08.874 --> 00:16:10.874
+because before, we didn't even actually need it,
+
+00:16:10.875 --> 00:16:13.014
+but yeah, just an example.
+
+00:16:13.114 --> 00:16:15.090
+And just a reminder, there are
+
+00:16:15.091 --> 00:16:17.357
+plenty more ways of formatting,
+
+00:16:17.358 --> 00:16:19.640
+just look at the documentation.
+
+00:16:19.740 --> 00:16:21.724
+There will be more. Basically every single thing
+
+00:16:21.725 --> 00:16:25.574
+that you need, just use the documentation as reference.
+
+00:16:25.674 --> 00:16:28.340
+Cool! So now we know how to debug,
+
+00:16:28.341 --> 00:16:29.774
+how to write formulas
+
+00:16:29.775 --> 00:16:32.824
+and how to get a better, nicer editing buffer
+
+00:16:32.825 --> 00:16:35.124
+for the formula so we don't have to do it all
+
+00:16:35.125 --> 00:16:36.240
+in a single line.
+
+00:16:36.340 --> 00:16:38.657
+So, what about conditional prompts, like I was
+
+00:16:38.757 --> 00:16:43.390
+showing in the first table in the end goal?
+
+00:16:43.490 --> 00:16:47.299
+Well that's actually pretty simple because we already
+
+00:16:47.300 --> 00:16:48.324
+know how to do this.
+
+00:16:48.424 --> 00:16:51.133
+Yes, if you think about it for a second, if we are
+
+00:16:51.233 --> 00:16:54.221
+able to pull lisp s-expressions, then we are able to
+
+00:16:54.321 --> 00:16:56.290
+basically do it already. Here's an example.
+
+00:16:56.390 --> 00:17:01.807
+We're saying if the second column is empty, is zero--
+
+00:17:01.907 --> 00:17:04.619
+so actually, this should be with the N flag
+
+00:17:04.620 --> 00:17:06.940
+because we will transform empty values as zero,
+
+00:17:07.040 --> 00:17:08.819
+and that's how Org mode will read those.
+
+00:17:08.820 --> 00:17:12.424
+It's saying if the second flag is zero,
+
+00:17:12.425 --> 00:17:16.952
+then I want you to put "Enter the values."
+
+00:17:17.052 --> 00:17:20.440
+And if it's not empty, we're going to put
+
+00:17:20.540 --> 00:17:22.190
+"Values entered." We're going to recognize.
+
+00:17:22.290 --> 00:17:24.240
+So let's go ahead and actually do this.
+
+00:17:24.540 --> 00:17:28.990
+So let's grab this, and let's type it in.
+
+00:17:29.090 --> 00:17:36.457
+So let's go ahead. "Enter the values," because it
+
+00:17:36.557 --> 00:17:37.390
+doesn't have any.
+
+00:17:37.490 --> 00:17:42.440
+So let's go ahead and say "Hello EmacsConf"
+
+00:17:42.441 --> 00:17:47.224
+and let's go ahead and run it again.
+
+00:17:47.324 --> 00:17:48.457
+Since there are values,
+
+00:17:48.458 --> 00:17:51.574
+it's going to overwrite what's here and put value entered.
+
+00:17:51.674 --> 00:17:53.398
+So let's go ahead.
+
+00:17:53.498 --> 00:17:55.690
+Tada, so there you go.
+
+00:17:55.790 --> 00:18:00.524
+So that is pretty much how you do conditional props,
+
+00:18:00.624 --> 00:18:01.940
+which is pretty straightforward
+
+00:18:01.941 --> 00:18:02.724
+once you think about it
+
+00:18:02.725 --> 00:18:05.440
+because if you are able to insert Lisp expressions,
+
+00:18:05.441 --> 00:18:08.240
+then you are able to just do that check
+
+00:18:08.241 --> 00:18:11.074
+and do the conditional check yourself.
+
+00:18:11.174 --> 00:18:13.540
+So, custom formulas.
+
+00:18:13.640 --> 00:18:15.324
+Yeah, you'll see what I mean.
+
+00:18:15.424 --> 00:18:19.924
+We want to be able to put our own custom functions,
+
+00:18:20.024 --> 00:18:23.890
+and you probably have an idea how to do this already.
+
+00:18:23.990 --> 00:18:27.059
+Yes, we also know how to do this already.
+
+00:18:27.060 --> 00:18:30.357
+Before I continue, I'm going to say that I already
+
+00:18:30.457 --> 00:18:31.940
+have some formulas that I use
+
+00:18:31.941 --> 00:18:33.374
+which are not part of this talk
+
+00:18:33.375 --> 00:18:37.390
+because they're just functions that calculate some stuff.
+
+00:18:37.490 --> 00:18:39.990
+So for example, they calculate the monthly mortgage,
+
+00:18:40.090 --> 00:18:43.257
+the monthly PMI, property tax, homeowners insurance,
+
+00:18:43.357 --> 00:18:44.757
+so a bunch of other stuff.
+
+00:18:44.857 --> 00:18:49.729
+I have these functions already and they are a bit off,
+
+00:18:49.829 --> 00:18:52.212
+but for this example, they're doing everything.
+
+00:18:52.312 --> 00:18:54.390
+It's close enough, so don't worry too much.
+
+00:18:54.490 --> 00:18:56.824
+Just an example, you can have your own function
+
+00:18:56.924 --> 00:18:59.213
+that does something else like calculate
+
+00:18:59.313 --> 00:19:01.540
+a REI B rental or something like that.
+
+00:19:01.640 --> 00:19:03.219
+So you can do whatever you want.
+
+00:19:03.220 --> 00:19:04.724
+As long as you can call via Lisp,
+
+00:19:04.824 --> 00:19:07.899
+you can call it in Org mode, in the table formulas.
+
+00:19:07.900 --> 00:19:11.337
+So let's exit out of there.
+
+00:19:11.437 --> 00:19:13.807
+Now that we know how to do everything,
+
+00:19:13.808 --> 00:19:20.924
+let me go back to the original table and go from there.
+
+00:19:21.024 --> 00:19:26.524
+Let me close all these out actually.
+
+00:19:26.624 --> 00:19:29.524
+Now let's go back and revisit this table,
+
+00:19:29.624 --> 00:19:31.619
+since we'll be much, much more familiar
+
+00:19:31.620 --> 00:19:35.418
+except for one thing, which I will explain.
+
+00:19:35.518 --> 00:19:38.040
+So we have the constants right there
+
+00:19:38.041 --> 00:19:39.690
+and we have the house prices
+
+00:19:39.691 --> 00:19:42.499
+and we have everything just like I mentioned before.
+
+00:19:42.500 --> 00:19:44.023
+The main part that we want to look at
+
+00:19:44.123 --> 00:19:45.024
+is the table formula.
+
+00:19:45.124 --> 00:19:47.474
+So let's open up our special editing buffer,
+
+00:19:47.574 --> 00:19:49.674
+"C-c ,",
+
+00:19:49.774 --> 00:19:52.390
+and as you can see, I have some right here.
+
+00:19:52.490 --> 00:19:53.524
+So, the fifth column I'm saying,
+
+00:19:53.624 --> 00:19:55.824
+"Hey, we're gonna call this function
+
+00:19:55.924 --> 00:19:58.557
+rei-calculate-down-payment, and I'm gonna
+
+00:19:58.657 --> 00:20:00.757
+pass in the third column and fourth column
+
+00:20:00.758 --> 00:20:02.339
+and I'm going to pass in t." (true)
+
+00:20:02.340 --> 00:20:05.874
+I believe this is just to normalize,
+
+00:20:07.174 --> 00:20:12.057
+to convert to the proper decimal place,
+
+00:20:12.157 --> 00:20:14.079
+so let's not worry too much about that.
+
+00:20:14.179 --> 00:20:16.690
+Then for the sixth column, we're going to say
+
+00:20:16.790 --> 00:20:18.045
+"I calculate the monthly mortgage."
+
+00:20:18.145 --> 00:20:20.124
+We're going to pass in the third column
+
+00:20:20.224 --> 00:20:21.339
+the INTEREST_RATE, which we have
+
+00:20:21.439 --> 00:20:22.979
+defined over here in the constants.
+
+00:20:22.980 --> 00:20:26.274
+The 30, I believe this is for 30 years,
+
+00:20:26.374 --> 00:20:29.323
+PMI, the PROPERTY_TAX and HOME_INSURANCE,
+
+00:20:29.423 --> 00:20:30.774
+and then the fourth column.
+
+00:20:30.874 --> 00:20:33.824
+Then everything is going to be accepted as numbers,
+
+00:20:33.924 --> 00:20:35.074
+and we're going to have two decimals
+
+00:20:35.174 --> 00:20:36.174
+at the end of the place.
+
+00:20:36.274 --> 00:20:37.507
+So, what else?
+
+00:20:37.607 --> 00:20:40.074
+Over here is where we have our conditionals.
+
+00:20:40.174 --> 00:20:42.274
+We're saying, "hey, if the seventh column is 0,
+
+00:20:42.374 --> 00:20:44.302
+press 'Enter Tenant Income'."
+
+00:20:44.402 --> 00:20:48.407
+Over here as well, if the seventh column is zero,
+
+00:20:48.507 --> 00:20:51.724
+we're going to press 'Enter Tenant Income'
+
+00:20:51.824 --> 00:20:53.605
+and for this one we're going to say,
+
+00:20:53.705 --> 00:20:55.940
+"Hey, we're going to normalize the price."
+
+00:20:56.040 --> 00:20:59.240
+I believe this is a 1% rule.
+
+00:20:59.340 --> 00:21:01.390
+This could have been extracted into a function,
+
+00:21:01.490 --> 00:21:03.939
+but I just did the calculation right here.
+
+00:21:04.239 --> 00:21:07.890
+This, I believe, is the ROI, 12 months.
+
+00:21:07.990 --> 00:21:11.007
+This is just calculating the cash flow.
+
+00:21:11.107 --> 00:21:14.907
+This is a very rudimentary function or formula.
+
+00:21:15.407 --> 00:21:16.732
+Do not use this because there is way more
+
+00:21:16.733 --> 00:21:18.840
+to go into calculating the cash flow
+
+00:21:18.841 --> 00:21:21.499
+and also, it differs from person to person.
+
+00:21:21.599 --> 00:21:23.774
+Some people are more conservative,
+
+00:21:23.874 --> 00:21:26.959
+other people are way more liberal, so it just
+
+00:21:26.960 --> 00:21:28.874
+depends how you want to calculate it.
+
+00:21:28.974 --> 00:21:34.240
+As you can see, we have the N flag for numeric number
+
+00:21:34.241 --> 00:21:36.090
+and then we're saying we're formatting
+
+00:21:36.190 --> 00:21:37.694
+to one decimal place.
+
+00:21:37.794 --> 00:21:43.207
+The %% sign is just to input a percent sign as itself.
+
+00:21:43.208 --> 00:21:45.419
+Otherwise, Org mode is going to think
+
+00:21:45.420 --> 00:21:47.940
+it's some type of a formatter, which it's not.
+
+00:21:48.040 --> 00:21:49.140
+If you do... As I mentioned,
+
+00:21:49.240 --> 00:21:51.690
+if you've used the printf function in C or C++,
+
+00:21:51.790 --> 00:21:55.507
+then you probably know how to use it.
+
+00:21:55.607 --> 00:22:01.824
+Okay, so this is pretty much everything in a nutshell.
+
+00:22:01.924 --> 00:22:04.970
+So, one thing that I do want to say
+
+00:22:05.070 --> 00:22:06.379
+is the last section,
+
+00:22:06.479 --> 00:22:07.774
+which is automatically updating,
+
+00:22:07.874 --> 00:22:10.174
+which is the part that blew my mind
+
+00:22:10.175 --> 00:22:11.457
+when I realized that Org Mode can do this.
+
+00:22:11.557 --> 00:22:12.477
+So how do we do it?
+
+00:22:12.577 --> 00:22:14.659
+Well, you probably guessed just from looking at
+
+00:22:14.660 --> 00:22:18.324
+at the first table that we have right now.
+
+00:22:18.424 --> 00:22:20.774
+We add a column at the beginning
+
+00:22:20.874 --> 00:22:22.857
+of the table with a percent (%)--
+
+00:22:22.957 --> 00:22:24.857
+I'm sorry, with the pound sign (#)
+
+00:22:24.957 --> 00:22:28.457
+or hashtag as the younger kids call it.
+
+00:22:28.557 --> 00:22:31.045
+So this is what we do.
+
+00:22:31.145 --> 00:22:32.819
+We added a column at the beginning of the
+
+00:22:32.820 --> 00:22:34.984
+table, we do pound sign (#).
+
+00:22:35.084 --> 00:22:35.790
+So this is what it's for.
+
+00:22:35.890 --> 00:22:38.839
+This lets Org mode know that "hey,
+
+00:22:38.840 --> 00:22:41.140
+I want the values, the table formulas,
+
+00:22:41.240 --> 00:22:43.957
+to automatically run on each tab change."
+
+00:22:44.057 --> 00:22:46.240
+Now I believe that you can make it so that
+
+00:22:46.340 --> 00:22:49.123
+it changes, so that it updates on every keystroke.
+
+00:22:49.223 --> 00:22:51.024
+I think that's too much.
+
+00:22:51.124 --> 00:22:53.007
+And then you can also make it so that
+
+00:22:53.107 --> 00:22:56.019
+only certain rows update or certain columns.
+
+00:22:56.020 --> 00:22:58.219
+There's a plethora of things that you can do.
+
+00:22:58.319 --> 00:23:00.924
+You should definitely read up on the documentation,
+
+00:23:01.024 --> 00:23:03.425
+because you will probably make a way better talk,
+
+00:23:03.525 --> 00:23:06.974
+a way more advanced talk than I on this one,
+
+00:23:07.074 --> 00:23:09.574
+so I'm looking forward for that.
+
+00:23:09.674 --> 00:23:12.459
+But this is essentially how you build
+
+00:23:12.460 --> 00:23:15.507
+a Org mode table formula that will help you know
+
+00:23:15.508 --> 00:23:17.125
+if a property is correct.
+
+00:23:17.225 --> 00:23:22.340
+So, let's go ahead and as a final out to this demo,
+
+00:23:22.440 --> 00:23:25.419
+let's go ahead and enter a new column.
+
+00:23:25.420 --> 00:23:30.174
+Org-mode automatically puts the pound sign (#),
+
+00:23:30.274 --> 00:23:35.440
+which is awesome, and let's just say 'Emacs House',
+
+00:23:35.540 --> 00:23:39.590
+and let's say it is 100k.
+
+00:23:39.690 --> 00:23:44.339
+So 100k, and as you can see it's already trying to
+
+00:23:44.340 --> 00:23:46.040
+calculate the monthly mortgage,
+
+00:23:46.140 --> 00:23:47.090
+but we'll see about that,
+
+00:23:47.190 --> 00:23:49.879
+and let's just put 10% down.
+
+00:23:49.880 --> 00:23:53.057
+So 10% of 100k should be 10,000.
+
+00:23:53.157 --> 00:23:56.407
+So 10,000, correct, and the monthly mortgage is that
+
+00:23:56.408 --> 00:24:00.090
+and let's just say the tenant income is,
+
+00:24:00.190 --> 00:24:01.657
+as you can see right here,
+
+00:24:01.757 --> 00:24:05.874
+tenant income is, let's say 1500.
+
+00:24:05.974 --> 00:24:07.274
+Is it passing the 1% rule?
+
+00:24:07.374 --> 00:24:09.424
+Yep! What's my ROI?
+
+00:24:09.524 --> 00:24:13.879
+118%, which is kind of cool actually.
+
+00:24:13.880 --> 00:24:14.707
+That's a nice deal.
+
+00:24:14.907 --> 00:24:17.657
+So this is a rudimentary way of
+
+00:24:17.757 --> 00:24:20.319
+calculating deals in Org mode.
+
+00:24:20.419 --> 00:24:44.380
+I hope you found it interesting, and yeah, that is it.
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 @@
<!-- Automatically generated by emacsconf-publish-after-page -->
+<a name="realestate-mainVideo-transcript"></a>
+# 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 &quot;rule,&quot; 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="&quot;hey, that's not going to fly,&quot;" 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 &quot;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?&quot;" 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 &quot;Enter Tenant Income&quot;." 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="&quot;formula debugging has been turned on&quot;. 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 &quot;Debugging Formula. Continue to next?&quot;" 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, &quot;hey, do you want to debug this one" start="00:09:07.974" video="mainVideo-realestate" id="subtitle"]]
+[[!template text="or the next one?&quot;" start="00:09:09.691" video="mainVideo-realestate" id="subtitle"]]
+[[!template text="So this is just saying, &quot;hey, do you want to go" start="00:09:10.474" video="mainVideo-realestate" id="subtitle"]]
+[[!template text="into the next formula?&quot;" 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 &quot;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 &quot;i&quot; for &quot;integer&quot;," 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 &quot;number&quot;" 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, &quot;Do you want to continue to next?&quot;" 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 &quot;gopar&quot;." 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... &quot;gopar&quot;. 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 &quot;C-c ,&quot; 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 &quot;C-c ,&quot;, 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 &quot;C-c ,&quot; 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 &quot;%.2f&quot;." 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 &quot;Enter the values.&quot;" 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="&quot;Values entered.&quot; 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. &quot;Enter the values,&quot; 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 &quot;Hello EmacsConf&quot;" 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="&quot;C-c ,&quot;," 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="&quot;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.&quot; (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="&quot;I calculate the monthly mortgage.&quot;" 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, &quot;hey, if the seventh column is 0," start="00:20:40.174" video="mainVideo-realestate" id="subtitle"]]
+[[!template text="press 'Enter Tenant Income'.&quot;" 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="&quot;Hey, we're going to normalize the price.&quot;" 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 &quot;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.&quot;" 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 (<a href="https://chat.emacsconf.org/?join=emacsconf,emacsconf-org,emacsconf-accessible,emacsconf-dev,emacsconf-gen">#emacsconf-gen</a>)
Etherpad: <https://pad.emacsconf.org/2022-realestate>
Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen)
-Status: Talk captioned
+Status: Now playing on the conference livestream
<div>Times in different timezones:</div><div class="times" start="2022-12-03T19:15:00Z" end="2022-12-03T19:40:00Z"><div class="conf-time">Saturday, Dec 3 2022, ~2:15 PM - 2:40 PM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 3 2022, ~1:15 PM - 1:40 PM CST (US/Central)<br />Saturday, Dec 3 2022, ~12:15 PM - 12:40 PM MST (US/Mountain)<br />Saturday, Dec 3 2022, ~11:15 AM - 11:40 AM PST (US/Pacific)<br />Saturday, Dec 3 2022, ~7:15 PM - 7:40 PM UTC <br />Saturday, Dec 3 2022, ~8:15 PM - 8:40 PM CET (Europe/Paris)<br />Saturday, Dec 3 2022, ~9:15 PM - 9:40 PM EET (Europe/Athens)<br />Sunday, Dec 4 2022, ~12:45 AM - 1:10 AM IST (Asia/Kolkata)<br />Sunday, Dec 4 2022, ~3:15 AM - 3:40 AM +08 (Asia/Singapore)<br />Sunday, Dec 4 2022, ~4:15 AM - 4:40 AM JST (Asia/Tokyo)</div></div><div><a href="/2022/watch/gen/">Find out how to watch and participate</a></div>
+[[!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="""<track label="English" kind="captions" srclang="en" src="/2022/captions/emacsconf-2022-realestate--real-estate-and-org-table-formulas--daniel-gopar--main.vtt" default />"""
+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