LINUX.ORG.RU

Сообщения 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

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

 , ,

HerrWeigel ()

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

Форум — Lor-source

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

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.

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

 , ,

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

Нестандартный outsession

Форум — Talks

Кто хочет 19-го числа сходить на СКА — Торпедо? Билеты есть пока, правда, самые кошерные места разобрали.

 ,

HerrWeigel ()

О моем КМБ

Форум — Talks

По просьбе читателей, отписываюсь о жизни в армии. Заранее извиняюсь за портянку, но за три неполных недели уже много чего накопилось. Еще извиняюсь за «рваность» изложения, если в голову что-то придет - сразу пишу.

Сегодня (ну, уже вчера) принял присягу, мне дали увольнительный и сейчас я дома посидел с родителями и друзьями. В 9:00 уже нужно быть в расположении.

Из военкомата мы отправились к сборному пункту на Загородном. Скучное место: сначала у нас проверили сумки на наличие запрещенных предметов (не особо напрягаясь, впрочем; можно было пронести практически что угодно), потом посадили смотреть телек. Еще раз прошли медкомиссию, подтвердили мне категорию Б-3. После поболтал с несколькими «покупателями», в итоге забрали в учебку в Лемболово (Внутренние Войска МВД). В часть приехали уже под вечер, все не сныканное гражданское отобрали и уложили спать. Сразу офигел от количества дагестанцев: когда мы приехали, их уже было 30 человек (прибыли 21-го декабря) плюс двое сержантов.

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

Национальный состав в учебной роте у нас сложился (после того, как из Башкирии приехала последняя партия призывников) очень забавный: ~30 дагестанцев, ~35 русских, ~40 башкир. В незначительном количестве еще представлены буряты и азербайджанцы.

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

Командование полка вроде нормальное, но на слово уже никому не верю: обманывали уже много раз разные люди.

Теоретических занятий не было (не считая чтения устава в строю).

Практическое занятие было только одно: каждый по одному разу произвел неполную сборку и разборку АК-74.

Зарядку провели только два раза: она состояла в том, что рота сразу после подъема выходила на улицу по форме №4 , пробегала три круга по плацу (это примерно километр, а должно быть где-то 2-3 км), выполняла несколько физических упражнений (штук 8, не больше) и замерзший сержант возвращал нас в расположение.

Какой у нас был распорядок дня:
6:00 Подъем
6:10 Заправка кроватей, уборка комнат, выравнивание по нитке всего и вся в расположении, умывание
7:00 Завтрак
7:30 Распределение на работы
9:00 Утреннее построение
9:15 Возвращение к работам
14:00 Обед
15:00 Распределение на работы
19:00 Ужин
19:30 Распределение на работы
21:00 Вечерняя поверка на плацу
21:15 Приведение внешнего вида в порядок
22:00 - 22:30 Отбой (время может меняться)

Один парень уже успел самовольно оставить часть, причем сделал это каким-то нереальным брутфорсом: ночью вышел из кубрика, оделся, вылез через форточку в туалете (где-то метр в ширину и сантиметров 30-40 в высоту), находящуюся на высоте двух с половиной метров (до сих пор не понимаю, как он туда пролез), договорился с дневальным, чтобы тот говорил, что ничего не видел (хотя было ясно, что мимо дневального он пройти по взлетке не мог, и либо дневальный врет, либо хреново выполнял свои обязанности, что в любом случае означает серьезный залет). После этого он зачем-то полез напролом через колючую проволоку (хотя в заборе до фига дыр), изрезал себе все руки и пошел через лес к шоссе. В берцах он на глубоком снегу проваливался, снял их и пошел босиком. Дошел до шоссе, там придал одежде более-менее гражданский вид и на попутках вернулся домой (!!!). Там его, конечно, уже ждали :) После этого случая, кроме вечерней поверки стали проводить еще три контрольных поверки в течение дня (а это, поверьте, очень веселое занятие при роте в 100 человек и начинания поверки заново после малейшего нарушения правил поведения в строю, или нарушения стойки «смирно»).

Вообще, событий, серьезных залетов уже было немало, но лень все расписывать.

Вначале думал устроиться в канцелярию у компа, но несколько дней потусил около неё и забил: работы, во-первых, мало, целый день там сидеть не будешь, только несколько раз в день позовут что-нибудь сделать. А во-вторых, работа скучная: клепать таблицы в икселе.

Что ещё: мобильные телефоны не отбирали и можно всё, если без палева. А, ещё кино смотрим в клубе по выходным.

Задавайте вопросы, утром постараюсь ответить, может быть из части отвечу, если будет время и не буду лениться писать с телефона.

Да, кстати, остаюсь я в этой же части, отправили в караульную роту.

Прикладываю фотку с присяги, мало ли кому интересно, все равно я тут уже деанонимизировался. Шапка немного сбилась после торжественного марша.

Кастую просивших отписываться: mio, Trieforce, observer.

 ,

HerrWeigel ()

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