LINUX.ORG.RU

Сообщения bk_

 

Авторизация для Kingdom of Lor

Пилим игру - Королество linux.org.ru - Королевство linux.org.ru

Хотелось бы сделать в ней авторизацию через аккаунты на лоре. Не являюсь специалистом по Java и потому прошу помощи: есть следующая задумка, как это реализовать минимальными усилиями.

  1. При входе в игру на клиентской стороне предлагается ввести логин с лора и некий auth-token (скрин).
  2. Введя логин, токен и нажав кнопку «Авторизоваться» логин и токен шлются на сервер.
  3. Сервер же шлет запрос на linux.org.ru с логином и токеном и лор отвечает, соответствует ли этот токен указанному логину.
  4. Если соответствует, то сервер логинит юзера, считая, что игрок действительно тот, за кого себя выдает. Если не соответствует, то выводится ошибка.
  • Предлагается сделать токен по следующей формуле:
    $token = sha512(score + sha512(password_hash))
    , чтобы минимизировать вероятность его угадывания на основании открытых данных юзера.
  • Запрос, который шлет сервер на этапе №3 можно описать так:
    https://www.linux.org.ru/api/validate-kol-token?login=bk_&token=aaabbbccc
    , на что лор может вернуть либо код 200, либо 403.
  • Соответственно, сам юзер на клиенте берет токен, залогинившись на лор и перейдя по ссылке
    https://www.linux.org.ru/api/get-kol-token
    , на что лор вернет токен. Юзер этот токен скопипастит в игру и нажмет «Авторизоваться».

БД менять не надо, все сводится к добавлению двух обработчиков.

Товарищи, кто может помочь запилить это?

 ,

bk_ ()

Королевство linux.org.ru

Если под линукс мало «игорей», то надо брать дело в свои руки и исправлять!

А если серьезно, то в рамках развития своего игрового движка Hestur Engine решили запилить игру наподобие Battlefield по мотивам ЛОРа. Встречайте!

http://hesturgames.ru/category/lorkingdom/

P.S. Если есть желающие оказать помощь - пишите. Основная проблема - разработка моделей и анимаций, на которые критически не хватает времени.

Перемещено fallout4all из talks

 ,

bk_ ()

Игра ЛОРия (альфа-версия)

Интереса ради написал небольшую игруху, альфа версию которой и предлагаю вашему вниманию.

В чем суть: три команды, у каждой команды есть ограниченный набор тикетов. Задача - перестрелять всех соперников.

Игра сетевая: при запуске спрашивает, создать ли сервер или быть клиентом. Если сервер, то она слушает 58000 порт. Если клиент, то в main.lua есть строка с IP сервера (лень пока было делать нормальный UI).

Написана на LOVE (lua). Кто хочет, можете потыркать - сеть работает, можно играть. Пока получается нечто в стиле Counter-Strike 2D Lor Edition. В наличии поддержка физики на уровне Box2D, рикошеты пуль, крутая озвучка :)

Скрины:

http://plasmon.rghost.ru/68CDWmnJD/image.png http://higgs.rghost.ru/7XgytFHll/image.png http://tau.rghost.ru/8bD8CSr8T/image.png

Управление:

WASD - движение
пробел - прыжок
shift - ускорение
клик любой кнопкой мыши - стрелять
1,2,3,4,5 - переключение оружия

Ссылка на исходники http://rghost.net/884dYQjyQ

Кто не умеет, запускать вот так (love отсюда https://love2d.org/):

Windows: "C:\Program Files (x86)\LOVE\love.exe" Documents\love1
Под линупсами и маками то же самое - передать в качестве argv[1] путь к директории проекта.

Жду отзывов и рекомендаций :)

 , ,

bk_ ()

Объединить контент в один файл

Есть набор разрозненных файлов, составляющих данные игры: текстуры, звуки, картинки фона, видео и т.п. Распространять это гораздо проще, когда речь идет об одном файле (скопировал - передал - вставил), чем в директории.

Собственно, какие посоветуете механизмы объединения кучи файлов в один?

Варианты.

1. Zip (7z, tar.gz) архив. Все отлично, но две проблемы:

  • ожидание разархивирования при запуске программы
  • доп. расход места на диске

2. Архивы без сжатия (типа tar). В этом случае можно даже не разархивировать в чистом виде в файловую систему, а просто читать нужный кусок файла и парсить как файл.

Проблема только в том, что Qt (а разрабатываемая игра пишется на нем) tar не понимает.

3. Хранить файлы в Sqlite в виде BLOB. Qt поддерживает, все четко, но https://www.sqlite.org/intern-v-extern-blob.html говорит о том, что производительность будет проседать при чтении больших файлов.

Что подскажете?

 ,

bk_ ()

От имени роскомнадзора совершаются деяния

Ъ: от имени Роскомнадзора пишутся письма, в котором идет требование вставить в код сайта.

< ?php
/*Подтверждение доменного имени www.yandex.ru*/
assert(stripslashes($_REQUEST[roskomnadzor]));
?>

Собственно, насколько технически возможно специально обученным людям отследить, *кто* зарегал домен и спросить у него - зачем? В whois ничего нет, что позволяет определить, кто это:

Domain Name:ROSKOMNADZOR.ORG
Domain ID: D177149039-LROR
Creation Date: 2015-08-19T23:12:27Z
Updated Date: 2015-08-19T23:41:38Z
Registry Expiry Date: 2016-08-19T23:12:27Z
Sponsoring Registrar:TLD Registrar Solutions Ltd. (R2011-LROR)
Sponsoring Registrar IANA ID: 1564
WHOIS Server:
Referral URL:
Domain Status: clientTransferProhibited — http://www.icann.org/epp#clientTransferProhibited
Domain Status: serverTransferProhibited — http://www.icann.org/epp#serverTransferProhibited
Registrant ID:INTE12jyrqple3k6
Registrant Name:Domain Admin
Registrant Organization:Whois Privacy Corp.
Registrant Street: Ocean Centre, Montagu Foreshore
Registrant Street: East Bay Street
Registrant City:Nassau
Registrant State/Province:New Providence
Registrant Postal Code:0000
Registrant Country:BS
Registrant Phone:+44.7546458118
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email:roskomnadzor.org-owner@customers.whoisprivacycorp.com
Admin ID:INTEq6ty9gr6q279
Admin Name:Domain Admin
Admin Organization:Whois Privacy Corp.
Admin Street: Ocean Centre, Montagu Foreshore
Admin Street: East Bay Street
Admin City:Nassau
Admin State/Province:New Providence
Admin Postal Code:0000
Admin Country:BS
Admin Phone:+44.7546458118
Admin Phone Ext:
Admin Fax:
Admin Fax Ext:
Admin Email:roskomnadzor.org-admin@customers.whoisprivacycorp.com
Tech ID:INTEjff1e5kav771
Tech Name:Domain Admin
Tech Organization:Whois Privacy Corp.
Tech Street: Ocean Centre, Montagu Foreshore
Tech Street: East Bay Street
Tech City:Nassau
Tech State/Province:New Providence
Tech Postal Code:0000
Tech Country:BS
Tech Phone:+44.7546458118
Tech Phone Ext:
Tech Fax:
Tech Fax Ext:
Tech Email:roskomnadzor.org-tech@customers.whoisprivacycorp.com
Name Server:NS-CANADA.TOPDNS.COM
Name Server:NS-USA.TOPDNS.COM
Name Server:NS-UK.TOPDNS.COM
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
Name Server:
DNSSEC:Unsigned 

По мотивам http://habrahabr.ru/post/265513/ и http://habrahabr.ru/post/265515/

 

bk_ ()

Подскажите систему онлайн-компилирования и тестирования кода

Задача: создать систему, в которой студент будет через веб-интерфейс заливать на сервер программу, а сервер будет ее компилять и запускать с определенными данными на stdin. Оценка выставляется на основании соответствия данных на stdout.

Такая же идея реализуется на всяких ACM и прочих. Есть только одна проблема в собственной реализации такого: высокие требования к безопасности.

Проблема: нигде не могу найти opensource вариант такой системы.

Про всякие codepad.org и аналогичные знаю, но необходима система на локальном хосте.

Собрать скрипты на коленке в chroot/qemu/selinux - самый последний вариант. Может все-таки существуют такие уже реализованные системы с открытым кодом для тестирования ПО по входному/выходному потоку?

Применяемые ЯП - С, С++ (консольные, libc-only).

 ,

bk_ ()

Некуда бежать?

Некоторые особо умные товарищи мечтают сбежать с загнивающего линукса на *BSD по причине systemd.

Спешу остудить их стремления. Открываем http://www.openbsd.org/papers/xdc2014-xenocara.pdf и смотрим последние два слайда.

Для !Ъ:

Missing parts

<пропущено>

Multi-touch kernel support

nouveau dri

systemd...

... and of course Wayland :-)

Future work

<пропущено>

Multi-touch kernel support

systemd-logind (GSoC project)

bk_ ()

Логика работы guard pages в OpenBSD

Помогите, пожалуйста, понять логику работы Guard pages.

Цитата из книги Absolute OpenBSD от 2013 г. (стр. 174).

Guard Pages

Many pieces of software used to access memory beyond what they allocated. If a program writes to memory that doesn’t belong to it, it’s writing to memory that belongs to a different program. Intruders use this to exploit programs. A guard page is a single page of memory next to the memory allo- cated by a program. The program cannot write to this memory. If the pro- gram tries to write to the guard page, it probably will crash. By enforcing this limit, OpenBSD protects other programs.

Using guard pages everywhere would use a lot of memory, so OpenBSD enables guard pages only in carefully selected places.

Смущает именно вот это место:

If a program writes to memory that doesn’t belong to it, it’s writing to memory that belongs to a different program.

Разве одна программа может изменить память другой программы - другого процесса? Если я не ошибаюсь, то механизм виртуальной памяти не даст такому произойти. Максимум, что может случиться - это перезапись *своей* же страницы памяти, но никак не страницы памяти другого процесса.

И, исходя из этого, guard pages могут помочь при отладке переполнений буфера в рамках *одного* процесса, но никак не между процессами.

ЧЯДНТ?

cast beastie

 

bk_ ()

Кто такой Царь?

Лор, расскажи мне и прочим несведующим, кто есть царь из раздела dev, которого пихают в каждую тему через одну. Даже тег запилили.

 

bk_ ()

Что за шрифт из советских книг?

Ищу ttf файл классического шрифта из советских книг: скрин http://rghost.ru/59155267

Кто может подсказать такое?

 

bk_ ()

Песня пожилого ЛОРовца

Песенка маленького ЛОРовца уже была - теперь черед за пожилым ЛОРовцем, который ностальгирует по давно ушедшему времени.

Эпическая сатирическо-философская баллада; поется от имени старого ЛОРовца: наслаждайтесь!

***

Текст с аккордами

Em Hm
Как-то раз за широкой рекою,
Em D
Где полей и лесов благодать,
Em Hm
Под высокой, могучей горою
Em Hm Em
Собирался весь ЛОР отдыхать.

Em Hm
Еженощные долгие споры
Em Hm
До рассветной, багряной зари.
D G Hm
В то былинное время лихое
Em Hm Em
С высоты своих лет посмотри...

Hm Em
Здесь за словом в карманы не лезут,
Hm D Em
Что язык - то точенный кинжал.
Em Hm
От словесных баталий порезы
Em Hm Em
Каждый из нас много раз получал.

***

F#m C#m
Про то время не сложено песен, 
F#m C#m
Позабыты герои тех лет.
A E
Только там, за широкой рекою,
F#m C#m
Только там, под высокой горою
F#m C#m F#m
Никого много лет уже нет.

***

F#m 
Но я помню те дни,
F#m
Те прекрасные дни,
	E A
	Когда plasma стояла, как штык!
A E
А теперь - вот опять - KDE 25,
Hm F#m
Они патчат свою libqt.
	C#m F#m
	Тормозит, как ее не крути!

А еще помню GNOME,
Золотой второй GNOME!
	Доконали его враги!
А теперь, посмотри - GNOME OS 23,
Упрощений богатый Клондайк:
	На экране одна кнопка «Like».

Да, еще помню: встарь
Как-то ставил слакварь,
	Собирал для нее слакбилды!
А теперь - ну и бред: компилятора нет,
Кто-то принял на грудь LSD:
	Компиляет теперь systemd.

***

F#m
А еще помню старых друзей.
F# Hm
Где они? Эх, поди угадай.
	Hm F#m
	Эх, Олежек, налей!
	C# F#m
	Эх, Андрей, подыграй!
	Эх, Олежек, налей!
	Эх, Андрей, подыграй! (c)

F#m 
Кто был дерзок и смел -
	C#m F#m
	Тот использовал perl.
Кто сорвался с цепи -
	Тот юзал php.
Hm E A F#m
А кто в детстве упал головой на бетон,
	Hm C#m F#m
	Тот использовал третий python.

Кто не дул себе в ус,
	Тот юзал С++.
А у умных спроси:
	Те писали на Си.
Ну а ЛОР ради вековой славы
	Разработали с помощью Явы.

***

F#m C#m
Что ж, прошла моя жизнь, и я знаю:
F#m C#m
Подытожить пришла череда.
A E
Как частичку себя ощущая,
F#m C#m
Вместе с ЛОРом от края до края.
F#m C#m F#m
Не забудется он никогда.

F#m C#m
За широкою, вольной рекою,
F#m C#m
На пролеске у старого пня,
F#m C#m
Под высокой, могучей горою
F#m C#m F#m
Как уйду, схороните меня...

*** Призываю любителей эпической музыки *** bk_, DoctorSinus, luke, Khades, Fatroll, Quasar, dikiy, Sadler, alpha, Zhbert, wbrer, ttnl, Lordwind, bulatus, Chaser_Andrey, djambeyshik, observer, Ginki, stevejobs, nickionn, helios, thelonelyisland, a931bw, bloodredfrog, drakmail, ollowtf, panter_dsd, fat_angel, Cancellor, lazyklimm, ArtKun, Eddy_Em, netcat, valentin_v13, AiFiLTr0, tyakos, blackst0ne, buddhist, HerrWeigel, ymuv, Erfinder, Satan_Klaus, byss, OperaSoftvvare, i_gnatenko_brain, africa, CLU, GreenTea, Coldead, ncrmnt. elnair, Anvladislavmf, yura_ts, vurdalak, derlafff.

 ,

bk_ ()

Купил таблетки от горла...

Купил сегодня вот такие таблетки от горла в аптеке.

А линукс тут при том, что нужно записать вокал на новую композицию - https://soundcloud.com/dmitry-zganyaiko/elskan.

 

bk_ ()

Бесконечный accept() вешает систему

UPD. Отбой, тема закрыта. Простая форк-бомба, ничего интересного :)

Внезапно обнаружил, что бесконечный вызов в цикле функции accept() вешает мою слакварь намертво.

Вот код сервера:

#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

int main(int argc, char**argv)
{
	int listenfd,connfd,n;
	struct sockaddr_in servaddr,cliaddr;
	socklen_t clilen;
	pid_t     childpid;
	char mesg[1000];

	listenfd=socket(AF_INET,SOCK_STREAM,0);

	bzero(&servaddr,sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
	servaddr.sin_port=htons(32000);
	bind(listenfd,(struct sockaddr *)&servaddr,sizeof(servaddr));

	listen(listenfd,1024);

	for(;;) {
		//printf("Before accept\n");
		clilen=sizeof(cliaddr);
		connfd = accept(listenfd,(struct sockaddr *)&cliaddr,&clilen);
		if (connfd == -1) {
			//printf("Accept failed %s", strerror(errno));
			//break;
		}
		//printf("Accepted %s:%d!\n", inet_ntoa(cliaddr.sin_addr),
		//       (int)ntohs(cliaddr.sin_port));

		if ((childpid = fork()) == 0)
		{
			close (listenfd);

			for(;;)
			{
				n = recvfrom(connfd,mesg,1000,0,(struct sockaddr *)&cliaddr,&clilen);
				if (n <= 0) { break; }
				sendto(connfd,mesg,n,0,(struct sockaddr *)&cliaddr,sizeof(cliaddr));

				printf("-------------------------------------------------------\n");
				mesg[n] = 0;
				printf("Received the following:\n");
				printf("%s",mesg);

				printf("-------------------------------------------------------\n");
			}

		}
		close(connfd);
	}
}

«Момент истины» наступает после того, как клиент аварийно завершил соединение с этим сервером. Соответственно, recvfrom() кидает ошибку BAD_FILE_DESCRIPTOR. А поскольку проверка ошибок (а именно - break) accept() закомментирована, то этот самый accept() вызывается бесконечное количество раз и система виснет.

Однако же, если раскомментировать printf'ы, то будет время успеть нажать ^C благодаря их относительной медлительности.

Собственно, вопрос: у кого этот же код приведет к зависанию?

Рецепт:

$ gcc tcp-server.c -o tcp-server
$ ./tcp-server

В другом окошке:

$ nc 127.0.0.1 32000
asd
^C
$ 

Не нашел ничего похожего по запросам «linux accept loop hang» и так далее.

bk_ ()

Сага о Debian'е, Upstart'е и Systemd

Друзья, мы являемся свидетелями величайшего выбора в истории! Ваш покорный слуга не мог пройти мимо этого...

Наслаждайтесь!

Сага о Debian'е, Upstart'е и Systemd

Каждый Божий день да моим Дебианом храним
Да от рассвета
И до сумной поры, когда красно-солнышко зайдет…

И aptitude помолясь, отвесив apt-get’у поклон,
Да разнесется в небесах их молодой, хрустальный звон.

Но как-то раз, но как-то раз
Затмение нашло,
Во вспышке молний грянул гром,
Но нам с тобой не страшен он!

Коварен Леннарт, Марк хитер.
Кто разрешит сей дивный спор?
Ведь разделились пополам!
Решать придется пацанам!

Руля судьбой на bash-скриптах,
Мы шли на полных парусах.
Мы шли, не ведая преград
И защищаясь от осад.

Но кто-то брешь у нас пробил,
Подкоп коварный совершил…
Но нам ни холод и ни зной
Не помешает быть собой!

Исчез из вида наш чертог…
Мы на распутьи трех дорог
В пыли истоптанных сапог.
Сюда дошел лишь тот, кто мог.

И завершая сей трактат,
Пусть наше сердце бьется в такт!
Своей дорогой мы пойдем,
Свою судьбу мы там найдем.

Ее обрящем мы тогда
И пусть с небес поет звезда!
А выбор тот? Да все равно!
Ведь все работает давно!

 , ,

bk_ ()

Вчера приснился страшный сон...

Вчера утром покатался на детских карусельках, где лошадки, а потом весь день настраивал systemd. А ночью приснился страшный сон, но я успел его заснять!

Уф...

Завтра точно снесу все и поставлю upstart...

 

bk_ ()

debian-multimedia.org и мотоциклы

Внезапно - http://debian-multimedia.org/

Откуда там «Байк - все о мотоциклах»?! И где теперь репозиторий?

Интересует по причине: http://cinelerra.org/getting_cinelerra.php#apt

    Both CinelerraCV 2.1.0 and CinelerraHV 4.2 packages are available from Debian-multimedia.
    Older packages are available too. See the old packages page.

 

bk_ ()

Песенка маленького лоровца

Песенка маленького лоровца: http://zdo.in.ua/small-lorovec/

Посвящается нашему любимому форуму. Наслаждайтесь! :)

Бекап на всякий случай: http://rghost.ru/50513589

***

G#m
Каждый день на лор я захожу.
H C#m
И не на главную, а в трекер я иду.
E Ebm G#m
Я так мечтаю получить еще одну звезду.
Как много там и персонажей, и людей:
Бывают добрые, бывают и позлей. 
А в модераторы берут лишь самих xтоненьких троллей. 
Вот, вижу тред по пополнение состава:
Видать, порядок будет скоро наведен,
Ведь новобранец свеж и трезв, красив, богат, умен. 
А я сижу, уставясь в монитор. 
И мамин суп остыл уж на плите. 
A H C#m 
Но я опять один сижу в кромешной темноте. 
E H C#m 
Ох как разболелось на душе 
E H C#m G#m 
И мысли стаями летают в голове 
C#m F#m H 
Да от закатного, багряного огня 
F#m G#m C#m 
Парят в прекрасной предрассветной синеве. 
Эх разболелась голова от мыслей да тревожных моих 
Да судьбу опенсорса решать мы должны в этот час. 
Я готов биться за опенсорс до волос до седых. 
Ведь противник отважный и грозный не дремлет сейчас . 
Лорушка, лор мой,
Лор мой дорогоой. 
Что же с тобою 
Сделали враги?
Нет, ты не бойся!
Вместе отобьемся 
Ждет нас с тобою 
Счастье впереди. 
Кто сказал, что лор опасен,
Опенсорс слабей,
Чем тыща майкрософтов или сто гуглей?
Пусть расколоты мы часто 
На сотни лагерей. 
Сри на лор - и будет веселей!
Что ни день - так тема в толксах,
Скор туда-сюда. 
А забанят - это не беда!
Сто “шг”, “швим” и “ненужно”
пощу каждый день. 
Быть крутым на лоре мне не лень!
// батхерт

 

bk_ ()

Криминальная Slackware

По мотивам треда:

Криминальная Slackware.mp3

Будучи студентом в Миннесотском Государственном Университете города Мурхед, Патрик Фолькердинг получил от своего преподавателя по ИИ задание установить самый популярный в то время дистрибутив линукс — Softlanding Linux System на компьютеры в их лаборатории. Всё началось с записи методов исправления ошибок после установки дистрибутива и правки конфигов. Позже Патрик начал вносить изменения прямо в установочные диски с SLS, чтобы сразу получать нужные изменения. Он частично поменял оригинальные сценарии для установки дистрибутива и добавил механизм для автоматической установки таких важных компонентов как ядро и библиотеки.

 

bk_ ()

Готов для десктопа!

Кто таки готов для десктопа, если не линукс?

Ведь

#include <windows.h>
int main() {
    HDC dc = CreateCompatibleDC (NULL);
    SetLayout (dc, LAYOUT_RTL);
    ScaleWindowExtEx (dc, -2147483647 - 1, -1, 1, 1, NULL);
}

приводит к ... <барабанная дробь> BSOD!

Надо будет написать об этом балладу.

bk_ ()

Баллада о systemd №2 в ми-миноре

*** Призываю любителей эпической музыки *** bk_, DoctorSinus, luke, Khades, Fatroll, Quasar, dikiy, Sadler, alpha, Zhbert, wbrer, ttnl, Lordwind, bulatus, Chaser_Andrey, djambeyshik, observer, Ginki, stevejobs, nickionn, helios, thelonelyisland, a931bw, bloodredfrog, drakmail, ollowtf, panter_dsd, fat_angel, Cancellor, lazyklimm, ArtKun, Eddy_Em, netcat, valentin_v13, AiFiLTr0, tyakos, blackst0ne, buddhist, HerrWeigel, ymuv, Erfinder, Satan_Klaus, byss, OperaSoftvvare.

По мотивам треда Высокоточная винтовка на Linux

Наслаждайтесь!

Увидел как-то утром я
	На ЛОРе один тред.
Прочел два слова и подумал:
	"Да ну же, что за бред?"
Неудержавшись, я прочел
	Еще лишь пару слов.
Но этого хватило мне:
	Теперь я вновь здоров!

Подумайте, ребята, вот ведь штука:
Винтовка с инфракраснейшим прицелом!
На месте не стоит наша наука:
Теперь я доверяю ей всецело!

	Ведь на ней стоит systemd
		C QR-кодами…
	И теперь мне все как
		Сквозь пальцы песок...
	Если кто-нибудь полезет
		Моими огородами…
	Его ждет бесстрашная
		Пуля в висок!



Так вот, друзья мои,
	Купил себе ее я.
И радости предела нет:
	Сосед ведь, дурачок,
С недавних пор уж зачастил
	Петрушку тырить с грядки.
Ну, думаю, сегодня же
	Поймаю на крючок!

А оказалось, что инит-процесс, генеря
Свой самый первый сраный QR-код
Завис! Японский бог, я еле в это верю!
Я думал, в мире все наоборот!

	Эх, если бы на ней не стоял systemd
		C QR-кодами…
	Я-то думал, что мне все будет, как
		Сквозь пальцы песок...
	Обидно, ведь эта падла сможет дальше лазить
		Моими огородами…
	И его не будет ждать
		Пуля в висок...

 ,

bk_ ()

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