LINUX.ORG.RU

Сообщения i_gnatenko_brain

 

Разные «аккаунты» для git

Когда коммичу в разные проекты использую разные email адреса (gmail.com, fedoraproject.org, gnome.org, redhat.com) и не очень удобно после git-clone делать git config user.email, есть какие-нибудь расширения для гита, которые, например, на базе remote URL настроят email? Или только алиасами в шелле?

P.S. гуглить лень, да и последний раз ничего хорошего не нашёл

 ,

i_gnatenko_brain
()

Ищется Windows Desktop Specialist

 ,

i_gnatenko_brain
()

покомментируйте код

class PluginImpl(object):

    ...

    def download_repomd(self):
        " May throw if repomd.xml does not exists at server "
        with open(os.devnull, 'w') as FNULL:
            return check_output([
                "wget", self.mtdt_url + "repomd.xml", "-O-"
            ], stderr=FNULL).decode("utf-8")

    ...

        def _sync(self, url, input_file, target):
        " this is exception safe (unless something unexpected will happen) "
        # if file that will be synced does not exists, this should be aborted
        if not os.path.isfile(input_file):
            check_output(["touch", input_file])
        try:
            zsync = Popen(["zsync", url, "-i", input_file, "-o",
                           target], stdout=PIPE, stderr=PIPE)
            outputs = zsync.communicate()
            if self._print_log:
                print(outputs[1].decode("utf-8"))
                print(outputs[0].decode("utf-8"))
        except CalledProcessError as ex:
            # print(str(ex), file=sys.stderr)
            # reverse rewriting existing if there was any
            try:
                check_output(["mv", target + ".zs-old", target])
            except:
                pass
        else:
            # cleanup
            check_output(["rm", "-rf", target + ".zs-old",
                          input_file if input_file != target else ""])
        return zsync.returncode

P.S. мопед не мой

 , ,

i_gnatenko_brain
()

GNOME Builder почти готов

Пока поддерживается только autocraptools, но уже довольно неплохо. Автодополнение, автоотступы, список символов и т.д. и т.п.

http://storage3.static.itmages.com/i/15/1230/h_1451479954_5106023_4b455f78b0.png

http://storage1.static.itmages.com/i/15/1230/h_1451479944_5317937_10db00870f.png

http://storage4.static.itmages.com/i/15/1230/h_1451479755_4010775_f19f4d0549.png

http://storage3.static.itmages.com/i/15/1230/h_1451479747_7074424_ff34f0ef0a.png

 , ,

i_gnatenko_brain
()

Вот вы говорите wayland не нужен, а там искаропки On-Button Scrolling

${subj}.

http://wayland.freedesktop.org/libinput/doc/latest/scrolling.html#button_scro...

И не нужно никаких костылей в /etc/X11/xorg.conf.d/ вида:

Section "InputClass"
	Identifier	"Trackpoint Wheel Emulation"
	MatchProduct	"TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
	MatchDevicePath	"/dev/input/event*"
	Option		"EmulateWheel"		"true"
	Option		"EmulateWheelButton"	"2"
	Option		"Emulate3Buttons"	"false"
	Option		"XAxisMapping"		"6 7"
	Option		"YAxisMapping"		"4 5"
EndSection

P.S. да, я знаю, что это в libinput, а не в wayland. Но, libinput разрабатывался изначально именно для wayland.

2Модераторы, добавьте тег libinput!

 , , ,

i_gnatenko_brain
()

Накидайте сайтов для фриланса

čau ЛОР, накидайте список нормальных сайтов, где можно пофрилансить.

 

i_gnatenko_brain
()

Servo не готов. Совсем.

 , , , ,

i_gnatenko_brain
()

Где можно почитать про грядущие стандарты С?

собственно, интересно. Что будет нового в C14 или что там идёт после С11.

 ,

i_gnatenko_brain
()

В systemd появилась замена su(1)

Этим замечательным пулл-реквестом, Lennart Poettering, добавил замену su(1) в machinectl.

Открыть новый шелл для root на локальной машине:

$ machinectl shell

Для указания пользователя используется опция --uid=...

When using the shell command without arguments (thus invoking the executed shell or command on the local host) it is similar in many ways to a su(1) session, but unlike su completely isolates the new session from the originating session, so that it shares no process or session properties, and is in a clean and well-defined state. It will be tracked in a new utmp, login, audit, security and keyring session, and will not inherit any environment variables or resource limits, among other properties.

Несколько слов от Леннарта про su(1):

Well, there have been long discussions about this, but the problem is that what «su» is supposed to do is very unclear. On one hand it's supposed to open a new session and change a number of execution context parameters (uid, gid, env, ...), and on the other it's supposed to inherit a lot concepts from the originating session (tty, cgroup, audit, ...). Since this is so weakly defined it's a really weird mix&match of old and new paramters. To keep this somewhat managable we decided to only switch the absolute minimum over, and that excludes XDG_RUNTIME_DIR, specifically because XDG_RUNTIME_DIR is actually bound to the session/audit runtime and those we do not transition. Instead we simply unset it.

Long story short: «su» is really a broken concept. It will given you kind of a shell, and it's fine to use it for that, but it's not a full login, and shouldn't be mistaken for one.

THis has come up many times, but nothing really changed, hence closing this now. I understand this is confusing and unexpected, but well, that's UNIX...

man

 , ,

i_gnatenko_brain
()

GNOME News — новое приложение проекта GNOME для чтения новостей

Несколько дней назад Игорь Гнатенко, Вадим Рутковский и Аллан Дэй начали работу над приложением GNOME News, которое предназначено для получения новостей из различных источников. Поддерживаются ленты в формате RSS/Atom, запланирована интеграция с Owncloud News, Feedly, Pocket и Google Activities. Приложение написано на Python и использует библиоткеки GTK+, поисковый движок/хранилище метаданных/набор утилит Tracker и движок для рендеринга веб-страниц WebKitGtk+. Сейчас приложение находится в начальном этапе развития, но им уже можно пользоваться для чтения лент в формате RSS/Atom.

Исходные коды, как обычно, доступны под лицензией GPL 3.0+.

Видеодемонстрация (от PaulCarroty)

Подробности

Перемещено Pinkbyte из gnome

 , gnome-news

i_gnatenko_brain
()

Посоветуйте опенсорсный экономический tycoon

Что-нибудь вроде Linux-Tycoon. OpenTTD не советовать.

 , ,

i_gnatenko_brain
()

Зачем проекты бандлят кучу либ и не дают юзать системные ?

 , ,

i_gnatenko_brain
()

Огромная скидка на экзамен RHCA

Привет ЛОР,

Сегодня выиграл большую скидку на экзамен RHCA. Но у самого нет RHCSA и RHCE, так что сам не могу сдать по причине отсутствия денег. Есть желающие получить сертификат на скидку?

Перемещено JB из admin

 ,

i_gnatenko_brain
()

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

Некоторое время назад, один товарищ мне посоветовал попробовать 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
()

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

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

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

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

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

 , ,

i_gnatenko_brain
()

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

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

 , ,

i_gnatenko_brain
()

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

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

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

сабж. tazhate[

i_gnatenko_brain
()

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

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

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

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

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

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

 warlight,

i_gnatenko_brain
()

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