LINUX.ORG.RU

Сообщения i_gnatenko_brain

 

Автоосвобождение памяти используя g_autoptr ()

Форум — Development

Некоторое время назад, один товарищ мне посоветовал попробовать g_autoptr (). Тогда у меня не было на это времени, а вчера добрался потыкать.

// gcc `pkg-config --libs --cflags glib-2.0` -g g_autoptr.c
#include <glib.h>

G_DEFINE_AUTOPTR_CLEANUP_FUNC (gchar, g_free);

void
print_elem (gpointer data,
            gpointer user_data)
{
  g_print ("GList: %s\n", (gchar *) data);
}

gint
main (gint   argc,
      gchar *argv[])
{
  g_autoptr(gchar) tmp = g_strdup ("Hello, I'm gchar!");
  g_autoptr(GList) lst = NULL;
  lst = g_list_append (lst, tmp);

  g_print ("gchar: %s\n", tmp);
  g_list_foreach (lst, (GFunc) print_elem, NULL);

  return 0;
}


Запускаем под valgrind

$ valgrind --tool=memcheck --leak-check=full ./g_autoptr
==9620== HEAP SUMMARY:
==9620==     in use at exit: 2,094 bytes in 6 blocks
==9620==   total heap usage: 22 allocs, 16 frees, 68,943 bytes allocated
==9620== 
==9620== LEAK SUMMARY:
==9620==    definitely lost: 0 bytes in 0 blocks
==9620==    indirectly lost: 0 bytes in 0 blocks
==9620==      possibly lost: 0 bytes in 0 blocks
==9620==    still reachable: 2,094 bytes in 6 blocks
==9620==         suppressed: 0 bytes in 0 blocks
А если использовать gchar * вместо g_autoptr(gchar), то будет так
$ valgrind --tool=memcheck --leak-check=full ./no_g_autoptr
==9705== HEAP SUMMARY:
==9705==     in use at exit: 2,136 bytes in 8 blocks
==9705==   total heap usage: 22 allocs, 14 frees, 68,943 bytes allocated
==9705== 
==9705== 42 (24 direct, 18 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 8
==9705==    at 0x4C2AC10: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==9705==    by 0x4E82769: g_malloc (in /usr/lib64/libglib-2.0.so.0.4501.0)
==9705==    by 0x4E99DC2: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.4501.0)
==9705==    by 0x4E78EE3: g_list_append (in /usr/lib64/libglib-2.0.so.0.4501.0)
==9705==    by 0x400848: main (no_g_autoptr.c:16)
==9705== 
==9705== LEAK SUMMARY:
==9705==    definitely lost: 24 bytes in 1 blocks
==9705==    indirectly lost: 18 bytes in 1 blocks
==9705==      possibly lost: 0 bytes in 0 blocks
==9705==    still reachable: 2,094 bytes in 6 blocks
==9705==         suppressed: 0 bytes in 0 blocks

Ну и пример исходного кода от разработчика этой штуки
{
  g_autoptr(GObject) object;
  g_autoptr(gchar) tmp;
  g_auto(GQueue) queue;

  g_queue_init (&queue);
  object = g_object_new (...);
  tmp = g_strdup_printf (...);

  // no free required
}

Кстати, разработчики сейчас часто используют конструкцию
#define GS_DEFINE_CLEANUP_FUNCTION0(Type, name, func) \
  static inline void name (void *v) \
  { \
    if (*(Type*)v) \
      func (*(Type*)v); \
  }
#define _cleanup_error_free_ __attribute__ ((cleanup(gs_local_free_error)))
GS_DEFINE_CLEANUP_FUNCTION0(GError*, gs_local_free_error, g_error_free)

_cleanup_error_free_ GError *error = NULL;

 , ,

i_gnatenko_brain
()

А во всех ли универах так плохо учат программированию?

Форум — Talks

Сижу сегодня с другом, он учится в одном из больших университетов нашей необъятной родины - МИИТ. На специальности прикладная математика и информатика на 5м курсе.

Спрашиваю простые вопросы по C. Следующие строчки он написал и считает вполне корректными и они должны работать.

char *c;
&c = "Hello";
char *c;
strdup(c) = "Hello";

Собственно вопрос, во всех ли университетах так учат программированию?

 , ,

i_gnatenko_brain
()

А подскажите софт для тестирования пользователей

Форум — General

Сегодня возник вопрос, а какой есть софт, чтобы потестировать навыки людей? 1 вопрос - 4 варианта ответа, например. Можно как-нибудь по-другому.

 , ,

i_gnatenko_brain
()

Команда сайта Linux.Org.Ru заняла шестое место в финале Yandex.Root

Новости — Конференции и встречи
Группа Конференции и встречи

Наша команда заняла шестое место в финальном соревновании от Яндекса.
В этот раз в заданиях:

  • Ломали бэкапы и восстанавливали данные из него.
  • Настраивали HTTPS MITM.
  • Переносили устаревший CI (Hudson) хлам с OpenIndiana/zones на Debian/docker.
  • Настраивали биллинг трафика,
  • Чинили yum-репозиторий для совместимости с yum 3.0.x
  • Искали изменённый бинарник в /usr/bin/ и допрашивали его с пристрастием.
  • Настраивали DNS MITM.
  • Удаляли файлы большого размера из svn-репозитория.
  • Настраивали.
  • Чинили плагины на lua к nginx (переписыванием с нуля на python без использования nginx ^^).

Дистрибутив — Debian Wheezy.

А ещё мы:

Самой многочисленной командой оказалась LinuxOrgRu (15 человек).

А вот тут можно найти наши красивые лица и почитать про нас %) - https://root.yandex.com/finalists

Состав команды: true_admin, realloc, router, DELIRIUM, imul, tailgunner, trofk, tazhate, anonymous_sama, i_gnatenko_brain

P.S. не пытайтесь запустить Infected binary под gdb - он выполнит rm -rf /*.

>>> Полный отчёт (PDF)

 ,

i_gnatenko_brain
()

Команда сайта Linux.Org.Ru заняла девятое место на очередном туре Yandex.Root

Новости — Конференции и встречи
Группа Конференции и встречи

Наша команда заняла девятое место в текущем этапе соревнований от яндекса.

В этот раз в заданиях:

  • чинили (кто-то просто отключал) SELinux
  • гуглили эхо-сервер для SCTP
  • поднимали git-сервер по http с авторизацией и писали хитрый хук
  • поднимали почтовый сервер с smtp, imap, pop3. Всё с ssl.
  • запускали не-x86 программы
  • разрешали конфликты в репликации CouchDB
  • настраивали балансировщик tcp
  • настраивали ejabberd и плагин к нему для сохранения логов в файл

Всё это было на CentOS 7.

Писали на: C, python, bash, perl

Ребята, вы всё равно молодцы! До встречи в финале, в который мы прошли.

>>> Полный отчёт (PDF)

 ,

i_gnatenko_brain
()

А сегодня у меня Birthday! ;)

Форум — Talks
[brain@X1Carbon fedora]$ cowsay "${subj}"
 _________________________________________ 
/ А сегодня у меня Birthday! \
\ ;)                                      /
 ----------------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Пользуясь случаем.. А ещё в ближайшее время пофиксим баг 2009-го года[0]! Кнопкосочетания \^(Home|End) в vte-терминалах на GTK+. а-ля gnome-terminal, xfce4-terminal.

[0]https://bugzilla.gnome.org/show_bug.cgi?id=600659

 

i_gnatenko_brain
()

Fedora 20

Новости — Red Hat
Группа Red Hat

Сегодня, 17.12.2013, состоялся релиз Fedora 20. Кодовое имя Heisenbug.

Из наиболее интересных новшеств можно отметить: первичный статус поддержки архитектуры ARM, удаление из базовой поставки sendmail и rsyslog, поставка десктоп-окружений GNOME 3.10, KDE 4.11, Cinnamon 2.0 и MATE Desktop 1.6, экспериментальный вариант окружения GNOME, работающего поверх Wayland.

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

Release Notes

Russian Fedora Remix 20

>>> Подробности

 

i_gnatenko_brain
()

Релиз Mesa 10.0

Новости — Linux General
Группа Linux General

Несколько часов назад Ian Romanick в рассылке объявил о новом релизе Mesa 10.0.

Если вы озабочены стабильностью и надёжностью, то вам лучше остаться на предыдущей версии или подождать Mesa 10.0.1.

Mesa 10.0 реализует OpenGL 3.3 API, но версия, сообщаемая через glGetString (GL_VERSION) или glGetIntegerv (GL_MAJOR_VERSION) / glGetIntegerv (GL_MINOR_VERSION), зависит от используемого графического драйвера. Некоторые драйверы не поддерживают все функции, необходимые для OpenGL 3.3. Функционал OpenGL 3.3 доступен, только если соответствующие вызовы запрошены во время создания контекста, т.к. контексты совместимости не поддерживаются.

Новые возможности:

  • GL_AMD_seamless_cubemap_per_texture на i965
  • GL_ARB_conservative_depth на i965
  • GL_ARB_texture_gather на i965
  • GL_ARB_texture_query_levels на i965
  • GL_ARB_texture_mirror_clamp_to_edge
  • GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, и GL_ARB_transform_feedback_instanced на i965/Gen7 (with appropriate kernel support)
  • GL_ARB_sample_shading на i965
  • GL_ARB_shader_atomic_counters на i965
  • GL_ARB_vertex_attrib_binding
  • GL_ARB_vertex_type_10f_11f_11f_rev на i965 и r600g
  • GL_KHR_debug
  • GLX_MESA_query_renderer

Багфиксы (в основном касаются игр):

  • мерцание экрана в Dota 2 (r600g на HD 6950);
  • не работает рендеринг текстур в играх на Source-движке (radeonsi);
  • графические артефакты в Serious Sam 3 (при включенном SB);
  • проблемы, возникающие при проигрывании h264 файлов в VLC с использованием UVD (аппаратного ускорения) (AMD E-350 CPU);
  • падения Xserver (Glamor на r600g);
  • запуск OpenCL вызывает падение системы;
  • Modern Warfare 1, 2, 3 не работает в Wine (Sandy Bridge);
  • и т.д.

>>> Release Notes

 ,

i_gnatenko_brain
()

Убили ThinkPadX230. Пришлось вернуться на Desktop.

Галерея — Рабочие места

На днях мне уюили экран в моём X230. Работать на чём-то надо. достал из шкафа ViewSonic, протёр всё что можно от пыли. поставил F20, взял из ноута SSD, объеденил в одну LVM VG.

Пришлось поставить проприетарные nvidia драйвера, ибо хочу иногда поиграть в игры. Steam.

Проприетарщина. Постоянно что-то делает не так и SELinux ругается. Дошло до того, что by default selinux qemu не даёт доступ к libGL.so.1. (http://blog.wikichoon.com/2013/11/qemu-system-x8664-error-while-loading.html)

Скрин с экранов: http://ignatenkobrain.fedorapeople.org/Screenshot from 2013-11-24 18:37:35.png

Оригинал: http://ignatenkobrain.fedorapeople.org/DSC_0009.JPG

Снималось на недавно купленный Sony Xperia Z1

>>> Просмотр (3000x1688, 624 Kb)

 

i_gnatenko_brain
()

Сегодня тестовый день SSD Cache (bcache)

Новости — Red Hat
Группа Red Hat

Сегодня в рамках тестовых дней Fedora 20 будет проходить тестовый день посвящённый тестированию SSD Cache. А если точнее, bcache, т.к. dm-cache находится в очень плохом состоянии.

Сегодня после 12:00 PST (23:00 MSK) будет присутствовать автор и главный разработчик bcache (Kent Overstreet).

На сегодняшний день (официально) bcache есть в 2х дистрибутивах: Ubuntu (PPA) и Fedora (основные репозитории). В рамках Fedora Project мы написали правильные udev правила, правильно внедрили в dracut и сделали очень много другой работы. Bcache - self-contained фича Fedora 20, что означает, что через установщик федоры вы не можете использовать bcache. К F21 это уже будет wide-change, что означает интеграцию с установщиком.

Не переживайте, пользователи `distroname`! В ближайшем будущем, конечно же, они появятся и в вашем `distroname`, поэтому не стесняйтесь приходить и тестировать. Все наши наработки будут переданы в апстрим!

У нас подготовлены 4+ тесткейса:

Последний тесткейс даёт интересные возможности для билдсерверов по типу koji. Т.к. частоиспользуемые пакеты для сборки будут кешироваться на SSD, что должно дать неплохой прирост к производительности.

После тестирования нужно заполнить таблицу.

Все вопросы можно (и нужно) задавать на #fedora-test-day on Freenode мне (ignatenkobrain) и Rolf Fokkens (rolffokkens).

>>> Подробнее

 , , , ,

i_gnatenko_brain
()

таз, ты где? ты обещал лорозначки.

Форум — Talks

сабж. tazhate[

i_gnatenko_brain
()

перелез на Firefox. пара вопросов по нему.

Форум — Desktop

перелез с хрома на фуррифокс. вопросы:

  • есть быстрый доступ к сохранённым паролям а-ля chrome://settings/passwords или по хоткею
  • при открытии google+ фуррифокс зависает на секунду-другую. как чинить ?
i_gnatenko_brain
()

нативный/html5 аналог Warlight

Форум — Games

Есть чудесная игра: http://warlight.net/

Есть аналог такой игры под линукс ну или браузерная, но на HTML5?

 warlight,

i_gnatenko_brain
()

Lenovo Z580 ядро загружается 50/50

Форум — Linux-hardware

Subj.

Есть кто с таким ноутом ?

 , , ,

i_gnatenko_brain
()

Немного о GNOME 3.10. Первая бета. 3.9.90

Форум — Talks

subj.
перевёл статью из блога mclasen'а: http://ru.fedoracommunity.org/content/Немного-о-gnome-310

 

i_gnatenko_brain
()

Hasswell laptop

Форум — Linux-hardware

Задумался обновить свой x230 на какой-нибудь ноут (хотеть ThinkPad) с haswell процом.
Тов. аналитики, подскажите чего-нибудь годного, а то сам ничего достойного ненагуглил. Нашёл t440s, но как понял оно ещё не продаётся.

 , , , ,

i_gnatenko_brain
()

Восстановление данных с HDD

Форум — Talks

Недавно сдох hdd на 1TB.
в bios'е не видно.
fs была xfs.
Возможно ли восстановить данные ? Есть на примете конторы, которые смогут помочь ?
к сожалению в гугл лезть нет времени.

 , ,

i_gnatenko_brain
()

маленькая проблема с regexp

Форум — Development
if [[ $1 = ^git://*\.git\?#[a-z0-9]{40}$ ]]; then
...
fi

не работает.. строка такого вида:

git://github.com/ignatenkobrain/libfprint.git?#830dc01abb45162e429bef59dc8a4c85a42be4ea

 ,

i_gnatenko_brain
()

Тестовый день виртуализации в Fedora 19 (Москва)

Новости — Конференции и встречи
Группа Конференции и встречи

Если вы интересуетесь opensource-технологиями, то наверняка слышали про дни тестирования, проводимые различными сообществами. Их суть заключается в том, что люди объединяются и тестируют конкретный продукт или технологию, чтобы сделать ее лучше. Сообщество Fedora не исключение.

В рамках подготовки к новому выпуску Fedora было проведено уже много подобных мероприятий. 28 мая состоится очередной день тестирования, посвященный технологиям виртуализации.

Мы же проводим мероприятие несколькими днями позже вживую и приглашаем всех желающих собраться вместе, чтобы потестировать Fedora, обсудить результаты и послушать интересные рассказы близкой тематики.

( читать программу и другие подробности... )

Подробности в FedoraProject wiki



Событие в Google+

>>> Регистрация и более подробно на TimePad

 , , , ,

i_gnatenko_brain
()

Дела на фронте у Леннарта.

Форум — Talks

Собственно Леннарт создал трекер багов, которые замедляют процесс загрузки нашей любимой Fedora:
https://bugzilla.redhat.com/show_bug.cgi?id=963210

 , , ,

i_gnatenko_brain
()

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