LINUX.ORG.RU

Сообщения HerrWeigel

 

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

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

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

  • 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
()

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

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

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

 

HerrWeigel
()

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

 

HerrWeigel
()

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

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

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

 ,

HerrWeigel
()

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

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

>>> 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
()

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

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

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

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

 ,

HerrWeigel
()

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

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

Ссылка

 

HerrWeigel
()

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

В процессе изучения 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

Задача: сделать анимацию перемещения для своего класса, унаследованного от 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
()

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

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

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

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

 ,

HerrWeigel
()

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

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

 topgear, ,

HerrWeigel
()

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

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

HerrWeigel
()

Не осилил select

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

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

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

 

HerrWeigel
()

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

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

Начинаю делать так: В /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 не ищет тексты песен

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

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

 

HerrWeigel
()

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

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

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

// Qt 4.8.1

 , ,

HerrWeigel
()

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

Есть карта памяти на 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
()

Ищу словарь

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

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

HerrWeigel
()

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

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

 , педаль

HerrWeigel
()

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