@proelixir

Страница 390 из 1045
Mikhail
06.03.2017
11:55:26
борода не жмёт?

Dmitriy
06.03.2017
12:02:53
Дмитрий, не знал что вы есть в этом чате =)

Max
06.03.2017
12:06:49
чем можно SNI из HTTPS раскодировать?

или самому писать?

Google
Max
06.03.2017
12:07:05
он же где-то в кишках декодируется

Rumata
06.03.2017
12:11:59
раковальня какая-то тут началась (8
https://meduza.io/news/2017/03/04/rpts-otkazalas-kommentirovat-slova-poklonskoy-o-mirotochivom-byuste-nikolaya-ii

Max
06.03.2017
12:12:28
это чятик про еликсир?

Mikhail
06.03.2017
12:14:19
про https и sni

Max
06.03.2017
12:15:42
мне в ерланге его декодировать надо

в еликсире

If the hostname labels contain only US-ASCII characters, then the client MUST ensure that labels are separated only by the byte 0x2E, representing the dot character U+002E (requirement 1 in section 3.1 of [IDNA] notwithstanding). If the server needs to match the HostName against names that contain non-US-ASCII characters, it MUST perform the conversion operation described in section 4 of [IDNA], treating the HostName as a "query string" (i.e. the AllowUnassigned flag MUST be set). Note that IDNA allows labels to be separated by any of the Unicode characters U+002E, U+3002, U+FF0E, and U+FF61, therefore servers MUST accept any of these characters as a label separator. If the server only needs to match the HostName against names containing exclusively ASCII characters, it MUST compare ASCII names case- insensitively.



расколупал вроде

не расколупал

kurwa

struct { NameType name_type; select (name_type) { case host_name: HostName; } name; } ServerName; enum { host_name(0), (255) } NameType; opaque HostName<1..2^16-1>; struct { ServerName server_name_list<1..2^16-1> } ServerNameList;

что это за нотация?

Google
Max
06.03.2017
14:52:13
struct { NameType name_type; select (name_type) { case host_name: HostName; } name; } ServerName; enum { host_name(0), (255) } NameType; opaque HostName<1..2^16-1>; struct { ServerName server_name_list<1..2^16-1> } ServerNameList;

блядь телеграм

Dmytro
06.03.2017
14:56:17
а скобочки не комильфо?) или tg их игнорит?

Max
06.03.2017
14:57:44
хз, не получилось чёт

в ваершарке попробую разобрать

вспомнил про него

во, теперь норм

vizvamitra
06.03.2017
22:41:25
https://github.com/vizvamitra/patme ради эксперимента накодил pattern matching в определениях методов для Ruby. Может кому интересно будет)

Taras ?
06.03.2017
22:44:27
всем привет вопрос насчет примера http://wunsh.ru/articles/elixir-io-lists-part-1.html {:ok, file} = :file.open("/tmp/tmp.txt", [:write, :raw]) foo = "foo" bar = "bar" output = [foo, bar, foo] output = Enum.join(output) :file.write(file, output) что значит :raw , зачем он?

anton
06.03.2017
22:46:09
http://erlang.org/doc/man/file.html#open-2

raw Allows faster access to a file, as no Erlang process is needed to handle the file. However, a file opened in this way has the following limitations: The functions in the io module cannot be used, as they can only talk to an Erlang process. Instead, use functions read/2, read_line/1, and write/2. Especially if read_line/1 is to be used on a raw file, it is recommended to combine this option with option {read_ahead, Size} as line-oriented I/O is inefficient without buffering. Only the Erlang process that opened the file can use it. A remote Erlang file server cannot be used. The computer on which the Erlang node is running must have access to the file system (directly or through NFS).

гугл забанил?

Taras ?
06.03.2017
22:48:38
гугл - нет, не понял зачем вообще этот параметр использовать, в чем преимущества

немного быстрее получается, и все?

anton
06.03.2017
22:51:54
для каких то сценариев быстрее. но ради этого ты подписываешься в определенные ограничения

Taras ?
06.03.2017
22:52:16
хм) статья, без сомнения — интересная и несет пользу, вот только дубоголовые ребята типу меня все-равно в недоумении — :file.write_file("/tmp/tmp.txt", some_iodata, [:raw]) какая структура должна быть сдесь вместо some_iodata ? output = [foo, bar, foo] output = Enum.join(output) ? а в эрланге в аналогичной задаче/примере?

users = [%{name: "Amy"}, %{name: "Joe"}] response = Enum.map(users, fn (user) -> ["<li>", user.name, "</li>"] end) IO.puts response и это... я вроде и гуглил но так и не понял — в чем разница между IO.puts и IO.inspect ? прошу тапком не гоните — хоть намек маленький подкиньте...

anton
06.03.2017
22:55:38
iodata() это вроде может быть iolist() или binary()

Alexey
06.03.2017
23:00:10
всегда пользую inspect - он практически любые типы разворачивает в строку. например какую-нибудь большучую мапу.

anton
06.03.2017
23:04:28
puts - кидает данные куда-то (по дефолту в стдио) inspect - инспектит твой тип. делает его хуман-ридабл и выводит данные

Google
anton
06.03.2017
23:08:30
если тебе в консоль писать - юзай инспект

Taras ?
06.03.2017
23:08:38
iodata() это вроде может быть iolist() или binary()
тоесть там список типу [:foo, "bar", [777, "foo", :abc, [5, 9]]] ?

Alexey
06.03.2017
23:08:40
он не только хуман ридабл. я тебе больше скажу. я такой вывод делаю в дебаге. и он как есть, если его скопировать. то он нормально вставляется в консоль. без синтаксических ошибок.

т.е. можно в лог какую-то переменную вывести. а в консоль вставить и поиграться

anton
06.03.2017
23:13:38
тоесть там список типу [:foo, "bar", [777, "foo", :abc, [5, 9]]] ?
ну так проверь сам? да, можно список передать



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

Alexey
06.03.2017
23:21:36
так они там и пишут, что пользуют разные функции записи в файл

так, что с двоеточием - это прямой вызов стандартных ерланговых :file.write и доки ерланговые читай, какие опции, чего и почему

а есть эликсировый вариант File.write он, видимо, какой-то другой

Taras ?
06.03.2017
23:23:38
я юзал эрланговые, эликсировых тогда не нашел (их недавно добавили или я просто не смог найти)) )

Alexey
06.03.2017
23:25:25
ну и вопрос то про raw? это mode. ниже про него в документации ерланга написано, видимо, зачем он нужен "Allows faster access to a file, as no Erlang process is needed to....."

Alexey
06.03.2017
23:26:33
там есть другие mode для открытия. я с файлами не работал. но по аналогии с сокетами могу представить, что просто под капотом там будут режимы разные. сокет откроешь, как бинари - будут данные валиться (побайтно), а можно открыть так, чтоб он по строкам вываливал

anton
06.03.2017
23:28:17
так, что с двоеточием - это прямой вызов стандартных ерланговых :file.write и доки ерланговые читай, какие опции, чего и почему
добавлю еще немного, вдруг не знаешь. двоеточие - это атомы http://elixir-lang.org/getting-started/basic-types.html#atoms для обращения к ф-иям erlang-а, ты обращаешься к ним по их полному имени :{имя_модуля}.{имя_функции} поэтому в данном случае модуль вызывается как :atom

Taras ?
06.03.2017
23:28:20
понял насчет raw, благодарямс ?

Alexey
06.03.2017
23:29:07
да знаем. у нас же проект на эликсире )

Taras ?
06.03.2017
23:29:14
это знаю, я с эрланга в эликсир пришел кстати кто пробовал с эрланга вызывать эликсировые функции?

anton
06.03.2017
23:29:28
да знаем. у нас же проект на эликсире )
Лёш, это я на всякий для Тараса :)

Alexey
06.03.2017
23:30:20
только некоторые вещи в эликсире какие-то упоротые. и я не стараюсь логику включать, пытаясь понять, а вот почему мы тут скобочку ставим, а тут не ставим. потому что ее там может не быть ))

там уже просто смотришь за деревья, в лес )

Google
anton
06.03.2017
23:32:01
меня пока только упоротость вызова анонимок добивает :(

Alexey
06.03.2017
23:32:04
в гугл групс есть хороший срач на тему того, что синтаксис в эликсире говно, или всетаки нормально. один утверждал, что говно. а второй утверждал, что логично. но ему для этого приходилось глубоко копать

Taras ?
06.03.2017
23:32:08
http://joearms.github.io/2016/03/13/Calling-Elixir-From_Erlang.html я такое встречал, пока не трогал

Alexey
06.03.2017
23:32:13
мне копать не интересно. а то задачи решать будет некогда

anton
06.03.2017
23:32:38
мне даже на эликсире/иланге писать некогда :( не то что там копать..

Alexey
06.03.2017
23:33:07
воот! поэтому оно просто запоминается через какое-то время и все.

в еликсире есть вообще такие упоротые вещи, как например, путем преобразований, можно из строки сформирвать одноименный модуль. и вызвать его функцию )

anton
06.03.2017
23:34:19
но "просто запоминается" иногда не дает покоя и на душе не спокойно :) я вообще на основной работе на дотнете/сишарпе пилю инвестируя в будущее - пишу на скале :) и для души иногда на эликсире пописываю чего-нибудь.. либы ковыряю

Admin
ERROR: S client not available

anton
06.03.2017
23:34:56
в эрланге?
не. в эликсире :) на эрланге я не особо писатель.. только читатель наверное

Alexey
06.03.2017
23:35:00
ну то есть, к примеру, какой-нибудь rest выдаст тебе строку - название метода. ты у него первую букву заглавной сделал. преобразовал строку в название модуля и у него вызвал функцию execute. но это треш

Dmitriy
06.03.2017
23:35:33
есть 2 типа людей...

Alexey
06.03.2017
23:36:04
для души, считаю, надо на чистом ерланге писать. это как на лампах схему. а не на этих ваших бездушных интегральных микросхемах

секурненько!
если туда еще преобразование строк-параметров в атомы добавить, то будет вообще полный комплект - пример того, как делать нельзя.

anton
06.03.2017
23:38:00
для души, считаю, надо на чистом ерланге писать. это как на лампах схему. а не на этих ваших бездушных интегральных микросхемах
возможно ты прав. но на эрланг всеравно поглядывать приходится, когда добираешься до ОТР и надо понимать как-там и чего..

Alexey
06.03.2017
23:41:40
https://10consulting.com/2016/10/28/elixir-io-lists/?utm_campaign=elixir_radar_74&utm_medium=email&utm_source=RD+Station

^ - напомнило статью на wunsh

ну и. по поводу методов строк->атомы. например ключи в джейсон запросе. есть тож немного рекомендаций вот тут https://engineering.appcues.com/2016/02/02/too-many-dicts.html

Google
Alexey
06.03.2017
23:43:41
в частности https://github.com/appcues/exconstructor

anton
06.03.2017
23:47:18
https://10consulting.com/2016/10/28/elixir-io-lists/?utm_campaign=elixir_radar_74&utm_medium=email&utm_source=RD+Station
ну тут не так страшно всё.. 90% пользователей эликсира даже не заметят ;)

Alexey
06.03.2017
23:48:06
согласен. зато код усложнишь

или потом вдруг появится какая-нибудь оптимизация под капотом

anton
06.03.2017
23:51:41
ну и. по поводу методов строк->атомы. например ключи в джейсон запросе. есть тож немного рекомендаций вот тут https://engineering.appcues.com/2016/02/02/too-many-dicts.html
а вот это хорошее замечание для юних адептов.. но думаешь кто-то будет заморачиваться? а потом будут кусать локти, когда их поимеют и говорить что эликсир дырявый и всё тлен

Alexey
06.03.2017
23:53:24
не факт. если лень, то распарсеный json в мапу - будут просто ключи строковые. типа map["header"]. а в атомы их только ради доступа map.header

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

к тому же, доступ через [] лучше. там если ключа такого нет, то будет nil и на nil можно сматчиться в case и что-то с этим сделать. а если map.header нету...

но. как обычно, тут есть выбор. а выбирать уж самому, как ловить себе приключения )

пример тот же poison. там реализовано так, что ты двумя вариантами можешь ловить проблемы. либо Poison.decode! и получаешь сразу результат, либо экзепшен. и работаешь через них. либо без ! "метод" Poison.decode и он уже даст кортеж {:ok, data} или {:error, reason}. и работаешь через матчинг.

Alexander
07.03.2017
00:05:43
в частности https://github.com/appcues/exconstructor
разбудите меня через пару лет и я скажу, что в эликсире все еще пишут авторизации JWT и обертки на структуры

всем утро

Alexey
07.03.2017
00:06:00
пишут пишут )

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

Alexander
07.03.2017
00:06:40
это да

если мне из Москвы отвечают моим утром, значит засиделись там )

Alexey
07.03.2017
00:07:36
сегодня с супругой читали о том, на сколько много в Австралии способов* откинуть коньки

anton
07.03.2017
00:09:26
блин и правда 3 ночи уже

Taras ?
07.03.2017
00:34:11
??

Alexander
07.03.2017
01:13:13
??
ты же с Украины кажется _

видели уже? https://github.com/marcobambini/gravity

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