LINUX.ORG.RU

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

Курс про shell и гнутые утилиты для неофита

 , , ,

Нужен ~недельный курс с практикой. Формирующий у новичка понимание основных принципов работы в юних лайк шелле.

Желательно, что бы это было оформлено в виде набора кратких теоретических выкладок сопровождаемых тестами (желательно автоматическими).

Лучше, что бы таковой курс был составлен на английском.

Может попадалось кому, что то в таком духе на глаза?

pon4ik
()

Безумные тред. Список «хитрого». IT-знания с переднего края прогресса.

 

Хотелось бы составить немного невменяемый иррациональный список-кучу «хитрого». Buzzwords из области высокой производительности.

Список будет содержать «хитрое». Хитрое - это узко-специальные знания из области алгоитмов, структур данных, современной аппаратуры, нацеленное на достижение высокой производительности; с чем работают передовые специалисты для достижения максимальной производительности. Также, хитрое - это IT - тенденции/идеи последнего времени.

Среди хитрого может быть и относительное старьё, но упомянуто только затем, что это старьё мало кто знает, а оно с современных архитектурах железа очень полезно для достижения хайлоада.

Начну так:

  • lock-free структуры данных; CAS; барьеры памяти; relaxed, release, acquire и т.п. Блокировки шин, кешей, store-buffer и т.п. — вот это всё.
  • cache-oblivious структуры данных; van Emde Boas layout;
  • false sharing, кеши процов
  • fractal tree (buffered B-Tree), Lars Arge 2003, LSM
  • blockchain
  • netmap
  • HTML5/WebGL/WebSocket/WebAssembly
  • ML: нейросети, forest tree, HMM, WFST-графы

Критика списка не интересует, нужно только дополнение. Считаете список бредом -> не можете продолжить -> не продолжаете -> всё довольны.

hlamotron
()

sql ide?

 ,

в этом вашем линуксе появилось что-то приличное для потсгреса? pgadmin все еще вселяет ужас один своим видом...

Rastafarra
()

Реальные пацаны пишут на Gambas!

 , , , ,

Бодрячком, бодрячком, ребята!

Раз-раз-раз, это Gambas!
Application пишем класс,
И на GSoC'е пацаны
Пишут на Gambas квайны.
Этот ленгвидж любим мы,
Жгём все в ритме ВиВаси.
Сотня строк за пять минут —
Пацаны на ваське жгут.

Кодь на Gambas, если не лох!

Школа рака учит вас
CRUD'ы писать на Gambas,
Клаву до утра топтать
И ничё не принимать.
Питюшёны и кресты —
Наши злейшие враги.
Конпеляя всё за раз —
Отжигаем на Gambas!

Это сырцы гамбасы, веселее, пацаны!

https://www.dropbox.com/s/k7upzmt7zat93rq/Gambas.ogg?dl=1

// Кто не понял, о чём ваще речь: http://gambas.sourceforge.net/en/main.html

contra_sperm_spero
()

Посоветуйте, что почитать по big data

 , ,

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

praseodim
()

JavaScript?!

 , , ,

Бобра всем форумчанам.

Недавно переквалифицировался из чистого бекенда во фронтенд и открыл для себя прекрасный мир JavsScript (оказывается это давно уже Язык, зря к нему так относился пренебрежительно). Появились некоторые вопросы:

  • Что можно почитать из книг именно по ES6?
  • Аналогично - посоветуйте что нибудь по Node.js
  • Так же - по Express и Jade
  • Есть ли какой-нибудь фреймворк для создания игр для декстопа (не html5) кроме Cocos2d (по нему очень плачевные доки для JS)?
  • Какой фреймворк для декстоп приложений рассмотреть? Qt/QML не предлагать - интересен именно фреймворк с поддержкой ES6.
  • Аналогично предыдущему - для мобильников.
  • Лучшая IDE?

Всем спасибо за ответы!

silver-bullet-bfg
()

Почему так по-разному работает COUNT(*) в MySQL?

 ,

Прекрасно знаю, что COUNT(*) в InnoDB не торт... Но не до такой же степени!

Есть две таблицы:

| ...               | tab1 | tab 2|
|-------------------|------|------|
| Число строк, млн  |  3.2 |  4.0 |
| Объём на диске,ГБ |  6.0 |  7.6 |
| Число полей       |    4 |   41 |
| Число индексов    |    1 |   27 |

Вроде как никаких чудес, таблицы почти идентичны (не считая сложности второй), работа с ними идёт равно активно (они, вообще, для двух частей одних и тех же данных и 99% обращений идёт к обеим таблицам сразу).

Так вот, COUNT(*) во второй выполняется за ожидаемые 0.47 сек на холоде. Первая же таблица выполняет COUNT(*) за 7-10 минут!

Дело не в дисках, не в фрагментации — недавно вся БД переносилась на другой раздел, ничего не меняется...

Остальная работа (извлечение записей по индексам, JOIN, сортировки) работает отлично.

Есть мысли с чем такое поведение может быть связано?

KRoN73
()

Озвучка видео в линуксе

 , , ,

ЭТО НЕ ВОПРОС! ЭТО ГОТОВОЕ РЕШЕНИЕ!

sudo cast AP, ist76. Чот больше и не могу вспомнить кому будет интересно.

В начале 2000-х под офтопиком у меня был опыт озвучки короткометражки (не столько в микрофонном смысле, сколько в комплексном, наложение звуков взрывов, ударов, криков, музыки, автоматизация, эффекты, мастеринг). И теперь вот понадобилось сделать то же самое в онтопике.

Конечно, мое решение не единственное. Но я опишу здесь то, что взлетит в 99.999% случаев, т.к. состоит из проверенного временем минимального набора ПО. Решение дающее реально качественный результат на выходе.

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

Сначала теория.

Главные комплексные вопросы: Как синхронизировать начитку синхронного перевода или озвучки с исходным звуком и видеорядом? Как применить аудиоэффекты и чтобы каждый был в свое время, место и с определенными настройками? Как сделать 5.1 или вклиниться в исходный 5.1 или просто сделать 2.0 но на уровне профессионального качества?

Обычно начитывают в микрофон в отдельной программе и потом импортируют кусками в видеоредактор в дополнительную дорожку, подгоняя расположение фраз во времени с видеорядом. Или начитывают прямо в видеоредакторе. Но видеоредактор, он на то и видео, что не аудио и не имеет возможности полноценно работать со звуком. А если нужно добавить звук очень синхронно как в клипах? Или накидать синхронных шумов (пердежь, бьющееся стекло, выстрелы, скрип шагов по снегу, etc..)?

Выводы:

1) Нам нужна DAW (многодорожка, VST(i), LADSPA, automation и прочее).
2) DAW должна уметь мониторинг видео!

Для себя я выбрал Ardour.

Но тут есть нюанс. Ardour поддерживает видеодорожку, но с какой-то там конкретной версии. К тому же, эта шляпа поставляется в качестве отдельной фичи, и нужно конпелять с этим патчем (возможно я и плохо смотрел, тем не менее, зачем искать конкретные версии, возможно этой не будет в репозитории вашей системы или не будет готового пакета). Да и сам патч стартует сервер слушающий сокет и реализует какой-то свой протокол синхронизации. Это как удаление зубов через задний проход. А еще в этом патче есть php (по-ха-пэ!) — ну его нахер этот патч. Так что просто берем тот Ardour который есть в вашей системе.

ГЛАВНОЕ:

Не нужно искать DAW которая умеет видеомониторинг из коробки!
Любая нормальная DAW в линуксе умеет в jack!
Т.е. вы можете взять другую DAW вместо Ardour, я же рассказываю про Ardour.


Вот оно: jack, Ardour, xjadeo. Эти компоненты работают так, как нам нужно. Ardour и xjadeo синкуются через jack.

Описываю по шагам ваши действия:

1) Заканчиваем работу над видеороликом в видеоредакторе не обращая внимания на качество звука — тут главное качество видео.
2) Пережимаем с помощью ffmpeg видеоролик в *.avi (без аудио) говняного качества и/или без сжатия (для того чтобы воспроизведение видео не жрало ресурсы).
3) С помощью ffmpeg вычленяем исходное аудио из качественного видеоролика.
4) Стартуем jack (ставим желаемый samplerate, например 48000гц).
5) Создаем в Ardour проект (внимание на samplerate и fps!).
6) Импортируем в проект исходное аудио, вычленненое ранее с помощью ffmpeg (2.0, 5.1, какое оно там у вас было не важно).
7) Устанавливаем в Ardour опшн «Positional sync source» в значение «JACK».
8) Стартуем xjadeo: $ xjadeo -i 3 /path/do/govno-quality.avi

Картинко

Теперь можно полноценно работать над звуком! Можете начитывать в микрофон прямо просматривая видео. Делать дубли. Двигать, резать, клеить начитанное прямо в DAW и проверять в реальном времени как оно сходится с тем что происходит в видеоряде или соотносится с оригинальным аудио. Добавлять любое кол-во дорожек. Микшировать так как хочется. Применять эффекты и автоматизацию.

После того как вы завершили работу с звуковой частью вашего фильма — рендерите готовый проект в *.wav (умеет и 5.1 например) и склеиваете через ffmpeg старое видео и новое аудио в результирующий видеофайл. Все!

deep-purple
()

Альтернативы штатному препроцессору Си

 ,

Собственно, сабж. Си, в отличии от многих других языков, обладает весьма скудным встроенным макроязыком (и С++ тоже, но там хотя бы есть куча штатного сахара из коробки + шаблоны). Возможно, существуют какие-то проекты по исправлению этого недоразумения?

Мне нравится концепция Vala. «Компилятор» этого языка по сути конвертирует ООП-код в plain C. Но, увы, он гвоздями прибит к glib, что очень плохо. Нет ли подобных проектов, но без привязки к каким-либо библиотекам?

Мои хотелки - некоторый уровень синтаксического сахара. Хотя бы наследование структур. В идеале, конечно, классы с виртуальными методами. Всяких исключений, множественного наследования, RTTI и т. д. не нужно.

Нужна конвертируемость в Си и отсутствие лишнего кода, ибо хочется это использовать с микроконтроллерами.

KivApple
()

Фильмы ужасов

 , ,

Лор, а знаешь какие-нибудь реально страшные фильмы?

Все топы что я находил содержат фильмы столетней давности и всякие экшн/мелодраммы/etc типа 28 дней спустя.

holuiitipun
()

Где взять энтропию для /dev/random и как её протестировать?

 , , , ,

Наличие качественной энтропии крайне необходимо для ОС и критически влияет непосредственно на её безопасность, при использовании техник «случайное выравнивание адресного пространства» (ASLR)! Очень много случайных чисел также необходимо для криптографических операций: шифрования трафика, создания ключей и прочего.

Откуда брать случайные числа:

В системе одновременно можно запускать сразу несколько сервисов для создания энтропии.

Для безопасной работы необходимо >200бит/с энтропии!

$ cat /dev/random
$ reset

Если не секрет, откуда берёте энтропию Вы?

multihead
()

Интересные аудио-подкасты

 

Надоело слушать на плеере музыку. Посоветуйте каких-нибудь аудиоподкастов по теме Linux'a и что вообще слушаете. На русском.

Centrin0
()

Сервер для кооперативного прохождения Brutal Doom

 

Привет, ЛОР.

Мне нечем заняться, и я решил поднять сервер для кооперативного прохождения DOOM с модом Brutal Doom.

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

Адрес сервера: doom.somestuff.org.ru:10666
Сайт: https://doom.somestuff.org.ru
Конференция в джаббере для обсуждения работы сервера: doom@conference.somestuff.org.ru

Пока всё работает в тестовом режиме, и не понятно, насколько оно будет стабильно, играбельно, весело и востребовано.

Для игры необходимо:

Первые два WAD'а с кампаниями распространяются свободно. Остальные четыре являются коммерческими продуктами, и вам придется самостоятельно приобретать их где-то на просторах Интернета, если по какой-то причине у вас их еще нет. На момент написания этого сообщения сервер запущен с freedoom1.wad, но в будущем он может потребовать любой из перечисленных выше WAD'ов.

Инструкция по установке:

# Создаем рабочую директорию:
mkdir -p ~/games/zandronum
cd ~/games/zandronum

# Качаем и распаковываем бинарники с движком:
[ `uname -m` == "x86_64" ] && \
    wget https://zandronum.com/downloads/zandronum2.1.2-linux-x86_64.tar.bz2 || \
    wget https://zandronum.com/downloads/zandronum2.1.2-linux-x86.tar.bz2
tar xvjf zandronum2.1.2-linux-*.tar.bz2
#Если у вас в репозиториях есть zandronum нужной версии, то можно поставить его оттуда, или собрать из исходников.

#Качаем мод Brutal Doom:
wget https://doom.somestuff.org.ru/brutalv20b.pk3
wget https://doom.somestuff.org.ru/DoomMetalVol4.wad

#Качаем WAD'ы с кампаниями:
wget https://doom.somestuff.org.ru/freedoom1.wad
wget https://doom.somestuff.org.ru/freedoom2.wad

#Переносим в рабочую директорию свои копии коммерческих WAD'ов:
cp /path/to/your/wads/*.wad ./

#Делаем первый тестовый запуск, настраиваем графику, управление, ник для сетевой игры:
./zandronum -file DoomMetalVol4.wad -file brutalv20b.pk3 -iwad freedoom1.wad

#Создаем скрипт для подключения к серверу:
echo 'connect doom.somestuff.org.ru:10666' > somestuff.autoconnect

#Подключаемся и играем:
./zandronum -file DoomMetalVol4.wad -file brutalv20b.pk3 -iwad freedoom1.wad +exec somestuff.autoconnect

Deleted
()

Не работает перемотка видео после кодирования с flv на mp4

 

Всем доброго времени суток. Конвертирую видео с помощью ffmpeg из flv в mp4 . После этого на сервере перестает работать стиминг(перемотка). Поискал по форумам и понял что не передаются мета данные, поэтому якобы и не работает перемотка. Можно ли это решить путем самого ffmpeg?

Конвертирую вот так ffmpeg -i video.flv video.mp4 -y

web163
()

Написание свободной(Free as in Freedom) книги-самоучителя по программированию: планы, цели, задачи

 , , ,

Итак, я решил написать(или как вариант, собрать из кусочков) книгу-самоучилель по программированию, в которой бы не было глупых и нелепых ограничений на распространение. Однако копилефт я все же считаю приемлемым в данном случае. Общественным достоянием это не будет т.к. вполне могут найтись желающие использовать результат в своих проприетарных книгах, а проприетарные книги — плохо. Лицензия самого текста книги-учебника будет или Creative Commons Attribution-ShareAlike (что позволит без каких-либо проблем переиспользовать текст из википедии) или что-то вроде GNU Free Documentation License (без неизменяемых разделов естественно).

Лицензии всяких примитивных программок, написанных мной лично, будут вообще выложены под общественным достоянием, WTFPL или аналогичной лицензией т.к. являются тривиальными. Примерно вот так. Если я буду использовать чужие исходные тексты, они будут как включения, лицензируемые отдельно от всего остального. Проблем тут быть не должно.

Теперь к теме того, на кого книга ориентирована, какие начальные знания предполагаются, чему книга будет учить, какой первый ЯП взять и каков будет авторский самысел: С этим моментом я пока что не определился окончательно, и тут есть что обсудить. В частности, я не вижу особого смысла объяснять какие-то базовые понятия комбинаторики, об этом можно доступным языком прочитать из школьных учебников. Системы счисления(СС), перевод из одной СС в другую - вот это еще можно. One's и two's complement представления знаковых чисел — про это тоже можно написать. Если же человек не понимает комбинаторику, он ее быстро поймет на примере кода, который будет достаточно наглядно это показывать, и который всенепременно будет.
Пока что в качестве первого языка я склоняюсь к Си, и тому есть причины. Все прочие распространенные языки (кроме ассемблера, хотя его трудно назвать распространенным) не настолько близки к аппаратному уровню. Про нужность понимания на низком уровне написано тут http://russian.joelonsoftware.com/Articles/BacktoBasics.html https://habrahabr.ru/company/piter/blog/271347/ , не вижу смысла повторяться. Приведу лишь цитату:

«Просто плохой воркшоп попался», — скажете вы. Но на этом примере я хочу подчеркнуть более масштабную проблему: не изучив для начала C, программист оказывается лишен необходимых орудий, позволяющих понять, что именно происходит в используемой системе. Если вы — умный и пытливый питонщик, то вскоре докопаетесь до плотных пород языка C. Под этими горизонтами, скажут вам, «бойся драконов, костей и отладчиков». Соответственно, если вы не будете достаточно отважны и не проигнорируете предупреждений «да не берись ты за этот C», вы никогда не исследуете глубин, на которые можно забраться просто из любопытства.

Притом еще один важный момент: Си будет изучаться параллельно с ассемблером. Если речь идет об изучении ассемблера, необходимо четко зафиксировать то, на какой архитектуре это все происходит и в какой ОС. Так вот, ОС будет GNU/Linux а архитектура x86-64. Будут постоянно проводиться параллели между тем, что из себя представляет код на Си в текстовом виде, и тем, в какой текст на ассемблере его превращает компилятор. В связи с этим, первым делом будет рассказано о goto и конструкции if(условие) goto метка;. Про конструкции вида

if(условие)
{
  что-то_делаем;
}
else
{
  что-то_другое_делаем;
}
Будет рассказано немного позже, притом это будет рассказано и словами, и через написание эквивалентного кода через if(условие) goto метка;. Циклы, for(){} while{}, do{}while(), конструкция switch-case и break continue внутри них будут так же объясняться через все тот же if(условие) goto метка; притом будет делаться явный акцент на том, что намного лучше использовать нормальные циклы, чем лепить всюду этот условный goto. Кроме того, будет так же рассказано про Labels as Values. Почему так важна эта странная штука, if(условие) goto метка;? Потому что она имеет наипрямейшее отношение к тому, как работают ЭВМ, а всякие циклы СКРЫВАЮТ это. Рекурсия в Си будет объясняться только после того, как будет объяснено, что такое стекфрейм и соглашения вызова, будет сказано про оптимизацию хвостовой рекурсии, и о проблеме забивания стека, если такая оптимизация не происходит, притом это будет наглядно показано в ассемблере. Учиться отлаживать код надо будет тоже «с пеленок», притом отлаживать и ассемблер, и всякие там Си. Будет и про асм-вставки в Си, clobber list. В качестве ассемблера будет рассматриваться GAS, а никакой не NASM т.к. GCC умеет выплевывать ассемблер именно в GAS синтаксисе. Насчет выбора Intel или AT&T синтаксиса - тут я склонюсь пожалуй к тому, что надо ЗНАТЬ И УМЕТЬ ПОНИМАТЬ ОБА. Кроме того, GAS давно уже умеет в оба синтаксиса, так что проблем с этим не будет. Единственная проблема с GAS в том, что это однопроходной ассемблер, так что можно освоить и какой-нибудь NASM, YASM.

Первые хеллоуворды будут написаны вообще в особом стиле, без использования printf() и вообще без библиотеки Си; Будут использованы куски на ассемблере, которые делают системный вызов write и read, и с ними можно(нужно) будет линковаться, чтоб что-то вывести на экран. Будет рассказано и про printf естественно, но только когда будет совершенно четко ясно, что такое вообще va_list. Будет куча отсылок к драфту стандарта Си (недрафт почему-то платный). Будет так же рассказано про устройство ОС. В конце скорее всего будет дано задание сделать свою игрушечную ОС так что предполагается что человек к тому моменту должен уже отлично понимать всякие там связные списки, графы, очереди, спинлоки-аллокаторы свои уметь делать на асме при желании. Алгоритмы сортировки, обхода графов, хеш-таблицы, все это будет объяснено на языке Си, и плюсов вообще касаться я не буду.

Насчет графики: работу с протоколом иксов тоже можно будет рассказать, обработку нажатий клавиши. Правда там надо дофига писать про кучу всего, например что есть сокеты, есть AF_LOCAL... Тогда это можно еще и сетевому программированию учить на каких-нибудь беркли-сокетах.

Кроме того, после моей книги предполагается, что человек должен уметь заниматься такими ненужными (в GNU/Linux) на первый взгляд вещами, как крякинг, реверсинг, исправление ошибок в бинарниках, не обладая исходным текстом. Восстановление логики работы программы по дизасму. Ну и программирование в машинных кодах (без ассемблера, одним HEX редактором).

Как-то уж слишком дофига, не находите? Может быть не надо так глубоко во все это нырять? Жду предложений и критики по поводу того, что нужно, а чего не нужно писать. Возможно что я слишком много хочу.

cast ASM be_nt_all mister_VA

UPD: Программирование и отладка на C/ASM - Первые программы. Знакомство с C и ассемблером. Компиляция, линковка, код возврата. Вывод текста.

SZT
()

Видеолекции по математике для школьников

 , ,

Собственно посоветуйте интересные видеолекций по математике для школьников. Ну или хорошие учебники.

Solonix
()

Помогите составить SQL-запрос для вывода дерева комментариев.

 ,

Самый простой и вместе с тем гениальный способ построения дерева, это не использовать никакие id, parent_id, не использовать никакие id_left, id_right смещения, какие там ещё виды дерева бывают...

Самый верный, ИМХО, способ, — сохранять полный путь, который проходит каждое сообщение.

Написали сообщение с ID = 1, затем на него ответили, ответ с ID = 2, а его путь, коли оно является ответом на первое сообщение, будет: «1 2».

Таблица вида

comment_id | thread_path
------------------------
         1 |           1
         2 |         1.2
         3 |         1.3

Где количеством отсутступов «вправо» в дереве является количество ответов в thread_path, и всего один SQL-запрос для вывода всего, с группировкой по дереву.

<?php $try = $dbh->query('SELECT * FROM forum GROUP BY thread_path'); ?>
<?php while ($row = $try->fetchArray()): extract($row); unset($row); ?>
<?php echo str_repeat('&nbsp; ', substr_count($thread_path, '.')); ?>
<?php echo $comment_text; ?>
<?php endwhile; ?>

Рабочий пример: http://spfng.com/forum/

Теперь вопрос. Я не знаю как сделать, чтобы выводить сообщения в обратном порядке, но при этом целиком сохранялось дерево ответов.

Подскажите? Как сделать, чтобы все корневые сообщения, у которых thread_path = comment_id, выводились в обратном порядке, ORDER BY comment_id DESC, но при этом все другие сообщения, которые являются ответами на корневые (которые начинаются как thread_path LIKE comment_id || ".%"), не меняли свой порядок вывода, а оставались как есть сейчас, ORDER BY comment_id ASC. Как-то так...

Это реально в один SQL-запрос уместить?

Spoofing
()

Генерация ID как на YouTube: зачем это надо и как это сделать?

 ,

youtube.com/watch?v=xxxxx...

Первое что приходит в голову, это если мы используем файло-хостинг, то чтобы кто угодно не мог пройтись циклом по всем загруженным файлам от 1 до 10000000 и зная наших нерадивых пользователей, не скачать их секретные документы, которые они по наивности своей доверили нашему хостингу.

Второе, - сорт сокращения URL, можно заменить каждое 10-ое число буквой a, каждое 28 буквой z, ну и так далее, вплоть до спец символов. Вместо длинющего 10000000 получить грубо говоря AAAZ==.

Но не смотря на все эти ухищрения, не все сайты делают правильно, они делают ID из набора букв, но... заменив букву «a» на следующую по алфавиту «b» мы получаем по сути тот-же инкремент +1, и по можно зайти по любому адресу, запросив любой ID объекта. Вот например Reddit: https://www.reddit.com/comments/3xp8s2. От ID тут одно название. Можно делать инкремент букв руками.

Немножко погуглив нашёл такую функцию, alphaID: http://kvz.io/blog/2009/06/10/create-short-ids-with-php-like-youtube-or-tinyurl/

alphaID() генерирует из числа — слово, и наоборот, превращает слово — в число. Для сокращения нормально, но проблему безопасности, защиты от брутфорса оно не решает. Буквы просто заменяются на следующие по таблице ASCII и таким образом инкрементом перебираются все объекты.

Каким же образом генерировать псевдо-случайные ID? И надо ли это делать?

Не хочу использовать рандом, потому что рано или поздно такой рандом упрётся в бесконечный цикл, когда все возможные варианты N-значных ID уже сгенерированы и записаны в БД, а для новых осталось совсем немного свободных вариантов. В общем, плохо.

Нужно, если генерировать, то реально псевдо-рандом как на YouTube, а не просто инкрементальные a -> b делать.

Кто-нибудь может поделиться рецептом?

Spoofing
()

REST - ограничение доступа к публичному API

 , , , ,

День добрый.

Занесло меня на разработку серверной части достаточно крупного REST сервиса. Проект на Spring + Hibernate + Swagger. С социальным логином через Google и Facebook уже яснее. Но еще предполагается, что некоторая часть методов API будет доступна третьим лицам возможно с собственными клиентскими приложениями по подпискам или вроде того. То есть встал серьезный технический вопрос как это сделать. Кто-нибудь сталкивался с подобной задачей?

Сейчас рассматриваются варианты: через HTTP Basic аутентификацию , сертификаты и собственная реализация пересылки ключа через header или cookie. Первый вроде как подходит, там вообще обязательно использовать пару логин плюс пароль или можно свое что-то слать? Использование сертификатов показалось чересчур усложненным.

Еще вопрос: если генерировать ключ на подписчика, то какой алгоритм использовать? Какой-нибудь хэш? Или прокатит и случайный UUID?

spoilt
()

набор не юного мастера паяльника 1 лвла

 ,

В связи с тем, что в ближайшее время появится возможность организовать свое пространство в соответствии со своими вкусами и интересами реквестирую список штучек, которые точно понадобятся начинающему «быдлоэмбедщику», учащемуся паять )))

есть кучка разных ланчпадов от Техаса, «бридборд» и проводочки

посоветуйте что именно понадобится из всякой рассыпухи и какой паяльничек и прочий «припой» брать? Также буду рад ссылочкам на гайды для обучаемых дебилов

ЗЫ Насколько кстати полезны видео от Ben Hack ? Вроде понятно объясняет

nerfur
()