@proelixir

Страница 441 из 1045
shadowjack
18.03.2017
22:07:16
Я честно вообще не понимаю где ты её определяешь
Ну я так понимаю это он не везде регистр исправил

Dmitry
18.03.2017
22:07:27
И больше всего я не понимаю почему defstruct нельзя перенести в Message

shadowjack
18.03.2017
22:07:34
А вообще это приватная функция

Константу можно через атрибут модуля

Google
Alexander
19.03.2017
04:05:56
мне кажется они не очень хорошо для этого подходят
как у руби/питон, тут есть возможность вызывать сишные либы, так что imagemagick вполне будет работать

Александр
19.03.2017
05:09:00
как у руби/питон, тут есть возможность вызывать сишные либы, так что imagemagick вполне будет работать
обработка изображений сводиться, в основном, к манипулированию двумерными массивами данных, которые при функциональном подходе неэффективны

Rafael
19.03.2017
07:23:10
почему :math.pow(...) работает, а Math.pow(...) - нет? я так понимаю, что это связано с тем, что math модуль импортируется от эрланга, а там атомы не могут начинаться с большой буквы

Dmitry
19.03.2017
08:07:37
В эликсире нету Math

Вот и все

Rafael
19.03.2017
09:17:19
переменные принято именовать в camelCase?

Dmitry
19.03.2017
09:20:05
דמקשל בשדק

Rafael
19.03.2017
09:20:10
не, ну на самом деле оч клевый синтаксис у Elixir

Dmitry
19.03.2017
09:20:12
sneak_case

Alexey
19.03.2017
09:20:20
snake

Dmitry
19.03.2017
09:20:37
Во всём своём проекте нашёл одну переменную

Alexey
19.03.2017
09:20:47
А фанки в camel

Dmitry
19.03.2017
09:20:49
и то можно выкиинуть

Google
Dmitry
19.03.2017
09:21:12
фанки тоже снейк

Rafael
19.03.2017
09:21:18


Dmitry
19.03.2017
09:21:25
start_link например

Rafael
19.03.2017
09:21:41
start_link например
угу, понял, спасибо

Dmitry
19.03.2017
09:22:27
Во, молодец! Склеил структуру и методы

Rafael
19.03.2017
09:23:08
Во, молодец! Склеил структуру и методы
ога, я почитал что вы вчера пописали, поковырялся в iex и согласился с вами??

теперь насчет картинки, как ее лучше хранить: написать defstruct и туда все складывать или просто хранить то, что возвращает File.read(...)?

Dmitry
19.03.2017
09:26:56
В бинари хранить

Rafael
19.03.2017
09:27:23
?? пасиб

shadowjack
19.03.2017
09:53:27
Вместо slice(0,...) можно использовать take(...)

Но я не понял что ты хочешь сделать - зачем выкидывать все codepoints которые больше 1 байта?

Rafael
19.03.2017
09:57:24
Но я не понял что ты хочешь сделать - зачем выкидывать все codepoints которые больше 1 байта?
по условию: +0.1 балл. Корректно реализовано отсечение последовательности символов, размер которых больше одного байта.

shadowjack
19.03.2017
09:57:38
Ты не понял.

Rafael
19.03.2017
09:57:50
shadowjack
19.03.2017
09:58:24
Если на конце мультибайтовый символ, то его отсечь целиком. А не выкинуть все мультибайтовые.

Ну чтобы не было отсечения посередине символа.

Alexey
19.03.2017
10:14:03
фанки тоже снейк
а. пардон. модули

Dmitry
19.03.2017
10:14:47
iex(3)> "©" <> <<0>> <<194, 169, 0>>

Google
Rafael
19.03.2017
10:16:33
https://hexdocs.pm/elixir/String.html#codepoints/1

Evgeniy
19.03.2017
10:16:41
Из доки: When Elixir sees a list of printable ASCII numbers, Elixir will print that as a char list (literally a list of characters). Char lists are quite common when interfacing with existing Erlang code. Whenever you see a value in IEx and you are not quite sure what it is, you can use the i/1 to retrieve information about it: i "ł" либо "ł" <> <<0>>

Rafael
19.03.2017
10:16:47


Dmitry
19.03.2017
10:18:15
В том что вторая é это два utf символа

Rafael
19.03.2017
10:20:56
при конвеере, как тогда передать дальше код, как символ?

Dmitry
19.03.2017
10:23:12
Я честно не понимаю в чем проблема

Rafael
19.03.2017
10:27:41
<<first, _::binary>> = "ł" тогда fisrt это 197, т.е число

Dmitry
19.03.2017
10:28:36
так тебе число и надо

Rafael
19.03.2017
10:29:46
так тебе число и надо
нуу, не я ожидал символ а не число



Dmitry
19.03.2017
10:32:59
Поменяй slice и join на take

нафига ты вообще делаешь join

Dmitry
19.03.2017
10:33:33
я понять не могу

Rafael
19.03.2017
10:34:10
вот тут я ожидаю message: "hello", а не циферки

Dmitry
19.03.2017
10:34:42
так твоя программа тогда работает не правильно

Dmitry
19.03.2017
10:35:00
Расшифровывает не то что шифрует

Ты теряешь диактрические символы

Google
Rafael
19.03.2017
10:36:59
Вот правильная логика
тогда я не понимаю, что он сказал

Dmitry
19.03.2017
10:38:32
Ты шифруешь слово "ПРИВЕТ"

оно 12 байт

а у тебя влазит в картинку 11

Rafael
19.03.2017
10:40:01
а у тебя влазит в картинку 11
так, да, все что не влазит я нафиг отсекаю и записываю что влезло

это вот в условии и написано: Формат текста: UTF-8, допускается отсечение строки текста в случае, когда размер изображения не позволяет внедрить строку целиком.

shadowjack
19.03.2017
10:41:02
Да, но у тебя на конце появляется символ которого не было в исходном сообщении

Dmitry
19.03.2017
10:41:17
тогда ты после расшифровки получишь "ПРИВЕ¢"

Admin
ERROR: S client not available

Dmitry
19.03.2017
10:41:35
А тебе надо обрезать "ПРИВЕ"

вот за это и дают 0.1 балл

Rafael
19.03.2017
12:10:49
в чем разница между этими записями: IO.binwrite file, header <> pixel_data и IO.binwrite(file, header <> pixel_data) ?

когда какую правильнее использовать?

Evgeniy
19.03.2017
12:13:42
во втором случае сначала вычисляется то что в скобках, потом эти парметры передаются IO.binwrite, если я не ошибаюсь)

тут видимо все равно

хотя я сам нуб %)

Rafael
19.03.2017
12:15:21
ну, всяко опытнее меня :В

Evgeniy
19.03.2017
12:15:34
врят ли, я тоже только начал изучать

Google
Denis
19.03.2017
12:15:36
Эээ

Тише тише

Dmitry
19.03.2017
12:15:50
В первом случае ты пытаешься конкатенировать результат выполнения IO.binwrite и pixel_data

shadowjack
19.03.2017
12:16:58
Можно ещё IO.binwrite file, (header <> pixel_data)

Тут вопрос в приоритетах

Но по-моему всегда писать скобки как-то логичнее.

Dmitry
19.03.2017
12:19:22
Не, не всегда

Rafael
19.03.2017
12:19:39
если что, код взять отсюда: https://github.com/evanfarrar/ex_bump/blob/master/lib/bump.ex

и вот отттуда же: def write(filename: filename, canvas: %Canvas{ } = canvas) do что это за декларация аргументов?

Dmitry
19.03.2017
12:32:03
Вот тут скобки лучше не использовать, хотя можно) def(foo, [do: :bar])

Alexander
19.03.2017
12:35:50
Если ты её позовёшь как write(filename: "file.txt", canvas: %Canvas{что там в структуре канваса бывает}) то угадай, к чему привяжутся filename и canvas внутри write?

и почему

ну собсно, понятно к чему. А почему — смотри

Alexander
19.03.2017
12:38:41
full_result = {:ok, pid} = some_func()

def stuff() do {:one, {:two, "trhee"}, ["four", "five"]} end iex> full_result = {:one, rest, _} = {_, _, [head | _]} = stuff()

посмотри на full_result, rest и head в iex

Rafael
19.03.2017
12:41:00
full_result = {:ok, pid} = some_func()
вот тут понятно: результат функции запишется в pid и а дальше кортеж присвоится full_result

хотя стоп, что возвращается some_func?

Alexander
19.03.2017
12:41:42
либо оно возвращает {:ok, что-то} и тогда всё матчится

либо нет

и тогда ошибка в рантайме, что в принципе ничего страшного обычно

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