
Александр
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 но все остальное есть

Rafael
18.03.2017
17:43:47

Александр
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

Александр
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

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
хорошая задача, преподу - уважуха

Rafael
18.03.2017
18:01:56

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

Rafael
18.03.2017
18:05:03

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

Admin
ERROR: S client not available

Александр
18.03.2017
18:07:52
да, я бы так делал
а с бесконечной строкой, наверное невалидный для utf8 код добавил бы в конце
эмоджи какой-нить

Rafael
18.03.2017
18:09:16

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 бита а в произвольное число бит.

Rafael
18.03.2017
18:12:13

Александр
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

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

shadowjack
18.03.2017
18:16:57

Александр
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
это я точно помню
и 2гб ограничение на blob