Fork me on GitHub
#clojure-russia
<
2017-02-04
>
artemyarulin07:02:11

автокомплит с ФП языками делать тяжело - с ООП у тебя инстанс классика почти всегда, какие в нем методы найти тривиально. А если у тебя фп то хз же - данные отдельно, функции отдельно. Ну косаемо пуре - великолепный язык и там кста компилятор вроде форсит чтоб не тока закорючки экпортировались из модуля но и обычное название функции, т.е. по началу можно и без этого

az07:02:59

Пюрэ 😄 додумались назвать язык

az07:02:47

Язык программирования клёцки следующий этап развития

artemyarulin08:02:19

мне кажется счас окамл восстает - фб сделала реазон, блумберг пилит баклскрипт, сам окамл няшный, былоб круто если б взлетело. Никто не пробовал?

rmuslimov08:02:09

ху из реазон?

artemyarulin08:02:48

а вот который в жс компилится https://github.com/bloomberg/bucklescript Генеренный жс там прекрасен

artemyarulin08:02:23

пуре кста генерит жс тож очень красивый, после CLJS прям ах

rmuslimov08:02:59

> язык конечно тоже доставляет, но коллеги - главное зло этож надо так не любить людей

rmuslimov08:02:07

> мне кажется счас окамл восстает сложно сказать, тут в долине люди зная только php находят работу за 3 недели.

rmuslimov08:02:19

пхп цветет и пахнет

rmuslimov08:02:17

окамл может быть и хорош но того что настроено уже до сих пор в этой области слишком-слишком много

andmed08:02:35

Сказка какая-то про долину и две недели

andmed08:02:55

А три. Ну мб

artemyarulin08:02:03

ну фп не мейнстрим, я конечно не говорю что оно жаву поборет 🙂

artemyarulin08:02:13

но в наших узких кругах… 🙂

andmed08:02:02

угу

As a result of my reading, I also did two things that were, in retrospect, quite harmful.

One was that I really got into functional programming and used a functional style everywhere I could. Immutability, higher-order X for any possible value of X, etc. The result was code that I could write and modify quickly that was incomprehensible to anyone but a couple of coworkers who were also into functional programming.
https://danluu.com/learning-to-program/

artemyarulin08:02:23

>that was incomprehensible to anyone but a couple of coworkers who were also into functional programming. горькая правда(

rmuslimov08:02:34

@andmed > Сказка какая-то про долину и две недели Объяснитесь пожта

andmed08:02:29

Молодых специалистов выпускают пачками, стенфорд например.

andmed08:02:23

На php первая голова не нужна

rmuslimov08:02:57

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

rmuslimov08:02:22

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

rmuslimov08:02:38

как и кложура собственно

andmed08:02:39

А. Я вас понял

dottedmag08:02:45

Работы много и на чём угодно - это да. А хорошо оплачиваемой?

rmuslimov08:02:06

я думаю норм

dottedmag08:02:35

Окей, уточню: очень хорошо оплачиваемой 🙂

andmed08:02:55

Ну, ты еще спроси: и интересной?

rmuslimov08:02:03

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

rmuslimov08:02:37

мне не докладывают какая зп и какие стоки

rmuslimov08:02:13

я думаю что норм, и средняя температура по больнице

rmuslimov08:02:53

когда общаешься с инженером в долине почти не важно какой язык

rmuslimov08:02:58

компенсация примерно равна, особенно для больших компаний

andmed08:02:19

Да. Катаешься ты на доске, а человек рядом, вдруг, например в недрах интеля дока.. такое больше нигде увы 😞

dottedmag08:02:08

Ну почему? Катаешься ты на доске в Хайфе, а человек рядом, вдруг, как раз в недрах интеля дока 🙂

andmed08:02:24

Ну разве что))

dottedmag08:02:31

В пригороде Хайфы неплохой такой техкластер.

dottedmag08:02:14

Дэна Лу надо перечитывать регулярно: "When I was at Google, one thing that was remarkable to me was that they’d pay you approximately the same thing in a small Midwestern town as in Silicon Valley, but they’d pay you much less in London."

az08:02:44

Развели тут фп, работать негде.

az08:02:54

Да мамка рашка, только она.

az08:02:42

Как же плохо инженерам жить на руси

dottedmag08:02:28

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

az08:02:34

А там шо? Быть в ДНР наёмником? 😅

dottedmag08:02:50

Там, ессно, охфес компании.

rmuslimov08:02:39

> А там шо? Быть в ДНР наёмником? Вы знаете да какое расстояние между днр или Львовом?

rmuslimov08:02:46

@dottedmag а откуда из рф?

andmed08:02:51

Плюс айтишной профессии, глобализм. Это уникально

az08:02:59

Саратов

dottedmag08:02:08

@rmuslimov Отовсюду. Удалёнщики-контракторы.

dottedmag08:02:43

Мало того, даже один тип из Израиля тоже собирается. Будет экономить 🙂

az08:02:52

Тут к нам тинькоф олежек собирался, мб к ним в банк плохих скалистов будут набирать.

rmuslimov08:02:50

я бы не сказал что это уж совсем глупо из саратова во львов

rmuslimov08:02:04

может быть личные причины

rmuslimov08:02:27

конечно Львов поприятнее будет

andmed08:02:13

Говорят, внешне совсем Европа @dottedmag

dottedmag08:02:55

Внешне и Питер Европа, а смысл?

andmed08:02:54

нууу. питер не самый плохой скажем так из российских городов. есть связь

andmed09:02:52

но в целом понятно о чем ты

prepor09:02:53

В Львове малюсенький центр похож на центры восточноевропейксих городов. На этом сравнение можно заканчивать )

dottedmag09:02:45

Когда смотришь на карту, то всегда удивляет, насколько в Украине и России города большие и бестолково застроенные.

dottedmag09:02:05

Наверное, когда китайцы смотрят, они удивляются, насколько города маленькие и... тоже бестолково застроенные 😃

leov13:02:23

всем привет

leov13:02:29

и снова рубрика глупых вопросов

leov13:02:03

вот я сделал сервер-сайд рендеринг. как-то. и мне надо в табличке показать даты-времена. они на клиенте (=в браузере данной нам ОСью) показываются а) в нужном привычном формате, 12 часов 24 часа am pm / . б) в нужном часовом поясе

leov13:02:14

как сервер-сайд рендеринг решает эту задачу?

leov13:02:59

_ 1. на странице где нельзя это сделать однозначно - не показывать ничего? рисуем белый экран на сервере но выплёвываем почти всю страницу, потом включаем джаваскрипт и дорисовываем отформатированные даты?

leov13:02:38

2. не даём ходить по сайту, пока хотя бы один раз не отработает джаваскрипт, потом забрасываем на сервер клиентский часовой пояс и его формат даты? кладя это в сессию?

serioga13:02:02

@leov можно так: с сервера присылать даты в ISO формате, а яваскриптом выводить их в локали браузера

nicola14:02:38

В хэдерах таймзону на серевер передай

serioga14:02:22

Нет в заголовках браузера таймзоны

serioga14:02:33

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

nicola14:02:48

можно положить ее туда jsом

leov19:02:02

- [я норкоман] гм. ну если присылать с сервера даты в исо формате, то на странице с выключенным джаваскриптом даты будут неправильные - если рисовать её джаваскриптом, исправляя даты - то даты будут прыгать через полсекунды после загрузки - если рисовать всю страницу джаваскриптом только после полной загрузки таблицы с датами, и конвертации - тогда это будет (или не будет?) медленней, хотя и тоже своего рода сервер-сайд рендеринг

leov19:02:05

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

leov19:02:31

больше всего я не понимаю, почему например главная страница яндекса, сжатая без потерь в пнг весит 30 килобайт, а так по жизни она делает 27 запросов за файлами на 500 килобайт.. http://www.webbloatscore.com/Screenshots/d4b68147-83a7-4fea-ae93-564eb6c1f63a.png

leov19:02:10

что-то где-то пошло не так с толстыми клиентами =/ джаваскрипт может решать задачи анимации, которые не решишь цссом, но например на яндексе он по сути не занят ничем, кроме треканья действий пользователя, и небольшого ускорения (в теории, я не уверен что оно там есть) загрузки почты

serioga19:02:52

> ну если присылать с сервера даты в исо формате, то на странице с выключенным джаваскриптом даты будут неправильные страница с отключенным жаваскриптом и на сервер таймзону не передаст 🙂

serioga19:02:52

> если рисовать её джаваскриптом, исправляя даты - то даты будут прыгать через полсекунды после загрузки даты можно рисовать яваскриптом тогда без яваскрипта просто ничего не нарисует

dottedmag19:02:22

А без яваскрипта и таймзону не узнать.

serioga19:02:18

> даты можно рисовать яваскриптом причем генерить сразу inline javascript а в <noscript> писать дату в дефолтном часовом поясе и дефолтной локали

serioga19:02:27

> на всякий случай глядит в календарь - не 1999 ли год на дворе. я где-то соврал? 🙂

artemyarulin20:02:42

я думаю волноваться про выключенный жс это в 1999 модно было да

artemyarulin20:02:07

ну в 2009 ладно ок 🙂 Нынче это норма, если юзер сам себе злобный буратино и отключил жс то последнее что его будет волновать это дата в исо формате

seryh20:02:46

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

seryh20:02:55

ну и предполагается что на сервере уже есть сохраненный от толстого фронта стейт

leov20:02:47

о, @serioga жжот

seryh20:02:30

поисковики нормально вроде индексируют dom сгенерированный JavaScript если он был сгенерен без подсасывания данных асинхронно посредством ajax запросов например.

leov20:02:09

я был не в курсе, что тэг скрипт может что-то возвращать

leov20:02:18

интересно, почему мы шаблонизаторы не пишем так

serioga20:02:32

ну не может он возвращать

leov20:02:46

ну то есть это наркоманство, но хорошее наркоманство, примиряющее с окружающим миром

serioga20:02:47

надо было там document.write какой-нить написать

leov20:02:05

а. то есть всё-таки сложней

serioga20:02:22

это я навскидку написал, редко такое писать приходится

leov20:02:43

я пытаюсь понять, чего можно, и чего нельзя сделать, используя только хтмл, только хтмл и цсс

leov20:02:00

и будет ли быстро, как сказал @seryh

serioga20:02:34

> а. то есть всё-таки сложней ой, на три слова сложней 🙂 в закоголовок выносится функция, которая всё делает нужное с датой, а в ячейках ей скармливаются даты

leov20:02:53

опять же, резко меняя тему, я не понимаю, почему принято гонять json'ы, а не куски готового хтмля, диффя их потом реактом

leov20:02:00

чем жсон сильно лучше

serioga20:02:18

json короче 🙂

leov20:02:27

(опять же, сильно зависит от того, какая в итоге разметка по отношению к исходному дереву/графу)

serioga20:02:48

и более жаваскриптнообразный

leov20:02:15

да ну ладно, если разметка примерно 1-к-1 то не сильно он короче после гзипа

leov20:02:33

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

leov20:02:50

(..открываю для себя мир фронтэнда, полный загадок..)

serioga20:02:54

к тому же генерация хтмл на сервере подразумевает знание особенностей разметки на клиенте а это концептуально неправильно 🙂

leov20:02:10

не подразумевает?

serioga20:02:28

подразумевает

leov20:02:41

на сервере есть шаблоны. так или иначе что-то, что содержит хтмл тэги

leov20:02:53

это есть особенность разметки?

serioga20:02:40

да, это особенности разметки этих шаблонов может не быть в серверном скриптовом коде

leov20:02:57

как это

serioga20:02:12

всё зависит от акрхитектуры рекомендуется разделять данные и представление

leov20:02:21

всё равно не понял. где-то на сервере будет либо js, либо .html.php, либо что-то ещё

serioga20:02:05

ну я ж не знаю, а каких видах серверных скриптов ты говоришь

serioga20:02:32

php, конечно, язык, в котором можно валить всё в кучу

serioga20:02:53

но не все ж языки такие

serioga20:02:43

в clojure половина предлагаемых шаблонизаторов генерит хтмл из мапов

leov20:02:30

я имею в виду только то, что какая нам кложуристам разница, на чём мы пишем хтмл - на кложе, на кложескрипте, на клжц, если при этом мы ко всему имеет доступ как к коду так и как к данным

serioga20:02:59

но всякие реакты о том, что разметка живёт в клиенте, а с сервера прилетают данные а данные удобнее пригонять джейсоном, а не xml

serioga20:02:23

это когда проекты маленькие и делает их один человек многостаночник но это скорее исключение, чем правило

leov20:02:31

не согласен

leov20:02:47

ну вот я запилил реакт компоненты в cljc

leov20:02:09

теперь я могу их (в очень простых редких случаях, гыгы) рожать прямо на сервере в виде хтмл, или на клиенте

leov20:02:39

ща вот ещё сделаю, чтобы было всё равно, через что таскать запросы - через аякс, проходя по стеку компожура, или через вебсокеты

leov20:02:09

и тогда наверняка вдруг запляшут облака - транспортный уровень (хттп) наконец станет отделён от протокола приложения

leov20:02:14

(своего рода)

leov20:02:31

(мда. ответить на вопрос "на..хрена?" не могу.)

serioga20:02:57

хочется 🙂

leov20:02:01

@artemyarulin ну, волноваться про выключенный джаваскрипт в 2017м есть причины, идущие прямо с 1999го. например, эта демка у меня бодро и успешно отработала ещё три месяца назад, притом на работе! где есть обученные люди и свой собственный ДНС сервер. http://bouk.co/blog/hacking-developers/ (сейчас у автора на амазоне, похоже, опять закончился лимит на днс записи в его аккаунте, надо ему писать опять) Уязвимость DNS rebinding известна столько, сколько существуют браузеры, джаваскрипт и ДНС. Но никто особо не волнуется. Потом - в любом современном браузере с включённым джаваскриптом и любыми проксями можно узнать внешний и внутренний настоящий айпишник через WebRTC, это такая мисфича. Потом - разгильдяи в кедах в коровкингах продолжают врубать недопродуманные фичи в духе 2000х, накатывая их мне прямо с обновлениями хрома - https://sakurity.com/blog/2016/12/10/serviceworker_botnet.html

leov20:02:29

кстати первой демке абсолютно всё равно, какие включены файерволы на компьютере 🙂