LINUX.ORG.RU

Сообщения HerrWeigel

 

Ищу подработку Python

Форум — Job

Имею опыт как разработки промышленных решений «с нуля», так и поддержки легаси-систем.

Основной стек сейчас:

  • Python 3.6
  • Flask
  • SQLAlchemy
  • PostgreSQL
  • Alembic
  • Docker

Также есть опыт работы с Celery, MongoDB, Redis, RabbitMQ, Python 2.7, MySQL.

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

Владею основными навыками системного администрирования, условно говоря, смогу поднять проект на чистом VPS, настроить ssh, fail2ban, ufw, nginx и т.п. В основном я занимаюсь бэкендом, но есть опыт работы и с фронтом (промышленный), и с десктоп-приложениями (для себя). И то, и то с оговорками. На фронте совершенно не знаком с современными JS-фреймворками, а разработкой десктоп-приложений занимался довольно давно на C++ и Qt (ну и немного PyQt).

Готов выделять 10-12 часов в неделю. Рассматриваю как почасовую, так и проектную оплату. Ставка на час: 1600 рублей.

Почта для связи: me@ivnglkv.ru

 

HerrWeigel
()

Не открываются настройки

Форум — Linux-org-ru

tyakos уже репортил, решил закинуть в отдельную тему на всякий.

Не зайти в раздел настроек: https://i.imgur.com/y5lMAlh.jpg

 

HerrWeigel
()

Цыгане врываются на рынок биткоина

Форум — Talks

 

HerrWeigel
()

Подскажите интерфейс для taskwarrior

Форум — Desktop

Интересуют как GUI, так и web (но обязательно self-hosted) интерфейсы.

Сам нашел только ptask с крайне убогим функционалом относительно консоли, и Taskwarrior-web с поломанным парсером.

 ,

HerrWeigel
()

Python, байтовое представление числа

Форум — Development

Захотелось мне тут с байтами поиграться на питоне. Сделал

>>> x = 255
>>> x.to_bytes((x.bit_length() // 8) + 1, byteorder='big')
b'\x00\xff'
>>> x = 35
>>> x.to_bytes((x.bit_length() // 8) + 1, byteorder='big')                                                 
b'#'
>>> x = 99
>>> x.to_bytes((x.bit_length() // 8) + 1, byteorder='big')
b'c'
WTF? Почему он для валидного кода из ascii отображает соответствующий символ, а не то, что надо?

 

HerrWeigel
()

Ищу органайзер

Форум — Mobile

Ищется органайзер для студента. Требования такие:

  • составление расписания:
    • поддержка четных/нечетных недель;
    • ФИО препода;
    • название предмета;
    • тип пары (лекция/лабораторная/практическая);
    • номер аудитории.
  • версия для линукса и андроида (на крайняк можно веб-версию вместо десктопной);
  • синхронизация десктопного и мобильного приложения.

Этим требованиям в принципе удовлетворяет iStodo, и на десктопе он относительно удобен. Но на андроиде приложение мало юзабельно, к сожалению. Пользоваться можно, конечно, и если альтернатив не будет, то на нем и останусь, но хотелось бы увидеть другие варианты.

 ,

HerrWeigel
()

Кто идет на Geek Picnic?

Форум — Talks

Мы с PenguinSociophob уже на месте, сидим у входа, ждем открытия.

Ссылка

 

HerrWeigel
()

Декодирование АОН

Форум — Development

В процессе изучения Asterisk возникла необходимость преобразовать АОН в CallerID, т.к. АТС, к которой подключен сервер с * в CallerID не умеет.

Сразу оговорюсь, что c обработкой сигналов не знаком вообще. Если приведете какие-нибудь ссылки на матчасть, буду признателен.

Итак, что я имею:

  • Asterisk, подключенный к АТС по FXO-порту.
  • Запись сигнала от АТС на Asterisk, полученная с помощью dahdi_monitor 4 -r stream.wav и сделанная в то время, когда отправляется АОН (если я все правильно понимаю).

Почитав про АОН, я установил, что «информация формируется комбинациями из двух частот на основе шести базовых»:

 F0=700Гц
 F1=900Гц
 F2=1100Гц
 F4=1300Гц
 F7=1500Гц
 F11=1700Гц

 ---------------------------------------------
 0 - F4 F7          6 - F2 F4
 1 - F0 F1          7 - F0 F7
 2 - F0 F2          8 - F1 F7
 3 - F1 F2          9 - F2 F7
 4 - F0 F4          "начало-конец" - F2 F11
 5 - F1 F4          "повтор"       - F4 F11
 ---------------------------------------------

Вопросы:

  1. С помощью какой сишной библиотеки можно проанализировать частоты в wav-файле?
  2. Как определить какой код был передан (я сейчас не понимаю, как происходит «смешивание» частот, как такое смешение «увидеть» и определить какие частоты смешали)?
  3. Пишут, что длительность передачи одной комбинации может колебаться от 25 до 70 мс, несмотря на то, что по ГОСТу 40±2 мс. Как к этому можно адаптироваться? Или конкретная АТС передает комбинации с одной и той же длительностью и достаточно один раз её выяснить?

 , , , ,

HerrWeigel
()

Анимирование изменения позиции QGraphicsPixmapItem

Форум — Development

Задача: сделать анимацию перемещения для своего класса, унаследованного от QGraphicsPixmapItem.

Делал так:

card.h

class Card : public QObject, public QGraphicsPixmapItem
{
    Q_OBJECT
    Q_PROPERTY(QPointF pos READ pos WRITE setPos)

public:
    Card();
    ~Card();

    QPointF pos() const;

    void setPos(QPointF newPos);

protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);

};

card.cpp

Card::Card()
{
    this->setPixmap(QPixmap(":/card.jpg"));
    this->setPos(QPointF(10, 10));
}

Card::~Card()
{

}

QPointF Card::pos() const
{
    return QPointF(this->x(), this->y());
}

void Card::setPos(QPointF newPos)
{
    this->setX(newPos.x());
    this->setY(newPos.y());
}

void Card::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
//    it works!
//    this->setPos(QPointF(100, 100));

    QPropertyAnimation anim(this, "pos");
    anim.setDuration(1000);
    anim.setEndValue(QPointF(100, 100));
    anim.start();
}

По идее, по клику на карточке, должно произойти перемещение, но его не происходит. Если вручную сделать this->setPos(QPointF(100, 100));, то позиция меняется.

ЧЯДНТ?

Архив с исходниками, если кому надо.

 

HerrWeigel
()

Я просто оставлю это здесь

Форум — Talks

https://www.youtube.com/watch?v=xTZFiGLOwz4

tl;dr
Чувак полчаса рассуждает о том, что Эрмитаж в частности и Петербург вообще освещались не свечами, а с помощью электричества. Александрийская колонна и Исакиевский собор играли роль катушек Тесла и от них все брали лепездричество (путем выставления на домах антенн). Еще говорит, что ДС2 - это первый послепотопный город (Иерихон).

Короче, много развлекаловы там :D

 ,

HerrWeigel
()

ЛОР всезнающий, помоги!

Форум — Talks

Хочу найти серию топгир, где Мэй и Кларксон сели на велики. Что-то не гуглится сходу. Может кто знает/помнит/умеет хорошо гуглить?

 topgear, ,

HerrWeigel
()

Большой каст без пробелов

Форум — Linux-org-ru

С этим что-нибудь можно сделать, или надо отрывать руки ТС?

HerrWeigel
()

Не осилил select

Форум — Development

Исходные данные: таблица, скажем, такая:

create table CAR
(
  id             VARCHAR2(254),
  idsession      NUMBER(15),
  model          VARCHAR2(254),
  country        VARCHAR2(254),
  color          VARCHAR2(254),
  selled         NUMBER(1),
  sellDate       DATE
)

idsession - номер сессии, в которой были залиты данные. В ней много очень похожих данных, различающихся на одно-два поля, примерно так:

  id  |  idsession  |  model  |  country  |  color  |  selled  |  sellDate  |
-----------------------------------------------------------------------------
  1   |  1001       | granta  |  rus      |  green  |  1       | 2013-02-14 |
  1   |  1002       | granta  |  rus      |  null   |  1       | 2014-04-20 |
  1   |  1003       | granta  |  null     |  blue   |  1       | 2013-02-14 |
  2   |  1001       | priora  |  rus      |  green  |  0       | null       |
  2   |  1002       | priora  |  null     |  null   |  1       | 2010-07-02 |
  2   |  1004       | priora  |  ukr      |  null   |  0       | null       |

Хочу одним запросом получить такие данные:

  id  |  idsession  |  model  |  country  |  color  |  selled  |  sellDate  |
-----------------------------------------------------------------------------
  1   |  1003       | granta  |  rus      |  blue   |  1       | 2014-04-20 |
  2   |  1004       | priora  |  ukr      |  green  |  1       | 2010-07-02 |

То есть, считаем, что совокупность id и model дает уникальную запись, а значения полей country и color берем из последней сессии, в которой было залито ненулевое значение поля (отдельно ищем последнее ненулевое значение color и отдельно country).

Поля selled и sellDate отбираются таким образом, что ищется максимальное (для данной уникальной записи) значение sellDate и соответствующее ему значение selled.

Пока что сумел сделать это только в несколько запросов, основной, получающий уникальные записи с отобранным значением sellDate такой:

select c.id
      ,c.idsession
      ,c.model
      ,c.country
      ,c.color
      ,c.selled
      ,c.sellDate
  from (
         select c.id
               ,c.idsession
               ,c.model
               ,c.country
               ,c.color
               ,c.selled
               ,c.sellDate
               ,row_number() over (partition by c.id order by c.sellDate) rn
           from car c
          group by c.id
               ,c.idsession
               ,c.model
               ,c.country
               ,c.color
               ,c.selled
               ,c.sellDate
       ) t
 where t.rn = 1;

Потом еще два тривиальных запроса на доставание последнего ненулевого color и country.

Короче, можно ли это запихнуть один запрос? Если можно, то в какую сторону смотреть?

 , plsql,

HerrWeigel
()

Загрузка файлов в firefox

Форум — Desktop

Хочу добавить автоматизации этому делу. Например, чтобы при попытке загрузки *.torrent файл автоматически сохранялся без диалога с ФМ в ~/Downloads/torrents, при попытке загрузить *.pdf открывался диалог сохранения в папке ~/Books и т.п. Это возможно? А если да, — то как?

 

HerrWeigel
()

Поднять удаленный доступ к MySQL

Форум — Admin

Хочу поднять доступ к мускулю, крутящемуся на локалхосте с домашнего же нетбука.

Начинаю делать так: В /etc/mysql/my.cnf в секции [mysqld] комментирую строчку

# bind-address = 127.0.0.1

Пишу новую:

bind-address = 172.16.172.187
где 172.16.172.187 — это айпишник, который мне выдал роутер.

После этого перезапускаю mysql командой

service mysql restart
В выхлопе появляется только
mysql stop/waiting

Об успешном запуске, соответственно не сообщает.

Смотрим в логи, а там такое:

140609 21:23:35 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140609 21:23:35 [Note] Plugin 'FEDERATED' is disabled.
140609 21:23:35 InnoDB: The InnoDB memory heap is disabled
140609 21:23:35 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140609 21:23:35 InnoDB: Compressed tables use zlib 1.2.8
140609 21:23:35 InnoDB: Using Linux native AIO
140609 21:23:35 InnoDB: Initializing buffer pool, size = 128.0M
140609 21:23:35 InnoDB: Completed initialization of buffer pool
140609 21:23:35 InnoDB: highest supported file format is Barracuda.
140609 21:23:35  InnoDB: Waiting for the background threads to start
140609 21:23:36 InnoDB: 5.5.37 started; log sequence number 1636061
140609 21:23:36 [Note] Server hostname (bind-address): '172.16.172.87'; port: 3306
140609 21:23:36 [Note]   - '172.16.172.87' resolves to '172.16.172.87';
140609 21:23:36 [Note] Server socket created on IP: '172.16.172.87'.
140609 21:23:36 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
140609 21:23:36 [ERROR] Do you already have another mysqld server running on port: 3306 ?
140609 21:23:36 [ERROR] Aborting

140609 21:23:36  InnoDB: Starting shutdown...
140609 21:23:37  InnoDB: Shutdown completed; log sequence number 1636061
140609 21:23:37 [Note] /usr/sbin/mysqld: Shutdown complete
И так много-много раз. Соответственно, один раз не подключился, пытается еще раз.

В чем проблема, как поправить?

Пробовал перевесить на другой порт (изменив строчку port в секциях [client] и [mysqld]. Также пробовал указать явную возможность подключения для рута с указанного айпишника. Результат идентичный.

UPD.
Чуть не забыл: дистр — Ubuntu 14.04

mysql --version 
mysql  Ver 14.14 Distrib 5.5.37, for debian-linux-gnu (i686) using readline 6.3

 

HerrWeigel
()

ncmpcpp не ищет тексты песен

Форум — Desktop

Собственно, сабж. В плейлисте нажимаю l и идет:

Fetching lyrics from lyricwiki.com... Not found
....
и т.д.
и т.п.
Специально залезал на lyricwiki.com - искомые тексты имеются. Теги в порядке.
Версия ncmpcpp - 0.5.10.
Что делать, как исправлять?

 

HerrWeigel
()

Грамотно сгенерировать отчеты

Форум — Development

А вот что посоветуют мне благородные доны?
Нужно кроссплатформенно генерировать и сохранять/печатать отчеты по данным из БД. Также нужен предпросмотр результата.
Что грамотнее использовать: pdf или html? Какие библиотеки и классы понадобятся?

Почитал доки, там есть пример записи текста в pdf с помощью QPainter и QPrinter. Но мне нужно будет делать таблицы, не вручную же все линии рисовать.

// Qt 4.8.1

 , ,

HerrWeigel
()

Восстановить данные с MicroSD-карты

Форум — General

Есть карта памяти на 64 гига, стояла в выньфоне. Сегодня телефон внезапно перестал видеть ее содержимое. Вставляю в USB-адаптер, подключаю к компу, тунар выдает следующее:

Не удалось подключить «Диск 67 GB».
Error mounting: mount exited with exit code 1: ERROR: invalid VBR checksum 0xa2c1a124 (expected 0x294c4925).
Полез проверять, fsck выдал то же самое:
fsck.exfat /dev/sdb1
exfatfsck 1.0.1
ERROR: invalid VBR checksum 0xa2c1a124 (expected 0x294c4925).
Как восстановить данные?

 ,

HerrWeigel
()

Ищу словарь

Форум — Talks

Ищу словарь русских слов, где будут только существительные в именительном падеже и прилагательные в единственном числе мужского и женского рода. Определения слов не нужны (хотя, если их можно будет легко обрезать sed'ом, то пофигу). Есть такие?

Формат нужен обычный текстовый.

HerrWeigel
()

Педаль для клавиатуры

Форум — Linux-hardware

Хочу себе на ДР подарить педаль для клавиатуры (цель - замена модификаторов Shift, Ctrl, Alt).
Что интересует: где в СПб можно купить сабж, какие есть модели, где посмотреть/сравнить?

 , педаль

HerrWeigel
()

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