<?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: Alexandru Trandafir</title>
    <description>The latest articles on Forem by Alexandru Trandafir (@atrandafir).</description>
    <link>https://forem.com/atrandafir</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%2F3429%2F2ZL4J626.png</url>
      <title>Forem: Alexandru Trandafir</title>
      <link>https://forem.com/atrandafir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/atrandafir"/>
    <language>en</language>
    <item>
      <title>Chrome provides no way to disable credit card autofill</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 06 May 2024 19:24:14 +0000</pubDate>
      <link>https://forem.com/atrandafir/chrome-provides-no-way-to-disable-credit-card-autofill-4415</link>
      <guid>https://forem.com/atrandafir/chrome-provides-no-way-to-disable-credit-card-autofill-4415</guid>
      <description>&lt;p&gt;This is going to be just a short article that I write as a way to protest to this annoying behavior in Chromium based browsers (Chrome, Edge, others?).&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Well you must be used to autocomplete credit card information in your browser, and indeed it is a very useful feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Buggy detection of credit card fields
&lt;/h2&gt;

&lt;p&gt;The issue is that the following form that just asks the user for a date and a number (in Spanish), will trigger the browser's credit card functionality because it thinks I'm asking the user for a credit card.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Fecha&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[fecha]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Número&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[numero]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So the algorithm is buggy. I'm not blaming the developers behind it because I'm sure it is complex but, they really need to consider if this is the best approach or they need to review how things work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Workarounds to solving this incorrect credit card fields detection
&lt;/h2&gt;

&lt;p&gt;Well basically you can solve it with some hacks either by renaming the field names or the text of the label as these two are being used somehow inside the credit card field detection logic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Label based hack
&lt;/h3&gt;

&lt;p&gt;This hack can be used ONLY if your input names do not contain the keywords, but only your labels do and so the labels are triggering the credit card menus.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Fecha&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[field1]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Nú&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display:none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;mero&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Factura[field2]"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Input name based hack
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Fe&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display:none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;cha&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"other_input_name"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Nú&lt;span class="nt"&gt;&amp;lt;span&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"display:none"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;/&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;mero&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"other_input_name_2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So depending on the fields on your form, you can implement one hack or the other, the label one is less problematic as it does not mess with your field naming, but depending on the case you might need to change the field names too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bottom line: You can't have both "Fecha" and "Número" keywords combination inside your input names or labels.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have submitted an issue here to ask for a better solution: &lt;a href="https://issues.chromium.org/issues/339033226" rel="noopener noreferrer"&gt;https://issues.chromium.org/issues/339033226&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The cover image comes from a Spanish invoicing software I'm working on: &lt;a href="https://refactu.com/" rel="noopener noreferrer"&gt;https://refactu.com/&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Generating Excel sheet with dynamic column names</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 18 Jan 2021 13:29:25 +0000</pubDate>
      <link>https://forem.com/atrandafir/generating-excel-sheet-with-dynamic-column-names-h8a</link>
      <guid>https://forem.com/atrandafir/generating-excel-sheet-with-dynamic-column-names-h8a</guid>
      <description>&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;When we export an Excel sheet from &lt;code&gt;PHP&lt;/code&gt;, or other language, the most common use case is to export a table from the database, and some of the times it also contains some information in the header, and a footer with some totals.&lt;/p&gt;

&lt;p&gt;Bottom line, we have a table, and some columns.&lt;/p&gt;

&lt;p&gt;This is how you'd go normally, by placing manually each column letter in the different parts of the document, such as:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Header&lt;/li&gt;
&lt;li&gt;Rows&lt;/li&gt;
&lt;li&gt;Styling
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Spreadsheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getActiveSheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Normal way of naming Excel columns'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Header&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'B'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Phone'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'City'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Rows&lt;/span&gt;
&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$rows&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'B'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c1"&gt;// Styling&lt;/span&gt;
&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A3:C'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;applyFromArray&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'borders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'allBorders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="s1"&gt;'borderStyle'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Border&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;BORDER_THIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A3:C3'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getFill&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setFillType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Fill&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;FILL_SOLID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStartColor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setARGB&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'FFA0A0A0'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'B'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Xlsx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$writer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'normal.xlsx'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The problem with this approach is that if you want to add new columns, you'll have to spend some time renaming all the letters. And you'll also have to remember which letter you have assigned to each column when you apply styling.&lt;/p&gt;

&lt;p&gt;So if you want to add the column &lt;code&gt;Company&lt;/code&gt; after &lt;code&gt;Phone&lt;/code&gt;, you'll have to put it on the letter &lt;code&gt;C&lt;/code&gt;, and rename the next column &lt;code&gt;C&lt;/code&gt; to &lt;code&gt;D&lt;/code&gt;, and do this in renaming everywhere, not just in the header, also in the rows and in the styling, etc.&lt;/p&gt;

&lt;p&gt;You'd say it's a quick task, but..   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What if you had 10-20 columns or more? &lt;/li&gt;
&lt;li&gt;What if you wanted to have some cases when you show a column and other cases when you want to hide it based on user preference when exporting?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The solution
&lt;/h2&gt;

&lt;p&gt;Okay it might not be the best solution, I'm sure others might think of better ways to do it but this is one way to avoid spending lots of time renaming the columns.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Load the column names helper&lt;/span&gt;
&lt;span class="k"&gt;require&lt;/span&gt; &lt;span class="s1"&gt;'ExCol.php'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// reset mapping before using&lt;/span&gt;

&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Spreadsheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getActiveSheet&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A1'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'Dynamic way of naming Excel columns'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Header&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Phone'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Company'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'City'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Rows&lt;/span&gt;
&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$rows&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nv"&gt;$lastColLetter&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;getLast&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// Styling&lt;/span&gt;
&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'A3:'&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$lastColLetter&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nv"&gt;$lastRowIndex&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;applyFromArray&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
    &lt;span class="s1"&gt;'borders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s1"&gt;'allBorders'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="s1"&gt;'borderStyle'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Border&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;BORDER_THIN&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;]);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStyle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"A3:&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$lastColLetter&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;3"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getFill&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setFillType&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;\PhpOffice\PhpSpreadsheet\Style\Fill&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;FILL_SOLID&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getStartColor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setARGB&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'FFA0A0A0'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;35&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getColumnDimension&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nv"&gt;$writer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Xlsx&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$spreadsheet&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$writer&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;save&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'dynamic.xlsx'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So how does it work?  &lt;/p&gt;

&lt;p&gt;Well, we have created a small helper class named &lt;code&gt;ExCol&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;&lt;em&gt;I know, I could have found a better name but at least it is short.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;PhpOffice\PhpSpreadsheet\Cell\Coordinate&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;ExCol&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;in_array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="nv"&gt;$index&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;array_search&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$col&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$columnLetter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Coordinate&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;stringFromColumnIndex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$index&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$columnLetter&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="o"&gt;?&lt;/span&gt;&lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;getLast&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;Coordinate&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;stringFromColumnIndex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;self&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nv"&gt;$_map&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With this class, every time we need a letter for a column, we just call the method &lt;code&gt;ExCol::get()&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_first_column'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns A&lt;/span&gt;
&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_second_column'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns B&lt;/span&gt;
&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_third_column'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns C&lt;/span&gt;
&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_third_column'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Returns C2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Optionally we can also pass a &lt;code&gt;$row&lt;/code&gt; number so instead of getting back &lt;code&gt;C&lt;/code&gt;, we'll get &lt;code&gt;C2&lt;/code&gt; and avoid having to use concatenation.&lt;/p&gt;

&lt;p&gt;So the class stores statically an index of the columns requested in the order they were requested. And based on the index assigned to each column, it will return its letter, by using &lt;code&gt;PhpSpreadsheet&lt;/code&gt;'s &lt;code&gt;Coordinate::stringFromColumnIndex()&lt;/code&gt; method.&lt;/p&gt;

&lt;p&gt;So let's go over the new parts in the code.  &lt;/p&gt;

&lt;p&gt;If we use the helper on a script that is used to generate multiple Excel files, we might want to call the &lt;code&gt;reset()&lt;/code&gt; method to clear the index just in case so it won't contain the columns of the previous file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nb"&gt;reset&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// reset mapping before using&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We then define a variable for showing or hiding one of the columns:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And when printing the header, we only include that column if required:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Header&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Name'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Phone'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'Company'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'City'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Same happens when looping the rows and with the styling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Rows&lt;/span&gt;
&lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$rows&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'phone'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$show_company_column&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'company'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nv"&gt;$sheet&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;setCellValue&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;ExCol&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$row&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'city'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So you can see we're dynamically including one column, so if we only put 3 columns we'll the helper will give us &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt; and &lt;code&gt;C&lt;/code&gt;, but if we put 4, we'll get &lt;code&gt;A&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt;, &lt;code&gt;C&lt;/code&gt;, &lt;code&gt;D&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you want to control dynamically the columns to show, or you need to add more columns or remove some, there will be no need for renaming anything as it will all happen automatically.&lt;/p&gt;

&lt;p&gt;Full source code here:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/atrandafir/excel-dynamic-columns" rel="noopener noreferrer"&gt;https://github.com/atrandafir/excel-dynamic-columns&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Original post at:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://atrandafir.dev/post/generating-excel-sheet-dynamic-column-names" rel="noopener noreferrer"&gt;https://atrandafir.dev/post/generating-excel-sheet-dynamic-column-names&lt;/a&gt;&lt;/p&gt;

</description>
      <category>excel</category>
      <category>php</category>
    </item>
    <item>
      <title>A Sci-Fi corona theory of my own</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 21 Sep 2020 11:58:58 +0000</pubDate>
      <link>https://forem.com/atrandafir/a-sci-fi-corona-theory-of-my-own-1e47</link>
      <guid>https://forem.com/atrandafir/a-sci-fi-corona-theory-of-my-own-1e47</guid>
      <description>&lt;p&gt;As a developer and someone who often spends his time trying to identify and solve problems, I use to passively gather information on a subject and then draw a conclusion in order to find a solution.&lt;/p&gt;

&lt;p&gt;Disclaimer: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Sometimes I can be right while sometimes I might be totally wrong. This can be totally nonsense but at least it could be used for a Sunday low budget Sci-fi movie.&lt;br&gt;
Luckily I have no close friends or relatives that have died or had serious issues from Covid so I apologize in advance if my ignorant thoughts can upset anyone, as it is not the intention of the post.&lt;br&gt;
I didn't do any real research that will strongly support the contents of this post so I might as well end up deleting it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I guess like everyone else, on the "coronavirus situation" I've been thinking about all kind of stuff, from real virus threat to political control, new world order and all that nonsense.&lt;/p&gt;

&lt;p&gt;But one of the theories that I think it could make some sense, keeping in mind that I have no medical/astronomy background or knowledge so this might sound very stupid is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if there's a solar system event affecting life on Earth, that governments won't admit in order to avoid chaos and so instead they "mask" it as a virus?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lately I've seen some articles regarding solar activity and I guess they are made out of valid information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.as.com/en/2020/08/20/latest_news/1597913299_130548.html" rel="noopener noreferrer"&gt;Solar storm headed for earth could cause black-outs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And also wikipedia pages on the subject:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://en.m.wikipedia.org/wiki/Coronal_mass_ejection" rel="noopener noreferrer"&gt;https://en.m.wikipedia.org/wiki/Coronal_mass_ejection&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the "crazy" theory is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solar activity hits Earth&lt;/li&gt;
&lt;li&gt;Life on Earth is being affected by some kind of radiation or "magnetic.. thing"&lt;/li&gt;
&lt;li&gt;Governments hide the truth from the public, so they can control how people respond and avoid total chaos&lt;/li&gt;
&lt;li&gt;The events are happening randomly in time and they affect different areas of the planet in different ways (more, or less dangerously)&lt;/li&gt;
&lt;li&gt;The places where more people died are areas with higher possibilities of being "hit"&lt;/li&gt;
&lt;li&gt;Aircraft traffic has been reduced because a human being at higher altitude will of course be affected more, at least until they improve aircraft technology for better protection&lt;/li&gt;
&lt;li&gt;Lockdowns (stay at home) could be again maybe to reduce direct sun exposure of the people&lt;/li&gt;
&lt;li&gt;Mask wearing could be useless from a real point of view, but since they don't tell the truth, it's a good mechanism to support the "virus lie"&lt;/li&gt;
&lt;li&gt;The pandemic excuse can be kept alive in order to be able to respond to random solar events and issue unpredictable lockdowns to protect the population&lt;/li&gt;
&lt;li&gt;As for countries that don't have so severe restrictions (don't use mask, social distancing, no lockdowns, etc) maybe their area is naturally more protected against solar activity or, they have been already more exposed to it during generations and their bodies aren't at risk because they are adapted, example: Countries such as Norway, Finland&lt;/li&gt;
&lt;li&gt;And so maybe also the virus, is caused by some kind of radiation that maybe even could be contagious, so then, we do have a pandemic but not from a biological virus cause&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And also it's a bit "funny coincidence" that those solar events have the word "corona" in them, like the name of the virus. &lt;/p&gt;

&lt;p&gt;Again this whole post might sound very stupid and I'm worse than ordinary mass media. :-D&lt;/p&gt;

&lt;p&gt;Originally posted at:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://atrandafir.dev/post/a-corona-theory-of-my-own" rel="noopener noreferrer"&gt;https://atrandafir.dev/post/a-corona-theory-of-my-own&lt;/a&gt;&lt;/p&gt;

</description>
      <category>covid</category>
      <category>theory</category>
      <category>scifi</category>
    </item>
    <item>
      <title>What's up with Alex (me) April 2020</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Thu, 16 Apr 2020 11:55:16 +0000</pubDate>
      <link>https://forem.com/atrandafir/what-s-up-with-alex-me-april-2020-4e6l</link>
      <guid>https://forem.com/atrandafir/what-s-up-with-alex-me-april-2020-4e6l</guid>
      <description>&lt;p&gt;For those of you who might have been following my previous posts, you might have noticed a gap as I haven't posted anymore since January.&lt;/p&gt;

&lt;p&gt;And yeah, this is me, I set a goal, as stupid as a monthly post, and I fail to achieve it.&lt;/p&gt;

&lt;p&gt;But anyways, I guess life is constantly changing, the world and our minds and priorities too.&lt;/p&gt;

&lt;p&gt;Who would have known we'd be now all locked in our houses, with this situation we're going through?&lt;/p&gt;

&lt;p&gt;Lucky me I work remotely and there's still stuff to do, and also lucky I live in a village and I have a garden.&lt;/p&gt;

&lt;p&gt;So back to the posting, I think I will stop the monthly posts, and try new formats and just write something when I feel like.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, what have I been up to?
&lt;/h2&gt;

&lt;p&gt;Well generally having a hard time trying to balance everything, as usual, and also procrastinating a lot. &lt;/p&gt;

&lt;p&gt;So I can't expect to be my best self all the time and also maybe when you set yourself too many goals and you have too much on your plate, you end up doing none. I guess that's a good skill to develop.&lt;/p&gt;

&lt;p&gt;I have been &lt;strong&gt;coding on a couple of projects for our clients&lt;/strong&gt; at &lt;a href="https://heavydots.com/" rel="noopener noreferrer"&gt;HeavyDots&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I have cursed a lot upgrading Expo SDK on a &lt;a href="https://heavydots.com/project/19" rel="noopener noreferrer"&gt;React Native APP&lt;/a&gt; and dealing with Push notifications, Apple certificates &amp;amp; shit, lucky us our client asked us for an annual maintenance contract (finger crossed so they'll accept it)&lt;/li&gt;
&lt;li&gt;I have finally managed to work on one hairy task on the accounting software, one that I was posponing for months. It is curious how hard something seems until you actually spend enough hours on it to understand it and then it doesn't seem that difficult.&lt;/li&gt;
&lt;li&gt;Also on the accounting project, I had setup a Visual Basic development environment on a Windows server, to be able to do maintenance tasks on some Crystal Reports.. I did curse a lot, again, damn dependencies and software versions, but it's alive now so I'm quite happy!&lt;/li&gt;
&lt;li&gt;I've been learning about &lt;a href="https://developers.google.com/search/docs/data-types/job-posting" rel="noopener noreferrer"&gt;Google Jobs and structured data&lt;/a&gt; by implementing it on &lt;a href="https://www.aviationjobs.me/" rel="noopener noreferrer"&gt;AviationJobs&lt;/a&gt; even so, I haven't been able to actually see it working on the search results&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With my team, we've &lt;strong&gt;just launched an updated version of the company's website&lt;/strong&gt;, with new services structure: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/web-applications" rel="noopener noreferrer"&gt;Web applications&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/mobile-apps" rel="noopener noreferrer"&gt;Mobile apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/corporate-websites" rel="noopener noreferrer"&gt;Corporate websites&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://heavydots.com/e-commerce" rel="noopener noreferrer"&gt;E-commerce&lt;/a&gt; HELLO COVID&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://heavydots.com/digitalization" rel="noopener noreferrer"&gt;Digital transformation&lt;/a&gt; HELLO COVID&lt;/li&gt;
&lt;li&gt;&lt;a href="https://heavydots.com/ux-design" rel="noopener noreferrer"&gt;UX/UI design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yes, we're &lt;strong&gt;open for new projects&lt;/strong&gt; if anyone is thinking about being business partners.&lt;/p&gt;

&lt;p&gt;Product wise, I've been quite stuck, and left that area almost totally abandoned.&lt;/p&gt;

&lt;p&gt;It is sad, but it is true. &lt;/p&gt;

&lt;p&gt;But, I'm not saying I don't want to dedicate time to it, I just say that I didn't, because it felt too much, and I have preferred to focus on less things, such as, taking care of main business and client projects.&lt;/p&gt;

&lt;p&gt;So on the &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;portfolio Saas&lt;/a&gt; I haven't done any progress, just started to put everything together on a Canva presentation so it is going to be easier to continue the project every time I get back to it.&lt;/p&gt;

&lt;p&gt;But even so, I'm excited!! To try to find time to work on both &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;Portfolee&lt;/a&gt; and use it to organize our company portfolio of projects and on &lt;a href="http://allmypicz.com/" rel="noopener noreferrer"&gt;AllMyPicz&lt;/a&gt; and use it to share pictures of old memories with friends and family. :-)&lt;/p&gt;

&lt;p&gt;On the &lt;a href="https://www.2020.happystartups.co/" rel="noopener noreferrer"&gt;2020 vision program&lt;/a&gt; I've been missing a lot. It's been hard to keep up with both the exercises and the group, or, "tribe", as we call it. &lt;/p&gt;

&lt;p&gt;I feel a bit bad about it but I know it happens to me a lot, that I'm not able to keep up, and I end up doing things at my own pace and on my own. I know that even if I'm behind, I'll still be able to take a lot of value from the program on the long term so I'm happy to do it.&lt;/p&gt;

&lt;p&gt;Oh, yeah, I did wrote myself a letter from the future (3 years from now) as part of an exercise.&lt;/p&gt;

&lt;p&gt;Other than that.. &lt;/p&gt;

&lt;p&gt;Stuck at home as everybody else, talking to people on video calls instead of meeting in person, enjoying the garden (sorry if you're stuck in an apartment).&lt;/p&gt;

&lt;p&gt;Oh, and I also started to use my old camera, yeah, a regular camera, not a phone, to take pictures, as I love the macro effect.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What's up with Alex (me) January 2020</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Tue, 11 Feb 2020 07:17:41 +0000</pubDate>
      <link>https://forem.com/atrandafir/what-s-up-with-alex-me-january-2020-3eoj</link>
      <guid>https://forem.com/atrandafir/what-s-up-with-alex-me-january-2020-3eoj</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I am on a 2 year journey to change my environment &amp;amp; habits &amp;amp; follow my intuition and see where it takes me. &lt;/p&gt;

&lt;p&gt;This is the post #4 and it is part of a series of posts I'm writing monthly since I moved from Barcelona and contains a mix of professional / tech &amp;amp; personal life stories. &lt;/p&gt;

&lt;p&gt;You can read the first one &lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-october-2019-4a89"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  January's update
&lt;/h2&gt;

&lt;p&gt;I realized I'm spending way too much time trying to figure out what to write in these monthly posts and so this time, (I'm late again, I know) I am going to put a 30 minutes timer and just make it fit in that time. (It took me 45, damn!)&lt;/p&gt;

&lt;h3&gt;
  
  
  Saas product
&lt;/h3&gt;

&lt;p&gt;At the beginning of the month I managed to do some good progress designing some screens for the product I'm working on. You can see one here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzg32q6470msr0p4khw87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzg32q6470msr0p4khw87.png" alt="Portfolee's Dashboard timeline view" width="800" height="833"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And also some more on the Twitter feed:  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/portfolee" rel="noopener noreferrer"&gt;https://twitter.com/portfolee&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But then I got stuck with other projects and wasn't able to keep up. Hope to get back to some more progress soon.&lt;/p&gt;

&lt;p&gt;At the same time I've started the &lt;a href="https://www.2020.happystartups.co/home" rel="noopener noreferrer"&gt;Happy Startup School 2020 vision program&lt;/a&gt;, and because of this program maybe the product progress will get a little stuck.&lt;/p&gt;

&lt;p&gt;I mean, they both serve the same goal, my intention to switch more to product based business instead of service based only, but the program will introduce me some new challenges regarding having a clear long term vision for myself and the projects I'll be dedicating my future years to.&lt;/p&gt;

&lt;p&gt;For now we've just met our mentors and introduced ourselves and started to work on some exercises. This afternoon we have our first group call and really looking forward to it, and to the whole program as a journey, with the rest of the people on it!&lt;/p&gt;

&lt;h3&gt;
  
  
  Business rollercoaster &amp;amp; busy month ahead
&lt;/h3&gt;

&lt;p&gt;Service business is going good but it gets a little intense with the ups and downs. &lt;/p&gt;

&lt;p&gt;Personally I'm trying to do my best to sort out all priorities both in terms of making progress on existing projects &amp;amp; identifying the strategic steps that should be on the list on the future weeks and months.&lt;/p&gt;

&lt;p&gt;Even so, we managed to finally launch a pretty delayed project for a client of ours: &lt;a href="https://www.aviationjobs.me/" rel="noopener noreferrer"&gt;https://www.aviationjobs.me/&lt;/a&gt; and doing some post launch tweaking now and hopefully will see this project grow in the following year.&lt;/p&gt;

&lt;p&gt;And then there are some interesting new deals and partnerships showing up and we're looking forward to see some of those opportunities materialize.&lt;/p&gt;

&lt;h3&gt;
  
  
  No traveling yet
&lt;/h3&gt;

&lt;p&gt;No traveling yet, didn't managed to go to Greece, but I might still try to. &lt;/p&gt;

&lt;p&gt;And, probably in April I will be visiting Barcelona for the first time since I left, to take care of some business stuff that requires me to be there in person. Of course I'll be happy to visit my team, ex-coworkers, family &amp;amp; friends.&lt;/p&gt;

&lt;h3&gt;
  
  
  Remembering to enjoy life
&lt;/h3&gt;

&lt;p&gt;Even if I'm trying to focus a lot on handling business &amp;amp; projects, at the same time I remember myself that time is valuable as nobody will be around forever, so, spend that time in nature, enjoy your friends and family, feel those feelings &amp;amp; make the best out of life.&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>saas</category>
      <category>lifestyle</category>
      <category>intuition</category>
    </item>
    <item>
      <title>What's up with Alex (me) december 2019</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 06 Jan 2020 10:57:18 +0000</pubDate>
      <link>https://forem.com/atrandafir/what-s-up-with-alex-me-december-2019-2a8n</link>
      <guid>https://forem.com/atrandafir/what-s-up-with-alex-me-december-2019-2a8n</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I am on a 2 year journey to change my environment &amp;amp; habits &amp;amp; follow my intuition and see where it takes me. &lt;/p&gt;

&lt;p&gt;This is the post #3 and it is part of a series of posts I'm writing monthly since I moved from Barcelona and contains a mix of professional / tech &amp;amp; personal life stories. &lt;/p&gt;

&lt;p&gt;You can read the first one &lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-october-2019-4a89"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Saas product
&lt;/h2&gt;

&lt;p&gt;As some of you might know one of my long term goals is to build a Saas product. &lt;/p&gt;

&lt;p&gt;The motivations behind it are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share something valuable with the rest of the world.&lt;/li&gt;
&lt;li&gt;Have fun while doing it.&lt;/li&gt;
&lt;li&gt;And also add some extra income source to the business.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In my previous post I've said that I did almost no progress on &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;https://portfolee.app/&lt;/a&gt; in the previous month, but I'm happy to say that my first hours of the year 2020 were dedicated to it and I hope to be able to keep doing it and post more updates soon.&lt;/p&gt;

&lt;p&gt;By the end of the month I'll also start the &lt;a href="https://www.2020.happystartups.co/home" rel="noopener noreferrer"&gt;Happy Startup School's 2020 Vision&lt;/a&gt; program who's goal will be to help build a product while at the same time having a positive impact on my current software development business so instead of one suffering from another, they should co-live in harmony.&lt;/p&gt;

&lt;p&gt;The people behind that program are amazing and I know them personally since I went to &lt;a href="http://www.alptitu.de/" rel="noopener noreferrer"&gt;Alptitude 2017&lt;/a&gt; and I can't wait to meet (online) and engage other entrepreneurs &amp;amp; makers and see where those 20 weeks take us.&lt;/p&gt;

&lt;h2&gt;
  
  
  Software business
&lt;/h2&gt;

&lt;p&gt;Business at the end of the year was pretty relaxing because of many people on vacation and not much noise around.&lt;/p&gt;

&lt;p&gt;It was perfect to recharge batteries and at the same time work in silence on some projects without anybody bothering.&lt;/p&gt;

&lt;p&gt;Now that is changing as everybody comes back and I look forward to finish some projects, engage new ones and see what new negotiations brings this month.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lifestyle
&lt;/h2&gt;

&lt;p&gt;I haven't been doing too much exercise lately.. and I should get back to running a bit.&lt;/p&gt;

&lt;p&gt;I'm still hanging out with the dog on a daily basis and at least once a week we have a short trip on the hills.&lt;/p&gt;

&lt;p&gt;It's not snowing yet here and it is sad to see that. But it is cold, and so I've managed to go and practice some ice skating. I find that pretty fun because of both doing exercise and listening to music, great way to get out of the house.&lt;/p&gt;

&lt;p&gt;I've been also thinking to go skiing and I had an opportunity to go but didn't take it. But I hope I'll manage to do it in the next weeks or until the winter ends.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traveling (&amp;amp; coding)
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Brasov
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzcdxohntf3wqzde6xeec.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzcdxohntf3wqzde6xeec.jpg" alt="Brasov" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've forgot to mention that I had a spontaneous trip to Brasov at the beginning of November.&lt;/p&gt;

&lt;p&gt;I had went on a short trip to the mountains with my dad to take some pictures for social media and decided to just go a little bit further to Brasov and visit an old friend. He could be reading this (Hey man!) and he is/was also a developer.&lt;/p&gt;

&lt;p&gt;And it's great to meet again with old friends and see how warming and welcome they are. Thanks for that and maybe will come visit again during 2020.&lt;/p&gt;

&lt;h3&gt;
  
  
  Iasi
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g58psi3ytnsmzf2367b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4g58psi3ytnsmzf2367b.jpg" alt="Iasi" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anyways, just before Christmas I got on a train to Iasi to visit my aunt. I enjoyed a lot that city and I'm so thankful for the city tour they gave me where I've learned more about romanian writers in a day than I did when I was a kid at school.&lt;/p&gt;

&lt;p&gt;This train trip was also very productive and I had forgotten how focused you can work when you have no stable internet connection and not much options to choose.&lt;/p&gt;

&lt;p&gt;It forces you to choose the best task at hand and since "you're on a trip" you're not expected to be in a meeting or anything like that. &lt;/p&gt;

&lt;p&gt;You just put your headphones on, choose a project, and work on it while staring at the people on the train or at the landscape.&lt;/p&gt;

&lt;p&gt;It is a perfect moment to have a breakthrough on a project and overcome a part of it where you couldn't find the time to focus. The longer the ride, the better.&lt;/p&gt;

&lt;p&gt;By the way don't get scared by trains in Romania if you ever take one, I was surprised by the bumps on the rails. It's fun while the train doesn't end up going off the rails.&lt;/p&gt;

&lt;h3&gt;
  
  
  Next up? Maybe Greece
&lt;/h3&gt;

&lt;p&gt;I've got another aunt in Thessaloniki, that I've already visited this summer and I enjoyed being in a different place with a different culture that I don't understand. &lt;/p&gt;

&lt;p&gt;I might jump on a random trip over here, either a short one for a couple of days, or who knows, maybe I'll stay a little longer and engage more with the place.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning stuff by hanging out with people
&lt;/h2&gt;

&lt;p&gt;The past weeks I've noticed that if you hang out with other people you might end up learning new things.&lt;/p&gt;

&lt;p&gt;Like, stuff about cars, that I know almost nothing, just how to drive one.&lt;/p&gt;

&lt;p&gt;Who knew Antifreeze had to be mixed with something before putting it into the car? I didn't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Christmas &amp;amp; new year
&lt;/h2&gt;

&lt;p&gt;Well if you're not romanian you might not know that over here we have our own &lt;code&gt;trick or treat&lt;/code&gt; version but not for Halloween:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Before Christmas, kids go from house to house singing and getting some very boring round piece of bread in return.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But wasn't all Christmas that boring, I've also had the chance to go to one of my friends from back from school and dance like crazy while listening to loud music. If you add to that some alcohol &amp;amp; a barbecue you get the traditional romanian Christmas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6rphwigwitjz6hfwfoqn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6rphwigwitjz6hfwfoqn.jpg" alt="Big speaker" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As for new year, well, that was not so much of a traditional party but a LAN one. Yeah, turns out me, my cousin and  my &lt;a href="https://www.twitch.tv/tntrose69" rel="noopener noreferrer"&gt;gamer brother&lt;/a&gt; played some Borderlands to celebrate 2020.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fis8t96io6lclr71fjo1f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fis8t96io6lclr71fjo1f.jpg" alt="Lan party Borderlands" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, that's it for december, and for past year.&lt;/p&gt;

&lt;p&gt;Now looking forward for a great January &amp;amp; a great 2020 ahead, that being said, have a blessed 2020 you too!&lt;/p&gt;

&lt;p&gt;Keep on hacking code &amp;amp; life! :-)&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to next post in this series
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-january-2020-3eoj"&gt;https://dev.to/atrandafir/what-s-up-with-alex-me-january-2020-3eoj&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>saas</category>
      <category>lifestyle</category>
      <category>intuition</category>
    </item>
    <item>
      <title>What's up with Alex (me) november 2019</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Tue, 17 Dec 2019 15:49:27 +0000</pubDate>
      <link>https://forem.com/atrandafir/what-s-up-with-alex-me-november-2019-32kg</link>
      <guid>https://forem.com/atrandafir/what-s-up-with-alex-me-november-2019-32kg</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I am on a 2 year journey to change my environment &amp;amp; habits &amp;amp; follow my intuition and see where it takes me. This is the post #2 after second month.&lt;/p&gt;

&lt;p&gt;It is part of a series of posts I'm writing monthly since I moved from Barcelona and contains a mix of professional / tech &amp;amp; personal life stories. &lt;/p&gt;

&lt;p&gt;You can read the first one &lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-october-2019-4a89"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This one is coming late already! And I'm still trying to figure out the best way to write it and hope to improve in time as I get more skilled &amp;amp; also my life story gets more interesting. ;-)&lt;/p&gt;

&lt;p&gt;I even got a new domain name &amp;amp; I'm planning to set up the blog there, let's see how that turns out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a Saas product
&lt;/h2&gt;

&lt;p&gt;One of my main long term goals is to build a product &amp;amp; not long ago I've started to work on &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;https://portfolee.app/&lt;/a&gt; and I wish I could talk here about all the amazing progress I have done in the past month but instead I will confess I haven't managed to build a good habit around it yet so I've done little to no progress in the past weeks.&lt;/p&gt;

&lt;p&gt;I guess all the daily responsibilities have eaten up all my energy &amp;amp; I had none left for it, or maybe it is just an excuse and I really need to prioritize &amp;amp; focus harder.&lt;/p&gt;

&lt;p&gt;Either way I'm still excited &amp;amp; with tons of ideas regarding all the product building process &amp;amp; experience and that's good.&lt;/p&gt;

&lt;p&gt;UPDATE: At the time I was writing this post, I just got enrolled into &lt;a href="https://www.2020.happystartups.co/home" rel="noopener noreferrer"&gt;Happy Startup School's 2020 Vision program&lt;/a&gt; and I will be participating on it starting at the end of January during 20 weeks and I will work on pushing the product forward &amp;amp; at the same time do it in a way it benefits the service business.&lt;/p&gt;

&lt;h2&gt;
  
  
  Business status
&lt;/h2&gt;

&lt;p&gt;At our software development agency HeavyDots we've had a pretty good month!&lt;/p&gt;

&lt;p&gt;We've got a good lead flow coming in with all sorts of projects and we finally managed to close a couple of great leads we've been after in the past months and that really feels great and that's thanks to the team efforts &amp;amp; to the people who put their trust in us or recommend us.&lt;/p&gt;

&lt;p&gt;I've personally been busy with 3 projects.&lt;/p&gt;

&lt;p&gt;One is the custom accounting software we're building for a client for a long term now, that is not the sexiest project to work on but brings a lot of interesting challenges.&lt;/p&gt;

&lt;p&gt;Second, is a job board in aviation industry that looks like after long time we are finally getting pretty close to a launch date and I can't be more happy about that &amp;amp; guess the client too.&lt;/p&gt;

&lt;p&gt;Third was a 40 hour prototype that we've had to build in order to close one of the deals we were negotiating for a Saas in the car buy-sale legal process in Spain. It was a success &amp;amp; really looking forward to develop the full product in the following months.&lt;/p&gt;

&lt;p&gt;Last but not least, it is cool to see secondary side-projects where we invested time in the past still bringing few conversions. Two years ago we've written &lt;a href="http://www.aeatsiidesarrolladores.es/" rel="noopener noreferrer"&gt;an ebook&lt;/a&gt; about integrating the Spanish SII invoice sending web service, and even if it's a nasty subject and the market is very small for it (limited number of developers), even so, we're still getting about 1 purchase per month and it feels good to see that we've been able to identity a pain &amp;amp; bring some value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning to balance work on multiple projects
&lt;/h2&gt;

&lt;p&gt;When I work on a project I normally like to focus only on that for very long hours, as if I were on a hackathon. &lt;/p&gt;

&lt;p&gt;Actually I have built many projects like that, for example another of my side projects's MVP has been built in about one weekend. It's a platform for &lt;a href="http://allmypicz.com/" rel="noopener noreferrer"&gt;storing &amp;amp; sharing personal pictures&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So I use to work that way because of two reasons very closely related one to another: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You can make HUGE progress on a project if you have a non-interrupted time span of about 8 hours of more, I would say I can deliver one "normal" week's work in a single day&lt;/li&gt;
&lt;li&gt;After spending lots of non interrupted hours on the same thing your mind creates a very clear image of how that thing should be and that is somehow a state of mind that is not very easy to reach if you're just dedicating one hour now and another tomorrow&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I mean I guess lots of artists &amp;amp; creatives also do it, and I think it is because somehow you reach a deep connection with your creativity and boosts both your understanding &amp;amp; performance.&lt;/p&gt;

&lt;p&gt;So what happend lately is that I've also identified some pains regarding that method of work:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It can get you disconnected from coworkers &amp;amp; social life if you only work that way&lt;/li&gt;
&lt;li&gt;If you have not one, but 2-4 projects you need to make progress on, it is very hard to find balance because you end up starting your week focusing on one and by the end of the week you realize you made huge progress on it, but NO progress on the rest of the projects&lt;/li&gt;
&lt;li&gt;And sometimes even if you made that HUGE progress &amp;amp; that's great, some projects are very big will probably never end too soon in order for you to move to another thing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I'm trying to find some balance now and the method I'm currently using is to try to split my day on 2-3 projects based on importance and in the past weeks I have managed to make progress on multiple things.&lt;/p&gt;

&lt;p&gt;I have also noted that it is way easier to do that if you try to break the project into smaller chunks and focus on the "next task" and also keeping comments at hand about what you did last time creates a pattern on your mind that makes it easier to continue next time.&lt;/p&gt;

&lt;p&gt;Sadly I haven't managed to work on the product as I wasn't sure I was being able to take in one more project. Even this blog post was very delayed because of the same reason. But hey the post is here turning out &amp;amp; I hope the product will have the same fate.&lt;/p&gt;

&lt;p&gt;Would be great to hear in the comments regarding your experience on finding balance to work constantly on multiple projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  From afternoon schedule to mornings
&lt;/h2&gt;

&lt;p&gt;I have spent a few weeks working from about 12pm to 2pm then from 4pm to 9pm and then from 10pm to 00, I did that extra hour just to make sure all the projects on my table had the chance to get some progress.&lt;/p&gt;

&lt;p&gt;But since I'm quite bad at having a fixed schedule I ended up going to bed very late and it wasn't manageable anymore, so I'm coming back to morning schedule, and it feels a little bit more natural now.&lt;/p&gt;

&lt;p&gt;Currently is 7-9am, then 10am-1pm and then 3pm-6pm and looks like it is turning out good. Let's see for how long I can stick with it.&lt;/p&gt;

&lt;p&gt;I love to be social &amp;amp; interact with friends &amp;amp; coworkers but I'm also a results oriented person &amp;amp; I really love to spend time in silence &amp;amp; make progress on a project. So either late in the afternoon or early in the morning I really value those "mine" moments.&lt;/p&gt;

&lt;p&gt;And for those of you who know me a little bit you know how easy it is for me to get distracted and carried away, haha, so silent non-interrupted moments really keep me on track.&lt;/p&gt;

&lt;h2&gt;
  
  
  Staying sane &amp;amp; healthy
&lt;/h2&gt;

&lt;p&gt;I really realized I'm the kind of person that finds life "hard". &lt;/p&gt;

&lt;p&gt;For me it really doesn't matter if I have to develop a complex piece of software or just do some home-related task as cooking, cleaning, you name it, I somehow feel it is the same challenge, to get yourself together and do it.&lt;/p&gt;

&lt;p&gt;And among the things that really affect my mood are food &amp;amp; weather. If it's a shitty day outside &amp;amp; I haven't got any food prepared the previous day, and not even think or plan for it, I can say it can definetly be a doomed day.&lt;/p&gt;

&lt;p&gt;But anyway, I think it has to do with better habits. Planning my meal in advance &amp;amp; making sure I also exercise a little bit, can solve both issues. So yeah, food + exercise + weather is a combination that needs constant attention.&lt;/p&gt;

&lt;p&gt;Another thing that keeps me sane &amp;amp; I am very grateful for, is having someone around to talk, be it a close friend, family, neighbours.. to chat, do something together, play some videogame.&lt;/p&gt;

&lt;p&gt;And let's not forget about nature, as it is amazing how much can a walk outside can help our mind relax and disconnect and get ready for the next challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Planning for the future?
&lt;/h2&gt;

&lt;p&gt;I always struggle with making plans for the future as I've got about 10 Trello boards &amp;amp; 5 Mindmups where I try to organize all my ideas and based on that I try to take some decisions regarding what's important for me to do right now &amp;amp; in the following months.&lt;/p&gt;

&lt;p&gt;But I guess there's no easy way to go about it, a long term vision is hard to build if you've got lots of ideas, and even if you do, life can still surprise you with something unexpected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to next post in this series
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-december-2019-2a8n"&gt;https://dev.to/atrandafir/what-s-up-with-alex-me-december-2019-2a8n&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>saas</category>
      <category>lifestyle</category>
      <category>intuition</category>
    </item>
    <item>
      <title>What's up with Alex (me) october 2019</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Sat, 02 Nov 2019 12:35:44 +0000</pubDate>
      <link>https://forem.com/atrandafir/what-s-up-with-alex-me-october-2019-4a89</link>
      <guid>https://forem.com/atrandafir/what-s-up-with-alex-me-october-2019-4a89</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Background
&lt;/h3&gt;

&lt;p&gt;I'm a developer with an entrepreneur/maker soul, originally from Romania.&lt;/p&gt;

&lt;p&gt;In the past 18 years I have been living in Barcelona, Spain.&lt;/p&gt;

&lt;p&gt;That's where I've spent both my teenage life &amp;amp; started my professional one &amp;amp; I'm very thankful for all the opportunities I had there to grow as a person.&lt;/p&gt;

&lt;p&gt;At 18 I've started my 1st job as a developer, after 8 years, switched to freelance &amp;amp; tried to build a product and failed.&lt;/p&gt;

&lt;p&gt;In 2015 while freelancing &amp;amp; after my product failure, I pivoted and created  &lt;a href="http://heavydots.com/" rel="noopener noreferrer"&gt;HeavyDots&lt;/a&gt;, my current software agency where I am both doing development &amp;amp; management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Leaving Barcelona behind for 2 years and moving back to Romania
&lt;/h3&gt;

&lt;p&gt;So I was doing fine in that environment, going to the office almost every day, going to events, meeting some friends around the city and spending time with other family members over there.&lt;/p&gt;

&lt;p&gt;A month ago I've left and I'm planning to stay away for 1-2 years.&lt;/p&gt;

&lt;p&gt;Even with all that, let's say I was feeling I was not in the right place, and all the ideas in my head of stuff I wanted to do was generating constantly an intuition that I'd finally had to follow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why I did this?
&lt;/h3&gt;

&lt;p&gt;It was all about having my space, reducing the noise around me, focusing on what I wanted to do (values &amp;amp; lifestyle), reconnecting with my roots &amp;amp; opening myself to new experiences.&lt;/p&gt;

&lt;p&gt;The following is a health checklist that I think every person should check periodically and act accordingly if feels like things are not aligned anymore:&lt;/p&gt;

&lt;h4&gt;
  
  
  Physical space &amp;amp; environment
&lt;/h4&gt;

&lt;p&gt;You must make sure you have your own space, design your own environment and take care of it. Need silence to focus? Place for your stuff? A comfortable chair?&lt;/p&gt;

&lt;p&gt;Or maybe easier access to nature &amp;amp; wasting less time on commuting.&lt;/p&gt;

&lt;p&gt;Your environment is very important for your daily activity. You can read more on that &lt;a href="https://jamesclear.com/" rel="noopener noreferrer"&gt;from this dude&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Mental space
&lt;/h4&gt;

&lt;p&gt;Quite close related to physical space, is the mental one. &lt;/p&gt;

&lt;p&gt;Are you constantly distracted? Are you spending your days doing what others bring you to the table but never get the chance to pursue your own ideas?&lt;/p&gt;

&lt;p&gt;That can happen, even with family, friends or coworkers, so even with people you care about a lot.&lt;/p&gt;

&lt;p&gt;With all due respect to everybody, take care of the important stuff but set your limits &amp;amp; make sure you dedicate enough time to what is important to you.&lt;/p&gt;

&lt;h4&gt;
  
  
  Finances
&lt;/h4&gt;

&lt;p&gt;Oh money. Make sure you take care of your debt, make sure you don't waste money in ways that don't matter to you, and actually use money for what IS important to you. Also work on improving your income sources so money comes from doing what you enjoy &amp;amp; brings you more stability &amp;amp; freedom.&lt;/p&gt;

&lt;h4&gt;
  
  
  Relationships
&lt;/h4&gt;

&lt;p&gt;Both your intimate &amp;amp; professional relationships should make you happy. If not, move on, take care of your happiness &amp;amp; mental health.&lt;/p&gt;

&lt;p&gt;There's a whole world out there full of people &amp;amp; opportunities, don't stick to something that doesn't work or doesn't align with your future goals.&lt;/p&gt;

&lt;h4&gt;
  
  
  Behaviour &amp;amp; influence on others
&lt;/h4&gt;

&lt;p&gt;I am a strong believer that we influence others to behave in a certain way, and our own behavior is influenced by others. And this also has to do with physical space.&lt;/p&gt;

&lt;p&gt;So every action you take, staying or leaving, impacts yourself &amp;amp; other people, keep that in mind.&lt;/p&gt;

&lt;h4&gt;
  
  
  Passion &amp;amp; intuition
&lt;/h4&gt;

&lt;p&gt;Again, follow what makes you happy, don't do stuff you don't care about. Do stuff you want to be 100% on, &amp;amp; following your intuition can get you close to that. Maybe you can't explain why you take a decision, but you take it, cause it resonates with you.&lt;/p&gt;

&lt;h4&gt;
  
  
  Being open &amp;amp; contributing
&lt;/h4&gt;

&lt;p&gt;One should not forget that the world is full of opportunities to both have new experiences &amp;amp; to contribute to others lives or your communities. &lt;/p&gt;

&lt;p&gt;So.. Visit a new place, help someone &amp;amp; do something for cause you care about.&lt;/p&gt;

&lt;h2&gt;
  
  
  October summary
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Professional
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Met the business goals

&lt;ul&gt;
&lt;li&gt;With the team we have successfully met the business goals we had at HeavyDots, finances good, delivered work on some of the current clients &amp;amp; then got a few smaller projects started and 2 medium clients in process of negotiation that will be probably closed between november &amp;amp; december.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Building a Saas product

&lt;ul&gt;
&lt;li&gt;Small but good progress has been made with a new Saas I'm working on, &lt;a href="https://portfolee.app/" rel="noopener noreferrer"&gt;https://portfolee.app/&lt;/a&gt; , a private catalog for all your digital projects.&lt;/li&gt;
&lt;li&gt;This is one of my priorities and I'm turning this &lt;strong&gt;want to do goal&lt;/strong&gt; into an actual &lt;strong&gt;real thing&lt;/strong&gt; changing my habits &amp;amp; environment to support it&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Community &amp;amp; work life

&lt;ul&gt;
&lt;li&gt;Got involved with a lot of people on Twitter, by following &amp;amp; giving feedback to people aligned with my values &amp;amp; with similar goals, especially the makers &amp;amp; &lt;a href="https://www.indiehackers.com/" rel="noopener noreferrer"&gt;indie hackers&lt;/a&gt; building products&lt;/li&gt;
&lt;li&gt;Struggle to work from home without having an office &amp;amp; human contact, got releaved by using &lt;a href="https://www.focusmate.com/" rel="noopener noreferrer"&gt;https://www.focusmate.com/&lt;/a&gt; , it's both a mix between a virtual coworking &amp;amp; a pomodoro technique, strongly recommended if you work remotely&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Readings

&lt;ul&gt;
&lt;li&gt;Book: &lt;a href="https://jamesclear.com/" rel="noopener noreferrer"&gt;https://jamesclear.com/&lt;/a&gt; Atomic Habits, (I know, you probably see this guy everywhere, well, it's worth to read it)&lt;/li&gt;
&lt;li&gt;Podcast: &lt;a href="https://jesseelder.com/" rel="noopener noreferrer"&gt;https://jesseelder.com/&lt;/a&gt; A friend recommended this podcast to me, as she "followed" her intuition :-)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Local community

&lt;ul&gt;
&lt;li&gt;I live in an empty village, no tech around here, but even so, I've met two people that want to begin their journey as developers. Let's see how this turns out, I'm happy to give a hand and I will of course recommend them dev.to.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Personal
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Country side life

&lt;ul&gt;
&lt;li&gt;I got to be a lot in the nature, it's basically 30 seconds away from my room and getting to my garden&lt;/li&gt;
&lt;li&gt;I've went to a river dam in the small city close to the village regularly to watch the sunset (that's where the blog cover photo is from)&lt;/li&gt;
&lt;li&gt;I've spent a lot of time with animals, with the cats &amp;amp; walking the dog&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Health

&lt;ul&gt;
&lt;li&gt;I've been cooking a lot and eating well. As a developer I love to &lt;strong&gt;build&lt;/strong&gt; something, and it's also valid for cooking, and I believe if you work a lot and you rely on poor food, that's gonna be bad for you&lt;/li&gt;
&lt;li&gt;I've been running around the village a couple of days per week. It's a little nasty with the cold, the dark and the traffic as it is not the best place to do it, but still, I find it mandatory to keep a good health and not get a cold.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Family &amp;amp; friends

&lt;ul&gt;
&lt;li&gt;At the beginning of october I've spend some days in a row going to barbecues because of some family inviting me over, it's great but crazy! It is amazing to do it, but at the same time one must remember to take care &amp;amp; not eat/drink/party too much.&lt;/li&gt;
&lt;li&gt;I've been meeting old friends and it is good to reconnect and talk&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;No traveling

&lt;ul&gt;
&lt;li&gt;I've basically spent the whole month at home, in the village, no short/long traveling&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Community
&lt;/h3&gt;

&lt;p&gt;There's no surprise that this part of the world is not the best, even if I'm grateful for being here, I cannot stay blind and don't see what's going on around me.&lt;/p&gt;

&lt;p&gt;After identifying a couple of issues, some "as simple" as "garbage in the river dam I was visiting" I have ended up setting up a small concept that was on the back on my mind for a while now:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://selfcivic.github.io/" rel="noopener noreferrer"&gt;https://selfcivic.github.io/&lt;/a&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Long story short, the idea behind it is to self manage our local communities as if they were open source software. &lt;/li&gt;
&lt;li&gt;Something's wrong in your town? Create an issue, get feedback &amp;amp; plan how to fix it&lt;/li&gt;
&lt;li&gt;Collaborate with others &amp;amp; even use a kanban board&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future plans
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Keep the business going good at HeavyDots with team &amp;amp; clients&lt;/li&gt;
&lt;li&gt;Keep building a Saas product&lt;/li&gt;
&lt;li&gt;Try my best at some civic involvement with &lt;a href="https://selfcivic.github.io/" rel="noopener noreferrer"&gt;Selfcivic&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Plan traveling both inside my country and in near countries in Europe

&lt;ul&gt;
&lt;li&gt;For both personal &amp;amp; professional purpose&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In Romania&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;Cities such as: Bucharest, Iasi, Cluj, Brasov, Sibiu, Turnul Severin&lt;/li&gt;
&lt;li&gt;Mountain area trips&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In Europe&lt;/strong&gt;:&lt;/li&gt;
&lt;li&gt;Greece, Thessaloniki&lt;/li&gt;
&lt;li&gt;Bulgaria, either Sofia again or &lt;a href="https://coworkingbansko.com/" rel="noopener noreferrer"&gt;Bansko&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Croatia maybe too&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Plan visiting more other family I've got here&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;If you reached the end of this post, thanks so much for reading &amp;amp; I hope you got at least a small good idea from it.&lt;/p&gt;

&lt;p&gt;I don't have a regular blog and so I've choosen dev.to to share both tech-related &amp;amp; personal stuff.&lt;/p&gt;

&lt;p&gt;Will try to make a new post in a month with news.&lt;/p&gt;

&lt;h2&gt;
  
  
  Link to next post in this series
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://dev.to/atrandafir/what-s-up-with-alex-me-november-2019-32kg"&gt;https://dev.to/atrandafir/what-s-up-with-alex-me-november-2019-32kg&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>saas</category>
      <category>lifestyle</category>
      <category>intuition</category>
    </item>
    <item>
      <title>Big task or small task first?</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Sat, 27 May 2017 11:46:22 +0000</pubDate>
      <link>https://forem.com/atrandafir/big-task-or-small-task-first</link>
      <guid>https://forem.com/atrandafir/big-task-or-small-task-first</guid>
      <description>&lt;p&gt;For sure many of us have read or listened to a lot of productivity advice from the tons of resources, such as posts, books and so on that are available out there and sometimes we find ourselves with the following kind of advice:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You should first deal with the biggest and most important task on your list and leave for later the less important smaller ones.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do you agree with that? &lt;/p&gt;

&lt;p&gt;We should really consider if that works for us. &lt;/p&gt;

&lt;p&gt;Let’s see some reasons why we would rather choose to think and act differently.&lt;/p&gt;

&lt;h3&gt;
  
  
  BIG TASKS CAN GET REALLY BIG
&lt;/h3&gt;

&lt;p&gt;Let’s put the example where this one developer has a lot of work to take care of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 big project&lt;/li&gt;
&lt;li&gt;3 medium projects&lt;/li&gt;
&lt;li&gt;3 small tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yeah.. sounds like this developer is not going to sleep very much this week. But let’s analyze.&lt;/p&gt;

&lt;p&gt;With the above mindset the developer should choose to work on the big project because is the most important, most difficult and most appealing from an economic point of view.&lt;/p&gt;

&lt;p&gt;The problem with doing the bigger thing first is that it will require that much dedication and focus for a long time that most probably the other 3 medium projects and 3 smaller tasks will be abandoned for a long while until enough progress will be done with the big project.&lt;/p&gt;

&lt;h3&gt;
  
  
  SMALL TASKS CAN FUEL YOUR MOTIVATION
&lt;/h3&gt;

&lt;p&gt;Now I'm not saying that you should focus only on the smaller tasks and leave the big one for the end, because this way you’ll also end up in trouble because you never deliver the big project.&lt;/p&gt;

&lt;p&gt;What needs to be considered is the momentum and motivation that having something completed will provide to your mental health every time you finish a smaller task. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It all boils down to breaking big projects into smaller tasks.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Probably the best way to think is that we should always try our best at breaking the big projects into smaller more &lt;em&gt;doable in a short time tasks&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Indeed breaking projects into smaller pieces and prioritizing them could be one of the most valued skills of a person.&lt;/p&gt;

&lt;p&gt;What do you think? Would love to hear your feedback! Specially regarding working on multiple big, medium and small projects at the same time and progressing in parallel with all of them.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This article was originally posted at &lt;a href="http://heavydots.com/blog/big-task-or-small-task-first" rel="noopener noreferrer"&gt;HeavyDots Blog&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>project</category>
      <category>task</category>
      <category>motivation</category>
      <category>momentum</category>
    </item>
    <item>
      <title>When the white space became a beast</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Wed, 10 May 2017 15:59:58 +0000</pubDate>
      <link>https://forem.com/atrandafir/when-the-white-space-became-a-beast</link>
      <guid>https://forem.com/atrandafir/when-the-white-space-became-a-beast</guid>
      <description>&lt;p&gt;&lt;em&gt;This article was originally posted at &lt;a href="http://heavydots.com/blog/when-the-white-space-became-a-beast" rel="noopener noreferrer"&gt;HeavyDots Blog_&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The legend of the white space
&lt;/h2&gt;

&lt;p&gt;Every now and then, on the World Wide Web, someone meets the "white space" or for us: "the beast".&lt;/p&gt;

&lt;p&gt;When we meet the beast, it drives us crazy, we get scared, we can’t understand what our eyes see, we cannot explain what’s going on, we wonder if something affected our perception. A supernatural phenomenon is in front of our eyes and overwhelms us.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/26962323/what-is-this-insane-space-character-google-chrome" rel="noopener noreferrer"&gt;What is this INSANE space character??? (google chrome)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/15565479/weird-space-character-in-string-thats-not-a-space" rel="noopener noreferrer"&gt;Weird space character in string, that's not a space?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/7262687/weird-white-space-characters-utf8-php" rel="noopener noreferrer"&gt;Weird white space characters - utf8 PHP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://stackoverflow.com/questions/12733113/i-have-a-strange-space-character-in-a-string" rel="noopener noreferrer"&gt;I have a strange space character in a String&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also got into it twice! Once on a website and once even inside of a Excel sheet! It’s unbelievable the places where this creature summons and the way it got there is an even bigger mystery!&lt;/p&gt;

&lt;h2&gt;
  
  
  The brave who went after it
&lt;/h2&gt;

&lt;p&gt;Some give up, run and hide from it. Or just accept it without questioning its existence. But others, the brave ones, start on a journey through the darkness and don’t give up until they know the truth.&lt;/p&gt;

&lt;p&gt;This is what someone who has been there and survived confessed (with shaking hands):&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To the people in the future like myself that had to debug this from a high level all the way down to the character codes, I salute you.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/26962323/what-is-this-insane-space-character-google-chrome/39281063#39281063" rel="noopener noreferrer"&gt;crclayton - Sep 1 '16 at 21:22 - stackoverflow.com&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;We've also been there and we returned with the truth ready to share it with you.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the creature looks and where does it come from
&lt;/h2&gt;

&lt;p&gt;The strange space is actually the &lt;code&gt;&amp;amp;nbsp;&lt;/code&gt; entity (&lt;a href="https://en.wikipedia.org/wiki/Non-breaking_space" rel="noopener noreferrer"&gt;Wikipedia&lt;/a&gt;), pretty well known by HTML coders but in this case it is not represented/encoded in HTML.&lt;/p&gt;

&lt;p&gt;So basically most of us knew the creature, but we didn’t know it could exist in another shape and dimension.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wikipedia explains the different representations of the beast:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fheavydots.com%2Fuploads%2Fblog-post%2F12-featured-wikipedia%2520nbsp%2520encodings.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fheavydots.com%2Fuploads%2Fblog-post%2F12-featured-wikipedia%2520nbsp%2520encodings.png" alt="Wikipedia explains the different representations of the beast"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  And also how the creature is born and mutates:
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fheavydots.com%2Fuploads%2Fblog-post%2F12-featured-wikipedia%2520nbsp%2520keyboard%2520entry%2520methods.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fheavydots.com%2Fuploads%2Fblog-post%2F12-featured-wikipedia%2520nbsp%2520keyboard%2520entry%2520methods.png" alt="And also how the creature is born and mutates"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The tools and techniques to find it and get rid of it
&lt;/h2&gt;

&lt;p&gt;For the even braver who want to go after it and make it disappear we’ve got some tools and techniques to help locating it and still come back alive from the journey.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web tool that looks for it in the code of a webpage:
&lt;/h3&gt;

&lt;p&gt;Here’s a tool with a web interface where you can enter a URL and it searches the contents of that page in order to find the beast:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tools.heavydots.com/nbsp-space-char-detect/" rel="noopener noreferrer"&gt;http://tools.heavydots.com/nbsp-space-char-detect/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Manual cleanup technique:
&lt;/h3&gt;

&lt;p&gt;But if you find yourself in the dark code dimension and cannot use the web, and you have to get very close to the beast in order to kill it, here is a way to exorcise your demonized code:&lt;/p&gt;

&lt;p&gt;Only for those who are skilled with PHP spells, run a search of &lt;code&gt;chr(194).chr(160)&lt;/code&gt; and replace it with an ordinary space. This will extract the demon out of it and will restore back its clean white space soul.&lt;/p&gt;

&lt;p&gt;Take this scroll with you, it contains the spell you will need when you face the beast:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Define the white beast&lt;/span&gt;
&lt;span class="nv"&gt;$white_beast&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;194&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;chr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;160&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Count how many of them are living in your text&lt;/span&gt;
&lt;span class="nv"&gt;$count&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;substr_count&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$string&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$white_beast&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;print_r&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$count&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Replace it with a normal space&lt;/span&gt;
&lt;span class="nv"&gt;$string&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;str_replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$white_beast&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$string&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  THE END of the story
&lt;/h2&gt;

&lt;p&gt;So dear reader of this legend, if you never faced the beast, beware!&lt;/p&gt;

&lt;p&gt;But if you have also had to deal with it, please share with us your story in the comments section! &lt;/p&gt;

&lt;p&gt;I'll try to post new stuff here, and also invite you to drop by at &lt;a href="http://heavydots.com/blog/" rel="noopener noreferrer"&gt;HeavyDots Blog&lt;/a&gt;&lt;/p&gt;

</description>
      <category>whitespace</category>
      <category>nbsp</category>
      <category>programming</category>
      <category>strange</category>
    </item>
    <item>
      <title>Hi, I'm Alexandru Trandafir</title>
      <dc:creator>Alexandru Trandafir</dc:creator>
      <pubDate>Mon, 08 May 2017 00:07:35 +0000</pubDate>
      <link>https://forem.com/atrandafir/hi-im-alexandru-trandafir</link>
      <guid>https://forem.com/atrandafir/hi-im-alexandru-trandafir</guid>
      <description>&lt;p&gt;I have been coding for 12+ years.&lt;/p&gt;

&lt;p&gt;You can find me on Twitter as &lt;a href="https://twitter.com/atrandafir" rel="noopener noreferrer"&gt;@atrandafir&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I live in Barcelona.&lt;/p&gt;

&lt;p&gt;I work at &lt;a href="http://heavydots.com/" rel="noopener noreferrer"&gt;HeavyDots&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I mostly program in these languages: PHP using Yii/Yii2, HTML, CSS, Javascript, jQuery and use MySQL databases.&lt;/p&gt;

&lt;p&gt;I am currently learning more about Yii2 both for using with client projects and on an open source CMS.&lt;/p&gt;

&lt;p&gt;Nice to meet you!&lt;/p&gt;

</description>
      <category>introduction</category>
    </item>
  </channel>
</rss>
