All streams
Search
Write a publication
Pull to refresh
0
0
Mattew Skin @a-motion

Fuck Ego Guru

Send message
> > что 2 и '2' совсем разные сущности

> А должно быть иначе?

Ну вот, сошлись, коса и камень. Нет никакого «должно быть». Если это API для ваших дорогих клиентов — то да, должно быть иначе. Если это внутренний микросервис, который нагорячую фигачит в базу — «иначе» нельзя ни в коем случае. Если это какой-то ваш внутренний кухонный комбайн, то должно быть так, как удобнее в 80% вариантов использования.

Я, например, когда имплементирую внутреннее API, всегда принимаю и 2 и '2' (а часто и «два» и `Два.new` и `id_of_2`), проверяю, что это такое к нам пожаловало и реагирую соответственно. Так что надо сначала обговорить предметную область обсуждения, а потом уже решать, можно ли считать 2 и '2' — одним и тем же. Подсказка: при обработке консольного ввода хоть у вас там наистрожайшая типизация, придется считать их одним и тем же.

Вообще как нефиг делать. Если согласен жить в Германии — только лень может помешать. 40К грязными — это позиция миддла (иногда — даже джуниора), вас перевезут и поцелуют в животик.

В Голландию — тоже довольно просто, но уровень должен быть чуть повыше и вы должны быть согласны работать в каком-нибудь неповоротливом монстре типа букинга.

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

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

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

Так вот совет «так не делать» имеет очень ограниченное применение из-за особенной способности человеческого мозга ошибаться. Именно поэтому в тренде строгая типизация (а ведь можно было бы просто не передавать неправильные типы, правда?), чистые функции (а ведь можно было бы просто не гадить в универсум и не менять свойства объекта глубоко изнутри функции вывода лога) и так далее.

Я легко могу себе представить джуниора, который по запарке объявит локальную переменную `undefined`. Да, не пройдет CR. Да, нынче надо `var`, `let`, или что там впереди написать. Но это не убирает грабли, а маскирует их.
Ой, пардон. Не приметил.

Впрочем, я бы не сказал, что товарищ пишет достаточно внятно: например, отсутствие заявленной имплементации приведет всего лишь к warning’у времени компиляции, об этом уж точно стоило бы упомянуть.

Ну и в следующей статье разделение довольно условное, опять же главное (имплементация протокола однаЮ из-за консолидации, а behaviour’ов — сколько угодно) снова не упомянуто.

>… в кабинете, под ногами, пляжный песок. Да, пляжный песок.

А что, очки уже умеют передавать ощущение «да, пляжного песка» на ступни?

По-моему, это (как и все, что нравится Цукербергу) — такие детские мечты, воплощенные для бедных. Мне лично проще устроиться в офис, в котором под ногами плажный песок (если я предварительно сойду с ума, конечно), чем работать в очках, оказывающих к тому же совершенно недетерминированное и близко не изученное перманентное влияние на предмет, который я использую для зарабатывания денег: на мозг.

А почему вы ни разу не упомянули defprotocol http://elixir-lang.org/docs/stable/elixir/Kernel.html#defprotocol/2; http://elixir-lang.org/getting-started/protocols.html и не сравнили их?

Мне кажется, стоило бы.
В `quote do: 1 + 2 * 3` я двоеточие куда-то подевал, а не `end` :)

Это же не SO, чтобы код проверять, как набралось, так и тиснул. В принципе, я только хотел сказать, что у Elixir’а есть одна просто killer-feature, и это макросы в чистом AST, так что вся эта статья — идеальный пример того, как ни в коем случае не нужно писать код на этом языке. Такой ярчайший антипаттерн, пример того, что на PHP можно программировать даже с использованием синтаксиса эликсира.

Глаза же вытекают, натурально.

https://github.com/tallakt/comb ⇐ комбинаторика.

Ну и дальше вместо велосипедов с непонятными сигнатурами, давайте писать на Elixir’е, раз уж мы тут уже. AST же бесплатно все за вас сделает. По шагам:

Поглядим, как оно выглядит в AST:

iex> quote do 1 + 2 * 3
{:+, [context: Elixir, import: Kernel], [1, {:*, [context: Elixir, import: Kernel], [2, 3]}]}


осталось всего ничего: объявить макрос

iex> defmacro operation([var1, var2, var3], [op1, op2]) do
...>   {op1, [context: Elixir, import: Kernel], [var1, {:op2, [context: Elixir, import: Kernel], [var2, var3]}]}
...> end


и пройтись по всем пермутациям

iex> m = ~w|+ - * /|a
[:+, :-, :*, :/]
iex> Comb.cartesian_product(m, m) |> Enum.map(&operation([var1, var2, var3], &1))


Ну и сравнить еще надо будет, да. Мне лень дописывать пример до работающего, но вот есть прекрасный use-case, где торчащий наружу из языка AST — прямо в тысячу раз все упрощает, а вы настойчиво его обходите по кривым топким дорожкам.

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

Про прикладные программы вообще вам многое уже рассказали. Теперь драйверы.
> Сканер, да, не видит. :(

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

Вы издеваетесь? Я тоже сходил посмотрел, там два стектрейса скриншотами, что прямо противоречит правилам. Как я этот вопрос _хотя бы прочту_ с телефона? А close queue люди обычно читают как раз с телефона.

Кроме того, MCVE там и не пахнет.

Зачем вы его переоткрыли?
Пока товарищи там заняты запуском крутейшего проекта, отвечу я :)

http://www.phoenixframework.org/docs/sessions

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

Серьезно? Спасибо? Сиречь, вы начали «цикл статей» вот этой бессмысленной водой, даже не имея представления о том, о чем действительно нужно рассказать?

И ваше «спасибо» блестяще смотрится на фоне того, что вы поленились вывести из «засеренного» мой комментарий, хотя в нем практической информации больше, чем во всех 100500 знаках вашей записи.

Если в мире в 2016 существует программист, который не в курсе, чем UTF-8 отличается от UTF-16, и что не так с однобайтными кодировками, то он и так неплохо зарабатывает на допиливании COBOL-монстров в Кремниевой долине.

А что из всего этого входит в «необходимый практический минимум»?

Как отличить, и вообще что делать с «ñ» и «ñ» (это совершенно разные последовательности символов, в них даже количество использованных байт отличается)? Как использовать в регулярках? Что делать, если в каком-нибудь прикладном языке мы получаем ошибку кодирования в utf-8 (вот это — абсолютный чемпион по количеству вопросов на SO)? Как правильно сравнивать строки? Реализация в разных языках? Почему умер UCS2 и чем плох UTF-16? Может быть, хоть что-то практическое?

> Приведённой выше информации вполне достаточно, чтобы не путаться
> в основных принципах и работать с текстом в большинстве повседневных задач

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

Во-первых, спасибо вам большое за систематизацию use-case’ов для R.

Во-вторых, а зачем там RStudio в середине? Почему нельзя просто в консоли `R script.R`?
Я очень надеюсь, что когда-нибудь какой-нибудь транспайлер из списка https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS допилят, и, наконец-то, можно будет без респиратора открывать фронтовой код. Хотелось бы, конечно, чтобы победил http://luvv.ie/

:)
Всегда так было, а почему вы спрашиваете?

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

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

Не переживайте, у вас нет никакого шанса с нами пересечься.

Если вы перечитаете мой комментарий, я ровно это и написал, только в одном предложении. Если надо запустить шесть дохлых стюардесс — вот вам вайн. Только никому не надо :)

Information

Rating
Does not participate
Location
Barcelona, Barcelona, Испания
Registered
Activity