LINUX.ORG.RU

Избранные сообщения st4l1k

За что вы любите FreeBSD/OpenBSD/NetBSD?

Форум — Talks

За что вы цените BSD, и в чём преимущество на «production»?

Какой софт «крутите»?

Собираете ли софт для BSD из исходников?

Как дела с виртуализацией?

Последнее время растёт популярность BSD систем у облачных провайдеров:

  • vultr
  • digitalocean
  • scaleway
  • yandex cloud

и другие предлагают образы с BSD системами в качестве рабочих лошадок, либо самому залить свой образ ОС, есть ли смысл в BSD?

Перемещено leave из general

 , , , ,

menangen ()

Представлен donate ― self-hosted сервис пожертвований на задачи

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

Особенности:

  • KISS;
  • self-hosted;
  • отсутствие сборов (для примера, bountysource и gitcoin забирают себе 10% от выплаты);
  • поддержка множества криптовалют (на данный момент это Bitcoin, Ethereum и Cardano);
  • предполагается (и предусмотрена) поддержка GitLab, Gitea, и других Git-хостингов в будущем.
  • глобальный список задач со всех (то есть одного, на момент написания новости) инстансов на donate.dumpstack.io.

Механизм работы для GitHub со стороны владельца репозитория:

  • (опционально) необходимо развернуть сервис, можно использовать готовую конфигурацию для NixOS;
  • необходимо добавить GitHub Action — внутри вызывается утилита, которая сканирует задачи проекта и добавляет/обновляет комментарий о текущем состоянии кошельков для пожертвований, при этом приватная часть кошельков хранится только на сервере пожертвований (в будущем с возможностью вынести в оффлайн для крупных пожертвований, для ручного подтверждения выплаты);
  • во всех текущих задачах (и новых) появляется сообщение от github-actions[bot] с адресами кошельков для пожертвований (пример).

Механизм работы со стороны выполняющего задачу:

  • в комментарии к коммиту указывается, какую именно задачу этот коммит решает (см. closing issues using keywords);
  • в теле pull request указываются адреса кошельков в определенном формате (например, BTC{address}).
  • при принятии pull request выплата совершается автоматически.
  • если кошельки не указаны, либо указаны не все, то выплата средств для неуказанных кошельков совершается на кошельки по-умолчанию (например, это может быть общий кошелек проекта).

Безопасность:

  • поверхность атаки в целом небольшая;
  • исходя из механизмов работы, сервис должен иметь возможность отправлять средства самостоятельно, так что получение доступа к серверу будет означать контроль над средствами в любом случае — решением может быть только работа в неавтоматизированном режиме (например, подтверждение выплат вручную), которая вероятно (если проект будет достаточно успешен для того, чтобы кто-то задонатил на эту функциональность, то не вероятно, а точно) будет когда-то реализована;
  • критически важные части четко отделены (по сути, это единственный файл pay.go на 200 строк), тем самым упрощая security code review;
  • код прошел независимое security code review, что не означает отсутствие уязвимостей, но снижает вероятность их наличия, особенно в свете запланированной регулярности ревью;
  • также есть те части, которые не контролируются (например, API GitHub/GitLab/etc.), при этом возможные уязвимости в стороннем API планируется закрывать дополнительными проверками, тем не менее, в целом проблема в текущей экосистеме нерешаема и out of scope (возможная уязвимость с, например, возможностью закрывать чужие pull request и тем самым добавлять код в чужие проекты ― имеет гораздо более глобальные последствия).

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

 , , ,

anonymous ()

Хаб вакансий для желающих переехать за границу?

Форум — Talks

Хотелось бы страну где понимают английский или русский. Но сама Британия не подходит, думаю там своих хватает.

И перед таем как что то планировать, хочется узнать кто вообще нужен?

Или я не так все понимаю?

 ,

Shulman ()

Нашёл однострочник для сборки Ruby 2.6.0

Форум — General

Сабж. Релизный вариант меня удивил. Ведь, ещё -rc2 версия спокойно собиралась при помощи

./configure --prefix=/usr --enable-shared && make -j16
А при сборке релизной версии ошибка на ошибке. Как оказалось, корни проблемы уходят в обновлённые файлы
tool/config.guess
tool/config.sub
из за которых стали подставляться другие опции. Если заменить их на прежние версии, то всё собирается прежней командой.

А как собрать новую версию с новыми файлами? Можно принудительно передать нужные опции. И получается вот такой вот однострочник с которым всё собирается:

DLDSHARED="gcc -shared" LIBRUBY_LDSHARED="gcc -shared" LDSHARED="gcc -shared" MJIT_LDSHARED="gcc -shared" LDSHAREDXX="g++ -shared" ./configure --prefix=/usr --enable-shared --disable-rpath && make -j16

 

saahriktu ()

Archlinux + bspwm v.1

Галерея — Скриншоты

Больше скринов — смотреть здесь.
WM — bspwm.
Панель — LemonBoy/bar.
Тема-GTK — сформирована Тут.
Иконки — Nitrux.
Terminal — termite, shell oh-my-zsh.
Firefox — Arc Theme поверх её twily подпилена.
Меню — xfce4-appfinder и dmenu.
Шрифты — Droid Sans, Hack и иконочный Font Awesome.
Палитра — тут.
Еще — compton, ncmpcpp и тд.

Обоя.

>>> Просмотр (1366x768, 55 Kb)

 , ,

stupid ()

Обновление кассового сервера QKkmServer до версии 5.15.11.9

Новости — Проприетарное ПО
Группа Проприетарное ПО

Вышло обновление набора программ проекта QKkmServer — кроссплатформенного кассового сервера для ФР, использующих протокол управления ФР Штрих-М.

Возможности:

  • управление ФР по сети;
  • управление из разных ОС;
  • управление посредством размещения файлов в отслеживаемом каталоге;
  • полный контроль операций с ФР.

( Подробности )

>>> Сайт проекта

 , , ,

HEXen ()

Web Framework Benchmarks раставил всех по своим местам

Форум — Talks

Как говорится вместо тысячи слов: https://www.techempower.com/benchmarks/#section=data-r11&hw=peak&test... и https://www.techempower.com/benchmarks/#section=data-r11&hw=peak&test...

И о готовности Mono, и о тормозах Java, и о полезности Goroutine для серверов, и о крутости vibe.d

 , , , ,

foror ()

После многих лет проганья на C++ я узнал, что C массивы работают не совсем так, как я думал

Форум — Development

Я всегда думал, что в C массивы, определенные как-то так int array[13] = {0}; это на самом деле то же самое, что int*, то есть память выделяется на стеке, и где-то там есть локальная переменная array, указывающая на кусок памяти под 13 интов. И я думал, что единственная разница между массивом и указателем это то, что для массива переопределен оператор sizeof, и соответственно компилятор статически знает его размер.

Сегодня я учился работать в gdb, рассматривал там всякие значения и адреса переменных, и тут конфуз у меня случился. Есть переменная fptr ptrs[3] = { NULL, get_wisdom, put_wisdom };, остановился я в gdb на брейкпоинте, и пишу

(gdb) print ptrs
$12 = {0, 0x804857e <get_wisdom>, 0x8048627 <put_wisdom>}

И думаю: «хмм, странно, почему этот gdb по умолчанию печатает массив/указатель как массив? Пробую print /a ptrs - не получается. Ну ладно, думаю я, видимо в gdb так переопределен принт для массивов, определенных как массивы, и /a почему-то не работает, ну да и хрен с ним.

Пробую затем

(gdb) print &ptrs
$13 = (fptr (*)[3]) 0x804a0d4

и думаю: „ага, почему-то чтобы мне получить значение указателя ptrs, надо написать & - странно плохо сделали тупо, а теперь я хочу получить адрес собственно переменной ptrs, а не ее значение:

(gdb) print &&ptrs
A syntax error in expression, near `&&ptrs'.

А оно не работает. Ну тут я начинаю понимать, что что-то здесь нечисто, и возможно я неправильно понимаю C-шные массивы. Иду и создаю на тест программу:

#include <stdio.h>

int main() {
    int array[5] = {0};
    printf("array = %p\n", array);
    printf("&array = %p\n", &array);
};

запускаю ее, а оно выдает

array = 0xbffff530
&array = 0xbffff530

Мамочки, думаю я, так что же, когда в Си объявляешь массив как массив, то он на самом деле не указатель, там нет никакой переменной в памяти, хранящей этот адрес, а есть лишь кусок памяти под 13 или сколько там элементов на стеке, и компилятор статически знает его адрес и при индексации прибавляет к нему сдвиг? И соответственно можно получить лишь адрес этого куска памяти, и этот адрес нигде как переменная не хранится. И соответственно переприсвоить массиву указатель на что-то другое нельзя.

array = calloc(6, sizeof(int));
//a.c: In function ‘main’:
//a.c:7: warning: incompatible implicit declaration of built-in function ‘calloc’
//a.c:7: error: incompatible types in assignment

или

printf("&&array = %p\n", &&array);
// какая-то там ошибка про label'ы, видимо && в C для гоуту используется? не знаю

Вот так я узнал сильно новую для себя вещь про C. Надеюсь, еще через пару лет не найду какой-нибудь нежданчик например в аргументах функций как массивах (вместо указателей) или в чем-нибудь еще.

А вообще мне непонятно, нафиг они так сделали? По-моему если бы были только указатели, без массивов, то было бы проще и удобнее. Ну конечно какая-нибудь там конструкция типа sizeof пускай работает, чтобы можно было статически размер их получать.

 

hlebushek ()