diff --git a/en/game/index.html b/en/game/index.html
index 61ff54d..6b53009 100644
--- a/en/game/index.html
+++ b/en/game/index.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/game/index.template b/en/game/index.template
index c6b48ea..1fde085 100644
--- a/en/game/index.template
+++ b/en/game/index.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/game/item.template b/en/game/item.template
index 77c50e7..b46beaf 100644
--- a/en/game/item.template
+++ b/en/game/item.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/game/mahjong.html b/en/game/mahjong.html
index 8c82d24..4d0718d 100644
--- a/en/game/mahjong.html
+++ b/en/game/mahjong.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/game/ogs-mahjong-1.html b/en/game/ogs-mahjong-1.html
index ef55fee..88d96d2 100644
--- a/en/game/ogs-mahjong-1.html
+++ b/en/game/ogs-mahjong-1.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2014-another-year-passed.html b/en/news/2014-another-year-passed.html
index 86ba068..04646d2 100644
--- a/en/news/2014-another-year-passed.html
+++ b/en/news/2014-another-year-passed.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2015-roadmap.html b/en/news/2015-roadmap.html
index 9c2e04b..fd27d19 100644
--- a/en/news/2015-roadmap.html
+++ b/en/news/2015-roadmap.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2016-august-recap.html b/en/news/2016-august-recap.html
index 1ca53a5..478d8f9 100644
--- a/en/news/2016-august-recap.html
+++ b/en/news/2016-august-recap.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2016-november-recap.html b/en/news/2016-november-recap.html
index d589a58..f24029e 100644
--- a/en/news/2016-november-recap.html
+++ b/en/news/2016-november-recap.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2016-october-recap.html b/en/news/2016-october-recap.html
index 93f659d..3aff905 100644
--- a/en/news/2016-october-recap.html
+++ b/en/news/2016-october-recap.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2016-roadmap.html b/en/news/2016-roadmap.html
index a41c376..af2fc2d 100644
--- a/en/news/2016-roadmap.html
+++ b/en/news/2016-roadmap.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2016-september-recap.html b/en/news/2016-september-recap.html
index db36ee3..98097c3 100644
--- a/en/news/2016-september-recap.html
+++ b/en/news/2016-september-recap.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2016-tech-showcases.html b/en/news/2016-tech-showcases.html
index 1402b8e..1075ca6 100644
--- a/en/news/2016-tech-showcases.html
+++ b/en/news/2016-tech-showcases.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2017-happy-new-year.html b/en/news/2017-happy-new-year.html
index 0f14469..ce7178c 100644
--- a/en/news/2017-happy-new-year.html
+++ b/en/news/2017-happy-new-year.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2017-summary.html b/en/news/2017-summary.html
index bbf1b52..7e13db5 100644
--- a/en/news/2017-summary.html
+++ b/en/news/2017-summary.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2019-year-of-rethinking.html b/en/news/2019-year-of-rethinking.html
index d906220..6b24a23 100644
--- a/en/news/2019-year-of-rethinking.html
+++ b/en/news/2019-year-of-rethinking.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/2020-05-03_git-budget.md b/en/news/2020-05-03_git-budget.md
index f56d1e3..3ec19fa 100644
--- a/en/news/2020-05-03_git-budget.md
+++ b/en/news/2020-05-03_git-budget.md
@@ -16,7 +16,7 @@ Hi, folks, let me share my experience of creating an application to keep track o
**1. Why keep track of spendings in an application?**
-I, like many people out there, wanted to become rich and [successful][успех]. To become rich, one is often advised to run a personal budget, that's what I started to do several years ago. I'd like to point out that running my personal budget hasn't made me rich and successful, and I increased income simply by moving to the capital of my home country.
+I, like many people out there, wanted to become rich and [successful][успех]. To become rich, one is often advised to run a personal budget, that's what I started to do several years ago. I'd like to point out that running my personal budget hasn't made me rich and successful, and I increased income simply by moving to Moscow.
I think I started to run the budget somewhere around 2012. By that time I already had a professional programmer deformation, which can be described as "made by someone else = bad" formula and is usually manifested by a strong desire to rewrite everything from scratch. However, I had no experience with budgeting back then, so I decided to try a "professional" solution and purchased [YNAB][ynab] (You Need A Budget) to use the application on both PC and mobile.
@@ -39,13 +39,13 @@ This was a very disappointing situation for me, so I stopped tracking my spendin
This time I decided not to repeat my mistake of giving all my data to someone with the risk of losing it, so I started to track my spendings with simple phone notes. The format was simple and looked like this:
-
+![Notes][снимок-заметки]
I used the notes solely on the phone until mid-2018. Then, a new need arose: I wanted to be able to **work on my spendings from a PC** to analyze them. I took the time to see through the solutions that would allow me to work with my spendings on both PC and mobile **free of charge**. A calendar turned out to be such a solution:
-
+![Calendar][снимок-календарь-день]
-
+![New record][снимок-календарь-запись]
I used a Google account to access [Apps Script][apps-script] (a clone of JavaScript) to analyze the spendings. Working with spendings in Apps Script turned out to be quite daunting because calendar records are not designed to host spendings. Data ownership question was still unresolved: my data was still dusting on an unknown server I don't control, and I could only access my data through an API, **which might change in the future by someone else's decision**.
@@ -60,7 +60,7 @@ Autumn 2019 I discovered [Isomorphic-Git][isomorphic-git], which allows JavaScri
That's how the spendings look like on my phone now:
-
+![GitBudget][снимок-гит-бюджет]
Git data looks like this: [https://gitlab.com/kornerr/git-budget-sample-data/-/blob/me/gb.log](https://gitlab.com/kornerr/git-budget-sample-data/-/blob/me/gb.log)
@@ -115,6 +115,11 @@ GitBudget is the first attempt to see what Git+JS can do. I can only imagine the
[снимок]: ../../images/2020-05-06_гит-бюджет_снимок.png
+[снимок-заметки]: ../../images/2020-05-06_гит-бюджет_заметки.png
+[снимок-календарь-день]: ../../images/2020-05-06_гит-бюджет_календарь-день.png
+[снимок-календарь-запись]: ../../images/2020-05-06_гит-бюджет_календарь-запись.png
+[снимок-гит-бюджет]: ../../images/2020-05-06_гит-бюджет.png
+
[успех]: https://youtu.be/7RchntYFtSE
[ynab]: https://www.youneedabudget.com
[apps-script]: https://developers.google.com/apps-script
diff --git a/en/news/back-to-social-networks.html b/en/news/back-to-social-networks.html
index 69001d0..6290377 100644
--- a/en/news/back-to-social-networks.html
+++ b/en/news/back-to-social-networks.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/back-to-the-static.html b/en/news/back-to-the-static.html
index f7e1831..5157cd4 100644
--- a/en/news/back-to-the-static.html
+++ b/en/news/back-to-the-static.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/bye-desura-hello-humblebundle.html b/en/news/bye-desura-hello-humblebundle.html
index e2d3adb..b5225e1 100644
--- a/en/news/bye-desura-hello-humblebundle.html
+++ b/en/news/bye-desura-hello-humblebundle.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/defending-availability.html b/en/news/defending-availability.html
index 2a3bda5..cd435db 100644
--- a/en/news/defending-availability.html
+++ b/en/news/defending-availability.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/editor-0.4.0-and-0.5.0-plans.html b/en/news/editor-0.4.0-and-0.5.0-plans.html
index cff998b..137e767 100644
--- a/en/news/editor-0.4.0-and-0.5.0-plans.html
+++ b/en/news/editor-0.4.0-and-0.5.0-plans.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/editor-0.4.0-plans.html b/en/news/editor-0.4.0-plans.html
index 3c970b9..920428a 100644
--- a/en/news/editor-0.4.0-plans.html
+++ b/en/news/editor-0.4.0-plans.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/editor-06-roadmap.html b/en/news/editor-06-roadmap.html
index ca5eb42..1651e83 100644
--- a/en/news/editor-06-roadmap.html
+++ b/en/news/editor-06-roadmap.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/editor-06.html b/en/news/editor-06.html
index 6adcd0e..3b3731c 100644
--- a/en/news/editor-06.html
+++ b/en/news/editor-06.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/example-driven-development.html b/en/news/example-driven-development.html
index 6daea35..28cec4b 100644
--- a/en/news/example-driven-development.html
+++ b/en/news/example-driven-development.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/examples-and-dependencies.html b/en/news/examples-and-dependencies.html
index 3e50f8a..2c2ebc0 100644
--- a/en/news/examples-and-dependencies.html
+++ b/en/news/examples-and-dependencies.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/git-budget.html b/en/news/git-budget.html
index 9392218..8318c8a 100644
--- a/en/news/git-budget.html
+++ b/en/news/git-budget.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
@@ -113,7 +109,7 @@
Why does the project use Git+JS?
1. Why keep track of spendings in an application?
-
I, like many people out there, wanted to become rich and successful. To become rich, one is often advised to run a personal budget, that's what I started to do several years ago. I'd like to point out that running my personal budget hasn't made me rich and successful, and I increased income simply by moving to the capital of my home country.
+
I, like many people out there, wanted to become rich and successful. To become rich, one is often advised to run a personal budget, that's what I started to do several years ago. I'd like to point out that running my personal budget hasn't made me rich and successful, and I increased income simply by moving to Moscow.
I think I started to run the budget somewhere around 2012. By that time I already had a professional programmer deformation, which can be described as "made by someone else = bad" formula and is usually manifested by a strong desire to rewrite everything from scratch. However, I had no experience with budgeting back then, so I decided to try a "professional" solution and purchased YNAB (You Need A Budget) to use the application on both PC and mobile.
I tried to do my best to set out budget plans and fulfill them in the course of three years. However, somewhere around 2015 the authors released a new application version and demanded money for the upgrade, the old version was no longer functioning. I had to choose one of the options:
@@ -131,10 +127,10 @@
so I stopped the ripoff and lost my history of spendings.
This was a very disappointing situation for me, so I stopped tracking my spendings for about a year. However, I was once experiencing a "painful synchronization" (also known as "figuring things out" with a wife). I failed to defend myself against a financial vocal attack like "you're a waster, you always waste money on junk". Then I realized I really need to keep track of my spendings.
This time I decided not to repeat my mistake of giving all my data to someone with the risk of losing it, so I started to track my spendings with simple phone notes. The format was simple and looked like this:
-
+
I used the notes solely on the phone until mid-2018. Then, a new need arose: I wanted to be able to work on my spendings from a PC to analyze them. I took the time to see through the solutions that would allow me to work with my spendings on both PC and mobile free of charge. A calendar turned out to be such a solution:
-
-
+
+
I used a Google account to access Apps Script (a clone of JavaScript) to analyze the spendings. Working with spendings in Apps Script turned out to be quite daunting because calendar records are not designed to host spendings. Data ownership question was still unresolved: my data was still dusting on an unknown server I don't control, and I could only access my data through an API, which might change in the future by someone else's decision.
While I was using a calendar, I've had the following ideas frequently visiting me:
@@ -144,7 +140,7 @@
Autumn 2019 I discovered Isomorphic-Git, which allows JavaScript to work with Git, quickly verified the ability to work with Git, and realized I found my Holy Grail. Recently I've finished creating the first version of GitBudget application, you can see its functionality here:
That's how the spendings look like on my phone now:
diff --git a/en/news/ideal-gamedev.html b/en/news/ideal-gamedev.html
index 19547aa..b7b9ada 100644
--- a/en/news/ideal-gamedev.html
+++ b/en/news/ideal-gamedev.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index.html b/en/news/index.html
index c7e9f52..ab29047 100644
--- a/en/news/index.html
+++ b/en/news/index.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index.template b/en/news/index.template
index de78598..1ff068e 100644
--- a/en/news/index.template
+++ b/en/news/index.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index2.html b/en/news/index2.html
index ac38853..91a2282 100644
--- a/en/news/index2.html
+++ b/en/news/index2.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index3.html b/en/news/index3.html
index 9dbc0db..170832e 100644
--- a/en/news/index3.html
+++ b/en/news/index3.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index4.html b/en/news/index4.html
index 6d4692d..92eff27 100644
--- a/en/news/index4.html
+++ b/en/news/index4.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index5.html b/en/news/index5.html
index 33fb4d7..2692c35 100644
--- a/en/news/index5.html
+++ b/en/news/index5.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index6.html b/en/news/index6.html
index 1c37795..a70c3e0 100644
--- a/en/news/index6.html
+++ b/en/news/index6.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/index7.html b/en/news/index7.html
index 6bd399b..dbb8481 100644
--- a/en/news/index7.html
+++ b/en/news/index7.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/ios-tutorial.html b/en/news/ios-tutorial.html
index b5343a1..a609c8e 100644
--- a/en/news/ios-tutorial.html
+++ b/en/news/ios-tutorial.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/item.template b/en/news/item.template
index 66bcde3..2f717b1 100644
--- a/en/news/item.template
+++ b/en/news/item.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/its-all-fine.html b/en/news/its-all-fine.html
index 9df6406..3e7e8e7 100644
--- a/en/news/its-all-fine.html
+++ b/en/news/its-all-fine.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/january-live-session-announcement.html b/en/news/january-live-session-announcement.html
index 8f49d3a..c8dfb48 100644
--- a/en/news/january-live-session-announcement.html
+++ b/en/news/january-live-session-announcement.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/january-live-session-decision.html b/en/news/january-live-session-decision.html
index 35149a9..6d96954 100644
--- a/en/news/january-live-session-decision.html
+++ b/en/news/january-live-session-decision.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/lets-go.html b/en/news/lets-go.html
index fca5009..f899fd3 100644
--- a/en/news/lets-go.html
+++ b/en/news/lets-go.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/livesession-editor-07.html b/en/news/livesession-editor-07.html
index b9aa482..a61daf0 100644
--- a/en/news/livesession-editor-07.html
+++ b/en/news/livesession-editor-07.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/livesession-materials-editor-07.html b/en/news/livesession-materials-editor-07.html
index a6823b0..a2c993a 100644
--- a/en/news/livesession-materials-editor-07.html
+++ b/en/news/livesession-materials-editor-07.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/mahjong-demo2.html b/en/news/mahjong-demo2.html
index dd27697..ef9c517 100644
--- a/en/news/mahjong-demo2.html
+++ b/en/news/mahjong-demo2.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/mahjong-recreation-start.html b/en/news/mahjong-recreation-start.html
index 6e6ba2f..80e934d 100644
--- a/en/news/mahjong-recreation-start.html
+++ b/en/news/mahjong-recreation-start.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/mahjong-techdemo1-gameplay.html b/en/news/mahjong-techdemo1-gameplay.html
index 49db7d7..5a8a9bd 100644
--- a/en/news/mahjong-techdemo1-gameplay.html
+++ b/en/news/mahjong-techdemo1-gameplay.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/may-live-session-announcement.html b/en/news/may-live-session-announcement.html
index 765a723..2f19c7c 100644
--- a/en/news/may-live-session-announcement.html
+++ b/en/news/may-live-session-announcement.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/may-live-session-decision.html b/en/news/may-live-session-decision.html
index ffebf26..0336824 100644
--- a/en/news/may-live-session-decision.html
+++ b/en/news/may-live-session-decision.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/mjin-world-birth.html b/en/news/mjin-world-birth.html
index 7dab3ec..1b739a4 100644
--- a/en/news/mjin-world-birth.html
+++ b/en/news/mjin-world-birth.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/ogs-editor-0.10.html b/en/news/ogs-editor-0.10.html
index c9a4675..a2429a1 100644
--- a/en/news/ogs-editor-0.10.html
+++ b/en/news/ogs-editor-0.10.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/ogs-editor-0.9.html b/en/news/ogs-editor-0.9.html
index ebbdd98..d23d2d8 100644
--- a/en/news/ogs-editor-0.9.html
+++ b/en/news/ogs-editor-0.9.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/on-the-way-to-durable-applications.html b/en/news/on-the-way-to-durable-applications.html
index b9ba087..fbb2193 100644
--- a/en/news/on-the-way-to-durable-applications.html
+++ b/en/news/on-the-way-to-durable-applications.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/once-mahjong-always-mahjong.html b/en/news/once-mahjong-always-mahjong.html
index 8a1a691..c3bddcc 100644
--- a/en/news/once-mahjong-always-mahjong.html
+++ b/en/news/once-mahjong-always-mahjong.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/openscenegraph-cross-platform-guide.html b/en/news/openscenegraph-cross-platform-guide.html
index e0140ec..3c58fc2 100644
--- a/en/news/openscenegraph-cross-platform-guide.html
+++ b/en/news/openscenegraph-cross-platform-guide.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/openscenegraph-examples.html b/en/news/openscenegraph-examples.html
index 6ec6022..98f7f84 100644
--- a/en/news/openscenegraph-examples.html
+++ b/en/news/openscenegraph-examples.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/osg-sample.html b/en/news/osg-sample.html
index 0630778..8a1b798 100644
--- a/en/news/osg-sample.html
+++ b/en/news/osg-sample.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/rolling-ball-live-session-pt2.html b/en/news/rolling-ball-live-session-pt2.html
index 9eb5fc0..5d2dc9e 100644
--- a/en/news/rolling-ball-live-session-pt2.html
+++ b/en/news/rolling-ball-live-session-pt2.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/rolling-ball.html b/en/news/rolling-ball.html
index 6415714..cc5213c 100644
--- a/en/news/rolling-ball.html
+++ b/en/news/rolling-ball.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/scripting-research.html b/en/news/scripting-research.html
index 10f7516..8416e5b 100644
--- a/en/news/scripting-research.html
+++ b/en/news/scripting-research.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/september-live-session-announcement-tomorrow.html b/en/news/september-live-session-announcement-tomorrow.html
index 7e17b80..502086b 100644
--- a/en/news/september-live-session-announcement-tomorrow.html
+++ b/en/news/september-live-session-announcement-tomorrow.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/september-live-session-announcement.html b/en/news/september-live-session-announcement.html
index 8cbc3ee..e5c496c 100644
--- a/en/news/september-live-session-announcement.html
+++ b/en/news/september-live-session-announcement.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/soon-game-creation-editor-07.html b/en/news/soon-game-creation-editor-07.html
index 26cc4e7..52f0fe2 100644
--- a/en/news/soon-game-creation-editor-07.html
+++ b/en/news/soon-game-creation-editor-07.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/teaching-kids-to-program.html b/en/news/teaching-kids-to-program.html
index e893b2e..ba0608f 100644
--- a/en/news/teaching-kids-to-program.html
+++ b/en/news/teaching-kids-to-program.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/teaching-to-program-2019.html b/en/news/teaching-to-program-2019.html
index 520d380..76000bc 100644
--- a/en/news/teaching-to-program-2019.html
+++ b/en/news/teaching-to-program-2019.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/test-chamber-for-everyone.html b/en/news/test-chamber-for-everyone.html
index abf965b..4bc8454 100644
--- a/en/news/test-chamber-for-everyone.html
+++ b/en/news/test-chamber-for-everyone.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/the-pros-and-cons-of-restarting-from-scratch.html b/en/news/the-pros-and-cons-of-restarting-from-scratch.html
index 2115664..6183f36 100644
--- a/en/news/the-pros-and-cons-of-restarting-from-scratch.html
+++ b/en/news/the-pros-and-cons-of-restarting-from-scratch.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/the-year-of-challenges.html b/en/news/the-year-of-challenges.html
index 63ba177..fe04672 100644
--- a/en/news/the-year-of-challenges.html
+++ b/en/news/the-year-of-challenges.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/the-year-of-lessons.html b/en/news/the-year-of-lessons.html
index 294bba0..bab2bf5 100644
--- a/en/news/the-year-of-lessons.html
+++ b/en/news/the-year-of-lessons.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/user-servey-finish-promise.html b/en/news/user-servey-finish-promise.html
index d73247c..cac018b 100644
--- a/en/news/user-servey-finish-promise.html
+++ b/en/news/user-servey-finish-promise.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/news/yesterdays-live-session-short-overview.html b/en/news/yesterdays-live-session-short-overview.html
index e38d781..d848234 100644
--- a/en/news/yesterdays-live-session-short-overview.html
+++ b/en/news/yesterdays-live-session-short-overview.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/page/about.html b/en/page/about.html
index 966b12d..71be31b 100644
--- a/en/page/about.html
+++ b/en/page/about.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/page/item.template b/en/page/item.template
index 2fda0bf..c98d374 100644
--- a/en/page/item.template
+++ b/en/page/item.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/tool/index.html b/en/tool/index.html
index b22880c..c589335 100644
--- a/en/tool/index.html
+++ b/en/tool/index.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/tool/index.template b/en/tool/index.template
index e9fa9b4..f5043d7 100644
--- a/en/tool/index.template
+++ b/en/tool/index.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/tool/item.template b/en/tool/item.template
index 89d62b9..e0d3060 100644
--- a/en/tool/item.template
+++ b/en/tool/item.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/tool/lfsa.html b/en/tool/lfsa.html
index 0c1ed0a..1ce1406 100644
--- a/en/tool/lfsa.html
+++ b/en/tool/lfsa.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/tool/pskov.html b/en/tool/pskov.html
index c4f209d..05073cc 100644
--- a/en/tool/pskov.html
+++ b/en/tool/pskov.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/en/tool/zipbase64.html b/en/tool/zipbase64.html
index 510030c..2d31002 100644
--- a/en/tool/zipbase64.html
+++ b/en/tool/zipbase64.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/images/2020-05-06_гит-бюджет.jpg b/images/2020-05-06_гит-бюджет.jpg
deleted file mode 100644
index 93e988b..0000000
Binary files a/images/2020-05-06_гит-бюджет.jpg and /dev/null differ
diff --git a/images/2020-05-06_гит-бюджет.png b/images/2020-05-06_гит-бюджет.png
new file mode 100644
index 0000000..a08cd29
Binary files /dev/null and b/images/2020-05-06_гит-бюджет.png differ
diff --git a/images/2020-05-06_гит-бюджет_заметки.jpg b/images/2020-05-06_гит-бюджет_заметки.jpg
deleted file mode 100644
index e6cdad8..0000000
Binary files a/images/2020-05-06_гит-бюджет_заметки.jpg and /dev/null differ
diff --git a/images/2020-05-06_гит-бюджет_заметки.png b/images/2020-05-06_гит-бюджет_заметки.png
new file mode 100644
index 0000000..b565b40
Binary files /dev/null and b/images/2020-05-06_гит-бюджет_заметки.png differ
diff --git a/images/2020-05-06_гит-бюджет_календарь-день.jpg b/images/2020-05-06_гит-бюджет_календарь-день.jpg
deleted file mode 100644
index c2e2739..0000000
Binary files a/images/2020-05-06_гит-бюджет_календарь-день.jpg and /dev/null differ
diff --git a/images/2020-05-06_гит-бюджет_календарь-день.png b/images/2020-05-06_гит-бюджет_календарь-день.png
new file mode 100644
index 0000000..6025267
Binary files /dev/null and b/images/2020-05-06_гит-бюджет_календарь-день.png differ
diff --git a/images/2020-05-06_гит-бюджет_календарь-запись.jpg b/images/2020-05-06_гит-бюджет_календарь-запись.jpg
deleted file mode 100644
index 9cf9d15..0000000
Binary files a/images/2020-05-06_гит-бюджет_календарь-запись.jpg and /dev/null differ
diff --git a/images/2020-05-06_гит-бюджет_календарь-запись.png b/images/2020-05-06_гит-бюджет_календарь-запись.png
new file mode 100644
index 0000000..8248b44
Binary files /dev/null and b/images/2020-05-06_гит-бюджет_календарь-запись.png differ
diff --git a/ru/game/index.html b/ru/game/index.html
index d3fb679..bd7503a 100644
--- a/ru/game/index.html
+++ b/ru/game/index.html
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/game/index.template b/ru/game/index.template
index 374cf3f..bb38477 100644
--- a/ru/game/index.template
+++ b/ru/game/index.template
@@ -60,10 +60,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/game/item.template b/ru/game/item.template
index d73d616..16a30c2 100644
--- a/ru/game/item.template
+++ b/ru/game/item.template
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/game/mahjong.html b/ru/game/mahjong.html
index 9e02ea2..568e49b 100644
--- a/ru/game/mahjong.html
+++ b/ru/game/mahjong.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/game/ogs-mahjong-1.html b/ru/game/ogs-mahjong-1.html
index c3b714e..3f648b9 100644
--- a/ru/game/ogs-mahjong-1.html
+++ b/ru/game/ogs-mahjong-1.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2014-another-year-passed.html b/ru/news/2014-another-year-passed.html
index e119dc1..6497c4a 100644
--- a/ru/news/2014-another-year-passed.html
+++ b/ru/news/2014-another-year-passed.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2015-roadmap.html b/ru/news/2015-roadmap.html
index 044a73f..42c2182 100644
--- a/ru/news/2015-roadmap.html
+++ b/ru/news/2015-roadmap.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2016-august-recap.html b/ru/news/2016-august-recap.html
index 7481185..acea5a4 100644
--- a/ru/news/2016-august-recap.html
+++ b/ru/news/2016-august-recap.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2016-november-recap.html b/ru/news/2016-november-recap.html
index 02b26e7..e58e897 100644
--- a/ru/news/2016-november-recap.html
+++ b/ru/news/2016-november-recap.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2016-october-recap.html b/ru/news/2016-october-recap.html
index 3ea6594..43c54af 100644
--- a/ru/news/2016-october-recap.html
+++ b/ru/news/2016-october-recap.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2016-roadmap.html b/ru/news/2016-roadmap.html
index fc5d6a8..2929eab 100644
--- a/ru/news/2016-roadmap.html
+++ b/ru/news/2016-roadmap.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2016-september-recap.html b/ru/news/2016-september-recap.html
index dce96de..bbe9b9e 100644
--- a/ru/news/2016-september-recap.html
+++ b/ru/news/2016-september-recap.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2016-tech-showcases.html b/ru/news/2016-tech-showcases.html
index 374cfec..4c6fc01 100644
--- a/ru/news/2016-tech-showcases.html
+++ b/ru/news/2016-tech-showcases.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2017-happy-new-year.html b/ru/news/2017-happy-new-year.html
index a40dd53..c9da158 100644
--- a/ru/news/2017-happy-new-year.html
+++ b/ru/news/2017-happy-new-year.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2017-summary.html b/ru/news/2017-summary.html
index 9827e57..1404f71 100644
--- a/ru/news/2017-summary.html
+++ b/ru/news/2017-summary.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2019-year-of-rethinking.html b/ru/news/2019-year-of-rethinking.html
index 72e5f92..aad20f0 100644
--- a/ru/news/2019-year-of-rethinking.html
+++ b/ru/news/2019-year-of-rethinking.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/2020-05-03_git-budget.md b/ru/news/2020-05-03_git-budget.md
index 3404b2a..2363cef 100644
--- a/ru/news/2020-05-03_git-budget.md
+++ b/ru/news/2020-05-03_git-budget.md
@@ -16,7 +16,7 @@ Lang: ru
**1. Зачем мне приложение учёта трат?**
-Как и многие другие люди я давно хотел стать богатым и практиковать [успешный успех][успех]. Одной из рекомендаций в таких случаях часто выступает предложение вести собственный бюджет, чем я и занялся несколько лет назад. Скажу сразу, что ведение бюджета не сделало меня богатым и успешным, а своё материальное положение я улучшил обычным переездом в столицу.
+Как и многие другие люди я давно хотел стать богатым и практиковать [успешный успех][успех]. Одной из рекомендаций в таких случаях часто выступает предложение вести собственный бюджет, чем я и занялся несколько лет назад. Скажу сразу, что ведение бюджета не сделало меня богатым и успешным, а своё материальное положение я улучшил обычным переездом в Москву.
Вести бюджет я начал, если не изменяет память, где-то в 2012-м году. В то время у меня уже была профессиональная деформация программиста, выражающаяся формулой "сделано не мной" и попыткой написать всё самому. Тем не менее, по неопытности я решил начать с "проверенных" решений и приобрёл [YNAB][ynab] (You Need A Budget), т.к. приложение позволяло работать и с ПК, и с телефона.
@@ -39,13 +39,13 @@ Lang: ru
В этот раз я решил не повторять ошибку и не отдавать свои данные неизвестно куда с потенциальной возможностью их потерять, поэтому начал вести учёт трат в самых обычных заметках телефона. Формат был довольно простым и выглядел следующим образом:
-
+![Заметки][снимок-заметки]
Заметки продержались у меня до середины 2018-го, пока я всё-таки не захотел иметь возможность **работать с тратами на ПК**, чтобы анализировать их. Я решил поискать решение, которое позволит мне **бесплатно работать** с историей трат и на ПК, и на телефоне. Таким решением оказался обычный календарь:
-
+![Календарь][снимок-календарь-день]
-
+![Новая запись][снимок-календарь-запись]
В календаре я использовал учётку Google, чтобы иметь доступ к [Apps Script][apps-script] (фактически JavaScript) для анализа записей. Делать скрипты оказалось не очень удобно, т.к. формат хранения календарных записей мало подходит для трат. Вопрос владения данными также оставался нерешённым: мои данные опять пылились на неизвестном и неподконтрольном мне сервере, а доступ к ним был лишь через неподконтрольный мне и **изменяющийся по чужой прихоти** API.
@@ -60,7 +60,7 @@ Lang: ru
В итоге, сейчас учёт трат на телефоне у меня выглядит следующим образом:
-
+![ГитБюджет][снимок-гит-бюджет]
Данные в Git выглядят cледующим образом: [https://gitlab.com/kornerr/git-budget-sample-data/-/blob/me/gb.log](https://gitlab.com/kornerr/git-budget-sample-data/-/blob/me/gb.log)
@@ -113,6 +113,12 @@ Lang: ru
ГитБюджет является лишь первым испытанием возможностей Git+JS. Посмотрим, что удастся сделать ещё.
[снимок]: ../../images/2020-05-06_гит-бюджет_снимок.png
+
+[снимок-заметки]: ../../images/2020-05-06_гит-бюджет_заметки.png
+[снимок-календарь-день]: ../../images/2020-05-06_гит-бюджет_календарь-день.png
+[снимок-календарь-запись]: ../../images/2020-05-06_гит-бюджет_календарь-запись.png
+[снимок-гит-бюджет]: ../../images/2020-05-06_гит-бюджет.png
+
[успех]: https://успешный-успех.рф
[ynab]: https://www.youneedabudget.com
[apps-script]: https://developers.google.com/apps-script?hl=ru
diff --git a/ru/news/back-to-social-networks.html b/ru/news/back-to-social-networks.html
index 704b3a4..4897b7c 100644
--- a/ru/news/back-to-social-networks.html
+++ b/ru/news/back-to-social-networks.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/back-to-the-static.html b/ru/news/back-to-the-static.html
index cfbd021..a593a5c 100644
--- a/ru/news/back-to-the-static.html
+++ b/ru/news/back-to-the-static.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/bye-desura-hello-humblebundle.html b/ru/news/bye-desura-hello-humblebundle.html
index 65a14e9..553e788 100644
--- a/ru/news/bye-desura-hello-humblebundle.html
+++ b/ru/news/bye-desura-hello-humblebundle.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/defending-availability.html b/ru/news/defending-availability.html
index 07f817c..b16544f 100644
--- a/ru/news/defending-availability.html
+++ b/ru/news/defending-availability.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/editor-0.4.0-and-0.5.0-plans.html b/ru/news/editor-0.4.0-and-0.5.0-plans.html
index 5b1564d..948d0d9 100644
--- a/ru/news/editor-0.4.0-and-0.5.0-plans.html
+++ b/ru/news/editor-0.4.0-and-0.5.0-plans.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/editor-0.4.0-plans.html b/ru/news/editor-0.4.0-plans.html
index ed320c7..edc8538 100644
--- a/ru/news/editor-0.4.0-plans.html
+++ b/ru/news/editor-0.4.0-plans.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/editor-06-roadmap.html b/ru/news/editor-06-roadmap.html
index 4fdb678..d86c7fe 100644
--- a/ru/news/editor-06-roadmap.html
+++ b/ru/news/editor-06-roadmap.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/editor-06.html b/ru/news/editor-06.html
index 901d2c1..595234f 100644
--- a/ru/news/editor-06.html
+++ b/ru/news/editor-06.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/example-driven-development.html b/ru/news/example-driven-development.html
index 3b92e9f..c9a8644 100644
--- a/ru/news/example-driven-development.html
+++ b/ru/news/example-driven-development.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/examples-and-dependencies.html b/ru/news/examples-and-dependencies.html
index 8aa6352..d50181c 100644
--- a/ru/news/examples-and-dependencies.html
+++ b/ru/news/examples-and-dependencies.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
diff --git a/ru/news/git-budget.html b/ru/news/git-budget.html
index f9f72d3..d6d2a04 100644
--- a/ru/news/git-budget.html
+++ b/ru/news/git-budget.html
@@ -67,10 +67,6 @@
{
width: 720px;
}
- .mobile
- {
- width: 320px;
- }
a
{
color: #3A91CB;
@@ -120,7 +116,7 @@
Почему проект на Git+JS?
1. Зачем мне приложение учёта трат?
-
Как и многие другие люди я давно хотел стать богатым и практиковать успешный успех. Одной из рекомендаций в таких случаях часто выступает предложение вести собственный бюджет, чем я и занялся несколько лет назад. Скажу сразу, что ведение бюджета не сделало меня богатым и успешным, а своё материальное положение я улучшил обычным переездом в столицу.
+
Как и многие другие люди я давно хотел стать богатым и практиковать успешный успех. Одной из рекомендаций в таких случаях часто выступает предложение вести собственный бюджет, чем я и занялся несколько лет назад. Скажу сразу, что ведение бюджета не сделало меня богатым и успешным, а своё материальное положение я улучшил обычным переездом в Москву.
Вести бюджет я начал, если не изменяет память, где-то в 2012-м году. В то время у меня уже была профессиональная деформация программиста, выражающаяся формулой "сделано не мной" и попыткой написать всё самому. Тем не менее, по неопытности я решил начать с "проверенных" решений и приобрёл YNAB (You Need A Budget), т.к. приложение позволяло работать и с ПК, и с телефона.
Я честно пытался задавать план трат на месяц и укладываться в него года три. Однако, где-то в 2015-м году авторы выпустили новую версию приложения, за которую опять хотели денег, старую же версию эти недальновидные капиталисты выкинули на обочину истории. В итоге мне пришлось выбирать из двух вариантов:
@@ -138,10 +134,10 @@
и выбрал второй вариант: послал их нафиг и потерял историю трат.
Эта ситуация меня довольно сильно разочаровала, поэтому я забросил ведение бюджета где-то на год. Однако, в один из дней "болезненной синхронизации" (также известной как "выяснение отношений") я не смог отбить финансовый наброс вида "ты транжира, вечно тратишь деньги на ерунду", после чего ясно осознал важность учёта трат.
В этот раз я решил не повторять ошибку и не отдавать свои данные неизвестно куда с потенциальной возможностью их потерять, поэтому начал вести учёт трат в самых обычных заметках телефона. Формат был довольно простым и выглядел следующим образом:
-
+
Заметки продержались у меня до середины 2018-го, пока я всё-таки не захотел иметь возможность работать с тратами на ПК, чтобы анализировать их. Я решил поискать решение, которое позволит мне бесплатно работать с историей трат и на ПК, и на телефоне. Таким решением оказался обычный календарь:
-
-
+
+
В календаре я использовал учётку Google, чтобы иметь доступ к Apps Script (фактически JavaScript) для анализа записей. Делать скрипты оказалось не очень удобно, т.к. формат хранения календарных записей мало подходит для трат. Вопрос владения данными также оставался нерешённым: мои данные опять пылились на неизвестном и неподконтрольном мне сервере, а доступ к ним был лишь через неподконтрольный мне и изменяющийся по чужой прихоти API.
Во время использования календаря меня периодически посещали две мысли:
@@ -151,7 +147,7 @@
Осенью 2019-го я наткнулся на проект Isomorphic-Git, позволяющий работать с Git из JavaScript, бегло проверил его работоспособность и понял, что нашёл свой Святой Грааль. Недавно я завершил создание первой версии приложения ГитБюджет, функциональность которого можно увидеть в следующем видео:
В итоге, сейчас учёт трат на телефоне у меня выглядит следующим образом: