<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog blog("Baptiste Wicht"); (Posts about budgetwarrior)</title><link>https://baptiste-wicht.com/</link><description></description><atom:link href="https://baptiste-wicht.com/categories/budgetwarrior.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><lastBuildDate>Sun, 15 Feb 2026 06:57:39 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>C++23 Refresh and budgetwarrior 1.1.0</title><link>https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I am happy to announce the release of budgetwarrior 1.1.0.&lt;/p&gt;
&lt;p&gt;The last release of budgetwarrior was more than 5 years ago. So, once I finished my C++20/C++23 refresh of the code,
I decided it was a good time to generate a new release. There has been many improvements in this new version:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Many new graphs on the web interface&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add support for tracking stock values&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Significant speed improvements if you have a lot of data in the tool&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Assets can be set as inactive to be hidden&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Introduction of the FI Net Worth&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Better support of asset classes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Many small bug fixes&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to use the latest version, you can now use the docker image that I am publishing frequently. This docker
image is what I use, so it should be fairly up-to-date.
* &lt;cite&gt;budgetwarrior on docker hub &amp;lt;https://hub.docker.com/r/wichtounet/budgetwarrior&amp;gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;Otherwise, you can of course compile it from the sources (another docker image is available as a build image). For this,
you will need a very recent GCC (13+) or Clang (16+) compiler.&lt;/p&gt;
&lt;p&gt;Most of the new features have been implemented a while ago, for my personal usage. The main recent changes are
improvements in the code, related to using C++20 and C++23. I plan for all my projects to be compiled with C++23 by
default. The reason is mostly so I can really learn about these features, since I cannot use them all at work. On that
note, I was a bit disappointed by the support in clang, especially in libc++. I had to work around a few limitations in
order to support clang.&lt;/p&gt;
&lt;p&gt;The main C++20 feature that I am using in budgetwarrior is ranges. I have been able to improve many pieces of code from
using loops and multiple ifs, to using a range. I have implemented many transforms and filters for budgetwarrior. And
I am quite happy about the result. For instance:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code cpp"&gt;&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-1" name="rest_code_dc7ab8329cb64304befaf81121639c18-1" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-1"&gt;&lt;/a&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;budget::account_exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-2" name="rest_code_dc7ab8329cb64304befaf81121639c18-2" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;auto&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;all_accounts&lt;/span&gt;&lt;span class="p"&gt;()){&lt;/span&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-3" name="rest_code_dc7ab8329cb64304befaf81121639c18-3" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-4" name="rest_code_dc7ab8329cb64304befaf81121639c18-4" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-5" name="rest_code_dc7ab8329cb64304befaf81121639c18-5" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-6" name="rest_code_dc7ab8329cb64304befaf81121639c18-6" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-7" name="rest_code_dc7ab8329cb64304befaf81121639c18-7" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-7"&gt;&lt;/a&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-8" name="rest_code_dc7ab8329cb64304befaf81121639c18-8" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;a id="rest_code_dc7ab8329cb64304befaf81121639c18-9" name="rest_code_dc7ab8329cb64304befaf81121639c18-9" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_dc7ab8329cb64304befaf81121639c18-9"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;became:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code cpp"&gt;&lt;a id="rest_code_2a9db7738ce14d749f07b84cc7330654-1" name="rest_code_2a9db7738ce14d749f07b84cc7330654-1" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_2a9db7738ce14d749f07b84cc7330654-1"&gt;&lt;/a&gt;&lt;span class="kt"&gt;bool&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;budget::account_exists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;const&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;std&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;string&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;a id="rest_code_2a9db7738ce14d749f07b84cc7330654-2" name="rest_code_2a9db7738ce14d749f07b84cc7330654-2" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_2a9db7738ce14d749f07b84cc7330654-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;ranges&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;all_accounts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;filter_by_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;a id="rest_code_2a9db7738ce14d749f07b84cc7330654-3" name="rest_code_2a9db7738ce14d749f07b84cc7330654-3" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_2a9db7738ce14d749f07b84cc7330654-3"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;or here is another example of using ranges:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code cpp"&gt;&lt;a id="rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-1" name="rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-1" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;accounts&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;not_id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;active_today&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;filter_by_name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-2" name="rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-2" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="k"&gt;throw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;budget_exception&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"There is already an account with the name "&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;account&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;a id="rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-3" name="rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-3" href="https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html#rest_code_7c9ad1ea8b9f42b8a75c787c9e7e5a02-3"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This is likely the biggest change, but I have made other improvements based on recent versions of C++:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;Use of std::format&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use of the spaceship operator&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use of template lambdas&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use of std::string_view&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use of std::filesystem&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use of std::map::contains (and other such functions)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Overall, it was a lot of fun and I could significantly improve the code by using these new features (and more).&lt;/p&gt;
&lt;p&gt;I am also taking advantage of clang-tidy now. I have added a clang-tidy configuration to my projects so that I can
quickly check everything. I have also integrated clang-tidy in neovim (yes, I switched from vim to neovim, more on that
later maybe) and this shows in real time where I could improve the code.&lt;/p&gt;
&lt;p&gt;Finally, another change is that I am now taking advantage of Github Workflows. Every time I push to the repo, everything is
compiled with the two compilers I support. This allows me to keep compatibility between both. In the future, I plan to
add a few more tools to the workflows for code analysis. This is also an opportunity for me to learn about these
workflows, which I never used before.&lt;/p&gt;
&lt;p&gt;I am quite glad to be working on these projects again eve though I do not have much time. It was really fun to use all
these new features in budgetwarrior. Next, I plan to refresh the code of ETL. And since I want to refresh my GPU skills
as well, I will also work on etl_gpu_blas.&lt;/p&gt;</description><category>budgetwarrior</category><category>C++</category><category>C++20</category><category>C++23</category><category>projects</category><guid>https://baptiste-wicht.com/posts/2023/09/c%2B%2B23-refresh-and-budgetwarrior-110.html</guid><pubDate>Sun, 10 Sep 2023 04:50:28 GMT</pubDate></item><item><title>A short update</title><link>https://baptiste-wicht.com/posts/2023/08/a-short-update.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I can't believe it's been about 5 years since the last update on this blog. For those, who are wondering what is
happening, here is a short update.&lt;/p&gt;
&lt;p&gt;About 6 years ago, I have finished my Ph.D. and about 5 years, I started to work as a software engineer, at Verisign.
I am now a Senior Software Engineer, still at Verisign. After I started working professionally, I did not spend much
time on my personal projects anymore. Before, my personal projects were part of my Ph.D., so it made sense to posts some
updates on this blog and I had time to also post other articles.&lt;/p&gt;
&lt;p&gt;But probably another bigger factor is that I started another blog in 2017, &lt;cite&gt;The Poor Swiss &amp;lt;https://thepoorswiss.com&amp;gt;&lt;/cite&gt;.
This is not a technical blog but a blog on personal finance, related to Switzerland. I have written more than 400
articles on this blog and I am still writing about one article a week these days. This takes a lot of time and made me
scale down even more on my personal projects. The only project that continued getting some improvements was budgetwarrior
since I am using it almost every day.&lt;/p&gt;
&lt;p&gt;It's obviously worth mentioning that I got married about 5 years ago and that we now have a son, almost two years old.
This obviously takes a lot of time!&lt;/p&gt;
&lt;p&gt;So, why am I posting this short update today? I recently started missing working on personal projects. And I realized
I had gotten out of touch with recent C++. It is a bit disappointing but my C++ level is becoming worse since I have
started working professionally on C++. So, I learned in details about C++20 and C++23 and decided to apply some of it to
my personal projects.&lt;/p&gt;
&lt;p&gt;I have made significant cleanups to budgetwarrior, using C++23 by default now and switching to GCC 15 and Clang 16 as
the default compilers. I plan to continue working on budgetwarrior_web, the web interface for budgetwarrior next. This
project will also be converted to C++23. After that, I will probably continue with ETL and DLL. And hopefully, I plan to
dedicate some time to adding more features to ETL and DLL as well. Thor OS is currently not on my list because I don't
have the kind of energy and time this project requires.&lt;/p&gt;
&lt;p&gt;I also hope I will be posting some more updates on this blog, but I will not adhere to any posting schedule. At least,
I will not let five years go by before the next update!&lt;/p&gt;</description><category>budgetwarrior</category><category>C++</category><category>Personal</category><category>projects</category><category>The site</category><guid>https://baptiste-wicht.com/posts/2023/08/a-short-update.html</guid><pubDate>Sun, 13 Aug 2023 06:55:40 GMT</pubDate></item><item><title>budgetwarrior 1.0.1: Allocation tracking, Retirement calculator and bug fixes</title><link>https://baptiste-wicht.com/posts/2018/04/budgetwarrior-101-allocation-tracking-retirement-calculator-bug-fixes.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I'm happy to announce the release of budgetwarrior 1.0.1. This new version
contains a series of improvement over the 1.0 version and some new features.&lt;/p&gt;
&lt;p&gt;I haven't been very active this last month. I have been working a bit on
budgetwarrior for features I needed for my budget. I've also been contacted with
questions on my thor operating system and since that point I've doing some
work on thor as well.&lt;/p&gt;
&lt;p&gt;This new version of budgetwarrior has quite a few new features even though it's
a minor version.&lt;/p&gt;
&lt;p&gt;Note: The data from all the views is totally randomized and does not make
sense ;)&lt;/p&gt;
&lt;section id="retirement-calculator"&gt;
&lt;h2&gt;Retirement Calculator&lt;/h2&gt;
&lt;p&gt;The biggest novelty in this version is the addition of a retirement calculator.
This is still very basic, but it may give information on how close (or far) you
are from early retirement. Here is what the view gives you:&lt;/p&gt;
&lt;img alt="Retirement Status" src="https://baptiste-wicht.com/images/budgetwarrior_101_retirement_status.png"&gt;
&lt;p&gt;Using your annual withdrawal rate and expected Rate Of Return, it can compute
how many years you will need to reach your goals Financial Independence (FI). It
will also gives you your FI ratio and a few more information about your savings
rate, income, expenses and so on. It's nothing very fancy but it can be very
useful.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="new-features"&gt;
&lt;h2&gt;New features&lt;/h2&gt;
&lt;p&gt;I've also added a few graphs based on the budget information. The first is the
visualization of the expenses over time:&lt;/p&gt;
&lt;img alt="Expenses over time graph" src="https://baptiste-wicht.com/images/budgetwarrior_101_expenses_over_time.png"&gt;
&lt;p&gt;This can be pretty useful to see how are your expenses going. Even if your
income is going, expenses should not necessarily go up (you should save more!).&lt;/p&gt;
&lt;p&gt;Another new view can show your asset allocation over time and the current asset
allocation of your entire net worth or specifically for your portfolio.&lt;/p&gt;
&lt;img alt="Asset allocation" src="https://baptiste-wicht.com/images/budgetwarrior_101_allocation.png"&gt;
&lt;p&gt;This is also really useful if you want to have a global view of your asset
allocation into bonds, stocks and such.&lt;/p&gt;
&lt;p&gt;There are also two other new minor features. You can now search expenses by
name. This is really useful once you start having many expenses. Another new
view is the Full aggregate view. Before, you could aggregate your expenses by
month or year, now they can be aggregate since the beginning of the budget. With
this, you can see how much you spend on coffee since you started keeping track
of your budget. For me, it's a lot! Both these features are available both in
command line and in the web interface.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="improvements"&gt;
&lt;h2&gt;Improvements&lt;/h2&gt;
&lt;p&gt;There are also a few improvements with this new version. You can now set
a default account (in the configuration file with default_account=X). It will be
set by default in both the web view and the console view. The rebalance view has
been made more clear. I've added a second batch update view with only the assets
that are being used (amount &amp;gt; 0). And lastly, the yearly overview is now
displaying correctly the previous year savings rate.&lt;/p&gt;
&lt;p&gt;Finally, there are also a few bug fixes. That is is the main reason I decided to
release now. If you were using asset with different currency, several views
where not correctly using the exchange rate to display them. Moreover, the
average expenses in the monthly overview was not correct. Finally, if you were
editing old expenses after having archived the accounts, it could be edited with
the wrong account.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="installation"&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;If you are on Gentoo, you can install it using layman:&lt;/p&gt;
&lt;pre class="literal-block"&gt;layman -a wichtounet
emerge -a budgetwarrior&lt;/pre&gt;
&lt;p&gt;If you are on Arch Linux, you can use this &lt;cite&gt;AUR repository
&amp;lt;https://github.com/StreakyCobra/aur&amp;gt;&lt;/cite&gt; (wait a few days for the new version to be
updated)_&lt;/p&gt;
&lt;p&gt;For other systems, you'll have to install from sources:&lt;/p&gt;
&lt;pre class="literal-block"&gt;git clone --recursive git://github.com/wichtounet/budgetwarrior.git
cd budgetwarrior
git checkout 1.0.1
make
sudo make install&lt;/pre&gt;
&lt;p&gt;If you want to test the server mode, the default username is admin and the
default password is 1234. You can change them in the configuration file with
web_user and web_password.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Although it's a minor version, it improves and fixes quite a few things,
especially for the web view. I encourage you to try it out. Don't hesitate to
let me a comment if you fail to use it or don't understand something ;)&lt;/p&gt;
&lt;p&gt;There are still a few things that I want to do, as I said when
&lt;a class="reference external" href="https://baptiste-wicht.com/posts/2018/01/budgetwarrior-10-web-interface-and-asset-tracking.html"&gt;I introduced the web version&lt;/a&gt;. The website still needs to be
made faster. And the communication between the console and the server can also
be improved.&lt;/p&gt;
&lt;p&gt;If you are interested by the sources, you can download them on Github:
&lt;a class="reference external" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have a suggestion or you found a bug, please post an issue on Github.&lt;/p&gt;
&lt;p&gt;If you have any comment, don't hesitate to contact me, either by letting a
comment on this post or by email.&lt;/p&gt;
&lt;/section&gt;</description><category>budgetwarrior</category><category>C++</category><category>projects</category><category>Release</category><guid>https://baptiste-wicht.com/posts/2018/04/budgetwarrior-101-allocation-tracking-retirement-calculator-bug-fixes.html</guid><pubDate>Tue, 03 Apr 2018 08:58:47 GMT</pubDate></item><item><title>budgetwarrior 1.0: Web interface and asset tracking!</title><link>https://baptiste-wicht.com/posts/2018/01/budgetwarrior-10-web-interface-and-asset-tracking.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I'm happy to announce the release of budgetwarrior 1.0. This is a major change
over the previous version.&lt;/p&gt;
&lt;section id="web-interface"&gt;
&lt;h2&gt;Web Interface&lt;/h2&gt;
&lt;p&gt;Until now, budgetwarrior could only be used in command line. This is fine for
me, but not for every body. Since I wanted to share my budget with my
girlfriend, I needed something less nerdy ;)&lt;/p&gt;
&lt;p&gt;Therefore, I added support for &lt;em&gt;a web interface for budgetwarrior&lt;/em&gt;. Every feature
of the console application is now available in the web version. Moreover, since
the web version offers &lt;em&gt;slightly better&lt;/em&gt; graphical capabilities, I added a few
more graphs and somewhat more information at some places. I'm not nearly an
expert in web interface, but I think I managed to get something not too bad
together. There are still some things to improve that I'll go through in the
future but so far the web interface is pretty satisfying and it is &lt;strong&gt;mobile friendly&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;The web server is coded in C++ (who would have guessed...) and is embedded in
the application, you need to use the command &lt;strong&gt;server&lt;/strong&gt; to use it:&lt;/p&gt;
&lt;pre class="literal-block"&gt;budget server&lt;/pre&gt;
&lt;p&gt;and the server will be launched (by default at localhost:8080). You can
configure the port with &lt;code&gt;server_port=X&lt;/code&gt; in the configuration file and the
listen address with &lt;code&gt;server_listen=X&lt;/code&gt;. You can access your server at
&lt;a class="reference external" href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is what this will display:&lt;/p&gt;
&lt;img alt="Web interface index" src="https://baptiste-wicht.com/images/budgetwarrior_web_index.png"&gt;
&lt;p&gt;Note: All the data is randomized&lt;/p&gt;
&lt;p&gt;The main page shows your assets, the current net worth, your monthly cash-flow
and the state of your objectives.&lt;/p&gt;
&lt;p&gt;The menu will give you access to all the features of the application. You can
add expenses and earnings, see reports, manage your assets and your objectives
and so on. Basically, you can do everything you did in the application, but you
have access to more visualization tools than you would on the console. For
instance, you can access your fortune over time:&lt;/p&gt;
&lt;img alt="Web interface fortune graph" src="https://baptiste-wicht.com/images/budgetwarrior_web_fortune.png"&gt;
&lt;p&gt;or see how your portfolio does in terms of currency:&lt;/p&gt;
&lt;img alt="Web interface portofolio currency breakdown" src="https://baptiste-wicht.com/images/budgetwarrior_web_portfolio_currency.png"&gt;
&lt;p&gt;Normally, unless I forgot something (in which case, I'll fix it), everything
should be doable from the web interface. This is simply easier people that are
not as nerdy as me for console ;)&lt;/p&gt;
&lt;p&gt;The management is still the same, the server will write to the same file the
base application uses. Therefore, you cannot use the server and the command line
application on the same machine at the same time. Nevertheless, if the server is
not running, you can still use the command line application. This could be
useful if you want to use the web visualization while still using the command
line tool for managing the budget.&lt;/p&gt;
&lt;p&gt;The default user and password is admin:1234, but you of course change it using
web_password and web_user in the configuration. You can also disable the
security if you are sure of yourself by setting &lt;code&gt;server_secure=true&lt;/code&gt; in
the configuration. The server currently does not support&lt;/p&gt;
&lt;p&gt;Currently, it does not protect against concurrent modifications of the same
data. It is very unlikely to happen with only a few people using the
applications, but I plan to improve that in the future.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="server-mode"&gt;
&lt;h2&gt;Server mode&lt;/h2&gt;
&lt;p&gt;Although it's not possible to use both the server and the command line
application at the same time, it's possible to use the command line application
in server mode. In this case, instead of reading and writing the data from the
hard disk, the application will send requests to the server to read and write
the data it needs. With this, you can use both the server and the command line
application at the same time!&lt;/p&gt;
&lt;p&gt;While running, the server exposes a simple API that can be used to get
all the information about the budget data and that can also be used to add new
expenses, earnings and so on directly to the server data. The API is also
protected by authentication.&lt;/p&gt;
&lt;p&gt;Currently, the server does not support HTTPS. However, you can run it behind
a proxy such as nginx which is running in HTTPS. This is what I'm doing. The
server mode supports SSL from the client to the server, you just have to set
&lt;code&gt;server_sll=true&lt;/code&gt; in the configuration.&lt;/p&gt;
&lt;p&gt;This is the mode I'm currently using and will continue using. With this, I can
quickly do some modifications using the command line and if I want to see
advanced visualization, I just have to open my browser and everything is
updated. Moreover, in the future, other people involved with my budget will be
able to access the web interface. This also solves the synchronization problem
in a much better way than before.&lt;/p&gt;
&lt;p&gt;Just as it was the case with the server, this is not made to be used in parallel
by different users. This should be perfectly fine for a small household.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="assets-tracking"&gt;
&lt;h2&gt;Assets Tracking&lt;/h2&gt;
&lt;p&gt;Already a few months ago, I've added &lt;cite&gt;the feature to track assets &amp;lt;https://baptiste-wicht.com/posts/2017/10/budgetwarrior-track-assets-portfolio-savings-rates-auto-completion.html&amp;gt; `_ into budgetwarrior. You can define the list of the assets you possess. The tool will then help you track the value of your assets. You can set your desired distribution of bonds, cash and stocks and the tool will help you see if you need to rebalance your assets. This will let you compute your net worth, with :code:`budget asset value&lt;/cite&gt;:&lt;/p&gt;
&lt;img alt="View of your assets" src="https://baptiste-wicht.com/images/budgetwarrior_asset_values.png"&gt;
&lt;p&gt;Moreover, you can also set a few of your assets as your portfolio assets. These
assets have a desired distribution and are handled different. These are the
assets you directly manage yourself, your investment portfolio. You can then
track their value and see if they need rebalancing. For instance, here is
a randomized rebalancing of your portfolio, with &lt;code&gt;budget asset rebalance&lt;/code&gt;:&lt;/p&gt;
&lt;img alt="View of the needed rebalance" src="https://baptiste-wicht.com/images/budgetwarrior_rebalance.png"&gt;
&lt;p&gt;All these features are now also available on the web version as well.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="better-console-usability"&gt;
&lt;h2&gt;Better console usability&lt;/h2&gt;
&lt;p&gt;A few months ago, I added some &lt;a class="reference external" href="https://baptiste-wicht.com/posts/2017/10/budgetwarrior-track-assets-portfolio-savings-rates-auto-completion.html"&gt;quality-of-life improvements to the console appplication&lt;/a&gt;. You can now cycle through the list of possible values for accounts for instance in the console! This is down with the UP and DOWN keys. Now, I also added auto-completion with TAB key. You can write Ins&amp;lt;TAB&amp;gt; and it will complete to Insurances if you have an Insurances account in your budget. This makes it much faster to enter new expenses or to update asset values.&lt;/p&gt;
&lt;section id="installation"&gt;
&lt;h3&gt;Installation&lt;/h3&gt;
&lt;p&gt;If you are on Gentoo, you can install it using layman:&lt;/p&gt;
&lt;pre class="literal-block"&gt;layman -a wichtounet
emerge -a budgetwarrior&lt;/pre&gt;
&lt;p&gt;If you are on Arch Linux, you can use this &lt;cite&gt;AUR repository
&amp;lt;https://github.com/StreakyCobra/aur&amp;gt;&lt;/cite&gt; (wait a few day for the new version to be
updated)_&lt;/p&gt;
&lt;p&gt;For other systems, you'll have to install from sources:&lt;/p&gt;
&lt;pre class="literal-block"&gt;git clone --recursive git://github.com/wichtounet/budgetwarrior.git
cd budgetwarrior
git checkout 1.0
make
sudo make install&lt;/pre&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Overall, even though I'm not a fan of web development, it was quite fun to add
all these features to budgetwarrior and made it much better I think. This is
a very significant change to the project since it almost doubled in number of
source lines of code, but I think it's a change that was needed.&lt;/p&gt;
&lt;p&gt;I think these changes really make budgetwarrior more useful to a wider group of
people and I'm pretty to have finally come around and implemented them. I still
have a few things I plan to improve in the near future. First, I want to make
the website a bit faster, there are many scripts and stylesheets that are being
loaded and make the site a bit bloated. I'll also enable gzip compression of the
website to speed up things. I will also ensure that the server can handle
requests concurrently without any problem of the data (should be simple since we
don't need high performance). I may also add a new module to budgetwarrior to
track your progress towards retirement if this is something you are interested
in, but I haven't decided in what form exactly. Finally, I will also try to
optimize the requests that are being done between the server and the client when
run in server mode. Indeed, it currently downloads almost all the data from the
server which is far from optimal.&lt;/p&gt;
&lt;p&gt;If you are interested by the sources, you can download them on Github:
&lt;a class="reference external" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have a suggestion or you found a bug, please post an issue on Github.&lt;/p&gt;
&lt;p&gt;If you have any comment, don't hesitate to contact me, either by letting a
comment on this post or by email.&lt;/p&gt;
&lt;/section&gt;
&lt;/section&gt;</description><category>budgetwarrior</category><category>C++</category><category>projects</category><category>Release</category><guid>https://baptiste-wicht.com/posts/2018/01/budgetwarrior-10-web-interface-and-asset-tracking.html</guid><pubDate>Fri, 26 Jan 2018 11:52:31 GMT</pubDate></item><item><title>Budgetwarrior: Track assets and portfolio, savings rates and auto-completion</title><link>https://baptiste-wicht.com/posts/2017/10/budgetwarrior-track-assets-portfolio-savings-rates-auto-completion.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;This last month, I've been reading quite a few blogs about personal finance and
I've decided to integrate more features into budgetwarrior. This post is about
three new features that I've integrated. It's not yet a new release, so if you
want to test this version, you'll have to compile it from the &lt;em&gt;master&lt;/em&gt; branch on
Git.&lt;/p&gt;
&lt;p&gt;As it was last time, the values on my screenshots have all been randomized.&lt;/p&gt;
&lt;p&gt;If you have several assets with different distributions, I believe it is a great
value to have them all shown at the same time. Especially if you want to change
the distribution of your portfolio or if you plan big changes in it.&lt;/p&gt;
&lt;section id="track-assets"&gt;
&lt;h2&gt;Track assets&lt;/h2&gt;
&lt;p&gt;The first feature I've added is a feature to precisely track each of your assets
independently. And you can also track the allocation of your portfolio in terms
of stocks, bonds and cash. The tool also lets you set the desired distribution
of your assets and will compute the difference that you should make in order to
comply to your desired distribution.&lt;/p&gt;
&lt;p&gt;First, you need to define all your asset classes (your accounts, funds, and
stocks, ...) and their distribution with &lt;code&gt;budget asset add&lt;/code&gt;. It also
supports to set a currency. The default currency is now CHF, but you can set it
in the configuration file, for instance &lt;code&gt;default_currency=USD&lt;/code&gt;. You can
see your assets using &lt;code&gt;budget asset&lt;/code&gt;:&lt;/p&gt;
&lt;img alt="View of your assets" src="https://baptiste-wicht.com/images/budgetwarrior_assets.png"&gt;
&lt;p&gt;You can then set the value of your assets using &lt;code&gt;budget asset value add&lt;/code&gt;.
The system will save all the values of your assets. For now, only the last value
is used in the application to display. In the future, I plan to add new reports
for evolution of the portfolio over time. You can see your current net worth
with the &lt;code&gt;budget asset value&lt;/code&gt;:&lt;/p&gt;
&lt;img alt="View of your portfolio" src="https://baptiste-wicht.com/images/budgetwarrior_asset_values.png"&gt;
&lt;p&gt;The different currencies will all be converted to the default currency.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="savings-rate"&gt;
&lt;h2&gt;Savings rate&lt;/h2&gt;
&lt;p&gt;The second change I did is to compute the savings rate of each month and year.
The savings rate is simply the portion of your income that you are able to save
each month. The savings rate for a year is simple the average of the savings
rate of each month.&lt;/p&gt;
&lt;p&gt;The savings rate of the month can be seen with &lt;code&gt;budget overview month&lt;/code&gt;:&lt;/p&gt;
&lt;img alt="Savings rate of the month" src="https://baptiste-wicht.com/images/budgetwarrior_savings_rate.png"&gt;
&lt;p&gt;The saving rates of each month can also be seen in the overview of the year with
&lt;code&gt;budget overview year&lt;/code&gt;:&lt;/p&gt;
&lt;img alt="Savings rate of the year" src="https://baptiste-wicht.com/images/budgetwarrior_savings_rate_year.png"&gt;
&lt;p&gt;This shows the savings rate of each month, the average of the year and the
average of the current year up to the current month.&lt;/p&gt;
&lt;p&gt;The savings rate is a very important metric of your budget. In my case, it's
currently way too low and made me realize I really need to save more. Any
savings rate below 10% is too low. There are no rule as too much it should be,
but I'd like to augment mine to at least 20% next year.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="auto-completion"&gt;
&lt;h2&gt;Auto-completion&lt;/h2&gt;
&lt;p&gt;The last feature is mostly some quality-of-life improvement. Some of the inputs
in the console can now be completed. It's not really auto-completion per se, but
you can cycle through the list of possible values using the UP and DOWN.&lt;/p&gt;
&lt;p&gt;This makes it much easier to set some values such as asset names (in
&lt;code&gt;budget asset value add&lt;/code&gt; for instance), account names and objective types
and sources. I'm trying to make the input of values easier.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I don't know exactly what else will be integrated in this feature, but I may
already improve some visualization for asset values. If I learn something new
about personal finance that I may integrate in the tool, I'll do it as well.&lt;/p&gt;
&lt;p&gt;If you are interested by the sources or want to install this version,
you can download them on Github:
&lt;a class="reference external" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The new features are in the &lt;em&gt;master&lt;/em&gt; branch.&lt;/p&gt;
&lt;p&gt;If you have a suggestion for a new features or you found a bug, please post an
issue on Github, I'd be glad to help you.&lt;/p&gt;
&lt;p&gt;If you have any comment, don't hesitate to contact me, either by letting a
comment on this post or by email.&lt;/p&gt;
&lt;/section&gt;</description><category>budgetwarrior</category><category>C++</category><category>Linux</category><guid>https://baptiste-wicht.com/posts/2017/10/budgetwarrior-track-assets-portfolio-savings-rates-auto-completion.html</guid><pubDate>Thu, 12 Oct 2017 17:40:14 GMT</pubDate></item><item><title>budgetwarrior 0.4.2 - Budget summary and improved fortune reports</title><link>https://baptiste-wicht.com/posts/2017/09/budgetwarrior-042-budget-summary-improved-fortune-reports.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;Almost three years ago, &lt;a class="reference external" href="https://baptiste-wicht.com/posts/2014/09/budgetwarrior-041-expense-templates-and-year-projection.html"&gt;I published the version 0.4.1 of budgetwarrior&lt;/a&gt;. Since then, I've been using this tool almost every day to manage my personal budget. This is the only tool I use to keep track of my expenses and earnings and it makes a great tool for me. I recently felt that it was missing a few features and added them and polished a few things as well and release a new version with all the new stuff. This new version is probably nothing fancy, but a nice upgrade of the tool.&lt;/p&gt;
&lt;p&gt;Don't pay too much attention to the values in the images since I've randomized
all the data for the purpose of this post (new feature, by the way :P).&lt;/p&gt;
&lt;section id="new-summary-view"&gt;
&lt;h2&gt;New summary view&lt;/h2&gt;
&lt;p&gt;I've added a new report with &lt;code&gt;budget summary&lt;/code&gt;:&lt;/p&gt;
&lt;img alt="/images/budgetwarrior_042_summary.png" src="https://baptiste-wicht.com/images/budgetwarrior_042_summary.png"&gt;
&lt;p&gt;This view gives concise information about the current state of your accounts. It
also gives information about your yearly and monthly objectives. Finally, it
also gives information about the last two fortune values that you've set.
I think this make a great kind of dashboard to view most of the information. If
your terminal is large enough, the three parts will be shown side by side.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="improved-fortune-report"&gt;
&lt;h2&gt;Improved fortune report&lt;/h2&gt;
&lt;p&gt;I've made a few improvements to the &lt;code&gt;budget fortune&lt;/code&gt; view:&lt;/p&gt;
&lt;img alt="/images/budgetwarrior_042_fortune.png" src="https://baptiste-wicht.com/images/budgetwarrior_042_fortune.png"&gt;
&lt;p&gt;It now display the time between the different fortune values and it compute the
average savings (or avg losses) per day in each interval and in average from the
beginning of the first value.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="various-changes"&gt;
&lt;h2&gt;Various changes&lt;/h2&gt;
&lt;p&gt;The balance does not propagate over the years anymore. This should mainly change
the behaviour of &lt;code&gt;budget overview&lt;/code&gt;. I don't think it was very
smart to propagate it all the time. The balance now starts at zero for each
year. If you want the old system, you can use the multi_year_balance=true option
in the .budgetrc configuration file.&lt;/p&gt;
&lt;p&gt;The recurring expenses do not use an internal configuration value. This does not
change anything for the behaviour, but means that if you sync between different
machines, it will avoid a lot of possible conflicts :)&lt;/p&gt;
&lt;p&gt;Fixed a few bugs with inconsistency between the different views and reports.
Another bug that was fixed is that &lt;code&gt;budget report&lt;/code&gt; was not always displaying the
first month of the year correctly, this is now fixed.&lt;/p&gt;
&lt;p&gt;The graphs display in &lt;code&gt;budget report&lt;/code&gt; are now automatically adapted to width of
your terminal. Finally, the &lt;code&gt;budget overview&lt;/code&gt; command also displays more
information about the comparison with the previous month.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="installation"&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;If you are on Gentoo, you can install it using layman:&lt;/p&gt;
&lt;pre class="literal-block"&gt;layman -a wichtounet
emerge -a budgetwarrior&lt;/pre&gt;
&lt;p&gt;If you are on Arch Linux, you can use this &lt;a class="reference external" href="https://github.com/StreakyCobra/aur-budgetwarrior"&gt;AUR repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For other systems, you'll have to install from sources:&lt;/p&gt;
&lt;pre class="literal-block"&gt;git clone --recursive git://github.com/wichtounet/budgetwarrior.git
cd budgetwarrior
make
sudo make install&lt;/pre&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;A brief tutorial is available on Github: &lt;a class="reference external" href="https://github.com/wichtounet/budgetwarrior/wiki/Start-tutorial"&gt;Starting guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are interested by the sources, you can download them on Github:
&lt;a class="reference external" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any suggestion for a new feature or an improvement to the tool or
you found a bug, please post an issue on Github, I'd be glad to help you. You
can post a comment directly on this post :)&lt;/p&gt;
&lt;p&gt;If you have any other comment, don't hesitate to contact me, either by letting a
comment on this post or by email.&lt;/p&gt;
&lt;p&gt;I hope that this application can be useful to some of you command-line adepts :)&lt;/p&gt;
&lt;/section&gt;</description><category>budgetwarrior</category><category>C++</category><category>Gentoo</category><category>Linux</category><category>Releases</category><guid>https://baptiste-wicht.com/posts/2017/09/budgetwarrior-042-budget-summary-improved-fortune-reports.html</guid><pubDate>Thu, 14 Sep 2017 18:42:39 GMT</pubDate></item><item><title>budgetwarrior 0.4.1 - Expense templates and year projection</title><link>https://baptiste-wicht.com/posts/2014/09/budgetwarrior-041-expense-templates-and-year-projection.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I've been able to finish the version 0.4.1 of budgetwarrior before I though :)&lt;/p&gt;
&lt;section id="expense-templates"&gt;
&lt;h2&gt;Expense templates&lt;/h2&gt;
&lt;p&gt;The "most useful" new feature of this release is the ability to create template
for expenses.&lt;/p&gt;
&lt;p&gt;For that, you can give an extra parameter to budget expense add:&lt;/p&gt;
&lt;pre class="literal-block"&gt;budget expense add template name&lt;/pre&gt;
&lt;p&gt;This will works exactly the same as creating a new expense expect that it will
be saved as a template. Then, the next time you do:&lt;/p&gt;
&lt;pre class="literal-block"&gt;budget expense add template name&lt;/pre&gt;
&lt;p&gt;A new expense will be created with the date of the day and with the name and
amount saved into the template. You can create as many templates as you want as
long as they have different names. You can see all the templates you have by
using 'budget expense template'. A template can be deleted the exact same as an
expense with 'budget expense delete id'.&lt;/p&gt;
&lt;p&gt;I think this is very useful for expense that are made several times a month, for
instance a coffee at your workplace. The price should not change a lot and it is
faster to just use the template name rather than entering all the information
again.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="year-prediction"&gt;
&lt;h2&gt;Year prediction&lt;/h2&gt;
&lt;p&gt;You can now see what would be next year if you changed a bit your expenses. For
instance, how much would you still have at the end of the year if you increased
your house expenses by 20% and reduced your insurances by 5% ?&lt;/p&gt;
&lt;p&gt;The 'budget predict' can be used for that purpose. You can enter a multiplier
for each account in your budget and a new year will be "predicted" based on
the expenses of the current year multiplied by the specified multiplier:&lt;/p&gt;
&lt;img alt="/images/budget_041_prediction.png" src="https://baptiste-wicht.com/images/budget_041_prediction.png"&gt;
&lt;p&gt;I think that this feature can be very useful if you want to estimate how your
budget will be for moving to a more expensive house or another insurance for
instance.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="various-changes"&gt;
&lt;h2&gt;Various changes&lt;/h2&gt;
&lt;p&gt;Two accounts can be merged together with the 'budget account migrate' command.
This command will move all expenses from an account to another and adapt the
amount of the target account. The source account will be deleted. This supports
migrated accounts.&lt;/p&gt;
&lt;p&gt;The 'budget wish list' command will now display the mean accuracy of your
predictions.&lt;/p&gt;
&lt;p&gt;You don't need Boost anymore for this project. The only remaining dependency is
libuuid. I will perhaps remove it in the next version since the UUID are not
used in the application for now.&lt;/p&gt;
&lt;p&gt;The command 'budget gc' will clean the IDs of all your data in order to fill the
holes and make all the IDs contiguous. It is mostly a feature for order-freaks
like me who do not like to have holes in a sequence of identifiers ;)&lt;/p&gt;
&lt;p&gt;There was a bug in the monthly report causing the scale to be displayed
completely moved, it is now fixed:&lt;/p&gt;
&lt;img alt="https://raw.githubusercontent.com/wichtounet/budgetwarrior/develop/screenshots/budget_report.png" src="https://raw.githubusercontent.com/wichtounet/budgetwarrior/develop/screenshots/budget_report.png"&gt;
&lt;/section&gt;
&lt;section id="installation"&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;If you are on Gentoo, you can install it using layman:&lt;/p&gt;
&lt;pre class="literal-block"&gt;layman -a wichtounet
emerge -a budgetwarrior&lt;/pre&gt;
&lt;p&gt;If you are on Arch Linux, you can use this &lt;a class="reference external" href="https://github.com/StreakyCobra/aur"&gt;AUR repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For other systems, you'll have to install from sources:&lt;/p&gt;
&lt;pre class="literal-block"&gt;git clone git://github.com/wichtounet/budgetwarrior.git
cd budgetwarrior
make
sudo make install&lt;/pre&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;If you are interested by the sources, you can download them on Github:
&lt;a class="reference external" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have a suggestion for a new features or you found a bug, please post an
issue on Github, I'd be glad to help you.&lt;/p&gt;
&lt;p&gt;If you have any comment, don't hesitate to contact me, either by letting a
comment on this post or by email.&lt;/p&gt;
&lt;/section&gt;</description><category>budgetwarrior</category><category>C++</category><category>Gentoo</category><category>Linux</category><category>Releases</category><guid>https://baptiste-wicht.com/posts/2014/09/budgetwarrior-041-expense-templates-and-year-projection.html</guid><pubDate>Sun, 21 Sep 2014 18:53:53 GMT</pubDate></item><item><title>budgetwarrior 0.4 - Enhanced wish list and aggregate</title><link>https://baptiste-wicht.com/posts/2014/07/budgetwarrior-04-enhanced-wish-list-and-aggregate.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I've just released a new version of my command-line budget manager:
budgetwarrior 0.4.&lt;/p&gt;
&lt;section id="enhanced-aggregate-overview"&gt;
&lt;h2&gt;Enhanced aggregate overview&lt;/h2&gt;
&lt;p&gt;The aggregate overviews have been greatly improved. First, there is now a
&lt;em&gt;budget overview month&lt;/em&gt; command that groups all expenses of amonth together.
Here is a possible output:&lt;/p&gt;
&lt;img alt="/images/budget_04_aggregate_month.png" src="https://baptiste-wicht.com/images/budget_04_aggregate_month.png"&gt;
&lt;p&gt;It also possible to use &lt;em&gt;--full&lt;/em&gt; option to also aggregate together the different
accounts:&lt;/p&gt;
&lt;img alt="/images/budget_04_aggregate_month_full.png" src="https://baptiste-wicht.com/images/budget_04_aggregate_month_full.png"&gt;
&lt;p&gt;Another new option is &lt;em&gt;--no-group&lt;/em&gt; that disables the grouping by categories:&lt;/p&gt;
&lt;img alt="/images/budget_04_aggregate_month_full_ng.png" src="https://baptiste-wicht.com/images/budget_04_aggregate_month_full_ng.png"&gt;
&lt;p&gt;Moreover, the separator of categories can now be configured with &lt;em&gt;--separator=&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;All these options can also be set in the configuration with these options:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;aggregate_full : If set to true, does the same as the --full option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;aggregate_no_group : If set to true, does the same as the --no-group option.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;aggregate_separator : Sets the separator for grouping.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="enhanced-wish-list"&gt;
&lt;h2&gt;Enhanced wish list&lt;/h2&gt;
&lt;p&gt;The wishes management has also been improved.&lt;/p&gt;
&lt;p&gt;First, each wish can now be set an Urgency and Importance level. This is now
shown in wish status as simple indicators:&lt;/p&gt;
&lt;img alt="/images/budget_04_wish_status.png" src="https://baptiste-wicht.com/images/budget_04_wish_status.png"&gt;
&lt;p&gt;Moreover, the accuracy of the estimation compared to the paid amount is shown in
&lt;em&gt;wish list&lt;/em&gt;:&lt;/p&gt;
&lt;img alt="/images/budget_04_wish_list.png" src="https://baptiste-wicht.com/images/budget_04_wish_list.png"&gt;
&lt;/section&gt;
&lt;section id="various-changes"&gt;
&lt;h2&gt;Various changes&lt;/h2&gt;
&lt;p&gt;Objective status now shows more information about the status of the objectives:&lt;/p&gt;
&lt;img alt="/images/budget_04_objective_status.png" src="https://baptiste-wicht.com/images/budget_04_objective_status.png"&gt;
&lt;p&gt;The versioning module has been improved. The &lt;em&gt;versioning sync&lt;/em&gt; does now perform
a commmit as well as pull/push. &lt;em&gt;versioning push&lt;/em&gt;, &lt;em&gt;versioning pull&lt;/em&gt; and
&lt;em&gt;versioning status&lt;/em&gt; commands have been added.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;budget version&lt;/em&gt; command shows the version of budgetwarrior.&lt;/p&gt;
&lt;p&gt;Aliases a now available to make shorted commands:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;budget sync -&amp;gt; budget versioning sync&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;budget aggregate -&amp;gt; budget overview aggregate&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;section id="installation"&gt;
&lt;h2&gt;Installation&lt;/h2&gt;
&lt;p&gt;If you are on Gentoo, you can install it using layman:&lt;/p&gt;
&lt;pre class="literal-block"&gt;layman -a wichtounet
emerge -a budgetwarrior&lt;/pre&gt;
&lt;p&gt;If you are on Arch Linux, you can use this &lt;a class="reference external" href="https://github.com/StreakyCobra/aur"&gt;AUR repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For other systems, you'll have to install from sources:&lt;/p&gt;
&lt;pre class="literal-block"&gt;git clone git://github.com/wichtounet/budgetwarrior.git
cd budgetwarrior
make
sudo make install&lt;/pre&gt;
&lt;/section&gt;
&lt;section id="conclusion"&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;If you are interested by the sources, you can download them on Github:
&lt;a class="reference external" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have a suggestion or you found a bug, please post an issue on Github.&lt;/p&gt;
&lt;p&gt;If you have any comment, don't hesitate to contact me, either by letting a
comment on this post or by email.&lt;/p&gt;
&lt;/section&gt;</description><category>budgetwarrior</category><category>C++</category><category>Gentoo</category><category>Git</category><category>Linux</category><category>Releases</category><guid>https://baptiste-wicht.com/posts/2014/07/budgetwarrior-04-enhanced-wish-list-and-aggregate.html</guid><pubDate>Sun, 06 Jul 2014 08:59:55 GMT</pubDate></item><item><title>budgetwarrior 0.3.1 - Git versioning and easier creation</title><link>https://baptiste-wicht.com/posts/2014/05/budgetwarrior-031-git-versioning-easier-creation.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I've finished a new version of budgetwarrior: budgetwarrior 0.3.1&lt;/p&gt;
&lt;h3&gt;Changes&lt;/h3&gt;
&lt;p&gt;The most interesting change is the ability to estimate the date when it is a good time to buy something from the wish list. This is done with the &lt;em&gt;budget wish estimate&lt;/em&gt; command: &lt;/p&gt;
&lt;p&gt;&lt;img alt="budget wish estimate" src="https://baptiste-wicht.com/images/budget_031_wish_estimate.jpg"&gt;&lt;/p&gt;
&lt;p&gt;This command gives you two dates for each wish in your list. The first is the date wating for each yearly objectives to be fullfilled. The second one considers only the monthly objectives. For now on, no estimation of expenses is made for the future months. It means that the estimation is made as if there were no expenses in the future months. I'll try to improve that by considering averages of expenses in the previous months to make it more reliable. &lt;/p&gt;
&lt;p&gt;Still on the wish module, you can now mark your wishes as paid instead of deleting them. This helps you keep track of the prices of your wishes. This is done with the &lt;em&gt;budget wish paid id&lt;/em&gt; command. Finally, the totals of the unpaid wishes and of the paid wishes is displayed in &lt;em&gt;budget wish list&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Another helpful change is the ability to set a date relative to today's date when creating an expense or an earning. For instance, you can create an expense one month before (-1m) or in one year ((+1y) or yesterday (-1d): &lt;/p&gt;
&lt;p&gt;&lt;img alt="new date selection mechanism" src="https://baptiste-wicht.com/images/budget_031_date_selection.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Of course, you can also still set the date manually. &lt;/p&gt;
&lt;p&gt;The last major change is the addition of a new module: &lt;em&gt;budget versioning&lt;/em&gt;. This module helps you manipulate you budget directory with Git. There are two new commands: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;budget versioning save&lt;/em&gt;: Commit the current changes with a default message (Update). &lt;/li&gt;
&lt;li&gt;&lt;em&gt;budget versioning sync&lt;/em&gt;: Pull the changes from the remote directory and push the local changes. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This will only works if you have already configured your budget directory to use Git. &lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;I hope you'll found these changes interesting :)&lt;/p&gt;
&lt;p&gt;If you are interested by the tool, you can download it on Github: &lt;a href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you have a suggestion or you found a bug, please post an issue on the github project: &lt;a href="https://github.com/wichtounet/budgetwarrior"&gt;https://github.com/wichtounet/budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any comment, don't hesitate to contact me, either by letting a comment on this post or by email.&lt;/p&gt;</description><category>budgetwarrior</category><category>C++</category><category>Git</category><category>Linux</category><category>projects</category><guid>https://baptiste-wicht.com/posts/2014/05/budgetwarrior-031-git-versioning-easier-creation.html</guid><pubDate>Sat, 10 May 2014 14:45:43 GMT</pubDate></item><item><title>budgetwarrior 0.3.0 - Objective and wish management</title><link>https://baptiste-wicht.com/posts/2014/02/budgetwarrior-0-3-0-objective-wish-management.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I'm pleased to announce the release of another budgetwarrior release, the version 0.3.0.&lt;/p&gt;
&lt;h3&gt;Changes&lt;/h3&gt;
&lt;p&gt;This version contains several important changes.&lt;/p&gt;
&lt;p&gt;The first one is the addition of a new module to manage objectives. You can add objective with &lt;em&gt;budget objective add). &lt;/em&gt;For instance, you can add an objective saying you want to save 10000$ a year or 200$ a month. When you set your objectives, budget warrior computes how well you complete them. For instance, here is the status of my objectives:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2014/02/Screenshot-from-2014-02-02-113057-e1391337197470.png"&gt;&lt;img alt="Objective Status" src="https://baptiste-wicht.com/wp-content/uploads/2014/02/Screenshot-from-2014-02-02-113057-e1391337197470-300x83.png" title="Objective Status"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another module has been added to manage wishes. You can add wishes to budgetwarrior (&lt;em&gt;budget wish add&lt;/em&gt;) and then budgetwarrior will tell you if it is a good time to buy them. Here is an example of wish status:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.baptiste-wicht.com/wp-content/uploads/2014/02/Screenshot-from-2014-02-02-113814.png"&gt;&lt;img class="size-medium wp-image-2665" alt="Wish Status" src="https://baptiste-wicht.com/wp-content/uploads/2014/02/Screenshot-from-2014-02-02-113814-e1391337576857-300x96.png" width="300" height="96"&gt;&lt;/a&gt; Wish Status&lt;/p&gt;
&lt;p&gt;The diagnostics tells you where the money will be taken: On savings, on year savings or on month savings (ideal case). It also checks the objectives to see if the payment doesn't break the fulfillment of some of them.&lt;/p&gt;
&lt;p&gt;For complete diagnostics, it is necessary to you register your fortune (&lt;em&gt;budget fortune check&lt;/em&gt;), ideally once a month.&lt;/p&gt;
&lt;p&gt;Of course, this is only a tool, you should not only use that to decide when to buy something, but it may have a good point of view ;)&lt;/p&gt;
&lt;p&gt;Moreover, the version also have other smaller changes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When you make an error when creating a new item (expense, earning, ...), the tool now lets you retry without losing what you typed before.&lt;/li&gt;
&lt;li&gt;Confirmation messages are now shown after each modification command (delete, add and edit).&lt;/li&gt;
&lt;li&gt;The license has been changed from Boost to MIT. The sense is almost the same, but the MIT is more well known and I thought it would be easier for people to know what this means.&lt;/li&gt;
&lt;li&gt;There have several changes to the code base, but that doesn't impact the usage of the tool.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;I hope you'll found these changes interesting :)&lt;/p&gt;
&lt;p&gt;If you are interested by the tool, you can download it on Github: &lt;a title="budgetwarrior repository" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There is now Gentoo and Arch Linux installation packages available for ease of installation&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you have a suggestion or you found a bug, please post an issue on the github project: &lt;a title="https://github.com/wichtounet/budgetwarrior" href="https://github.com/wichtounet/budgetwarrior"&gt;https://github.com/wichtounet/budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you have any comment, don't hesitate to contact me, either by letting a comment on this post or by email.&lt;/p&gt;</description><category>budgetwarrior</category><category>C++</category><category>Linux</category><category>projects</category><guid>https://baptiste-wicht.com/posts/2014/02/budgetwarrior-0-3-0-objective-wish-management.html</guid><pubDate>Mon, 03 Feb 2014 08:21:29 GMT</pubDate></item><item><title>budgetwarrior 0.2.1 - Minor changes and Gentoo ebuild</title><link>https://baptiste-wicht.com/posts/2014/01/budgetwarrior-0-2-1-minor-changes-gentoo-ebuild.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I've released a new version of budgetwarrior, the release 0.2.1. budgetwarrior is a simple command line application to manage a personal budget.&lt;/p&gt;
&lt;p&gt;The version 0.2.1 contains several bug fixes about archived accounts and bug fixes for budget across several years.&lt;/p&gt;
&lt;p&gt;The application as well as the source code is available online: &lt;a href="https://github.com/wichtounet/budgetwarrior"&gt;https://github.com/wichtounet/budgetwarrior&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I've created Gentoo ebuilds for this application. They are available on my Portage overlay: &lt;a href="https://github.com/wichtounet/portage-overlay"&gt;https://github.com/wichtounet/portage-overlay&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;Gentoo Installation&lt;/h4&gt;

&lt;ul&gt;
    &lt;li&gt;Edit overlays section of /etc/layman/layman.cfg. Here's an example:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;overlays: http://www.gentoo.org/proj/en/overlays/repositories.xml
           http://github.com/wichtounet/portage-overlay/raw/master/repository.xml&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Sync layman&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;layman -S&lt;/pre&gt;

&lt;ul&gt;
    &lt;li&gt;Add the overlay:&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;layman -a wichtounet&lt;/pre&gt;

&lt;ul&gt;
    &lt;li&gt;Install budgetwarrior&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;emerge budgetwarrior&lt;/pre&gt;

&lt;h4&gt;Conclusion&lt;/h4&gt;

&lt;p&gt;If you find any issues with the tool, don't hesitate to post an issue on Github. If you have comments about it, you can post a comment on this post or contact me by email.&lt;/p&gt;</description><category>budgetwarrior</category><category>Gentoo</category><category>Linux</category><category>Tools</category><guid>https://baptiste-wicht.com/posts/2014/01/budgetwarrior-0-2-1-minor-changes-gentoo-ebuild.html</guid><pubDate>Thu, 16 Jan 2014 11:41:00 GMT</pubDate></item><item><title>budgetwarrior 0.2 - Visual reports, fortune status and expenses aggregates</title><link>https://baptiste-wicht.com/posts/2013/10/budgetwarrior-0-2-visual-reports-fortune-status-expenses-aggregates.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;I've released a new version of budgetwarrior the version 0.2.&lt;/p&gt;
&lt;p&gt;I've several new features to the tool. First, I've added a graph of the expenses/earnings/balances of each month for a given year in the form of a bar plot. You can see an example in practice here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/10/Screenshot-from-2013-10-25-215839.png"&gt;&lt;img class="size-medium wp-image-2617" alt="budgetwarrior monthly report" src="https://baptiste-wicht.com/wp-content/uploads/2013/10/Screenshot-from-2013-10-25-215839-300x266.png" width="300" height="266"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nothing fancy, but it gives a good overview of the current state of your budget.&lt;/p&gt;
&lt;p&gt;I've added a new module, called fortune, that lets you enter your total fortune and then computes the difference between the entered fortune statuses. For now, it doesn't do anything else with this data. But in the future, I want to correlate this data with the balances to check the difference between the filled expenses and earnings and the fortune evolution.&lt;/p&gt;
&lt;p&gt;I've also added a more convenient way of creating expenses and earnings. Just type "budget expense add" and you'll be able to fill all the fields one by one. Of course, the command line commands are still available.&lt;/p&gt;
&lt;p&gt;The last new feature I've added is an aggregate report (budget overview aggregate). This view simply groups all the expenses with the same name of a year together. If you always use the same expense title for your groceries, you'll see the total you spent in groceries for a year. You can also name your expenses with the format "Category/Expenses" and all the expenses with the same category will be grouped together in the aggregate view. That allows you to still have enough details in the monthly overview but to logically groups your expenses together in the aggregate view.&lt;/p&gt;
&lt;p&gt;The other changes are minor. I've improved the monthly overview to sort the expenses and earnings by date. To facilitate the storage of the files in a service like Dropbox, the data and configuration files are now only written if they have been modified. The mean in the current overview has been changed to reflect only the months up to the current month and not the future (which was just ruining the means).&lt;/p&gt;
&lt;p&gt;If you are interested by the tool, you can download it on Github: &lt;a title="budgetwarrior repository" href="https://github.com/wichtounet/budgetwarrior"&gt;budgetwarrior&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I hope this tool will be useful to some people. If you've any question, just let a comment on this post or contact me directly by email. I'll be glad to help.&lt;/p&gt;</description><category>budgetwarrior</category><category>C++</category><category>Others</category><category>projects</category><guid>https://baptiste-wicht.com/posts/2013/10/budgetwarrior-0-2-visual-reports-fortune-status-expenses-aggregates.html</guid><pubDate>Fri, 25 Oct 2013 14:10:50 GMT</pubDate></item><item><title>budgetwarrior 0.1.0 - command-line personal budgeting tool</title><link>https://baptiste-wicht.com/posts/2013/08/budgetwarrior-command-line-personal-budgeting.html</link><dc:creator>Baptiste Wicht</dc:creator><description>&lt;p&gt;Being bored by using Google spreadsheets for my personal budgeting, I decided to write an application to do that. Being a huge fan of taskwarrior, I decided to write a kind of similar application for my personal budget, budgetwarrior was born. I use it since two months and I thought that it could be useful for other persons. The application is developed in C++. More information is available on Github: &lt;a title="https://github.com/wichtounet/budgetwarrior" href="https://github.com/wichtounet/budgetwarrior"&gt;https://github.com/wichtounet/budgetwarrior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;budgetwarrior 0.1.0 is a command-line only tool. It works on this principle: you create a set of accounts with a certain limit and then you declare your expenses in each of these accounts. You can also manage earnings that are not each month in each account. You can also keeps track of your debts via this application. It also supports automatic creation of recurring expenses, for instance when you pay the rent (for now, only monthly expenses are supported).&lt;/p&gt;
&lt;p&gt;Once you've put all your data in the application, it provides you report on the state of your budget by month or by year. For instance, here is my current monthly report:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/Screenshot-from-2013-08-23-145358.png"&gt;&lt;img class="size-medium wp-image-2601" title="Monthly Report" alt="Monthly Report" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/Screenshot-from-2013-08-23-145358-300x95.png" width="300" height="95"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can see directly which accounts are in a good shape and which are not.&lt;/p&gt;
&lt;p&gt;Here is the current yearly report:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://baptiste-wicht.com/wp-content/uploads/2013/08/Screenshot-from-2013-08-23-145911.png"&gt;&lt;img class="size-medium wp-image-2602" alt="Yearly report" src="https://baptiste-wicht.com/wp-content/uploads/2013/08/Screenshot-from-2013-08-23-145911-300x252.png" width="300" height="252"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In this view, you can see directly how your accounts evolve during the year and where are your biggest expenses and earnings.&lt;/p&gt;
&lt;p&gt;As everything is displayed horizontally, the more accounts you have the larger the view become. With the 7 accounts I have, it takes about 1600 pixels of width to display it. I will try to improve that in the future if some people are interested in making it work on smaller screens.&lt;/p&gt;
&lt;h4&gt;Installation&lt;/h4&gt;

&lt;p&gt;You can install budgetwarrior directly from the sources:&lt;/p&gt;
&lt;pre&gt;git clone -b master git://github.com/wichtounet/budgetwarrior.git
cd budgetwarrior
cmake .
make
sudo make install&lt;/pre&gt;

&lt;p&gt;After that, you can use budgetwarrior by using the command &lt;em&gt;budget&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;The usage is fairly simple, you can use &lt;em&gt;budget help&lt;/em&gt; to have the list of the commands that you have to use to create expenses and earnings and display overviews.&lt;/p&gt;
&lt;h4&gt;The project&lt;/h4&gt;

&lt;p&gt;If you have any question on the project, don't hesitate to contact me or to post a comment to this post. If there are people interested, I can write a more complete help.&lt;/p&gt;
&lt;p&gt;If you have a suggestion or you found a bug, please post an issue on the github project: &lt;a title="https://github.com/wichtounet/budgetwarrior" href="https://github.com/wichtounet/budgetwarrior"&gt;https://github.com/wichtounet/budgetwarrior&lt;/a&gt;.&lt;/p&gt;</description><category>budgetwarrior</category><category>C++</category><category>projects</category><guid>https://baptiste-wicht.com/posts/2013/08/budgetwarrior-command-line-personal-budgeting.html</guid><pubDate>Mon, 26 Aug 2013 06:41:03 GMT</pubDate></item></channel></rss>