# Понедельник 82 твита
Всем привет! На этой неделе с вами @mourner. Я разработчик в @Mapbox, автор @LeafletJS и множества других open-source-библиотек.
9:42В основном занимаюсь картами, визуализациями и алгоритмами. Большая часть моей работы — open source github.com/mourner/projec…
9:44Leaflet — библиотека для карт, которую используют GitHub, Foursquare, Flickr, 500px, Facebook, NYTimes, Госдеп, Еврокомиссия и тысячи других
9:47@jsunderhood Привет! Это круто! На этой неделе тема open-source будет раскрыта =)
Да, хочется поделиться горестями и радостями мейнтейнеров популярных библиотек :)
@jsunderhood Привет! Это круто! На этой неделе тема open-source будет раскрыта =)
9:49
@jsunderhood @mourner @Mapbox @LeafletJS Привет! Какое расписание будет, или по старинке)
Как-то не думал над расписанием, но предлагайте темы для обсуждения и я что-нибудь придумаю :)
@jsunderhood @mourner @Mapbox @LeafletJS Привет! Какое расписание будет, или по старинке)
9:50
@jsunderhood привет, расскажи, можно на лифлете делать изометричные карты? что бы объекты могли ложиться под стены и т.п.?
Leaflet заточена под тайловые карты 2D. Но тайлы можно рисовать в канвасе, так что изометрию можно сделать в теории
@jsunderhood привет, расскажи, можно на лифлете делать изометричные карты? что бы объекты могли ложиться под стены и т.п.?
9:53
Следующие 45 минут в дороге — еду в коворкинг. Работаю удаленно, но дома маленькие дочки-близняшки — сконцентрироваться невозможно :)
10:04@jsunderhood В каком коворкинге ты работаешь?
data-hub.com.ua в Киеве. Просторно, тихо, быстрый интернет, настольный теннис и печеньки — всё, что нужно :)
@jsunderhood В каком коворкинге ты работаешь?
10:18
@jsunderhood я своих девочек "построил". Или они меня... В-общем, иногда и в наушниках под The Crystal Method неплохо. Дома можно дольше.
Им меньше двух лет, особо не построишь. :) Ну и это индивидуально — лично мне дома не работается, не та обстановка
@jsunderhood я своих девочек "построил". Или они меня... В-общем, иногда и в наушниках под The Crystal Method неплохо. Дома можно дольше.
10:27
@jsunderhood @mourner @Mapbox @LeafletJS Ты родом из Киева или переехал?
Родился и всю жизнь живу в Киеве. Побывал во многих западных странах, есть возможность переехать, но мне тут хорошо.
@jsunderhood @mourner @Mapbox @LeafletJS Ты родом из Киева или переехал?
10:39
@mourner привет Вова! Кажется, @LeafletJS вырос из коммерческого проекта. Как ты убедил клиента выложить наработки в open source?
У Leaflet вообще интересная история, я об этом делал 13-минутный видеодоклад — посмотрите youtube.com/watch?v=NLbyHf…
@mourner привет Вова! Кажется, @LeafletJS вырос из коммерческого проекта. Как ты убедил клиента выложить наработки в open source?
10:52
@jsunderhood @mourner @Mapbox @LeafletJS Где работал и чем занимался до сегодняшней "работы"?) Какие хобби есть.
Я музыкант и лидер рок-группы Обійми Дощу. Пишу песни, пою, играю на гитаре rain.in.ua/ru.html
@jsunderhood @mourner @Mapbox @LeafletJS Где работал и чем занимался до сегодняшней "работы"?) Какие хобби есть.
10:56
Кроме этого увлекаюсь спортом (карате, стрит воркаут, сноуборд), фотографией, игрой Го, в добавок к обязанностям отца семейства :)
10:58Раньше работал в разного рода аутсорсинговых компаниях (6 лет — в @Cogniance). Но 2.5 года назад нашел работу своей мечты — @Mapbox :)
11:00@jsunderhood как ты все успеваешь? :)
Грустная правда в том, что не успеваю. :) Иначе, например, мы бы давно выпустили второй альбом (первый вышел в 2009)
@jsunderhood как ты все успеваешь? :)
11:01
Но стараюсь как могу. Рождение детей выбило из колеи, но потихоньку возвращаюсь в ритм и отвоевываю прежние увлечения назад :)
11:03@jsunderhood а библиотеку для visual regression testing ты доделал? чем она лучше всех остальных?
Доделал! github.com/mapbox/pixelma… — самая быстрая и легковесная библиотека такого рода, с крутыми алгоритмами.
@jsunderhood а библиотеку для visual regression testing ты доделал? чем она лучше всех остальных?
11:04
@jsunderhood @nemcik7 @mourner @Mapbox @LeafletJS расскажи про спорт и здоровье, у тебя крутой опыт!
Я большой фанат CRPG (Fallout, TES, etc.). И осознал, что можно упорным трудом "раскачать" персонажа и в жизни :)
@jsunderhood @nemcik7 @mourner @Mapbox @LeafletJS расскажи про спорт и здоровье, у тебя крутой опыт!
11:07
Перечитал груды книжек, статей и форумов на тему силовых тренировок и начал тренироваться с весом своего тела. Фото: imgur.com/a/bNmbI
11:08Пару лет назад подробнее делился своим опытом на Реддите reddit.com/r/bodyweightfi…
11:10Today @LeafletJS has hit 13K github stars. github.com/Leaflet/Leaflet11:20
Dear twitter: What's the correct, polite way to reply to this e-mail? #lazyweb pic.twitter.com/gaQQmwzWPt
Вот пример письма, подобные которому я как автор популярной библиотеки получаю каждый день. Нужно много терпения :)
Dear twitter: What's the correct, polite way to reply to this e-mail? #lazyweb pic.twitter.com/gaQQmwzWPt
11:22
Удивительно, сколько человек считает, что open-source-разработчики — это магические рыцари, которые всегда готовы делать работу за других
11:23И чем популярнее библиотека, тем быстрее наступает выгорание от количества людей, которые от тебя что-то требуют.
11:25Мораль: берегите и жалейте open-source-разработчиков, им бывает тяжело! Пишите хорошие багрепорты и помогайте фиксить баги. :)
11:26@jsunderhood Ты вообще спишь когда-нибудь? :)
Я сейчас хорошо высыпаюсь, просто многие любимые увлечения пришлось задвинуть на второй план — до поры до времени.
@jsunderhood Ты вообще спишь когда-нибудь? :)
11:35
Согласно git.io/top, в прошлом году я был на 139-м месте по активности на GitHub. И в Top 30 есть пара моих коллег из @Mapbox
11:39Оцените доклад @searls на тему динамики отношений в open source youtube.com/watch?v=e_-qV8… /cc @jsunderhood11:48
@jsunderhood @mourner мне нужно на карте изобразить газопроводы (их много). Газопроводы есть в svg. Посоветуйте, как проще это сделать.
Выяснить, какая система координат в SVG-файле, и написать скрипт который сконвертирует линии в формат GeoJSON
@jsunderhood @mourner мне нужно на карте изобразить газопроводы (их много). Газопроводы есть в svg. Посоветуйте, как проще это сделать.
11:51
@jsunderhood видео отличное, но там не сказано о том, как убедить клиента выложить код в открытый доступ
Вкратце, я написал длинное письмо на весь менеджмент с десятком пунктов, почему нам стоит это сделать. Согласились.
@jsunderhood видео отличное, но там не сказано о том, как убедить клиента выложить код в открытый доступ
11:55
Основная суть была в том, что в одиночку я бы не смог его поддерживать с бурным развитием браузерных технологий. Плюс хорошая карма компании
11:57@jsunderhood =))) Тебя и тут достанут вопросами "У меня тут, как мне лучше, не глянешь быстренько, ты ж опенсорсер"11:58
Со своей узкой специализацией я немного отстал от модных веяний, но у нас в компании любят React, Redux, Babel/ES6, Browserify, Tape, ESLint
12:01Один из моих главных проектов сейчас — библиотека для векторных карт на WebGL github.com/mapbox/mapbox-…. Очень сложная и интересная штука.
12:03А вот вам пример из моего инбокса. pic.twitter.com/Hzjk26nx3Q
12:09@jsunderhood а как ты видишь карты, в т.ч. webgl-ные, и virtual dom?
Думаю, что за векторными WebGL-картами будущее. Но разрабатывать их очень, очень, очень сложно. Просто мозг ломается
@jsunderhood а как ты видишь карты, в т.ч. webgl-ные, и virtual dom?
12:13
@jsunderhood а как ты видишь карты, в т.ч. webgl-ные, и virtual dom?
Если вопрос был про Virtual Dom в WebGL-картах: не поможет — WebGL это другая планета в одном DOM-элементе
@jsunderhood а как ты видишь карты, в т.ч. webgl-ные, и virtual dom?
12:16
@jsunderhood После слова India невольно начал читать с индийским акцентом.
Кстати говоря, несмотря на расовые предубеждения в IT, подобные письма пишут из любых стран.
@jsunderhood После слова India невольно начал читать с индийским акцентом.
12:19
@jsunderhood какие основные отличия? О чём таком приходится думать о чём с обычными не задумывался?
Мой прошлогодний доклад на эту тему youtube.com/watch?v=u2ppZY…
@jsunderhood какие основные отличия? О чём таком приходится думать о чём с обычными не задумывался?
12:20
@jsunderhood какие основные отличия? О чём таком приходится думать о чём с обычными не задумывался?
Вкратце — WebGL толком умеет рисовать только текстуры и треугольники. Для остального нужно вручную писать алгоритмы
@jsunderhood какие основные отличия? О чём таком приходится думать о чём с обычными не задумывался?
12:21
@jsunderhood под мобайл тоже делаешь? Про особенности мобильного webgl можешь что-нибудь рассказать?
В современных мобильных браузерах (Safari/Chrome) всё как правило сразу работает, просто медленнее и меньше памяти
@jsunderhood под мобайл тоже делаешь? Про особенности мобильного webgl можешь что-нибудь рассказать?
12:24
.@jsunderhood But the good thing is that WebGL can do those two things INSANELY FAST.12:25
Но вообще мы параллельно пишем быстрый нативный движок на C++. На JS быстрый движок для мобильных карт пока не получится сделать.
12:27Пример сложной алгоритмической задачи, для которой мне пришлось написать свою библиотеку: триангуляция полигонов github.com/mapbox/earcut
12:35Ирония судьбы: весь универ (КПИ примат) забивал на пары, пил пиво и шпилил в игры. Через десять лет по работе всё пришлось учить заново :)
12:38@jsunderhood вопрос скорее в поисках боттлнеков. Ибо делал как-то rotozoom обычной картинки, плюс блюрил пиксельным шейдером, тормозило :V
Тут нет универсальных рецептов кроме "всего делать поменьше", приходится научным тыком искать пути оптимизации :)
@jsunderhood вопрос скорее в поисках боттлнеков. Ибо делал как-то rotozoom обычной картинки, плюс блюрил пиксельным шейдером, тормозило :V
12:39
@jsunderhood а ты знаешь что-нибудь о проекте @ViziCities? @robhawkes для его оптимизации сделал много клевых штук, вроде как
Мы с Робом дружим, пили пиво вместе не раз, и некоторые оптимизации он делал по моим советам :)
@jsunderhood а ты знаешь что-нибудь о проекте @ViziCities? @robhawkes для его оптимизации сделал много клевых штук, вроде как
12:42
@jsunderhood @tensai_cirno You can see how many browsers (and platforms) have WebGL enabled here: webglstats.com12:43
@jsunderhood а не приходилось сталкиваться с рассчетом колизий у сложных объектов (не описываемых формулами)?
Индексируем по bbox: в 2D пользуемся моим github.com/mourner/rbush, для 3D посмотрел бы на github.com/mikolalysenko/…
@jsunderhood а не приходилось сталкиваться с рассчетом колизий у сложных объектов (не описываемых формулами)?
13:00
Моё рабочее место сейчас pic.twitter.com/RfDnGgJ0PU
13:02@jsunderhood, будете через Вебассембли крутить потом?
Пока неизвестно — надо подождать реализации, чтобы пощупать.
@jsunderhood, будете через Вебассембли крутить потом?
13:07
@jsunderhood правильно понял tape - это тестовый фраемворк?
Простой, легкий и хороший тестовый фреймвок. Вот статья, почему его стоит использовать: medium.com/javascript-sce…
@jsunderhood правильно понял tape - это тестовый фраемворк?
13:09
@jsunderhood а что-то что умеет умно разбирать объект на боксы есть?
Нет, надо уже смотреть по случаю. Например иногда достаточно не разбивать, и сравнивать потом целые объекты.
@jsunderhood а что-то что умеет умно разбирать объект на боксы есть?
13:11
@jsunderhood так вот если без bbox, есть что-то что ищет колиции с хорошим перформансом у сложных объектов?
Универсальных библиотек для этого нет, насколько мне известно. Всё зависит от того, какие объекты, сколько и т.д.
@jsunderhood так вот если без bbox, есть что-то что ищет колиции с хорошим перформансом у сложных объектов?
13:18
@jsunderhood сори что не унимаюсь, потому что все это приходилось самому писать руками и может появились либы с хорошим перформансом
Мне всегда приходится писать с нуля, чтобы было с хорошим перфомансом :) Вычислительная геометрия — сложная штука.
@jsunderhood сори что не унимаюсь, потому что все это приходилось самому писать руками и может появились либы с хорошим перформансом
13:19
@jsunderhood сколько ноуту уже?
Macbook Retina 15 середины 2012-го, с максимальным конфигом. Верно служит 3.5 года, и где я его только не таскал. :)
@jsunderhood сколько ноуту уже?
13:21
@jsunderhood наконец-то не про React! Алилуйя.13:25
@jsunderhood у нас была задача сделать колизии 2 объектов > 1000 точек в браузере, при этом визуальные провалы непозволительны
Следующий шаг — индексировать по bbox-ам сегменты, потом делать тесты segment vs segment и point in polygon
@jsunderhood у нас была задача сделать колизии 2 объектов > 1000 точек в браузере, при этом визуальные провалы непозволительны
13:27
@jsunderhood Посещает желание писать на более "серьёзном" языке и результат компилировать в JS?
Нет, мне всегда нравился JS (тем более ES6). Из других языков очень нравятся Go и Swift за простоту и читабельность.
@jsunderhood Посещает желание писать на более "серьёзном" языке и результат компилировать в JS?
13:35
@jsunderhood А смотрел ли ты Elm? Есть у него будущее ?
Каюсь, не смотрел. Но хочется — несколько коллег его сейчас изучают и говорят, что очень многообещающе.
@jsunderhood А смотрел ли ты Elm? Есть у него будущее ?
13:39
@jsunderhood именно так и делали + физика там была. Но тормозило все страшно
Бывает, что боттлнек не в подходе, а в реализации (например, плохая библиотека для R-tree). Нужно профилировать
@jsunderhood именно так и делали + физика там была. Но тормозило все страшно
13:41
@jsunderhood А Swift да, в разы проще чем ObjC, может и никакой React Native не потребуются просто full-mobile-stack-developer = js + swift.13:41
@jsunderhood а на asm.js смотрели? caniuse.com/#search=asm.js частично поддерживается в 58% браузерах, плюс потом всегда можно перейти на wasm
Кросс-компиляция из С++ в JS может подойти для одиночных игр и приложений, но если нужно библиотеку — много проблем
@jsunderhood а на asm.js смотрели? caniuse.com/#search=asm.js частично поддерживается в 58% браузерах, плюс потом всегда можно перейти на wasm
13:47
@igor_shubovych @jsunderhood псс, парень. Хочешь расскажу немного про React? А про webpack и css модули?
Unidirectional data flow есть? А если не найду?
@igor_shubovych @jsunderhood псс, парень. Хочешь расскажу немного про React? А про webpack и css модули?
13:49
По поводу asm.js уже отлично написал @mraleph mrale.ph/blog/2013/03/2…
13:52@jsunderhood а есть резон использовать воркеры для особо сложных расчетов или межтредовая комуникация все сведет на нет?
Обязательно нужно использовать! Большие массивы данных можно пересылать быстро с помощью transferable objects
@jsunderhood а есть резон использовать воркеры для особо сложных расчетов или межтредовая комуникация все сведет на нет?
13:54
Мы в Mapbox GL JS загрузку данных и сложные расчеты делаем исключительно в воркерах, а в главный тред приходят готовые буферы для WebGL
13:55@jsunderhood а все ли сложные расчёты делаете на клиенте, или некоторые заранее на сервере получается сделать?
На сервере тоже много работы — обновление и обработка векторных данных, нарезка на тайлы и т.д.
@jsunderhood а все ли сложные расчёты делаете на клиенте, или некоторые заранее на сервере получается сделать?
14:03
@jsunderhood да мы так же его используем, но у меня вопрос, какой test runner вы используете? Я остановился на testem
Часто обходимся без раннера, но если нужно, то saucelabs.com, karma-runner.github.io.
@jsunderhood да мы так же его используем, но у меня вопрос, какой test runner вы используете? Я остановился на testem
14:07
Pro tip: когда возникает желание почитать ленту Facebook, открывайте вместо этого medium.com. Много качественных статей.
15:06Очень хорошая новая тема для Sublime Text 3, с множествм опций github.com/oivva/otto (правда, похожа на дефолтный Атом)
17:16Много лет использовал Sublime Text 3, пару месяцев назад перешел на Atom, а сейчас вернулся обратно (заскучал по скорости и безбажности).
17:25Он начал опять активно обновляться, плюс к основной команде недавно присоединился автор Package Control, не затворник как автор Sublime :)
17:27@jsunderhood jsник должен юзать атом иначе предательство же :)
Я пытался! Но мне постоянно нужно открывать большие файлы и переключаться между кучей проектов, и здесь ST рулит
@jsunderhood jsник должен юзать атом иначе предательство же :)
17:41
@jsunderhood @mourner What's your take on the state of the art of JS package managers? (bower, npm, jspm)
Думаю, Bower пора уйти на покой и уступить NPM + WebPack/Browserify/JSPM. Он сыграл свою роль, но теперь вредит.
@jsunderhood @mourner What's your take on the state of the art of JS package managers? (bower, npm, jspm)
17:44
Вы не представляете, сколько у open source maintainer'ов гемора из-за Bower. Я лично перестал его поддерживать в своих проектах.
17:45@jsunderhood WebStorm?
WebStorm хорош, но лично я люблю минимализм и простоту. Работаю продуктивнее с редактором, чем с IDE.
@jsunderhood WebStorm?
17:46
@jsunderhood с реально большими файлами всё не очень хорошо, да. переключаться между проектами – atom.io/packages/proje…
Я его и использовал, но открытие проекта всегда очень долгое. В ST — моментально всегда.
@jsunderhood с реально большими файлами всё не очень хорошо, да. переключаться между проектами – atom.io/packages/proje…
18:39
@jsunderhood А можно поподробнее про этот гемор? А то все о нем говорят и ни разу не видел (не сомневаюсь что он есть, впрочем).
Главный гемор в необходимости коммитить билд в проект, что является очень плохой практикой. medium.com/@kentcdodds/wh…
@jsunderhood А можно поподробнее про этот гемор? А то все о нем говорят и ни разу не видел (не сомневаюсь что он есть, впрочем).
18:41
@jsunderhood билд можно комитить в отдельную ветку. И на ней создавать тэг. Естественно это можно сделать автоматически.
Так и приходится делать в Leaflet. Но это до жути неудобно.
@jsunderhood билд можно комитить в отдельную ветку. И на ней создавать тэг. Естественно это можно сделать автоматически.
19:57
@jsunderhood пользуясь случаем, хочу попросить накидать хороших светлых тем для ST3, сам сижу на стандартной iPlastic, но ее уже не хватает19:58
# Вторник 41 твит
А кто-нибудь здесь смотрит матч Ли Седола с АльфаГо? Сейчас идет последняя, пятая игра. Одно из самых интересных игровых событий в истории.
7:16@jsunderhood нет. Только итоги. Думаю и на этот раз программа "поддастся" человеку - чтобы его … не обидеть. 👻 ибо победа уже за программой!
Победа рано или поздно за AI, но насчет "поддается" — неправда. Просто Седол за 3 игры нашел в AlphaGo уязвимости.
@jsunderhood нет. Только итоги. Думаю и на этот раз программа "поддастся" человеку - чтобы его … не обидеть. 👻 ибо победа уже за программой!
7:52
@jsunderhood Дико бесит, когда в гите нет dist файлов
Ну вот :) А теперь представьте, сколько таких людей яростно пишут в GitHub о том, что их дико бесит, не разобравшись
@jsunderhood Дико бесит, когда в гите нет dist файлов
9:11
RBush — одна из библиотек, которыми я особенно горжусь. github.com/mourner/rbush Незаменима в алгоритмах и визуализациях больших 2D данных
9:21Еще это один из немногих случаев, когда мне удалось сильно улучшить вычислительную сложность существующего алгоритма (OMT bulk loading)
9:23@jsunderhood можеш пошарити свої пакеджі для ST3?
SublimeLinter, SideBarEnhancements, PrettyJSON, Markdown Preview, AutoFileName, ColorPicker, GitGutter + синтаксисы
@jsunderhood можеш пошарити свої пакеджі для ST3?
11:09
Behold! #aprilfoolsday is around the corner. Treat your @LeafletJS maps with this superb plugin git.io/vaRt1 @TheOnion #mapping11:33
Как-то давно я создал страничку для отслеживания положения солнца — suncalc.net. Не обновлял её 5 лет, но до сих пор полезно :)
11:50Это было до того, как я создал Leaflet. Давно хочется ее переписать, но всё не доходят руки. :)
11:51Код, который делает все солнечные расчеты, я превратил в JS-библиотеку — github.com/mourner/suncalc. Теперь она и луну считать умеет.
11:52Вторник — день тяжелый! Что-то тихо сегодня. :) Задавайте вопросы по JS-перфомансу, алгоритмам, картам и open source!
11:56@jsunderhood можно уже был вопрос, какие книги ты бы посоветовал для углубления знаний в js?
Я много лет не читал книг на тех. темы. Вместо этого рекомендую взяться за pet project с незнакомыми технологиями
@jsunderhood можно уже был вопрос, какие книги ты бы посоветовал для углубления знаний в js?
11:59
Намного эффективнее учиться в процессе работы над чем-то увлекательным! И читать статьи и отрывки книг по мере возникновения проблем.
12:00@jsunderhood как получить первую сотенку * ? ;)
Нужно оформить репо хорошим readme, доками, демкой, скриншотом, тестами, трависом и т.д., и только потом делиться
@jsunderhood как получить первую сотенку * ? ;)
12:02
@jsunderhood насколько осмысленно использовать DOM API вместо jQ, Prototype.js и т.д. с точки зрения производительности?
С точки зрения производительности, как по мне, нет смысла. Эти либы уже отживают своё, и больше для старых браузеров
@jsunderhood насколько осмысленно использовать DOM API вместо jQ, Prototype.js и т.д. с точки зрения производительности?
12:05
@jsunderhood Как работаешь с перфомансом? Заблаговременно заботишься или постфактум, когда проблемы очевидны?
Я привык сразу писать простой и эффективный код, но без фанатизма. После обязательно профилирую и пишу бенчмарки.
@jsunderhood Как работаешь с перфомансом? Заблаговременно заботишься или постфактум, когда проблемы очевидны?
12:07
@jsunderhood Спасибо! но это не гарантирует даже первой звезды :) Если это УГ никому не надо - то и не будет ***.
Само собой. :) Поэтому в описании репо и первом предложении readme критично сразу четко объяснить, зачем это нужно.
@jsunderhood Спасибо! но это не гарантирует даже первой звезды :) Если это УГ никому не надо - то и не будет ***.
12:08
@jsunderhood а по какому алгоритму фазы луны рассчитывает?
В комментариях к функциям есть ссылки на исходные статьи.
@jsunderhood а по какому алгоритму фазы луны рассчитывает?
12:09
@jsunderhood а зачем использовать DOM API тогда? И нужно ли его использовать с твоей точки зрения?
Упс, я имел в виду, не имеет смысла использовать jQuery и т.д. вместо DOM API, если только не заботят старые IE :)
@jsunderhood а зачем использовать DOM API тогда? И нужно ли его использовать с твоей точки зрения?
12:10
@jsunderhood Играет ли роль ES3 vs ES2016 с точки зрения производительности. Используешь ли ты его и если да, то зачем?
Играет роль, но зависит от фичи/браузера/транспайлера и т.д. В боттлнеках сверяйся с kpdecker.github.io/six-speed/
@jsunderhood Играет ли роль ES3 vs ES2016 с точки зрения производительности. Используешь ли ты его и если да, то зачем?
12:12
@jsunderhood А я люблю читать книги. Хорошо всё, что для тебя работает.
Тоже правда! Но по моим наблюдениям, короткие, простые электронные тех. книги быстро вытесняют длинные печатные.
@jsunderhood А я люблю читать книги. Хорошо всё, что для тебя работает.
12:13
Процесс формального редактирования / публикации технической книги как правило слишком медленный, чтобы поспевать за развитием технологий.
12:15Недавний пример идеальной технической книги по простоте/объему/формату — Swift Book. Просто великолепно сделано!
12:16@jsunderhood Как увеличить кол-во полезных PR в свой oper source проект?
Главное — максимально упростить задачу контрибьюторам как можно более простым кодом, хорошими тестами, CI и т.д.
@jsunderhood Как увеличить кол-во полезных PR в свой oper source проект?
12:18
Очень помогают строгие тесты, включая линтеры вроде ESLint — например я использую довольно строгий конфиг github.com/mourner/eslint…
12:19Чтобы контрибьюторы писали больше тестов, очень помогает привязать сервис code coverage, например istanbul + coveralls.io
12:20Ну и совсем недавно в GitHub появилась отличная фича — issue/PR templates. Помогают убрать шум и повысить качество репортов и PR.
12:21@SilentImp @jsunderhood @mourner Compound let, const, генераторы, get / set - и функция не оптимизируется в v8. И это только начало :)
Но ES6 без транспайлеров сейчас никто и не использует в продакшне. :) Когда начнут, может V8 подтянется
@SilentImp @jsunderhood @mourner Compound let, const, генераторы, get / set - и функция не оптимизируется в v8. И это только начало :)
12:46
@SilentImp @jsunderhood Дерзко вклинюсь, надеюсь @mourner простит :) ES2016 performance в Chrome - от ужасно до омерзительно12:46
@jsunderhood Это на клиенте. А вот на сервере вполне можно.
Можно, но от проблем перфоманса это не спасает, т.к. тот же V8. Хотя важно это только в боттлнеках.
@jsunderhood Это на клиенте. А вот на сервере вполне можно.
12:50
@jsunderhood +1. Мы тут с koa2 играемся с большим удовольствием на сервере. async/await <312:58
@jsunderhood на мат.расчеты/алгоритмы хорошо накладывается какой-то функциональный язык, почему ты пишешь на plain js?
На мат. расчёты — может быть, но насчет алгоритмов спорно. Я пишу на JS, потому что я в нем хорош.
@jsunderhood на мат.расчеты/алгоритмы хорошо накладывается какой-то функциональный язык, почему ты пишешь на plain js?
12:59
More info on WebAssembly: 2ality.com/2015/06/web-as…13:31WebAssembly Milestone: Experimental Support in Multiple Browsers @luke_wagner
hacks.mozilla.org/2016/03/a-weba… ^ar
Experimental support for WebAssembly has landed in Chrome, Firefox & a build of Edge v8project.blogspot.co.uk/2016/03/experi… pic.twitter.com/iqm15zPkwE
Вот это очень круто :)
Experimental support for WebAssembly has landed in Chrome, Firefox & a build of Edge v8project.blogspot.co.uk/2016/03/experi… pic.twitter.com/iqm15zPkwE
13:34
@krasivieglaza Очень люблю читать с Киндла, но исходники там часто выходят нечитаемыми, поэтому приходится читать с айпада. @jsunderhood15:19
@jsunderhood @mourner расскажи, как правильно подойти к pet project, как его не испугаться, и все-таки начать делать и определить цели.
Нужно выбрать относительно простую, достижимую, но интересную задачу. Если с ней справился — можно придумать сложнее
@jsunderhood @mourner расскажи, как правильно подойти к pet project, как его не испугаться, и все-таки начать делать и определить цели.
15:20
“Initial Servo+Browser.html Release Planned For June” by @michaellarabel16:13
phoronix.com/scan.php?page=…
@kotchuprik секреты рендера реакта на PHP припасу для @jsunderhood :D
Для этого стоило бы завести @pornunderhood
@kotchuprik секреты рендера реакта на PHP припасу для @jsunderhood :D
18:59
Chrome-расширение для дебага WebGL-приложений: github.com/3Dparallax/ins…
21:47Things have changed! MS, Google, Mozilla announce compatible experimental impls of WebAssembly on the same day! :)21:48
hacks.mozilla.org/2016/03/a-weba…
@jsunderhood возможно у вас есть идеи, как определять правильные координаты учитывая сферическую форму земли ?
Надо выяснить, на какую именно проекцию наносились линии, но скорее всего это en.wikipedia.org/wiki/Web_Merca…
@jsunderhood возможно у вас есть идеи, как определять правильные координаты учитывая сферическую форму земли ?
23:01
# Среда 9 твитов
@jsunderhood Привет, вопрос может не совсем по адресу. Можно ли обработать данные перед их отрисовкой в @cartoDB на клиенте?
Они рисуют на сервере, и на клиент приходит уже тайловыми картинками.
@jsunderhood Привет, вопрос может не совсем по адресу. Можно ли обработать данные перед их отрисовкой в @cartoDB на клиенте?
8:54
У них там вечно методологии, рамки, правила, стандарты. Им не хватает хаоса (или мне не хватает порядка) @cssunderhood @jsunderhood
Как правильно заметил @Charlag_Khan, степень допустимого хаоса зависит от масштаба проекта.
У них там вечно методологии, рамки, правила, стандарты. Им не хватает хаоса (или мне не хватает порядка) @cssunderhood @jsunderhood
8:55
@twenty @jsunderhood @dan_abramov бесит когда с житхаба отправляют на SO и закрывают ишью. но чем почта лучше SO, потому что вы не одни тут
Отправляют, потому что GitHub issues — место для учета багрепортов, а не для бесплатных консультаций
@twenty @jsunderhood @dan_abramov бесит когда с житхаба отправляют на SO и закрывают ишью. но чем почта лучше SO, потому что вы не одни тут
9:43
@nanonymoused @twenty @jsunderhood Ну, классное отношение к тем, кто тратит свои ночи и выходные на то, чтоб помогать другим. Удачи тебе ;-)9:43
Подробнейший обзор новинок в Chromium 49 и Opera 36 Матиаса Байненса: CSS-переменные, ES6, … dev.opera.com/blog/opera-36/ pic.twitter.com/n9soOX4IfJ10:25
Some CEO threatened me through GitHub, Skype and e-mail to move back to ArcGIS if I don't immediately implement a feature. Such open source.10:31
Напоминаем что у нас на @kottans_org скоро стартует JS курс. pic.twitter.com/s9LhRgu84x15:25
New in @ChromeDevTools: Syntax highlighting for JSX files. pic.twitter.com/FOGKTnhrWS17:04
И вот еще вопрос: на каком уровне frontend-разработчик должен знать backend? Наверное это к @jsunderhood
Сейчас грань между frontend и backend всё больше размывается. Думаю, через несколько лет большинство будет fullstack
И вот еще вопрос: на каком уровне frontend-разработчик должен знать backend? Наверное это к @jsunderhood
17:16
# Четверг 19 твитов
@jsunderhood где играешь в Го? Какой дан или кю?:)
9k на online-go.com (самый лучший сервер — HTML5, mobile-friendly, дружелюбное комьюнити)
@jsunderhood где играешь в Го? Какой дан или кю?:)
9:02
@jsunderhood А можете что-нибудь посоветовать для обучения го? Играют ли на этом сервере новички?
Конечно! Лично я свою первую игру сыграл там же :) online-go.com/learn-to-play-…
@jsunderhood А можете что-нибудь посоветовать для обучения го? Играют ли на этом сервере новички?
9:22
Еще есть отличный интерактивный туториал тут: playgo.to/iwtg/russian/
9:22Одна из моих лучших JS-библиотек — Earcut, для быстрой триангуляции полигонов. Незаменима во многих WebGL apps github.com/mapbox/earcut
9:26Она стала результатом довольно серьезных алгоритмических исследований, и работает во много раз быстрее всех аналогов.
9:29После успешного применения в Web мы портировали ее на C++11 для своего нативного WebGL-рендерера github.com/mapbox/earcut.…
9:30Для получения векторных данных в очень компактном бинарном виде мы используем формат Protocol Buffers.
9:38Для него мы написали очень быстрый енкодер/декодер — github.com/mapbox/pbf. Существенно быстрее чем JSON.stringify/parse
9:39Кроме быстроты и компактности, одно из преимуществ — можно моментально пересылать данные между главным тредом и воркерами как ArrayBuffer
9:40Еще одно преимущество pbf — возможность lazy decoding (когда можно пропускать или откладывать декодирование части данных)
9:42@jsunderhood А почему не используете просто свое бинарное представление? Так бы еще и оверхед на передачу дескрипторов убрался.
Нет никакого оверхеда, свой формат был бы почти такого же размера
@jsunderhood А почему не используете просто свое бинарное представление? Так бы еще и оверхед на передачу дескрипторов убрался.
10:52
@jsunderhood Да есть, из-за спецификации которая заставляет слать описания и типы полей в каждом сообщении. Особенно если они маленькие.
Ты в любом случае добавлял бы описательные байты в бинарном формате с нефиксированными вложенными данными
@jsunderhood Да есть, из-за спецификации которая заставляет слать описания и типы полей в каждом сообщении. Особенно если они маленькие.
11:17
И большая часть размера — в геометрии, которая в данном случае запакована очень компактно (packed varint)
11:18Кроме этого есть другие преимущества — с форматом очень просто работать, легко делается версионность, он распространен
11:19An awesome long-read from @holman about smth important we *should* have a talk about: Firing People zachholman.com/talk/firing-pe…
Просто жесть, а не история... Что-то в последнее время очень много историй от известных людей о проблемах в GitHub
An awesome long-read from @holman about smth important we *should* have a talk about: Firing People zachholman.com/talk/firing-pe…
11:41
Dev Tips: #DevTools: Use the animation recorder to record transitions and animations: umaar.com/dev-tips/97-an… pic.twitter.com/wdJg20ERGv13:35
К вопросу о том, почему наши курсы бесплатные. @kottans_org pic.twitter.com/LPZPpzsXRj13:36
Node 5.9.0 released nodejs.org/en/blog/releas…
15:24Activity in node.js grew 27% year-on-year on SO, but React blew up: over 300% growth! We're seeing this at npm, too. pic.twitter.com/BEvDU9FmRx23:13
# Пятница 30 твитов
На фоне громадного количества багов и проблем производительности в NPM 3, очень многообещающе выглядит github.com/alexanderGugel…
10:13Работает в десятки (!) раз быстрее, просто поразительно. И избегает большинства проблем NPM засчет архитектуры.
10:14Пятница — последняя возможность задать мне кучу вопросов и получить ответы (на выходных много оффлайновых дел). Налетай :)
10:15An awesome talk by @BenLesh on #RxJS Version 5 at #Netflix buff.ly/1McTtxg @NetflixUIE pic.twitter.com/kSvfouyF4i10:19
@jsunderhood есть ещё github.com/rstacruz/pnpm10:23
@jsunderhood ок. Ну вот сотенку * на github получили. Как получить 1000? :D
Если все мои предыдущие советы выполнили и проект презентабелен, пора писать в тематические бложики и JS-рассылки :)
@jsunderhood ок. Ну вот сотенку * на github получили. Как получить 1000? :D
10:26
@jsunderhood как я понял, pnpm и ied не поддерживают установку с github, поэтому пока что useless.
Ну, это дело времени. :)
@jsunderhood как я понял, pnpm и ied не поддерживают установку с github, поэтому пока что useless.
10:28
@jsunderhood Спасибо! Второй вопрос: как найти/привлечь других людей, которые могут помочь с проектом?
Если проект полезен, люди сами придут помогать. Когда кто-то репортит баг, ненавязчиво предлагайте сделать PR :)
@jsunderhood Спасибо! Второй вопрос: как найти/привлечь других людей, которые могут помочь с проектом?
10:43
Часто люди втягиваются, делая незначительные фиксы, а потом увлекаются и начинают контрибьютить активнее :)
10:44Excellent post from @demishassabis about what Google learned from the AlphaGo match.10:44
Когда вы теряетесь, пытаясь понять, о чем идет речь на enterprise-сайте, используйте мою библиотеку github.com/mourner/bullsh…
10:48@jsunderhood В некоторых проектах это на удивление хорошо работает. В некоторых не работает вообще никак. @dcromster
Когда вообще не работает, пора задуматься, не лежит ли корень проблемы в том, как написан и организован код
@jsunderhood В некоторых проектах это на удивление хорошо работает. В некоторых не работает вообще никак. @dcromster
10:50
@jsunderhood Давно заметил, что проекты для разработчиков получают больше пулреквестов, а проекты для пользователей больше тупых вопросов.
Вот это правда. В Mapbox мы как правило стараемся опенсорсить модули/библиотеки, а продукты оставляем приватными.
@jsunderhood Давно заметил, что проекты для разработчиков получают больше пулреквестов, а проекты для пользователей больше тупых вопросов.
11:10
Для продуктовых репозиториев часто имеет смысл отключать issues
11:12Интересные мысли об отключении ишьюсов на Гитхабе: gist.github.com/ryanflorence/8…11:13
@jsunderhood как найти работу в опенсорс?
Делать много качественных контрибьюшнов. Когда есть что показать, рассылать резюме в open-source-компании :)
@jsunderhood как найти работу в опенсорс?
11:15
@jsunderhood подождем. Может и npm одумается к тому времени. :) Сейчас средний проект 1-3мин ставится через npm :/
Последние 6 месяцев команда NPM работает над тем, чтобы заставить тесты работать под Windows :) Ждать придется долго
@jsunderhood подождем. Может и npm одумается к тому времени. :) Сейчас средний проект 1-3мин ставится через npm :/
11:16
@jsunderhood Я навязчиво пишу github.com/istarkov/babel… что я приму PR ;-) чем как бы намекаю что сам делать не буду, помогает
Я тоже так часто делаю, когда чувствую что другие справятся без меня :)
@jsunderhood Я навязчиво пишу github.com/istarkov/babel… что я приму PR ;-) чем как бы намекаю что сам делать не буду, помогает
11:18
У нас в Mapbox политика "open source by default". Написал что-то полезное — можно не спрашивать, а сразу оформлять модуль на GitHub.
11:44На GitHub у нас уже 532 публичных репозитория. :) github.com/mapbox/
11:45@jsunderhood будешь ли в ближайшее время выступать на конференциях?
Собираюсь в Бонн на 2016.foss4g.org. Еще хочется на @fronttrends — надеюсь, примут доклад :)
@jsunderhood будешь ли в ближайшее время выступать на конференциях?
12:18
Node.js ES2015 Support @williamkapke12:37
[Kangax’s compat-table applied only to Node.js]
node.green ^ar
@jsunderhood Как вы в этом ориентируетесь? Есть какая-то база знаний про эти ваши репозитории?
Репозитории хорошо между собой перелинкованы, иногда есть мета-репозитории, как этот github.com/mapbox/mapbox-…
@jsunderhood Как вы в этом ориентируетесь? Есть какая-то база знаний про эти ваши репозитории?
13:21
I’m sorry for dropping the ball in my email and DM game. I’m much less responsive than a month ago. I use that time to work on React!
Популярные open-source-разработчики часто чувствуют вину за то, что не могут всем помочь и ответить. Желающих много.
I’m sorry for dropping the ball in my email and DM game. I’m much less responsive than a month ago. I use that time to work on React!
13:55
Приходится учиться архивировать многие письма и сообщения без ответа, но это единственная возможность успевать работать. @dan_abramov
13:56Есть у опенсорса беда — авторы не ведут чейнджлог. @jsunderhood pic.twitter.com/Tg2ifyns98
Кстати, очень удобно вести Changelog в GitHub releases. Tags -> Edit release notes, или "Draft a new release"
Есть у опенсорса беда — авторы не ведут чейнджлог. @jsunderhood pic.twitter.com/Tg2ifyns98
14:46
На правах пятницы, музыкальная пауза! Живое выступление, я тут по центру с акустикой youtube.com/watch?v=eAgGlP… (для любителей пост-рока)
14:54@jsunderhood может ли излечиться разработчик от stackoverflow-driven development, если попадает в правильную среду? (и может ли он попасть))
Может, но только в том случае, если хочет.
@jsunderhood может ли излечиться разработчик от stackoverflow-driven development, если попадает в правильную среду? (и может ли он попасть))
15:46
Excess XSS: excess-xss.com Level-up frontend security skills with a detailed guide on cross-site scripting pic.twitter.com/fLTtoqIGzB19:38
Our new weekly blog on web tooling issues:19:47✅ Service Workers
✅ Progressive Web Apps
✅ RAIL on 3G
✅ ES2015
✅ Sass
# Воскресенье 3 твита
Всем хорошего завершения выходных! Есть еще ко мне вопросы перед тем, как закончится неделя?
17:13Эта неделя была эталоном противоположности в @jsunderhood и @cssunderhood18:15
Спасибо всем, было приятно пообщаться! С вами был @mourner. До встречи! pic.twitter.com/nzqP0toO2F
18:20# Ссылки
github.com
- https://github.com/mourner/projects
- https://github.com/mapbox/pixelmatch
- https://github.com/Leaflet/Leaflet
- https://github.com/mapbox/mapbox-gl-js
- https://github.com/mapbox/earcut
- https://github.com/mourner/rbush
- https://github.com/mikolalysenko/box-intersect
- https://github.com/oivva/otto
- https://github.com/mourner/suncalc
- https://github.com/mourner/eslint-config-mourner
- https://github.com/3Dparallax/insight/
- https://github.com/mapbox/earcut.hpp
- https://github.com/mapbox/pbf
- https://github.com/alexanderGugel/ied
- https://github.com/rstacruz/pnpm
- https://github.com/mourner/bullshit.js
- https://github.com/rstacruz/pnpm#preview-release
- https://github.com/mapbox/
- https://github.com/mapbox/mapbox-gl
other
- http://data-hub.com.ua/
- https://www.youtube.com/watch?v=NLbyHffKQuU
- https://www.youtube.com/watch?v=e_-qV8waPVM
- https://www.youtube.com/watch?v=u2ppZYvpeb4
- https://www.youtube.com/watch?v=eAgGlPyxFyc
- http://rain.in.ua/ru.html
- http://imgur.com/a/bNmbI
- https://www.reddit.com/r/bodyweightfitness/comments/1lbyub/1_year_of_bodyweight_strength_training_thoughts/
- http://git.io/top
- https://git.io/vaRt1
- http://webglstats.com/
- https://medium.com/javascript-scene/why-i-use-tape-instead-of-mocha-so-should-you-6aa105d8eaf4
- https://medium.com/
- https://medium.com/@kentcdodds/why-i-don-t-commit-generated-files-to-master-a4d76382564
- https://medium.com/@addyosmani/issue-1-service-worker-debugging-rail-on-3g-offline-analytics-progressive-web-apps-rollupify-a08f410f3fe6#.nuk32q8of
- http://mrale.ph/blog/2013/03/28/why-asmjs-bothers-me.html
- https://saucelabs.com/
- https://karma-runner.github.io/
- http://suncalc.net/
- https://kpdecker.github.io/six-speed/
- https://coveralls.io/
- https://swift.org/documentation/
- http://www.2ality.com/2015/06/web-assembly.html
- https://www.phoronix.com/scan.php?page=news_item&px=Servo-Browser-June-Plan
- https://hacks.mozilla.org/2016/03/a-webassembly-milestone/
- https://en.wikipedia.org/wiki/Web_Mercator
- https://dev.opera.com/blog/opera-36/
- https://online-go.com/
- https://online-go.com/learn-to-play-go
- http://playgo.to/iwtg/russian/
- https://umaar.com/dev-tips/97-animation-recorder/
- https://nodejs.org/en/blog/release/v5.9.0/
- http://buff.ly/1McTtxg
- https://gist.github.com/ryanflorence/8a62abea562ca2896dee
- http://2016.foss4g.org/
- http://node.green/
- http://excess-xss.com/
- http://www.last.fm/tag/swedish/artists