#  Re: Несетевые проекты
btimofeev (station13, 13) → All  –  12:03:53 2016-05-19

У меня из проектов на гитхабе самое интересное https://github.com/btimofeev/emuchip

Это была моя попытка написать эмулятор простейшего компьютера, на примере Chip8 и SuperChip. Все игры для этих систем работают (за исключением одной, кажется). Но в эмуляторе есть пара ошибок, которые я так и не решил (одна связана с размером окна Qt, вторая с указателями c++).

// а вообще я всегда хотел написать эмулятор Sega Mega Drive, но думаю не дорос еще))
#  Re: Несетевые проекты
vit01 (mira, 1) → Difrex  –  08:51:52 2016-05-18

Difrex> ЗЫ: Покажи свои проекты, интересно :)

Если зайдёшь ко мне на гитхаб, то убедишься в том, что смотреть там особо нечего :)
// за исключением сетевых проектов, только это не в счёт

Хотя есть кое-что: https://github.com/vit1-irk/timeleft
Андроид-приложение для товарищей школьников, которое позволяет отслеживать расписание занятий (уроки/пары, перемены). Появилось после экспериментов в ii://linux.14 по NDK: ii://RZdZbVEHDhzU8UcpWJsF
Простое, как валенок, но зато имеет неплохой UI и поддерживает уведомления.
#  Re: azot
vit01 (mira, 1) → Difrex  –  08:51:51 2016-05-18

Difrex> Например, у меня на федоре иксы через примерно час начинают отлупливать соединения от Azot, типа, слишком часто. Скорее всего надо один раз подключаться и работать в пределах этой сессии, но как это сделать - я не знаю.

Заглянул в исходники X.py из азота. Там такой интересный кусок кода:


def get_cursor_position():
while 1:
try:
data = display.Display().screen().root.query_pointer()._data

return {'x': data['root_x'], 'y': data['root_y']}


Смущает очень сильно, что ты инициализируешь объект display через display.Display() каждый запуск этой функции. Если учесть, что это происходит постоянно раз в секунду, я не удивляюсь, что иксам это сильно надоедает ;)


>> Читать далее
#  Re: azot
Difrex (mira, 14) → vit01  –  07:06:13 2016-05-18

>Для производительности можно переписать сабж на Си, но вряд ли будет сильный прирост.
Я думал на счет Go :). Но проблема не в этом.

>Что думаешь?
Например, у меня на федоре иксы через примерно час начинают отлупливать соединения от Azot, типа, слишком часто. Скорее всего надо один раз подключаться и работать в пределах этой сессии, но как это сделать - я не знаю.

>удивило, кстати, что python2, а не python3
Привык я ко второму питону, но там под третий совсем немного переписывать.


ЗЫ: Покажи свои проекты, интересно :)
#  Re: azot
vit01 (mira, 1) → Difrex  –  12:53:21 2016-05-16

Difrex> Жрет ресурсы не в себя. Там постоянно опрашивается положение курсора.

Вроде бы, это единственный рабочий способ для иксов.

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

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

Для производительности можно переписать сабж на Си, но вряд ли будет сильный прирост.
// удивило, кстати, что python2, а не python3

Что думаешь?
#  Re: Несетевые проекты
Difrex (mira, 14) → vit01  –  10:25:26 2016-05-16

Жрет ресурсы не в себя. Там постоянно опрашивается положение курсора.
Было бы круто использовать что-то типа Inotify, но для X, а не FS.
#  Re: Несетевые проекты
vit01 (mira, 1) → Difrex  –  08:20:44 2016-05-16

Difrex> Не заинтересует такая штука? https://github.com/Difrex/azot

Забавная вещь. И каковы планы по её улучшению? Делает своё дело, судя по видео, вполне исправно.
#  Re: Несетевые проекты
Difrex (mira, 14) → vit01  –  08:14:04 2016-05-16

>Итак, в PM вроде всё устоялось с фичами (если появятся ещё какие-нибудь хотелки, то пусть Денис пишет, поломаю голову).
Да, большое спасибо за коммиты :)

>Что можете предложить из того, что не связано с нашей сеткой, но интересно было бы сделать вместе?
Не заинтересует такая штука?
https://github.com/Difrex/azot
#  Re: Несетевые проекты
vit01 (mira, 1) → vit01  –  16:27:12 2016-05-15

Итак, в PM вроде всё устоялось с фичами (если появятся ещё какие-нибудь хотелки, то пусть Денис пишет, поломаю голову).

Надо ещё и больше.

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

// могу и сам чего-нибудь предложить, но сначала подожду
#  Re: PM
vit01 (mira, 1) → Difrex  –  11:32:26 2016-05-09

Difrex> Есть только проблема с отображением, если uri в ресурсе очень длинный - табличку корежит

Difrex> Я, в принципе, знаю как это поправить.

Там таблица строится очень просто - обычным дополнением пробелов справа.

Если получится починить, то очень хорошо. Сам просто не придумал, как такие случаи обрабатывать. Только если обрезать строку, но это не очень правильно.
#  Re: PM
Difrex (mira, 14) → vit01  –  11:20:46 2016-05-09

Очень классно получилось.

Есть только проблема с отображением, если uri в ресурсе очень длинный - табличку корежит: https://cloud.difrex.ru/index.php/s/txaZ77bL1KlJ562

Я, в принципе, знаю как это поправить. Спасибо, смержил в тестинг :)
#  PM
vit01 (mira, 1) → Difrex  –  09:05:08 2016-05-09

В своём репозитории сабжа сделал ветку testing.

В этой ветке сделал вывод в красивую таблицу и исправил твой костыль с дублированием кода при выводе информации.
Протестируй и выскажи своё мнение.


./pm.pl -s -n all
#  Re: PM
Difrex (mira, 14) → vit01  –  11:26:13 2016-05-04


>Difrex> Да вот красивый вывод в pm -sn all, только хочется. Все руки не дошли до того, чтобы сделать это.
vit01> Он разве слишком некрасивый? Там даже цвет есть, насколько видно.
Я просто хотел сделать, как в mysql/pgsql - табличка, чтобы рисовалась.

>Попробую почитать что-нибудь на эту тему. А sqlite действительно не очень хорошо здесь смотрится. Скорее, это проблема самой перловой реализации (сделали только самые базовые вещи).
Там делов-то немного. Переписать только функции из DB.pm, я вечерком, может займусь =)
#  Re: PM
vit01 (mira, 1) → Difrex  –  10:53:48 2016-05-04

Difrex> Да вот красивый вывод в pm -sn all, только хочется. Все руки не дошли до того, чтобы сделать это.

Он разве слишком некрасивый? Там даже цвет есть, насколько видно.

Хотя всё-таки есть, чего улучшить. У меня вот в терминале тема оформления светлая, поэтому поле ID не видно совсем.

Difrex> Еще есть проблема в SQL, там нет уникального ключа по имени.

Ну это на раз-два.

Difrex> Да и вообще, я думаю, что стоит перейти на что-то noSQL, хотябы на perl Storable. + в этом, что избавимся в зависимостях от sqlite.

Попробую почитать что-нибудь на эту тему. А sqlite действительно не очень хорошо здесь смотрится. Скорее, это проблема самой перловой реализации (сделали только самые базовые вещи).
#  Re: PM
Difrex (mira, 14) → vit01  –  06:48:00 2016-05-04

>Помогу и сделаю пулл-реквест (или сейчас сделаю, если хочешь).
Делай пулл-реквест(только в AUTHORS себя не забудь добавить :), я потестю на своей базе из ~150 паролей и смержу в мастер.

>Скажи, что ещё хотел бы сделать.
Да вот красивый вывод в pm -sn all, только хочется. Все руки не дошли до того, чтобы сделать это.

Еще есть проблема в SQL, там нет уникального ключа по имени. Да и вообще, я думаю, что стоит перейти на что-то noSQL, хотябы на perl Storable. + в этом, что избавимся в зависимостях от sqlite.
#  Re: PM
vit01 (mira, 1) → Difrex  –  13:38:34 2016-05-01

Форкнул сабж и написал туда чуть-чуть:
https://github.com/vit1-irk/PM

Изменения:
* Теперь можно импортировать БД из файла
* При автогенерации пароля можно при желании задать его длину
* Место расшифрованной БД поменял на /dev/shm

Третий пункт сделал из-за того, что /tmp люди не всегда монтируют, как tmpfs (некоторые просто на диске его держат), а /dev/shm всегда автоматически ставится в tmpfs.

Скажи, что ещё хотел бы сделать. Помогу и сделаю пулл-реквест (или сейчас сделаю, если хочешь).
#  Re: PM
vit01 (mira, 1) → Andrew Lobanov  –  16:53:31 2016-04-29

Оно хранится в зашифрованном (через GPG) виде в $HOME. При каждом взаимодействии база расшифровывается, находясь в /tmp, и сразу же удаляется.

Небезопасность заключается в том, что из /tmp расшифрованный файл базы можно позднее восстановить, если этот самый /tmp не примонтирован в виде tmpfs.

// а я тем временем обнаружил, что sqlite-модуль даже текстовые дампы не поддерживает
// надо бы в самом деле на что-то другое переписать
#  Re: PM
Andrew Lobanov (tavern,1) → All  –  16:33:12 2016-04-29

А как вообще в сабже с безопасностью? В каком виде оно хранится? А то я чёт перловые исходники совсем не разумею, а времени на кемел бук нет пока.
#  Re: PM
vit01 (mira, 1) → vit01  –  15:12:14 2016-04-29

Итак, Named Pipes эта штука так же не поддерживает. А жаль, потому что в MySQL можно было нормально сделать LOAD DATA INFILE, и всё бы пахало, как часы.

Лучше было бы вообще не sqlite использовать, а json какой-нибудь, с ним бы точно проблем не было.
#  Re: PM
vit01 (mira, 1) → Difrex  –  13:10:21 2016-04-29

Difrex> * Подсунуть базу драйверу sqlite как файл, т.е. через \$bd

И как бы это примерно выглядело? Непонятно, что под этим ты имеешь в виду.

Вместо хранения дампа можно сделать в том числе и Named Pipe, именно так лучше и попробую.
#  Re: Несетевые проекты
Difrex (mira, 14) → btimofeev  –  06:29:07 2016-04-29

>Сорри за оффтоп, но чем pass не устроил? https://www.passwordstore.org/
Мне он был не удобен. Мне нужен был именно плоский вывод имен, т.к. я часто использую подобное:

pm -sn all | tail -3

Так же мне хотелось xdg-open, чтобы сразу перейти по ссылке. Хотелось комментариев к паролям, и.т.д.

Короче, pass мне был не удобен и я написал свой велосипед. :)
#  Re: PM
Difrex (mira, 14) → vit01  –  06:16:01 2016-04-29

>и обнаружил, что ни DBI, ни сам sqlite не поддерживают загрузку бинаря базы данных из RAM.
Да, я знаю про это. Вообще я думал попробовать так:
* Расшифровать базу в память - тут все норм
* Подсунуть базу драйверу sqlite как файл, т.е. через \$bd

>В таком случае БД придётся даже в зашифрованном виде хранить не в виде sqlite-файла, а в виде sql-дампа. Грустно и медленно, но зато 100% безопасно.
>Если тебя устроит данный способ взаимодействия, то могу форкнуть и приделать.
Если получится, то было бы круто =)


#  Re: Несетевые проекты
btimofeev (station13, 13) → Difrex  –  18:16:59 2016-04-28

Difrex> Вот, например, чем я пользуюсь постоянно - pm https://github.com/Difrex/PM. Консолькный менеджер паролей для X. Писал потому что ничего удобнее(для меня) нет.

Сорри за оффтоп, но чем pass не устроил? https://www.passwordstore.org/
#  Re: PM
vit01 (mira, 1) → Difrex  –  14:39:33 2016-04-28

Кстати, решил изучить вопрос по вот этому TODO:

> Store decrypted DB into RAM not in /tmp/

и обнаружил, что ни DBI, ни сам sqlite не поддерживают загрузку бинаря базы данных из RAM.

Единственный быстрый путь решения, который представляется возможным (и который предлагают люди), заключается в том, чтобы создавать пустую базу в памяти и загружать в неё данные из дампа через CREATE TABLE ...

В таком случае БД придётся даже в зашифрованном виде хранить не в виде sqlite-файла, а в виде sql-дампа. Грустно и медленно, но зато 100% безопасно.

Если тебя устроит данный способ взаимодействия, то могу форкнуть и приделать.
#  Re: PM
Difrex (mira, 14) → vit01  –  14:10:55 2016-04-28

>Жаль, что перл, а то бы TODO-шка твоя быстро опустела :) Хотя подозреваю, что там не все планы.
Ридми давно не апдейтил, а хелп в самом коде так и подавно =) Запушил
Powered by iii-php v0.11