<?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>DEV Community: Tom Schwarz</title>
    <description>The latest articles on DEV Community by Tom Schwarz (@tomschwarz).</description>
    <link>https://dev.to/tomschwarz</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%2F269694%2Fa5ffc6f1-7d62-40e4-ac1d-ffe9e8258940.jpg</url>
      <title>DEV Community: Tom Schwarz</title>
      <link>https://dev.to/tomschwarz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tomschwarz"/>
    <language>en</language>
    <item>
      <title>neix - a news reader for your terminal.</title>
      <dc:creator>Tom Schwarz</dc:creator>
      <pubDate>Thu, 20 Aug 2020 19:32:03 +0000</pubDate>
      <link>https://dev.to/tomschwarz/neix-a-news-reader-for-your-terminal-2d3i</link>
      <guid>https://dev.to/tomschwarz/neix-a-news-reader-for-your-terminal-2d3i</guid>
      <description>&lt;p&gt;Today I launched the first version of my new project &lt;strong&gt;neix&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is a &lt;strong&gt;work in progress&lt;/strong&gt; terminal feed reader for all common RSS/Atom feeds on the web out there. It is free/libre software which protects your freedom. You got the full control of your news you want to read!&lt;/p&gt;

&lt;p&gt;For more informations take a look on the &lt;a href="https://github.com/tomschwarz/neix"&gt;repository&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>cpp</category>
      <category>cli</category>
      <category>tools</category>
    </item>
    <item>
      <title>Simple interactive command line time tracker</title>
      <dc:creator>Tom Schwarz</dc:creator>
      <pubDate>Tue, 28 Jan 2020 20:24:36 +0000</pubDate>
      <link>https://dev.to/tomschwarz/simple-interactive-command-line-time-tracker-251o</link>
      <guid>https://dev.to/tomschwarz/simple-interactive-command-line-time-tracker-251o</guid>
      <description>&lt;p&gt;This tool allows you to track your time for all your projects or needs. You can manage your projects and export it for your needs.  &lt;/p&gt;

&lt;p&gt;I build this project for fun and i hope someone can need it.&lt;br&gt;
I appreciate every help i can get. :)  &lt;/p&gt;
&lt;h2&gt;
  
  
  📄 Table of Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Installation&lt;/li&gt;
&lt;li&gt;Usage&lt;/li&gt;
&lt;li&gt;Configuration&lt;/li&gt;
&lt;li&gt;License&lt;/li&gt;
&lt;li&gt;Github&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  📟 Installation
&lt;/h2&gt;

&lt;p&gt;Follow the steps below for installing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git clone https://github.com/thomasschwarz96/ts-timetracker.git  
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;ts-timetracker  
&lt;span class="nv"&gt;$ &lt;/span&gt;cmake &lt;span class="nb"&gt;.&lt;/span&gt;  
&lt;span class="nv"&gt;$ &lt;/span&gt;make  
&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;make &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  📋 Usage
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ts-timetracker
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;That's it. Now the interactive command line starts and you can start to track your times on your projects or for your needs.&lt;br&gt;&lt;br&gt;
To Exit, just type '&lt;strong&gt;exit&lt;/strong&gt;' or press Ctrl + c.&lt;br&gt;&lt;br&gt;
Here are all commands you can use:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;COMMAND&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;help&lt;/td&gt;
&lt;td&gt;Show's the help menu&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;touch &amp;lt;name&amp;gt;&lt;/td&gt;
&lt;td&gt;Create's a new project with entered name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;rm &amp;lt;name&amp;gt;&lt;/td&gt;
&lt;td&gt;Delete's entered project&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ls &amp;lt;item&amp;gt;&lt;/td&gt;
&lt;td&gt;List selected items (use 'projects', 'config' or 'times')&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;use &amp;lt;n&amp;gt;&lt;/td&gt;
&lt;td&gt;Set project to track time on, a number from 'list' command&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;start&lt;/td&gt;
&lt;td&gt;Start's timetracking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;stop&lt;/td&gt;
&lt;td&gt;Stop's timetracking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;save &amp;lt;comment&amp;gt;&lt;/td&gt;
&lt;td&gt;Save new timetrack on selected project with entered comment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;export &amp;lt;p&amp;gt;&lt;/td&gt;
&lt;td&gt;Export selected project to given path (selected project by 'use' command)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🔧 Configuration
&lt;/h2&gt;

&lt;p&gt;Default path of the config file: &lt;strong&gt;~/.config/ts-timetracker/&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Name of the config file: &lt;strong&gt;ts-timetracker.conf&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The config file will be generated automatically while installation.  &lt;/p&gt;

&lt;p&gt;Possible config values:  &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OPTION&lt;/th&gt;
&lt;th&gt;POSSIBLE VALUES / EXAMPLES&lt;/th&gt;
&lt;th&gt;DESCRIPTION&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;timeFormat&lt;/td&gt;
&lt;td&gt;%d.%m.%Y %T&lt;/td&gt;
&lt;td&gt;format is used for displaying time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;projectsPath&lt;/td&gt;
&lt;td&gt;.config/ts-timetracker/projects/&lt;/td&gt;
&lt;td&gt;path is used for creating, saving and deleting projects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;storage&lt;/td&gt;
&lt;td&gt;filesystem&lt;/td&gt;
&lt;td&gt;indicates which model should used&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;view&lt;/td&gt;
&lt;td&gt;terminal&lt;/td&gt;
&lt;td&gt;indicates which view should used&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://choosealicense.com/licenses/mit/"&gt;MIT-License&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  📎 Github
&lt;/h2&gt;

&lt;p&gt;For more informations check out the &lt;a href="https://github.com/thomasschwarz96/ts-timetracker"&gt;repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>cpp</category>
      <category>showdev</category>
      <category>contributorswanted</category>
    </item>
    <item>
      <title>Basic linux commands</title>
      <dc:creator>Tom Schwarz</dc:creator>
      <pubDate>Tue, 21 Jan 2020 18:51:53 +0000</pubDate>
      <link>https://dev.to/tomschwarz/basic-linux-commands-1icf</link>
      <guid>https://dev.to/tomschwarz/basic-linux-commands-1icf</guid>
      <description>&lt;h1&gt;
  
  
  Basic linux commands
&lt;/h1&gt;

&lt;p&gt;This is a list of all basic linux commands you should know. &lt;br&gt;
Of course this is my personal opinion. &lt;br&gt;
What do you think?&lt;/p&gt;

&lt;h2&gt;
  
  
  Files and navigation
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;ls - directory listing of current directory&lt;br&gt;
ls -l - formatted listing&lt;br&gt;
ls -la - formatted listing including hidden files&lt;br&gt;
cd dir - change directory to dir (dir = name of directory)&lt;br&gt;
cd .. - change to parent directory&lt;br&gt;
cd - change to home directory&lt;br&gt;
cd - - change to previous visited directory&lt;br&gt;
cd ../dir - change to dir in parent directory &lt;br&gt;
pwd - show current directory&lt;br&gt;
mkdir dir - create a direcotry "dir"&lt;br&gt;
rm filename - delete file&lt;br&gt;
rm -f filename - force remove filename&lt;br&gt;
rm -r dir - delete directory &lt;br&gt;
rm -rf dir - force delete of directory&lt;br&gt;
cp file1 file2 - copy file1 to file2&lt;br&gt;
mv file1 file2 - rename file1 to file2&lt;br&gt;
mv file1 dir/file2 - move file1 to dir as file2&lt;br&gt;
touch filename - create or update file&lt;br&gt;
cat file - output contents of file&lt;br&gt;
cat &amp;gt; file - write standard input into file&lt;br&gt;
cat &amp;gt;&amp;gt; file - append standard input into file&lt;br&gt;
tail -f file - outputs contents of file as it grows&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Networking
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;ping host - ping the host&lt;br&gt;
whois domain - get whois for domain&lt;br&gt;
dig domain - get DNS for domain&lt;br&gt;
dig -x host - reverse lookup host&lt;br&gt;
wget file - download file&lt;br&gt;
wget -c file - continue stopped download&lt;br&gt;
wget -r url - recusivley download files from url&lt;br&gt;
curl url - outputs the webpage from url&lt;br&gt;
curl -o output.html url - writes the page to output.html&lt;br&gt;
ssh user@host - connect to host as user&lt;br&gt;
ssh -p port user@host - connect using port&lt;br&gt;
ssh -D user@host - connect &amp;amp; user bind port&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Processes
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;ps - display currently active processes&lt;br&gt;&lt;br&gt;
ps aux - detailed outputs  &lt;/p&gt;

&lt;p&gt;kill pid - kill process with process id (pid)&lt;br&gt;&lt;br&gt;
killall proc - kill all processes named proc  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  System info
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;date - show current date/time&lt;br&gt;
uptime - show uptime&lt;br&gt;
whoami - who you are logged in as &lt;br&gt;
w - display who is online&lt;br&gt;
cat /proc/cpuinfo - display cpu info&lt;br&gt;
cat /proc/meminfo - memory info&lt;br&gt;
free - show memory and swap usage&lt;br&gt;
du - show directory space usage&lt;br&gt;
du -sh - displays readable sizes in GB&lt;br&gt;
df - show disk usage&lt;br&gt;
uname -a - show kernel config&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Compressing
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;tar cf file.tar files - tar files into file.tar&lt;br&gt;
tar xf file.tar - untar into current directory&lt;br&gt;
tar tf file.tar - show contents of archive&lt;/p&gt;

&lt;p&gt;options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;c - create archive&lt;/li&gt;
&lt;li&gt;t - table of contents&lt;/li&gt;
&lt;li&gt;x - extract&lt;/li&gt;
&lt;li&gt;z - use zip/gzip&lt;/li&gt;
&lt;li&gt;f - specify filename&lt;/li&gt;
&lt;li&gt;j - bzip2 compression&lt;/li&gt;
&lt;li&gt;w - ask for confirmation&lt;/li&gt;
&lt;li&gt;k - do not overwrite&lt;/li&gt;
&lt;li&gt;T - files from file&lt;/li&gt;
&lt;li&gt;v - verbose &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Permissions
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;chmod octal file - change permissions of file&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4 - read (r)&lt;/li&gt;
&lt;li&gt;2 - write (w)&lt;/li&gt;
&lt;li&gt;1 - execute (x)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;order: owner/group/world&lt;/p&gt;

&lt;p&gt;chmod 777 - rwx for everyone&lt;br&gt;
chmod 755 - rw for owner, rx for group and world&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Some others
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;grep pattern files - search in files for pattern&lt;br&gt;&lt;br&gt;
grep -r pattern dir - search for pattern recursively in directory  &lt;/p&gt;

&lt;p&gt;locate file - find all instances of file&lt;br&gt;&lt;br&gt;
whereis app - show possible locations of app&lt;br&gt;&lt;br&gt;
man command - show manual page for command  &lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>linux</category>
      <category>bash</category>
      <category>terminal</category>
    </item>
    <item>
      <title>Why should you read specialists books?</title>
      <dc:creator>Tom Schwarz</dc:creator>
      <pubDate>Sun, 12 Jan 2020 22:30:14 +0000</pubDate>
      <link>https://dev.to/tomschwarz/why-should-you-read-specialists-books-l3h</link>
      <guid>https://dev.to/tomschwarz/why-should-you-read-specialists-books-l3h</guid>
      <description>&lt;p&gt;I highly recommend to you to read some specialists books because the reason for it is pretty simple. Especially for me it tooks some time to discover the reason. So I want to share it with you!&lt;/p&gt;

&lt;p&gt;An author of an book had learned lessons over lessons in a period of time. Sometimes over a couple of years and sometimes over his entire life. If you read an book, you can learn these lessons in a couple of days or weeks (depending on the book).&lt;/p&gt;

&lt;p&gt;I want to encourage you to read books instead of watching tutorials or something like that. Don't get me wrong. Watching a tutorial is helpful and you can learn a lot of stuff. But if you read an book, you improve not only your technical skills. Your vocabulary is growing, your ability to focus on a task is growing and lot more...&lt;/p&gt;

&lt;p&gt;There are some books out there, every programmer should have read these (in my opinion):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Design Patterns. Elements of Reusable Object-Oriented Software. &lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0201633612/ref=cm_sw_em_r_mt_dp_U_SC5gEbD33VN6P"&gt;https://www.amazon.de/dp/0201633612/ref=cm_sw_em_r_mt_dp_U_SC5gEbD33VN6P&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Object Oriented Software Engineering: A Use Case Driven Approach: A Use CASE Approach&lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0201544350/ref=cm_sw_em_r_mt_dp_U_sG5gEb80AE6R0"&gt;https://www.amazon.de/dp/0201544350/ref=cm_sw_em_r_mt_dp_U_sG5gEb80AE6R0&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Working Effectively with Legacy Code &lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0131177052/ref=cm_sw_em_r_mt_dp_U_2D5gEbPFK2JY1"&gt;https://www.amazon.de/dp/0131177052/ref=cm_sw_em_r_mt_dp_U_2D5gEbPFK2JY1&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Refactoring: Improving the Design of Existing Code&lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0134757599/ref=cm_sw_em_r_mt_dp_U_IE5gEb1ATQDAN"&gt;https://www.amazon.de/dp/0134757599/ref=cm_sw_em_r_mt_dp_U_IE5gEb1ATQDAN&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean Code: A Handbook of Agile Software Craftsmanship&lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0132350882/ref=cm_sw_em_r_mt_dp_U_JE5gEbQHRAX6M"&gt;https://www.amazon.de/dp/0132350882/ref=cm_sw_em_r_mt_dp_U_JE5gEbQHRAX6M&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Clean Architecture: A Craftsman's Guide to Software Structure and Design&lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0134494164/ref=cm_sw_em_r_mt_dp_U_aF5gEb68RC9MW"&gt;https://www.amazon.de/dp/0134494164/ref=cm_sw_em_r_mt_dp_U_aF5gEb68RC9MW&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Clean Coder: A Code of Conduct for Professional Programmers&lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0137081073/ref=cm_sw_em_r_mt_dp_U_BF5gEb8CTQCGN"&gt;https://www.amazon.de/dp/0137081073/ref=cm_sw_em_r_mt_dp_U_BF5gEb8CTQCGN&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Software Craftsman: Professionalism, Pragmatism, Pride&lt;br&gt;
(&lt;a href="https://www.amazon.de/dp/0134052501/ref=cm_sw_em_r_mt_dp_U_aH5gEb19FRCGP"&gt;https://www.amazon.de/dp/0134052501/ref=cm_sw_em_r_mt_dp_U_aH5gEb19FRCGP&lt;/a&gt;)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;====&lt;/p&gt;

&lt;p&gt;All these books helped me to grow personally and technically. After all i realized that reading a book is better than watching tons of videos.&lt;br&gt;
So give it a try!&lt;/p&gt;

&lt;p&gt;Of course there are so many books out there.&lt;br&gt;
So let me know which books you can recommend to others.&lt;/p&gt;

</description>
      <category>education</category>
      <category>books</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
