LINUX.ORG.RU

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

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

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

 , ,

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.

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

 , ,

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

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

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

 ,

HerrWeigel ()

О моем КМБ

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

Сегодня (ну, уже вчера) принял присягу, мне дали увольнительный и сейчас я дома посидел с родителями и друзьями. В 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 подписка на новые темы