LINUX.ORG.RU

Сообщения shdown

 

Ищу удалёнку: C/C++/Python/Go

Форум — Job

Резюме: https://shdown.github.io/resume.pdf

Ожидаемая ЗП: от $1000 в месяц.

Писать на shdownnine at gmail.com.

 , , ,

shdown
()

luastatus v0.5.0

Новости — Open Source
Группа Open Source

Вышла новая версия luastatus, универсального генератора данных для панелей состояния, поддерживающего i3bar, dwm, lemonbar и др. Программа написана на C и распространяется под лицензией GNU LGPL v3.

Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.

luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.

( читать дальше... )

>>> Страница проекта на GitHub

>>> Страница релиза

 , , , ,

shdown
()

haskell vs cpp

Форум — Development

Не, фигня, сорри. Куб там, кажется.

 ,

shdown
()

pointer aliasing & UB

Форум — Development

Допустим, мы знаем layout (т.е. количество полей и тип каждого поля) сишной структуры, но не знаем имена полей.

Нужно сгенерировать сишный код, который:

1. создаст экземпляр структуры, заполнит поля определёнными данными (нет, struct S s = {1, 2, 3}; писать нельзя, по определённым причинам);

2. считает значения полей существующей структуры.

Допустим, известно, что это struct S и у неё три поля типа int.

Втупую:

struct S_compat { int a0; int a1; int a2; } s_compat;
s_compat.a0 = /* ... */;
s_compat.a1 = /* ... */;
s_compat.a2 = /* ... */;

struct S s;
* (struct S_compat *) &s = s_compat;

Насколько я понимаю, здесь UB из-за pointer aliasing. Так ли это?

Далее:

struct S_compat { int a0; int a1; int a2; } s_compat;
s_compat.a0 = /* ... */;
s_compat.a1 = /* ... */;
s_compat.a2 = /* ... */;

struct S s;
memcpy(&s, &s_compat, sizeof(struct S));

Есть ли здесь UB? Если да, то как это сделать правильно?

Если можно, приведите ссылки на релевантные места стандарта. Спасибо.

P.S. про -fno-strict-aliasing, __attribute((__may_alias__)) знаю, хотелось бы в рамках стандарта.

 

shdown
()

luastatus 0.4.0

Новости — Open Source
Группа Open Source

Вышла новая версия luastatus, универсального генератора данных для панелей состояния, поддерживающего i3bar, dwm, lemonbar и другие. Программа написана на C и распространяется под лицензией GNU LGPL v3.

Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.

luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.

Нововведения релиза:

( читать дальше... )

>>> Страница проекта на GitHub

>>> Информация о релизе

 , , , ,

shdown
()

luastatus 0.3.0

Новости — Open Source
Группа Open Source

Вышла новая версия luastatus, универсального генератора данных для панелей состояния, поддерживающего i3bar, dwm и lemonbar (также есть экспериментальная поддержка dzen/dzen2, xmobar, wmii и других). Программа написана на C и распространяется под лицензией GNU LGPL v3.

Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.

luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.

Нововведения релиза:

  • Поддержка так называемых “derived plugins” — плагинов, написанных на Lua.

  • Новые плагины:
    • dbus;

    • udev;

    • backlight-linux;

    • battery-linux;

    • cpu-usage-linux;

    • file-contents-linux;

    • imap;

    • mem-usage-linux;

    • pipe.

  • При ошибке в виджете теперь печатается стек-трейс.

>>> Страница проекта на GitHub

>>> Страница релиза

 , , , ,

shdown
()

Ищу удалёнку — C, C++, Python, Lua

Форум — Job

Более не актуально.

 , , ,

shdown
()

luastatus — генератор данных для панелей состояния, поддерживающий i3bar и dwm

Новости — Open Source
Группа Open Source

Вышла первая версия luastatus — универсального генератора данных для панелей состояния, поддерживающего i3bar и dwm. Программа написана на C и распространяется под лицензией GNU LGPL v3.

Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.

( читать дальше... )

>>> Страница проекта на GitHub

>>> Страница релиза

 , , , ,

shdown
()

Зависание на ноутбуке ASUS X751MJ, часть 2

Форум — Linux-hardware

Первая часть: Зависание на ноутбуке Asus X751M

Собственно, через какое-то время после начала работы наглухо зависает. На всех ядрах, которые пробовал (самое старое из них — 4.4.0), в т.ч. на последнем из git’а. Alt+SysRq+B не помогает.

Под Windows не воспроизводится.

Интересности:

  • Скомпилировал пример, который открывает /dev/watchdog и пинает его каждые десять секунд, поставил его в автозапуск.

    Если я прибиваю его сам, то ноутбук, как и положено, перезагружается; если же он зависает, то не перезагружается, а просто выключается.

    Модуль, который используется для watchdog’а, — iTCO_wdt, вот тут (http://download.intel.com/design/chipsets/applnots/29227301.pdf) написано:

    2.4 Detecting an Unbootable CPU or System

    A CPU may fail to reset if it has been inserted incorrectly, is somehow damaged (i.e., due to vibrational stress), if the chipset itself is not working properly, or if the CPU is missing or not responding at the time the chipset attempts the reset. After the chipset attempts to reset the CPU, the CPU is expected to fetch its first instruction.

    The TCO logic can detect this type of failure because the WDT will timeout three consecutive times: the first possibly causing an SMI, the second causing a reset, and the third leading to the conclusion that the CPU is not responding. At this point there is no reason to reset the platform, so the TCO logic sets the BOOT_STS bit and shuts down the platform.

    (Из-за этого-то и создаю тред в “Linux-hardware”) Т.е. творится что-то совсем странное, CPU не отвечает? Я ничего не понимаю в железе же, объясните, пожалуйста.

  • Настроил netconsole, подключил к другому компьютеру, дополнительно передал параметры ignore_loglevel debug, но после зависания в логах ничего (в смысле, последняя строчка — от systemd, который периодически пишет в лог, что кому-то там отправил какое-то уведомление).

    Может, какие-то ещё параметры для того, чтобы прямо всё в лог писалось?

  • MemTest86 говорит, что с памятью всё в порядке.

Помогите, пожалуйста!

 , , , ,

shdown
()

Зависание на ноутбуке Asus X751M

Форум — General

Ноутбк Asus X751M, Debian testing.

На ядре 4.4.0 из репозитория были постоянные зависания (т.е. изображение не двигается, звук, если он был, пропадает, Ctrl+Alt+F<n> не работает), Alt+SysRq+R и Alt+SysRq+B не работают (до зависания работают), после перезагрузки кнопкой в логах ядра/иксов ничего; на ядре 4.5.0 (тоже из репозитория) какое-то время не было, но позавчера поймал. Собрал 4.6.0-rc6 с kernel.org, пока работает.

Ах, да; ещё экран в рандомные моменты (не через сколько-то там минут после бездействия — бывает, сразу после переключения рабочего стола) выключается, пока не дёрнешь мышку/поводишь пальцем по тачпаду (клавиатура его не включает), но это, видимо, не связано.

Собственно, вопросы:

  • стоит ли репортить, если ещё раз повторится? Куда — в багзиллу ядра или в Debian? Стоит ли попробовать ещё и последний срез гита с kernel.org (ну, чтобы уж точно не сообщать о том, что уже исправлено)?
  • можно ли включить какие-то дополнительные логи в ядре, чтобы узнать, что всё-таки зависает?
  • имеет ли смысл проверить железо? Что именно и чем?

Заранее благодарю за ответы.

 , , , ,

shdown
()

gt — python-библиотека для Google Translate, плюс CLI- и libnotify-клиенты

Форум — Development

Собственно, $subj: https://github.com/shdown/gt (скриншоты — там же).

Покритикуйте, что ли.

Из аналогов нашёл только скрипты на bash с парсингом через cut -d\" и это (написано на awk (!), не умеет вытаскивать ничего, кроме перевода).

Работает через запрос к http://translate.google.com/translate_a/single?client=t ­(то же, что запрашивает клиентский JS на translate.google.com) и препроцессинг полученных массивов в JS-синтаксисе в валидный JSON.

«libnotify-клиент» переводит содержимое иксового выделения и показывает перевод, варианты и пр. в уведомлении: выделил где угодно (консоль, браузер, …) слово, нажал хоткей — и готово. Может показывать слова из списка «См. также» в «actions» уведомления и переводить их по клику.

 

shdown
()

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