@proelixir

Страница 439 из 1045
Александр
18.03.2017
17:36:04
читай про NIF

https://habrahabr.ru/post/259467/

напишешь обработку изображения как NIF и тупо вызовешь в эликсире =)

это не противоречит дз?

Google
Rafael
18.03.2017
17:37:00
хммм, а ведь клевая идея! пасиба

это не противоречит дз?
вот хз, задал вопрос преподу

Александр
18.03.2017
17:40:18
или через https://hexdocs.pm/elixir/Port.html бинарник запустишь, это ещё проще

Dmitry
18.03.2017
17:40:19
Есть у нифов проблемы - они блочат scheduler. А вот как с такой точки зрения писать ниф правильно - ни одной статьи пока не находил

А вот порт - не блочит

Александр
18.03.2017
17:40:58
ну тут же не промышленна обработка фоток? а тупо ДЗ

я думаю чем проще и быстрее, чем лучше

с портами проще, наверное будет, да

Dmitry
18.03.2017
17:42:24
Можешь кстати ниф на расте написать

Точно препод подохереет

Rafael
18.03.2017
17:42:38
я не думаю, что через порт мне позволят сделать, иначе можно будет всю логику вынести в Си, а эликсир будет только что-то типо прокси

Точно препод подохереет
вот нет, он знает раст :В

Dmitry
18.03.2017
17:43:09
Тем более что на расте можно чисто фп

Google
Dmitry
18.03.2017
17:43:29
Ну почти чисто - там нет TCO но все остальное есть

Александр
18.03.2017
17:44:21
хвостовая рекурсия

tail call optimization

Rafael
18.03.2017
17:44:44
Shorty(Ale Chapa) Manskiy
18.03.2017
17:47:12
и вообще как он тогда может быть функциональным?

Александр
18.03.2017
17:48:02
даже делать не хотели https://mail.mozilla.org/pipermail/rust-dev/2013-April/003557.html

Rafael
18.03.2017
17:50:08


Shorty(Ale Chapa) Manskiy
18.03.2017
17:50:55
и вообще как он тогда может быть функциональным?
когда Rafael спрашивал про пример с функцией, я хотел показать пример с even odd, но бля, раст вообще молодец.

Александр
18.03.2017
17:52:48
там же надо с BMP ковырятся, для него можно и без библиотек готовых

он же распакованный

в принципе эта задача с эликсиром хорошо зайдёт

по факту тебе пропустить заголовок BMP и слепо пройти по пикселям и там записать длину сообщения и тупо его в младших битах записать

shadowjack
18.03.2017
17:55:10
Ты хоть задание читал - использование готовых библиотек для работы с изображениями запрещено

Александр
18.03.2017
17:55:16
херачь на эликсире

паттерн матчинг в зубы

Dmitry
18.03.2017
17:56:02
Задание жёсткое

shadowjack
18.03.2017
17:56:03
Вот вот.

Google
Dmitry
18.03.2017
17:56:06
Я такое не решу

shadowjack
18.03.2017
17:56:21
Задание жёсткое
Нормальное. Курсовая?

Rafael
18.03.2017
17:56:34
Нормальное. Курсовая?
нет, обычное дз на 2 недели где-то

Dmitry
18.03.2017
17:56:53
Ну вернее я просто нахерчил бы в микс всяких депсов и влепил бы в две строки решение

shadowjack
18.03.2017
17:57:00
Ну тоже норм. Там не так страшно. Бери описание заголовка bmp

Dmitry
18.03.2017
17:57:52
Там по заданию и бмп и пнг и вебсервис

Rafael
18.03.2017
17:57:53
Ты хоть задание читал - использование готовых библиотек для работы с изображениями запрещено
ууппс, ну да хрен с ним, ща разберемся, что там за формат битовые маски в элексире же есть?

Там по заданию и бмп и пнг и вебсервис
не, либо бмп + веб сервис либо бмп + пнг

Александр
18.03.2017
17:59:32
http://www.zohaib.me/binary-pattern-matching-in-elixir/

http://www.rokkincat.com/blog/2016/05/09/parsing-udp-in-elixir-with-binary-pattern-matching

короче про паттерн матчинг читай это офигительная тема в эрланге и эликсире

Dmitry
18.03.2017
18:01:46
Я прально понимаю что каждую компоненту цвета самый младший один бит выкидывае и вставляем то что нам надо?

Александр
18.03.2017
18:01:53
хорошая задача, преподу - уважуха

Dmitry
18.03.2017
18:02:40
Может же получится что не хватает пикселей в изображении до 8 бит, или я чёт не правильно понимаю...

А ещё в utf-8 не обязательно 8 бит на букву

Короче это гемор)

Александр
18.03.2017
18:04:03
я думаю там сложность больше в том как определить что шифровка закончилась (или началась, если делать как я выше написал)

Dmitry
18.03.2017
18:04:41
ну надо считать что шифровка - до конца файла

и добивать текст пробелами

Google
Dmitry
18.03.2017
18:05:47
Короче говоря, по логике так - один пиксель это 6 бит шифровки

Александр
18.03.2017
18:05:51
и добивать текст пробелами
а вдруг шифрованный текст с пробелами в конце? (код питонистов =) )

Dmitry
18.03.2017
18:06:12
Пробелы в конце не поломают питон

Разве что пробелы в начале

Конечно pep8 будет ругать, но что делать то - это шифровка)

shadowjack
18.03.2017
18:07:07
Можно в начальных 32 битах записать размер шифровки в байтах

Rafael
18.03.2017
18:07:22
я думаю там сложность больше в том как определить что шифровка закончилась (или началась, если делать как я выше написал)
ну, как я понимаю, это сделать довольно просто, достаточно определить структуру сообщения: { size, text } и уже ее записывать

Admin
ERROR: S client not available

Александр
18.03.2017
18:07:52
да, я бы так делал

а с бесконечной строкой, наверное невалидный для utf8 код добавил бы в конце

эмоджи какой-нить

Rafael
18.03.2017
18:09:16
а с бесконечной строкой, наверное невалидный для utf8 код добавил бы в конце
я не думаю, что этот случай вообще будут давать на вход

shadowjack
18.03.2017
18:09:18
Костыль

Александр
18.03.2017
18:09:35
Костыль
как лучше?

Dmitry
18.03.2017
18:10:09
Самое главное не делать так: "STEGANOGRAPHY 1.1\nContent-Encoding: UTF-8\nContent-Length: 200\n%mysupertext...."

shadowjack
18.03.2017
18:10:23
Ну как предлагали - размер писать в начале.

Александр
18.03.2017
18:10:36
дык я же и написал что сам бы сделал с размером

Google
Александр
18.03.2017
18:10:48
просто вдруг препод спросит про строки бесконечной длины?

вдруг 32 бита не хватит для длины строки?

хотя... можно блоки длина + строка повторять подряд

shadowjack
18.03.2017
18:11:53
Можно инт кодировать не в 32 бита а в произвольное число бит.

Александр
18.03.2017
18:12:19
как тогда определить что длина закончилась и качался контент?

Rafael
18.03.2017
18:12:34
да даже если будет бесконечно длинна, то по условию в картинку пишем сколько можем

shadowjack
18.03.2017
18:12:45
Сделай 64 бита и препод не подкапается

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

Rafael
18.03.2017
18:13:31
так как место под переменную с размером мы выделям вначале то записать туда значение можем уже после того, как записали туда текст

Александр
18.03.2017
18:14:23
зачем? ты же знаешь длину внедряемого текста заранее

Dmitry
18.03.2017
18:14:26
у ext4 максимальный файл - 16tb. Тогда в нём где-то 2 tb текста. Это влезает в int32

Rafael
18.03.2017
18:14:27
Сделай 64 бита и препод не подкапается
чет мало :В я писал архиватор на дереве хафмана, так там размер входных файлов ограничивался файловой системой (теоретически)

http://www.zohaib.me/binary-pattern-matching-in-elixir/
вот это прям годнота

Александр
18.03.2017
18:16:52
http://learnyousomeerlang.com/starting-out-for-real#binary-comprehensions

Александр
18.03.2017
18:17:04
я вот тут про паттерн матчинг учил

Rafael
18.03.2017
18:17:30
вот это прям годнота
офигеть, кароч всю картинку можно вообще одной строчкой парсить, это оч круто

Dmitry
18.03.2017
18:18:30
https://kernelnewbies.org/Ext4/#head-a2fb89a33e0174a3b3b6b201258501c8143e50cd

вроде нет

Rafael
18.03.2017
18:19:25
Кто-то на 3 порядка ошибся.
нет, реально 16 тб ограничение

это я точно помню

и 2гб ограничение на blob

Страница 439 из 1045