LINUX.ORG.RU

Сообщения Klymedy

 

Требуется помощь с разработкой приложения для учета личных финансов

 , , ,

Уже несколько лет использую GnuCash для учета личных финансов. В целом эта программа нравится, но кое-что хотелось бы переработать:

  • Поддержка мультивалютности: она есть, но неудобная: все счета привязаны к конкретной валюте (ниже напишу более подробно как я хочу)
  • Ввод разделенных транзакций по шаблону: хочется чтобы суммы остальных частей пересчитывались автоматически
  • При вводе транзакций/сплитов в дроп-даун попадают скрытые счета
  • некоторые прочие мелкие косяки

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

Идея с мультивалютностью заключается в том, чтобы отвязать счета от валют: то есть валюта будет указываться в каждом сплите (части транзакции, изменяющей сумму на одном счете). Таким образом на каждом счете смогут одновременно существовать несколько балансов в разных валютах. Это удобно тем, что когда у пользователя много используемых валют, ему не придется дублировать все свои счета под все валюты. Сделал один счет «наличные», и туда можно записывать и рубли, и доллары, и евро и все что угодно. Или другой пример: сделать один счет «брокерский», и на него записать «акции XXXX», «акции YYYY» и т.д. (каждый вид ценных бумаг как отдельная валюта)

>>> подробное описание требований к программе (1 фаза)

Пока что больше думал в сторону того, чтобы сделать это как десктопное приложение с хранением данных в виде базы SQLite, но не уверен в этом решении: в будущем хочется иметь и мобильную версию тоже. Так придется код писать с нуля, и синхронизировать базу каким-то внешним инструментом. Но если делать веб-приложение, то тогда встают более остро вопросы безопасности и хостинга.

Пытался сделать что-то с помощь PyQt и LLM, но видимо не очень хватает компетенции и я сам не до конца понимаю как оно должно работать (в плане архитектуры). Gemini посоветовал Model-View-Presenter, но пока что это выглядит просто как перекладывание данных туда-сюда.

Особую сложность пока что вызывает обработка ввода/изменения данных. С одной стороны, у меня и так реализовано отображение данных, и хочется при изменении просто перезагрузить все. Потому что отобразить выписку по выбранному счету и сплиты по выбранной транзакции – дело пары не очень сложных SQL-запросов. Так не надо дублировать логику, меньше шансов ошибок. Но с другой стороны, не очень понятно, можно ли это реализовать без моргания интерфейса, потери фокуса поля и прочих подобных эффектов. А вот если не перезагружать все, а прицельно изменять – кажется что это потребует весьма глубокого анализа. Например, если пользователь переводит сплит с одного счета на другой, то это отразится на:

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

В процессе написания этой темы решил все же залить свои наработки куда-нибудь, а то совсем без кода как-то не очень серьезно. Но пока это очень сырая версия (и не исключено переписывание с нуля).

>>> репозиторий

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

Оптимистичные планы (фазы проекта):

  1. Ручной ввод и отображение данных. То что описано в требованиях выше.
  2. Отчеты, хранение курсов валют (для отчетов)
  3. Импорт данных (например выписки из банков в CSV)
  4. Мобильное приложение

Но самому мне с этим похоже что не справиться. Поэтому буду рад, если кто-то сможет помочь в любых формах:

  • Советы
  • Код-ревью
  • Пулл-реквесты
  • Переписывание с нуля по требованиям

Не исключаю возможность оплаты (ниже рынка, зато без NDA).

Klymedy
()

Использование git на нескольких равноправных компьютерах

 ,

Есть несколько компьютеров (допустим, в локальной сети). Например ноутбук и десктоп. Есть репозиторий git, с которым хочется работать на каждом из них. То есть репозиторий не должен быть bare, и в любой момент в working tree могут быть какие-то изменения, как подготовленные к коммиту (staged), так и нет. Надо, чтобы с любого компа на любой можно было делать push и pull/fetch.

Хорошо бы, чтобы результат работы push с первого компа на второй был бы таким же, как результат fetch, выполненного со второго компьютера.

Видел такую статью, где предлагается сделать специальную ветку типа laptop-master, но при таком походе, как я понимаю, условие «хорошо бы» не выполняется (потому что в одном случае получим обновления в ветке laptop/master, а в другом в laptop-master). Появилась идея: делать push в remote-ветку, типа laptop/master, в ту же самую, в которую делался бы fetch, но не понял, можно ли так сделать.

В общем, помогите понять, как все это правильно настроить.

Klymedy
()

Испортили переключение раскладки

 , ,

Накатил сегодня обновления. Видимо, gnome-shell обновился, и теперь переключаться между раскладками стало болью: всплывает окошечко с раскладками и приходится ждать, пока оно пропадет, печатать сразу не дает. Жутко бесит, привык быстро переключать и печатать в нужной раскладке сразу. Переключение стоит на menu, если переставить на super-space, проблема исчезает, но menu мне удобнее. Есть ли какие-то решения? Куда баг-репорт писать (если еще нет)?

Klymedy
()

Долгая загрузка GDM

 ,

В свежеустановленном Арче поставил GDM. Он в принципе работает, но комп загружается, как мне кажется, аномально долго. Если смотреть по секундомеру с момента начала загрузки системы GRUB-ом до появления интерфейса GDM (мышка появляется раньше) проходит почти ровно 90 секунд, но systemd-analyze сообщает, что система (kernel+userspace) загрузилась за 15. При этом, судя по индикатору HDD, в середине загрузки он практически не используется. Наводит на мысль, что GDM чего-то ждет.

лог gdm: https://pastebin.com/u2vTEqD2

Klymedy
()

Настойка локали

 ,

Как настроить локаль под себя? А то те, из которых можно выбрать, не подходят. Я хочу

  • даты в формате YYYY-MM-DD,
  • время в формате HH:MM:SS (24-часовой без AM/PM),
  • чтобы десятичную часть можно было отделять и точкой, и запятой (а то думал, почему, когда я пытался посчитать что-то прямо в поиске Gnome shell, у меня не сходились порядки),
  • чтобы первым днем недели был понедельник,
  • расстояния в метрах,
  • бумагу A4,
  • интерфейс на английском.

Почему в гуе можно только выбрать из списка стран, а настроить под себя нельзя?

Klymedy
()

Подключение к закрытому порту

 ,

У меня творится нечто странное. Запустил сервер minetest на порту 30000. После этого из другого терминала (или с другого компа в локальной сети) подключаюсь и оно работает. Но при сканировании порт показывается закрытым:

->  ~  % minetest/bin/minetest --name anton --address 127.0.0.1 --port 30000 --go # тут все открывается, к серверу подключается
2017-06-04 13:46:12: [Main]: Automatically selecting world at [/home/anton/minetest/bin/../worlds/14-v7]
connect(2) call to /dev/shm/jack-1000/default/jack_0 failed (err=No such file or directory)
attempt to connect to server failed
->  ~  % nmap 127.0.0.1 -p30000

Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-04 13:46 MSK
Nmap scan report for localhost.localdomain (127.0.0.1)
Host is up (0.000051s latency).
PORT      STATE  SERVICE
30000/tcp closed ndmps

Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds

Как такое может быть? Еще не получается пробросить порт, чтобы можно было подключиться из интернета: вот думаю, связано ли это.

Klymedy
()

Сломалось клонирование в git по https

 ,

При попытке клонировать репозиторий по https git выдает ошибку

Cloning into 'linux'...
fatal: unable to access 'https://github.com/torvalds/linux/': error:0B06A041:x509 certificate routines:build_chain:malloc failure

Если использовать протокол git, все работает. Арч, тестинг. Есть ли такое еще у кого-то? Где баг?

Klymedy
()

Зависания системы

 ,

Сегодня, вероятно, после обновления, система стала внезапно зависать: во время работы вдруг перестает на все реагировать: изображение на экране остается, мышка не двигается, на ctrl-alt-F* не реагирует, на другие сочетания клавиш вроде тоже. Что интересно, отвечает на ping и реагирует на отключение подсветки экрана ноутбука (fn-F7), иногда обращается к диску (жужжит и мигает лампочкой).

Ядро: 4.9.4-1-ARCH

Это баг в ядре? Вроде похоже, но смущает, что ping работает.

Klymedy
()

Phabricator — альтернатива Github/Gitlab?

 

https://www.phacility.com/phabricator/

Вроде как есть непосредственно репозитории, баг-трекер, wiki. Есть их хостинг, можно скачать и установить на свой. Зашел на https://developer.blender.org/ посмотреть интерфейс этой штуки: не вырвиглазно, но почему-то вместо деления сначала на пользователей, потом на репозитории, затем на код, баг-трекер и все такое, там какая-то странная организация, которую я пока не очень понял.

Кто-нибудь этим пользовался? Чем отличаются юз-кейсы по сравнению с github/gitlab/gogs?

Klymedy
()

Из-за чего возникают конфликты файлов?

 , ,

Решил с утра обновить свой Арч, а он не обновляется:

(121/121) checking for file conflicts                                 [######################################] 100%
error: failed to commit transaction (conflicting files)
python2-setuptools: /usr/lib/python2.7/site-packages/pkg_resources/__init__.pyc exists in filesystem
python2-setuptools: /usr/lib/python2.7/site-packages/pkg_resources/extern/__init__.pyc exists in filesystem
Errors occurred, no packages were upgraded.

Обычно такие проблемы решаются добавлением ключа --force, но почему вообще это возникает?

Klymedy
()

Долгая загрузка EFI

 , ,

Купил новую материнскую плату ASRock J3160-ITX, установил в компьютер вместо старой. Пропущу историю о том, как я чинил загрузчик (BIOS -> EFI). Проблема в том, что сейчас она очень долго ждет перед тем, как начать загружать систему. Systemd-analyze показывает, что firmware грузилось 1 минуту 21 секунду. После загрузки системы какое-то время не работают мышка и клавиатура (обе USB), потом оживают не одновременно. Пробовал сбрасывать настройки в интерфейсе EFI и перемычкой, не помогло. Раньше вроде включалось быстро, так что вероятно, это как-то связано с моими манипуляциями, но после чего конкретно это стало происходить — не знаю.

Мог ли я, что-то неправильно подключив, вызвать такую реакцию? С чем вообще это может быть связано?

Klymedy
()

Ссылки на некорректные сообщения (39)

 

Эта тема предназначена для просьб об удалении того, чего не должно быть на форуме.

Два важных замечания:

  • после переполнения эта тема будет закрыта для комментирования, вместо нее будет создана новая
  • только ссылки, без обсуждений. Все лишнее будет удаляться

Предыдущая тема: Ссылки на некорректные сообщения (38)

Важно: ссылку на комментарий надо копировать из пункта [Ссылка] под комментарием, а не из адресной строки.

Klymedy
()

Как строить графики?

 ,

Имеются файлы со значениями типа

0.5865
0.5816
0.5816
0.5767
0.5767
0.5767
на несколько тысяч строчек. Могут попадаться пустые строчки, тогда надо в этом месте не рисовать точку, а соединять те, где значения есть.

Нужно по файлу строить график типа такого: https://pp.vk.me/c604520/v604520540/30be2/0b-76JEDG74.jpg (этот построен в LO Calc, но там слишком много мышковозни). Надо, чтобы 0 по значениям был минимумом на графике, масштаб по значениям определялся бы автоматически. Разрешение итогового изображения заданное.

Интервал между измерениями составляет 0.1с, поэтому надо, чтобы по аргументу у меня максимальное значение было не по количеству строчек в файле, а в 10 раз меньше.

В идеале, в консоли одна команда, которая принимает имя входного файла и имя выходного в png.

Вроде бы gnuplot умеет делать как нужно, но я понимаю, как с ним работать.

Klymedy
()

Не получается зайти на github

 , ,

Почему-то возникают проблемы с доступом к github: Icecat выдает ошибку

An error occurred during a connection to github.com. The OCSP server experienced an internal error. (Error code: sec_error_ocsp_server_error)

Что это означает, не понимаю.

Chromium говорит

This site can’t be reached
github.com took too long to respond.
...
ERR_TIMED_OUT

Но в Midori все работает.

Так уже несколько дней, браузеры и систему перезапускал, обновления ставил, Icecat пересобирал. Arch Linux.

На другом компьютере в локальной сети все работает через Firefox и Chromium.

Klymedy
()

Hash of canvas fingerprint

 ,

Зашел тут на https://panopticlick.eff.org, проверить tor browser. Оказалось, у него уникальный отпечаток. И если с размером экрана, допустим, все понятно, то что такое Hash of canvas fingerprint — нет. И что самое страшное, эта штука достаточно длинная для идентификации и не поменялась, когда я сменил личность.

Успокаивает, что со стандартным размером экрана браузер оказался не уникальным, но все равно хочется понять, что за Hash of canvas fingerprint такой.

Klymedy
()

Удостоверяющий центр времени

 

Не знаю, как это правильно назвать.

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

Идея такая: сделать сервис типа удостоверяющего центра, который будет просто принимать хеш файла, существование которого в данный момент нужно заверить и подписывать его, добавляя время. Результат отдавать пользователю. Специальный сервис нужен, потому что время на локалхосте можно поменять. Казалось бы, идея очень простая. Придумал ли это уже кто-то до меня? Если да, как это называется?

Klymedy
()

Запуск i2p на ARM с помощью OpenJDK

 , , ,

Думал на своей малинке поднять i2p, чтоб сети помочь и мощность не простаивала просто так. Поставил OpenJDK, скачал i2p (jar с официального сайта), установил, запустил, посмотрел top: процессор загружен на 100%, Load average в несколько раз больше единицы.

На официальном сайте нашел, что они рекомендуют на ARM использовать оракловскую жаву. Проприетарщину устанавливать не хочу.

Может есть у кого-нибудь истории успеха запуска со свободной OpenJKD на ARM?

Klymedy
()

Key signing party в Санкт-петербурге

 , , ,

Для тех, кто не в курсе: https://en.wikipedia.org/wiki/Key_signing_party

Проводился ли сабж недавно и не предвидится ли в ближайшее время?

Если не предвидится, то насколько был бы актуален для ЛОРовцев? Прошу отписаться тех, кто пошел бы.

Просто был вчера на KSP на CIF в Москве, и думаю, не организовать ли встречу в Питере.

Klymedy
()

HTTP/2 для onion-сайта

 , , ,

У меня есть .onion-сайт в Tor. Сейчас сайт крутится на Lighttpd, без https. В lighttpd нет поддержки http/2 и она не планируется в версиях 1.x, версии 2.x в состоянии очень медленной разработки (последний коммит датируется 2015-12-04).

Подумываю над тем, чтобы на сайте включить поддержку http/2. Для этого потребуется поставить другой сервер, поддерживающий эту версию протокола, и настроить https. Для тех, кто не знает: внутри Tor трафик шифруется, поэтому ssl практически не даст усиления безопасности. Но браузеры работают по http/2 только с шифрованием.

Поставил nginx-mainline, сделал самоподписный сертификат, включил для https поддержку http/2, но при попытке зайти на сайт по локальной сети через IceCat 38.8 соединение, судя по всему, устанавливается, но ответ от сервера не приходит. Т. е. у меня остается новая вкладка с адресом сервера в адресной строке. В chromium вроде бы работает нормально, только я не пойму, используется ли http/2 (нигде не показывается версия протокола).

  1. Где можно получить бесплатный сертификат для onion-домена? Let's encrypt давать отказывается, а на самоподписанный ругаются браузеры.
  2. Почему не получается зайти через IceCat?
  3. А есть ли смысл в http/2 и шифровании? Насколько быстрее сможет грузиться сайт, с учетом того, что он в tor? Даст ли https большую безопасность при использовании шлюзов (onion.link и подобные)?
Klymedy
()

Nanoc-а тред

 , nanoc,

Посматриваю на генератор статических сайтов Nanoc. Нравится тем, что не перегружен лишней функциональностью типа disqus, GA или содержания (TOC), которую некоторые другие чуть-ли не в ядро пихают, что атрибуты страниц можно самому придумывать и обрабатывать, еще вроде работает побыстрее jekyll.

Вопросы такие:

  • Как там получить список страниц? Допустим, надо отобразить на главной заголовки страниц из определенной папки, и еще какой-нибудь текст. eRuby в index.html вообще не обрабатывался, прямо так на странице показывался.
  • Есть ли какой-то ресурс по eRuby, где было бы множество простых примеров того, что может пригодиться на сайте?
  • Более сложная задача: можно ли сделать в Nanoc разделение на страницы как в jekyll? Что-бы указать количество записей на страницу, а он бы сделал все остальное и дал возможность использовать вещи типа paginator.total_pages, paginator.next_page?
  • Кто-нибудь им пользовался? Какие есть еще интересные варианты?
Klymedy
()

RSS подписка на новые темы