Ищу удалёнку: C/C++/Python/Go
Резюме: https://shdown.github.io/resume.pdf
Ожидаемая ЗП: от $1000 в месяц.
Писать на shdownnine
at gmail.com
.
Резюме: https://shdown.github.io/resume.pdf
Ожидаемая ЗП: от $1000 в месяц.
Писать на shdownnine
at gmail.com
.
Вышла новая версия luastatus, универсального генератора данных для панелей состояния, поддерживающего i3bar, dwm, lemonbar и др. Программа написана на C и распространяется под лицензией GNU LGPL v3.
Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.
luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.
( читать дальше... )
>>> Страница проекта на GitHub
>>> Страница релиза
Не, фигня, сорри. Куб там, кажется.
Допустим, мы знаем 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__))
знаю, хотелось бы в рамках стандарта.
Вышла новая версия luastatus, универсального генератора данных для панелей состояния, поддерживающего i3bar, dwm, lemonbar и другие. Программа написана на C и распространяется под лицензией GNU LGPL v3.
Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.
luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.
Нововведения релиза:
( читать дальше... )
Вышла новая версия luastatus, универсального генератора данных для панелей состояния, поддерживающего i3bar, dwm и lemonbar (также есть экспериментальная поддержка dzen/dzen2, xmobar, wmii и других). Программа написана на C и распространяется под лицензией GNU LGPL v3.
Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.
luastatus позволяет пользователю определять логику обработки данных от плагинов, написанных на Си и поставляющихся с luastatus, с помощью виджетов, написанных на Lua. Также виджеты могут обрабатывать события, такие как щелчки по панели состояния.
Нововведения релиза:
>>> Страница проекта на GitHub
>>> Страница релиза
Более не актуально.
Вышла первая версия luastatus — универсального генератора данных для панелей состояния, поддерживающего i3bar и dwm. Программа написана на C и распространяется под лицензией GNU LGPL v3.
Большинство генераторов данных для панелей состояния тайловых WM либо обновляют информацию по таймеру (например, conky), либо требуют сигнал для перерисовки (например, i3status). Панели же в составе окружений рабочего стола, как правило, обновляют информацию мгновенно и автоматически, как и luastatus.
( читать дальше... )
>>> Страница проекта на GitHub
>>> Страница релиза
Первая часть: Зависание на ноутбуке Asus X751M
Собственно, через какое-то время после начала работы наглухо зависает. На всех ядрах, которые пробовал (самое старое из них — 4.4.0), в т.ч. на последнем из git’а. Alt+SysRq+B не помогает.
Под Windows не воспроизводится.
Интересности:
Если я прибиваю его сам, то ноутбук, как и положено, перезагружается; если же он зависает, то не перезагружается, а просто выключается.
Модуль, который используется для 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 не отвечает? Я ничего не понимаю в железе же, объясните, пожалуйста.
ignore_loglevel debug
, но после зависания в логах ничего (в смысле, последняя строчка — от systemd, который периодически пишет в лог, что кому-то там отправил какое-то уведомление).Может, какие-то ещё параметры для того, чтобы прямо всё в лог писалось?
Помогите, пожалуйста!
Ноутбк 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, пока работает.
Ах, да; ещё экран в рандомные моменты (не через сколько-то там минут после бездействия — бывает, сразу после переключения рабочего стола) выключается, пока не дёрнешь мышку/поводишь пальцем по тачпаду (клавиатура его не включает), но это, видимо, не связано.
Собственно, вопросы:
Заранее благодарю за ответы.
Собственно, $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» уведомления и переводить их по клику.