Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение

Реализация семейной бухгалтерии при помощи Google Sheets, жевательной резинки и скотча

Время на прочтение4 мин
Количество просмотров10K
Скоро новый год, и, как и в прошлом году, одним из самых актуальных вопросов для любой семьи остается вопрос «куда уходят деньги?». Все мы периодически задаемся этим вопросом, и очевидно, что для его решения нужна внутрисемейная финансовая отчетность (как для любой организации). Я пытался использовать бухгалтерские программы desktop, а также мобильные приложения, но так и не нашел подходящего решения. Есть хорошие бесплатные программы, но у них, как правило, нет функции совместного доступа, а платные требуют покупки лицензии для каждого пользователя. Полный набор критериев, который сложился у меня, и который хотелось бы видеть в программе для ведений семейной бухгалтерии:

  • должна позволять вносить данные о расходах нескольким пользователям
  • должна обладать гибким набором категорий расходов (да и, в целом, быть гибкой)
  • должна позволять следить за общей суммой расходов по периодам и категориям
  • должна быть бесплатной
  • должна обладать простым интерфейсом

Для формирования критериев выбрал расходы, поскольку, как правило, источники доходов семьи фиксированы и заранее известны (в основном это зарплата), поэтому нет смысла следить за этой категорией бюджета, но при желании, все что верно для расходов применимо к доходам (если есть желание учитывать бонусы по картам, скидочные программы, кэшбэк и прочее).

Не найдя решения удовлетворяющего перечисленным критериям среди существующих приложений, стал думать о своем, но размышляя над этой темой, понял, что нет смысла еще в одном бухгалтерском приложении, когда все что нужно для решения задачи, это пошаренная таблица. Бегло пробежавшись по API Google Sheets, обнаружил функцию SUMIFS, которая полностью удовлетворяла мои бухгалтерские запросы. Но обо всем по порядку.
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии38

qml: могущество и простота

Время на прочтение2 мин
Количество просмотров4.4K
Мой брат большой поклонник компьютерных игр и всего что с ними связано. Он рыщет по всему интернету в поисках информации о старых, редких, первых изданиях игр, названия которых я даже не знаю (и даже называет себя «Историком Игр»). Недавно он пришёл с просьбой написать небольшой просмотрщик для одного из сайтов в интернете, занятого этой тематикой. Задача была просмотреть информацию обо всех играх по жанрам начиная с 1950, и для этого на сайте есть достаточно удобный функционал, но в обычных списках представлена только общая информация (из «шапки») и нет скриншотов, поэтому приходилось открывать каждую страничку вручную и тратить кучу времени на просмотр и выуживание нужной информации.
Читать дальше →
Всего голосов 16: ↑9 и ↓7+2
Комментарии27

Интересная задачка на С

Время на прочтение2 мин
Количество просмотров9.4K

Просматривая протоколы собеседований на позицию разработчика, обнаружил такую задачу: "Предложите код, который бы выводил на печать числа в убывающем порядке от n до 0, не используя (скрыто или явно) операторы сравнения (реализация функции вывода на печать не в счет)". Несмотря на то, что ко мне эта задача не имела отношения, она меня заняла и я решил подумать над способами ее решения (хотя, кому и при решении какой задачи может понадобиться такой метод оптимизации кода, мне осталось неизвестно, но тем не менее ).


Первое, что пришло на ум, — попытаться использовать шаблоны. Например так


template<int n> 
void print()
{
    printf("%d\n", n);
    print<n - 1>();
}

template<>
void print<0>()
{
    printf("0\n");
}

int main(int argc, char* argv[])
{
    print<N>();
    return 0;
}

Проблема в том, что программирование это инженерная дисциплина, а не оккультная, и если "что-то" должно в системе происходить, то "оно" должно быть описано и под это должны быть выделены ресурсы, и в данном случае, поскольку отработка шаблонов происходит на этапе компиляции, есть ограницения на вложенность подобного рода конструкций (и это хорошо и правильно, и Слава Богу, что так есть), и компилятор совершенно справедливо выдал "fatal error C1202: recursive type or function dependency context too complex" при размере N больше 2000.

Читать дальше →
Всего голосов 19: ↑13 и ↓6+7
Комментарии95

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность