Пока Spense v0.2 в разработке, хочу рассказать о внутренней организации приложения с технической точки зрения. Статья эта в основном для (веб-)разработчиков, и язык у нее соответствующий, поэтому если вы читаете и ничего не понимаете, все в порядке, можно просто не читать.
В двух словах
Бэкенд на Django (Python), фронтенд на Django-шаблонах и Bootstrap, с щепоткой JavaScript ~~и местами htmx~~ (уже нет).
Почему так скучно?
Звучит совсем не хайпово, да. Но стоит помнить, что Spense в текущем его состоянии — это не полноценный продукт. Это скорее прототип, в котором мне часто нужно что-то менять и проверять идеи. Если идеи сработают, я выкину этот код и напишу другой, а если не сработают, просто оставлю на память.
Так что Django я выбрал не потому что я ее очень люблю (на самом деле я ее ненавижу), а потому что за последний год я успел к ней привыкнуть, и прототипировать приложение мне с ней получается легко и быстро.
Приложение находится в стадии активной разработки и не доступно для публичного использования.
Выкатил версию 0.1 своего «приложения» для учета денег, решил отчитаться о прогрессе. «Приложения» — потому что это не настоящее приложение, а Progressive Web App — по сути веб-сайт, который можно открыть в телефоне, добавить на Home Screen, и он будет открываться на весь экран, без панелей браузера. Настоящие приложения я пока делать не умею, но и в текущем виде оно уже неплохо работает.
Кстати, даже иконка уже есть, нарисовал в ChatGPT/DALL-E:
Как вы уже поняли, свою поделку я назвал Spense. Это название я придумал когда-то давным давно, подрезав слово “expense”, и тогде же купил домен, который вот только сейчас более-менее стал мной использоваться.
Сейчас там из пользователей только я, регистрации нет, и, думаю, как минимум до версии 1.0 всё будет закрыто, но я с удовольствием покажу, как там сейчас обстоят дела и что изменилось.
В США и некоторых других странах чаевые играют большую роль, официанты и прочие работники сферы обслуживания ожидают их по умолчанию и порой могут их даже требовать. Я, правда, пока ни в США, ни в тех других странах не был, но люди рассказывают, что надо прям давать, потому что иначе обижаются.
В «Бешеных псах» есть целый спор на эту тему: все уговаривают Стива Бушеми оставить чаевые, потому что у официантов маленькая зарплата, а он ничего оставлять не хочет.
Вообще, эта тема часто проскакивает в кино. И в конце прошлого года меня насторожило то, как часто ее затрагивают в фильме «Один дома»:
- в первом фильме на первых же минутах доставщик пиццы получает «хорошие чаевые» в нагрузку к 122.50$ за 10 пицц. Типа, сколько ему там могли дать, 140-150$ без сдачи? Неплохец так-то.
- в другой сцене доставки этот же чувак приносит Кевину пиццу за 11.80$, получает 12$ и обзывает клиента “cheapskate” (скряга). В этот раз чаевые в 20 копеек ему очень не понравились.
- во втором фильме нам показывают, как работник отеля Седрик с улыбкой пересчитывает купюры, и Тим Карри делает ему замечание;
- но дальше Седрик до конца фильма получает вместо чаевых либо жвачку, либо жёванную жвачку, либо просто ничего. Казалось бы, намекают на то, что Седрик просто лох, но откуда-то же взялась у него та пачка денег, которую он до этого считал.
И вот я подумал: а что если эта любовь к чаевым растет как раз из кинематографа? Представьте себе, что когда-то там официанты, курьеры и работники отелей получали себе зарплаты и ничего больше от жизни не ждали. А тут — бац — оказывается, кому-то там в фильмах платят «щедрые чаевые», прям таким же людям, как мы. При этом фильмы не абы какие, а семейные и для детей, ну чтобы с молодых ногтей это познавать. Значит, думают работники, и нам их надо требовать!
И наоборот: владельцы ресторанов и отелей когда-то платили работникам сносные деньги, а потом — бац — увидели в кино, что такие же люди, как их работники, могут получать вдобавок 10-20$ за каждый заказ! Поэтому постепенно они решили платить им поменьше, несмотря на то, что на самом деле чаевых не так-то много.
И в конечном счете имеем то, что имеем.
Примерно с 2014 года я вел учет денег в Google Spreadsheets. Происходило это всегда так: 2-3 раза в неделю я садился за компьютер, собирал чеки, перебирал историю транзакций в банковских приложениях, восстанавливал траты из памяти и записывал их в табличку.
В табличке было по одной строке на каждый день, а в столбцах были счета, кошельки и парочка вычисляемых полей. Отдельным полем шло «Примечание», где я почти в свободной форме расписывал, что куда ушло.
Пример из 2016 года. Эх, полноценные комплексные обеды по 300 и кофе за 100-150 рублей.
Как видите, денег у меня не то чтобы было много. Наверное, потому что в основном кушал и пил кофе вместо работы, но суть в том, что на этом я экономить совсем не хотел. Экономить на ежедневных вещах и в чем-то ужиматься — это в принципе противоестественные для меня занятия, которых я всегда старался избегать. Поэтому и ответ на вопрос «Куда уходят деньги?» меня в тот момент не волновал, а волновали более интересные вопросы:
Сколько у меня всего денег прямо сейчас?
Сколько у меня было месяц/полгода/год назад? Стал ли я богаче или беднее?
Можно ли прямо сейчас потратиться на отпуск/купить новый телефон/сходить в платную клинику? Не уйду ли я в минус к следующей зарплате?
Какой у меня должен быть доход, чтобы при текущих тратах хоть какие-нибудь деньги начали накапливаться?
Как скоро я начну голодать, если останусь без работы?
Как-то лет 15 назад ехал я в электричке Москва-Шатура в тамбуре. Все сидячие места были заняты, углы в тамбуре были тоже заняты, поэтому стоял я то ли у двери, то ли у стенки, в общем, не очень удобно. В какой-то момент один из углов тамбура освободился, мужик из него куда-то ушел (поссать между вагонами, скорее всего), и я занял этот угол.
Спустя время мужик вернулся, увидел меня, подошел и попросил освободить место. Я этим был несколько озадачен, но покорно вышел из комфортного угла и встал обратно к своей лоховской стенке. Видимо, по моему выражению лица мужик понял, что я в замешательстве. Он достал пачку сигарет и закурил со словами: «Ну, три точки опоры же лучше, чем две». Я кивнул, подумал про себя, что нихера себе он Архимед, но, в принципе, мысль верная. У стенки тебя шатает гораздо сильнее, чем в углу, где можно упереться ногами в пол и вообще не беспокоиться.
Не знаю почему вспомнил вот эту историю сейчас, спустя год после переезда, но вам, ребята и девчата, желаю вам в новом году побольше точек опоры. Не падайте там!
Читаю сейчас первую книгу Дэвида Гоггинса Can’t Hurt Me, узнал пару интересных фактов.
💭 «Морские котики» — часто встречающееся определение в русских переводах американских фильмов — это неудачная калька с [US] Navy SEALs. Navy — «военно-морской», а SEAL — акроним от sea, air, land — «море, воздух, земля». Этакие элитные многостаночники, в ряды которых кого попало не берут.
Ну а калька фиговая, потому что «морской котик» — это fur seal, а navy seal — это «военно-морской тюлень». И то, и другое одинаково неинформативно при переводе без контекста.
💭 Чернокожим людям тяжелее плавать, чем белым. То ли кости у них плотнее, то ли жировой ткани меньше, то ли и то, и другое — тут уже сложно понять. ChatGPT топит (лол) за то, что все дело в сегрегации и недостаточном доступе к бассейнам. В любом случае, Гоггинсу дорогого стоило подружиться с водой, он эти проблемы очень красноречиво описал.
💭 «Плавучесть» по-английски — buoyancy, очень непривычно, только недавно смог его правильно прочитать («бо́янси»). По каким-то причинам, это слово популярнее, чем floatability. Появилось, кстати, из испанского глагола boyar — «плавать», и нидерландского boei — буквально «буй».