<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Alex</title>
    <description>The latest articles on Forem by Alex (@alexfreik).</description>
    <link>https://forem.com/alexfreik</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F899482%2Fe7c4732f-ff4a-4ee9-99f3-e6ac0d403863.png</url>
      <title>Forem: Alex</title>
      <link>https://forem.com/alexfreik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/alexfreik"/>
    <language>en</language>
    <item>
      <title>Housing In the Netherlands For Students</title>
      <dc:creator>Alex</dc:creator>
      <pubDate>Thu, 28 Jul 2022 13:24:09 +0000</pubDate>
      <link>https://forem.com/alexfreik/housing-in-the-netherlands-for-students-58ii</link>
      <guid>https://forem.com/alexfreik/housing-in-the-netherlands-for-students-58ii</guid>
      <description>&lt;p&gt;You passed all your exams and are going to study in the Netherlands as an International student? Good, but the biggest challenge is yet to come!&lt;/p&gt;

&lt;p&gt;Housing here can be extremely frustrating and confusing. So I'll try my best to make it only frustrating.&lt;/p&gt;

&lt;h3&gt;
  
  
  Table of Contents
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; What are the prices?

&lt;ul&gt;
&lt;li&gt;  Student Hotels
&lt;/li&gt;
&lt;li&gt;  Private landlords
&lt;/li&gt;
&lt;li&gt;  Small Local Housing agencies
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Student Housing Organisations (like DUWO)
&lt;/li&gt;
&lt;li&gt; How to look to find a room?

&lt;ul&gt;
&lt;li&gt;  Student Hotels
&lt;/li&gt;
&lt;li&gt;  Big Housing Platforms (like Kamernet, ROOM.nl, HousingAnywhere)

&lt;ul&gt;
&lt;li&gt;  Kamernet
&lt;/li&gt;
&lt;li&gt;  ROOM.nl
&lt;/li&gt;
&lt;li&gt;  HousingAnywhere
&lt;/li&gt;
&lt;li&gt;  Facebook Groups
&lt;/li&gt;
&lt;li&gt;  Pararius
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Connections (Friends)
&lt;/li&gt;
&lt;li&gt;  University Arranged Housing
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Final words
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What are the prices?
&lt;/h2&gt;

&lt;p&gt;All prices here are in EUR per month.&lt;/p&gt;

&lt;h3&gt;
  
  
  Student Hotels
&lt;/h3&gt;

&lt;p&gt;They are pretty expensive, and you will be spending ~750-1100+ EUR.&lt;/p&gt;

&lt;h3&gt;
  
  
  Private landlords
&lt;/h3&gt;

&lt;p&gt;Prices usually vary in the range of 400-700+ EUR. And offers for &amp;lt;400 EUR are pretty rare.&lt;/p&gt;

&lt;h3&gt;
  
  
  Small Local Housing agencies
&lt;/h3&gt;

&lt;p&gt;I didn't look into this much, but as I see, they are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Usually not so cheap (~600-100+ EUR / month)&lt;/li&gt;
&lt;li&gt;  Usually require you to have a Dutch guardian with a high salary (so you don't run away without paying).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Student Housing Organisations (like DUWO)
&lt;/h2&gt;

&lt;p&gt;They have the best offers in terms of price to the quality ratio: 280-700+ EUR.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to look to find a room?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Student Hotels
&lt;/h3&gt;

&lt;p&gt;The easiest option. Just book the place, and that is it. A popular hotel is Praxis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: The sooner you start booking, the better. Before summer starts, all hotels will be almost fully booked by desperate students with only the most expensive options left. But even if you are starting late, don't give up! Some students cancel their bookings, and new rooms are popping out from time to time. The best is if you can create a bot that will notify you every time there is a new room.&lt;/p&gt;

&lt;h3&gt;
  
  
  Big Housing Platforms (like Kamernet, ROOM.nl, HousingAnywhere)
&lt;/h3&gt;

&lt;p&gt;IMO the best option if you are looking for a cheap house. Let's talk about each of these giants.&lt;/p&gt;

&lt;h4&gt;
  
  
  Kamernet
&lt;/h4&gt;

&lt;p&gt;Large platform with 50+ new offers every day. I have found a house here two times.&lt;br&gt;
The process is such: private landlords and people who have a leaving housemate publish their room here. Everyone interested can respond with a letter. After a week or a few days, they will filter all ~100 letters,&lt;br&gt;
and send invitations to online/physical viewing to around five selected ones. And after this, they will finally choose the new tenant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Zillions of offers.&lt;/li&gt;
&lt;li&gt;  You can see people's renting history, so there are much fewer scammers.&lt;/li&gt;
&lt;li&gt;  You can easily set up your filter so that Kamernet sends you an email when there is a new room.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  It is very competitive. I've heard that some landlords receive &lt;strong&gt;100 letters&lt;/strong&gt; in the first hour after publishing a new room!&lt;/li&gt;
&lt;li&gt;  Because of first be ready to spend quite a bit of your time writing good letters and visiting viewings.&lt;/li&gt;
&lt;li&gt;  You need to buy a subscription to be able to write letters to landlords. Both times I've found a room within
a month, so I would recommend a two-month subscription plan starting in ~April.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  I noticed that the quicker your response, the higher your chance to get a positive response. I've been checking my mail for three times a day and responding on ~2-5 offers a day for a month.&lt;/li&gt;
&lt;li&gt;  The letter is &lt;strong&gt;essential&lt;/strong&gt;! If you don't make it a bit personal by putting your time &amp;amp; effort into each offer, no one will respond. They receive hundreds of letters, and select only ~5-10 of them. You can read
&lt;a href="https://dev.toTODO"&gt;how to write a successful letter here&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ROOM.nl
&lt;/h4&gt;

&lt;p&gt;It is also a large platform owned by DUWO with lots and lots of cheap student houses. There are two main ways to find a room on this platform.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Vote-in offers&lt;/strong&gt;
They are similar to Kamernet. People publish their rooms, everyone interested sends their emails, and chosen ones go to the viewing. There are not many vote-in offers on ROOM.nl, but there is no harm in applying.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Registration period ranking offers&lt;/strong&gt;&lt;br&gt;
this is the most often option. So basically ROOM.nl publishes offers, and people can participate in the competition for this room simply by clicking the button "I'm interested". After the deadline for submitting interest DUWO iteratively offers the room to the 1st person in the rank, then to the 2nd, ..., until someone accepts it.&lt;/p&gt;

&lt;p&gt;The main issue is that ranking is based on registration time, so people who registered on ROOM.nl a month ago don't have any chances (usually over 100 people are competing...). Only people with 2+ years of registration will have some luck.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Registration is cheap ~40 EUR, and it lasts 8 years, so I would buy it anyway since it can be helpful in the future.&lt;/li&gt;
&lt;li&gt;  There is so-called "short-time" offers when there is only one day to show interest until the deadline. You can try some luck with them, but still, there will be 80+ people who will also apply.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  HousingAnywhere
&lt;/h4&gt;

&lt;p&gt;Platform with many offers. They are usually more expensive than ones on the Kamernet but easier to get.&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  The good part is that here there are no viewings. You book the offer like
in a hotel, and the room is yours if a landlord accepts it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Since there are no viewings, you also can't check whether the offer is a scam or not. Probably there are not many scams there, but still, it is a bit scary.&lt;/li&gt;
&lt;li&gt;  There are quite a few bad reviews about this platform from Berlin (about people being scammed and of no support in these cases). But maybe it is specific to Berlin or Germany only.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Facebook Groups
&lt;/h4&gt;

&lt;p&gt;Personally didn't try this option since I've been using Kamernet. I've heard there are lots of scammers here. Plus people here aren't any less desperate than ones on Kamernet. I would pay this 40 EUR for some anti-scam assurance.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pararius
&lt;/h4&gt;

&lt;p&gt;It is a platform that gathers lots and lots of offers from local rental agencies.&lt;/p&gt;

&lt;p&gt;To be honest, I don't know anyone who found a room on this platform.&lt;/p&gt;

&lt;p&gt;I wouldn't waste my time here if you don't have someone from the Netherlands with a salary who will sign a legal document that he will be paying your rent, in case you won't.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connections (Friends)
&lt;/h3&gt;

&lt;p&gt;It is an easy option. If your friend lives in a room and his current housemate is leaving, you can use this opportunity. Sounds easy, but out of 10 first-year students, I remember only one person managed to find room this way (mainly by luck). So I wouldn't rely much on it.&lt;/p&gt;

&lt;h3&gt;
  
  
  University Arranged Housing
&lt;/h3&gt;

&lt;p&gt;If you are&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  an international student or&lt;/li&gt;
&lt;li&gt;  coming as an exchange student for half a year or&lt;/li&gt;
&lt;li&gt;  you are a master's student&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then most probably your university offers you an option to arrange the house for you.&lt;br&gt;
I would highly recommend taking it! Unless you have lots of money to spend on rent (&amp;lt;700-1000 / month) you will probably spend quite a bit of time on this process. And if you are living far away and can't visit physical viewings, then life will be harder.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final words
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Start as early as March or April.&lt;/li&gt;
&lt;li&gt;Depending on your financial situation, choose the best way of searching&lt;/li&gt;
&lt;li&gt;Don't limit yourself to only one way. For example, I've been using both ROOM.nl and Kamernet.&lt;/li&gt;
&lt;li&gt;If you send letters to people, make them good and a bit personal. It will rocket your chances of getting a response.&lt;/li&gt;
&lt;li&gt;Don't forget that I am only a second-year student and am a little better than you ;)
I don't know much about housing, so take my post with a grain of salt!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Good luck with housing everyone!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PS&lt;/strong&gt;:&lt;br&gt;
From my Probability and Statistics classes, I've remembered one thing.&lt;/p&gt;

&lt;p&gt;Let's imagine you can wait time T, and you want to choose the best offer. In this case, you should wait T/2 time and remember the best offer you have had. And after this, wait another T/2 time and select any offer that is at least as good as the best one from previous T/2 time period.&lt;/p&gt;

&lt;p&gt;I don't know whether it is the best strategy with housing, though)&lt;/p&gt;

</description>
      <category>housing</category>
      <category>netherlands</category>
      <category>student</category>
    </item>
    <item>
      <title>Linux Assembly on macOS</title>
      <dc:creator>Alex</dc:creator>
      <pubDate>Thu, 28 Jul 2022 13:10:00 +0000</pubDate>
      <link>https://forem.com/alexfreik/linux-assembly-on-macos-190h</link>
      <guid>https://forem.com/alexfreik/linux-assembly-on-macos-190h</guid>
      <description>&lt;p&gt;Computer Organisation / Architecture courses usually require writing Assembly code for Linux.&lt;/p&gt;

&lt;p&gt;What I'll address here is &lt;strong&gt;how to easily run Linux Assembly on macOS machines&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt; TL;DR
&lt;/li&gt;
&lt;li&gt; The "Clumsy" Way (VM)

&lt;ul&gt;
&lt;li&gt;  Pros
&lt;/li&gt;
&lt;li&gt;  Cons
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; The "Smart" Way (Docker)

&lt;ul&gt;
&lt;li&gt;  Pros
&lt;/li&gt;
&lt;li&gt;  Cons
&lt;/li&gt;
&lt;li&gt;  Explanation of Code Snippets
&lt;/li&gt;
&lt;li&gt;  A Few Thing to Mention:
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; Renting a Linux Server

&lt;ul&gt;
&lt;li&gt;  Pros
&lt;/li&gt;
&lt;li&gt;  Cons
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;p&gt;There are a few ways how to do it, IMO the easiest and most pleasant way is to use &lt;code&gt;Docker&lt;/code&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Watch this great 2-h &lt;a href="https://youtu.be/fqMOX6JJhGo"&gt;Docker Tutorial for Beginners&lt;/a&gt; from the FreeCodeCamp (optional).&lt;/li&gt;
&lt;li&gt;Install Docker Desktop for macOS and start &lt;code&gt;Docker&lt;/code&gt;.
You can check that everything is alright by executing &lt;code&gt;$ docker ps&lt;/code&gt; command and not having errors.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a &lt;code&gt;Dockerfile&lt;/code&gt; in the folder with your Assembly code&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="c"&gt;# Dockerfile&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; ubuntu:latest&lt;/span&gt;

&lt;span class="k"&gt;RUN &lt;/span&gt;apt-get update
&lt;span class="k"&gt;RUN &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; gcc
&lt;span class="k"&gt;RUN &lt;/span&gt;apt-get &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; make
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create &lt;code&gt;docker-compose.yml&lt;/code&gt; file in the same folder as &lt;code&gt;Dockerfile&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# docker-compose.yml&lt;/span&gt;
&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;3"&lt;/span&gt;
&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;linux&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;linux-image&lt;/span&gt;
        &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;linux-container&lt;/span&gt;
        &lt;span class="na"&gt;build&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;context&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;.&lt;/span&gt;
        &lt;span class="na"&gt;command&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sleep &lt;/span&gt;&lt;span class="m"&gt;1000&lt;/span&gt;
        &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;.:/code&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code&gt;$ docker-compose up&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Connect to the container via &lt;code&gt;$ docker exec -it linux-container bash&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You are ready to go! Your code will be in the &lt;code&gt;/code/&lt;/code&gt; folder. You can edit it inside a docker container and changes will be seen in the host and vice versa because it is a "shared folder".&lt;/p&gt;

&lt;p&gt;After a container has stopped (with &lt;code&gt;CTRL-C&lt;/code&gt;, for example), you can start it again by repeating 5-6 steps.&lt;/p&gt;




&lt;h2&gt;
  
  
  The &lt;em&gt;"Clumsy"&lt;/em&gt; Way (VM)
&lt;/h2&gt;

&lt;p&gt;You can use VMs like &lt;code&gt;Virtual Box&lt;/code&gt; or &lt;code&gt;Parallels&lt;/code&gt; or &lt;code&gt;VM Ware&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  It may be a bit easier to start with, but the sacrifice in the experience doesn't worth it IMO =).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Those apps are either:

&lt;ul&gt;
&lt;li&gt;  Free and shitty (slow, ugly, and require quite a bit of time to set up everything),
like &lt;code&gt;Virtual Box&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  Or paid and a bit less shitty, like &lt;code&gt;Parallels&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;  They really may take the time. I gave up on setting "Shared Folder" to share code when using Virtual box.
And I spent almost a day trying to SSH into my &lt;code&gt;Parallels&lt;/code&gt; VM...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;BTW if you still want to go with VM after this article I highly recommend using &lt;code&gt;SSH&lt;/code&gt; instead of the&lt;br&gt;
GUI that VM provides.&lt;/p&gt;

&lt;p&gt;In case you don't know, to connect via &lt;code&gt;SSH&lt;/code&gt; basically means that you are using your host terminal to connect to the VM, as to the server. As a result, you can execute&lt;br&gt;
commands on a remote VM using your host terminal.&lt;/p&gt;




&lt;h2&gt;
  
  
  The &lt;em&gt;"Smart"&lt;/em&gt; Way (Docker)
&lt;/h2&gt;

&lt;p&gt;Please don't be afraid it is not that hard at all, I promise. Please look at the code above in the TL;DR&lt;br&gt;
section.&lt;br&gt;&lt;br&gt;
Does it look scary? Believe it or not, this is the only code you would need.&lt;br&gt;
So if you are interested, please read further.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  You will learn a truly amazing technology that will be of great help to you in the future as well.&lt;/li&gt;
&lt;li&gt;  I had the best experience using this way.&lt;/li&gt;
&lt;li&gt;  If you mess your container up, you can easily restart it from its initial state.&lt;/li&gt;
&lt;li&gt;  You can easily make "Shared Folders" and connect them to your container.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  You may spend quite a bit of time, in the beginning, depending on your background.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Explanation of Code Snippets
&lt;/h3&gt;

&lt;p&gt;The FreeCodeCamp tutorial I linked above is explains everything in-depth, but here I have a small summary.&lt;/p&gt;

&lt;p&gt;Essentially Docker Desktop for macOS is VM itself. Thus it allows us to run Linux containers on macOS.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;Dockerfile&lt;/code&gt; is a file that defines the so-called "container image". It contains the settings that you want to have&lt;br&gt;
for your container.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;FROM ubuntu:latest&lt;/code&gt; says that we want our image to be based on another image, the latest ubuntu.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;RUN &amp;lt;some command&amp;gt;&lt;/code&gt; says docker to run this &lt;code&gt;&amp;lt;some command&amp;gt;&lt;/code&gt; inside image when building. We are installing &lt;code&gt;gcc&lt;/code&gt; and &lt;code&gt;make&lt;/code&gt; for using this command.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;docker-compose.yml&lt;/code&gt; is a file where we define how exactly we want to run our container.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;code&gt;image: linux-image&lt;/code&gt; means that we want the container to be created from the image with the name &lt;code&gt;linux-image&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;command: sleep 1000&lt;/code&gt; is the command which will be executed in the container. The container will be
alive while the process executing this command is alive.&lt;/li&gt;
&lt;li&gt;  &lt;code&gt;volumes: .:/code&lt;/code&gt; means that we map &lt;code&gt;.&lt;/code&gt; folder in the host with the folder &lt;code&gt;/code/&lt;/code&gt; in the container. Therefore it will be a shared folder (so-called volume).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Few Thing to Mention:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  As with everything in programming, you &lt;strong&gt;don't&lt;/strong&gt; need to know &lt;strong&gt;everything&lt;/strong&gt; about tool to use it.&lt;/li&gt;
&lt;li&gt;  Docker is not a rocket science, but (especially if you are pretty new to programming) probably starting with reading dry documentation is not the brightest idea. There are great tutorials out there.&lt;/li&gt;
&lt;li&gt;  Docker makes a lot of things &lt;em&gt;so freaking much easier&lt;/em&gt;. For example, my
&lt;code&gt;Jekyll&lt;/code&gt; website uses &lt;code&gt;Docker&lt;/code&gt; because it is much faster than resolving &lt;em&gt;stupid&lt;/em&gt; gem conflicts every
few months and making a mess of your system by installing a lot of different libraries and packages.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Renting a Linux Server
&lt;/h2&gt;

&lt;p&gt;Yes, you can always rent a Linux server and access it through &lt;code&gt;SSH&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pros
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  It is a bit easier than learning &lt;code&gt;Docker&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  It may be useful to have your server. You can use it for hosting your website, for example.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  It is more expensive than using &lt;code&gt;Docker&lt;/code&gt; (will cost 10-20 EUR a month).&lt;/li&gt;
&lt;li&gt;  You can only access the server when you have Internet.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>docker</category>
      <category>assembler</category>
      <category>macos</category>
    </item>
    <item>
      <title>Learn \LaTeX</title>
      <dc:creator>Alex</dc:creator>
      <pubDate>Thu, 28 Jul 2022 12:53:00 +0000</pubDate>
      <link>https://forem.com/alexfreik/learn-latex-ddj</link>
      <guid>https://forem.com/alexfreik/learn-latex-ddj</guid>
      <description>&lt;p&gt;Here I'll share a bit of my experience about how to learn &lt;code&gt;\LaTeX&lt;/code&gt; from zero, the best editor for &lt;code&gt;\LaTeX&lt;/code&gt; (IMO) as well as typical mistakes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Table of Contents
&lt;/li&gt;
&lt;li&gt;  "Who Is LaTeX" Stage

&lt;ul&gt;
&lt;li&gt;  Typing
&lt;/li&gt;
&lt;li&gt;  How To Learn
&lt;/li&gt;
&lt;li&gt;  Where To TeX

&lt;ul&gt;
&lt;li&gt;  GUI / Text Editor for LaTeX
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;  Life Hacks
&lt;/li&gt;
&lt;li&gt;  Typical Mistakes
&lt;/li&gt;
&lt;li&gt;  Useful Links
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  "Who Is LaTeX" Stage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Typing
&lt;/h3&gt;

&lt;p&gt;It is a requirement for &lt;a href="https://www.ratatype.com"&gt;any&lt;/a&gt; programming activity. Open any trainer for blind printing with ten fingers — and go ahead!&lt;/p&gt;

&lt;h3&gt;
  
  
  How To Learn
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;I recommend this &lt;a href="https://www.overleaf.com/learn/latex/Free_online_introduction_to_LaTeX_(part_1)"&gt;free online introduction to &lt;code&gt;\LaTeX&lt;/code&gt;&lt;/a&gt; in three parts, made by &lt;a href="https://www.overleaf.com/"&gt;Overleaf&lt;/a&gt;. Instead of a dry book guide, they made it as a presentation. There are a lot of examples, with a focus only on the most important stuff. This introduction should take about 4-hours for you to read.  &lt;/p&gt;

&lt;p&gt;Also, Overleaf has great docs. Later, when you have some questions about &lt;code&gt;\LaTeX&lt;/code&gt;, you can look it up in their docs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Videos are usually the easiest way to learn, and for a quick start in &lt;code&gt;\LaTeX&lt;/code&gt; take &lt;a href="https://www.coursera.org/learn/latex"&gt;a free course from the HSE (in Russian)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The basics could be learned in 4-5 hours, and two days off are enough for the entire course. Video lessons are better than thick books in the beginning.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Where To TeX
&lt;/h3&gt;

&lt;p&gt;There are two ways.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Online compiler like overleaf.

&lt;ul&gt;
&lt;li&gt;Very simple.&lt;/li&gt;
&lt;li&gt;Real-time online teamwork.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Set up your environment.

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;So much faster compiling!&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Takes time.&lt;/li&gt;
&lt;li&gt;Easier to integrate Git.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  GUI / Text Editor for LaTeX
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;The best&lt;/strong&gt; option, in my opinion, is &lt;code&gt;LaTeX&lt;/code&gt; in &lt;code&gt;Vim&lt;/code&gt;. There are &lt;a href="https://castel.dev"&gt;&lt;strong&gt;gold articles&lt;/strong&gt;&lt;/a&gt; in which Gilles Castel shows his &lt;code&gt;Vim&lt;/code&gt; + &lt;code&gt;LaTeX&lt;/code&gt; setup and how it works.&lt;/p&gt;

&lt;p&gt;Otherwise — you can try &lt;code&gt;TexStudio&lt;/code&gt;, but it looks like an ancient artifact.&lt;br&gt;
Also, there is the &lt;code&gt;texpad&lt;/code&gt; app for macOS, but I had some issues with buggy behavior (in 2020).&lt;/p&gt;

&lt;p&gt;PS: The &lt;code&gt;Vim&lt;/code&gt; + &lt;code&gt;LaTeX&lt;/code&gt; setup can easily take 20+ hours to make it work if you are new.&lt;/p&gt;


&lt;h2&gt;
  
  
  Life Hacks
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Use &lt;code&gt;\newcommand{command_name}{script_of_command}&lt;/code&gt; for commands you use &lt;strong&gt;very often&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Compare &lt;code&gt;f: \mathbb{R} \to \mathbb{R}&lt;/code&gt; and &lt;code&gt;f: \R\to\R&lt;/code&gt;.&lt;br&gt;


&lt;/p&gt;
&lt;div class="katex-element"&gt;
  &lt;span class="katex-display"&gt;&lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;f:R→R
f: \mathbb{R} \to \mathbb{R}
&lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;f&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;:&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathbb"&gt;R&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;→&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord mathbb"&gt;R&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;



&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Learn how to TeX in &lt;code&gt;Vim&lt;/code&gt; =)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Typical Mistakes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Please, God, don't do 500+ lines main.tex...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It will be an unmaintainable mess.&lt;/li&gt;
&lt;li&gt;You don’t have a universal preamble.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead -- use &lt;code&gt;input{anotherFile.tex}&lt;/code&gt; or &lt;code&gt;include{anotherFile.tex}&lt;/code&gt; to structure code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Not using or defining &lt;code&gt;LaTeX&lt;/code&gt; environments.&lt;br&gt;
For every theorem, proof, note, etc. you can set special environment (&lt;code&gt;\begin{theorem}&lt;/code&gt;, &lt;code&gt;\begin{proof}&lt;/code&gt;).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Now you can change the style of your theorems by changing one line.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Not using &lt;code&gt;multiline&lt;/code&gt; or &lt;code&gt;align&lt;/code&gt; environments for long formulas.&lt;br&gt;

&lt;/p&gt;
&lt;div class="katex-element"&gt;
  &lt;span class="katex-display"&gt;&lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;a=b+c+d−d=b+c
\begin{align*}
    a &amp;amp;=  b + c + d - d \\
      &amp;amp;= b + c
\end{align*}
&lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mtable"&gt;&lt;span class="col-align-r"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="col-align-l"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;b&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;c&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;d&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;−&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;d&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;b&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;


&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="nt"&gt;\begin{align*}&lt;/span&gt;
    a &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;=  b + c + d - d &lt;span class="k"&gt;\\&lt;/span&gt;
      &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;= b + c
&lt;span class="nt"&gt;\end{align*}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Not using &lt;code&gt;\cfrac&lt;/code&gt; or &lt;code&gt;\displaystyle&lt;/code&gt; when necessary.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Otherwise, the formula may get hard to read.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;2+846\frac{2 + \frac{8}{4}}{6} &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mopen nulldelimiter"&gt;&lt;/span&gt;&lt;span class="mfrac"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mtight"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="frac-line"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mtight"&gt;2&lt;/span&gt;&lt;span class="mbin mtight"&gt;+&lt;/span&gt;&lt;span class="mord mtight"&gt;&lt;span class="mopen nulldelimiter sizing reset-size3 size6"&gt;&lt;/span&gt;&lt;span class="mfrac"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size3 size1 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mtight"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="frac-line mtight"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size3 size1 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mtight"&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose nulldelimiter sizing reset-size3 size6"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose nulldelimiter"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
 -- without &lt;code&gt;\displaystyle&lt;/code&gt;  &lt;/p&gt;

&lt;p&gt;
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;2+846\cfrac{2 + \frac{8}{4}}{6} &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mopen nulldelimiter"&gt;&lt;/span&gt;&lt;span class="mfrac"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;6&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="frac-line"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;2&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mopen nulldelimiter"&gt;&lt;/span&gt;&lt;span class="mfrac"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mtight"&gt;4&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="frac-line"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="sizing reset-size6 size3 mtight"&gt;&lt;span class="mord mtight"&gt;&lt;span class="mord mtight"&gt;8&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="mclose nulldelimiter"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
 -- with &lt;code&gt;\displaystyle&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Not using &lt;code&gt;\text&lt;/code&gt; inside formulas.&lt;br&gt;

&lt;/p&gt;
&lt;div class="katex-element"&gt;
  &lt;span class="katex-display"&gt;&lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;a=a+b+c+d,when  sun  is  reda=b+c, when sun is white
\begin{align*}
a &amp;amp;= a + b + c + d , when\; sun\; is\; red  \\
a &amp;amp;= b + c, \text{ when sun is white}
\end{align*}
&lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mtable"&gt;&lt;span class="col-align-r"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="col-align-l"&gt;&lt;span class="vlist-t vlist-t2"&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;b&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;c&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;d&lt;/span&gt;&lt;span class="mpunct"&gt;,&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;w&lt;/span&gt;&lt;span class="mord mathnormal"&gt;h&lt;/span&gt;&lt;span class="mord mathnormal"&gt;e&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;s&lt;/span&gt;&lt;span class="mord mathnormal"&gt;u&lt;/span&gt;&lt;span class="mord mathnormal"&gt;n&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;i&lt;/span&gt;&lt;span class="mord mathnormal"&gt;s&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;re&lt;/span&gt;&lt;span class="mord mathnormal"&gt;d&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="pstrut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;&lt;span class="mord"&gt;&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mrel"&gt;=&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;b&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mbin"&gt;+&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord mathnormal"&gt;c&lt;/span&gt;&lt;span class="mpunct"&gt;,&lt;/span&gt;&lt;span class="mspace"&gt;&lt;/span&gt;&lt;span class="mord text"&gt;&lt;span class="mord"&gt; when sun is white&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-s"&gt;​&lt;/span&gt;&lt;/span&gt;&lt;span class="vlist-r"&gt;&lt;span class="vlist"&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/div&gt;


&lt;pre class="highlight tex"&gt;&lt;code&gt;&lt;span class="nt"&gt;\begin{align*}&lt;/span&gt;
a &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;= a + b + c + d , when&lt;span class="k"&gt;\;&lt;/span&gt; sun&lt;span class="k"&gt;\;&lt;/span&gt; is&lt;span class="k"&gt;\;&lt;/span&gt; red  &lt;span class="k"&gt;\\&lt;/span&gt;
a &lt;span class="p"&gt;&amp;amp;&lt;/span&gt;= b + c, &lt;span class="k"&gt;\text&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; when sun is white&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nt"&gt;\end{align*}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;All variables inside text should be math mode.  &lt;/p&gt;

&lt;p&gt;-a or 
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;−a-a &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="mord"&gt;−&lt;/span&gt;&lt;span class="mord mathnormal"&gt;a&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Avoid making new lines in text with &lt;code&gt;\\&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using empty lines instead makes code much more readable.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Not using &lt;code&gt;\ldots&lt;/code&gt; for ...&lt;/p&gt;

&lt;p&gt;... or 
&lt;span class="katex-element"&gt;
  &lt;span class="katex"&gt;&lt;span class="katex-mathml"&gt;…\ldots &lt;/span&gt;&lt;span class="katex-html"&gt;&lt;span class="base"&gt;&lt;span class="strut"&gt;&lt;/span&gt;&lt;span class="minner"&gt;…&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ignoring warnings and errors.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You &lt;strong&gt;must not&lt;/strong&gt; ignore erros.&lt;/li&gt;
&lt;li&gt;Warnings help you deepen your knowledge and improve code.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Not using &lt;code&gt;Git&lt;/code&gt; for big projects.&lt;br&gt;
Best of luck...&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using tutorials from ancient times.&lt;br&gt;
You can meet outdated and deprecated practices.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Useful Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://mathpix.com"&gt;Get LaTeX code from formula screenshot&lt;/a&gt; -- super ultra-useful&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://detexify.kirelabs.org/classify.html"&gt;Draw symbol and get latex command&lt;/a&gt; -- ultra-useful&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.tablesgenerator.com"&gt;Latex table constructor&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://wch.github.io/latexsheet/latexsheet.pdf"&gt;LaTeX Cheatsheet&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>latex</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
