В последнее время в уважаемых ютуб-шоу, появляются передачи, целиком посвящённые шмоту. Разговор ведут про оригинальные и не оригинальные вещи, про людей, которые коллекционируют и перепродают кроссовки и вот это вот всё.
kuji - https://youtu.be/xicjPK6f7bI
редакция - https://youtu.be/CPDMFeMdEHI
лентару (извините) - https://youtu.be/Gk_N2mhUnJo
Честно скажу, я всем этим не болею, но один раз даже я загорелся найти себе одни кроссы :) Такие как technical boy из сериала american gods (https://tvline.com/2017/05/07/american-gods-technical-boy-season-1-spoilers-bruce-langley/).
Найти не вышло, и я благополучно о них забыл.
Но сегодня - второй такой раз. Найти такие шузы невозможно, но, может, вы знаете кого-то кто делает кастомы? Желательно не из папье-маше :)
kuji - https://youtu.be/xicjPK6f7bI
редакция - https://youtu.be/CPDMFeMdEHI
лентару (извините) - https://youtu.be/Gk_N2mhUnJo
Честно скажу, я всем этим не болею, но один раз даже я загорелся найти себе одни кроссы :) Такие как technical boy из сериала american gods (https://tvline.com/2017/05/07/american-gods-technical-boy-season-1-spoilers-bruce-langley/).
Найти не вышло, и я благополучно о них забыл.
Но сегодня - второй такой раз. Найти такие шузы невозможно, но, может, вы знаете кого-то кто делает кастомы? Желательно не из папье-маше :)
Сколько раз себе говорил: «хочешь что-то сделать, делай сейчас. «потом» не существует».
Естественно, так оно и происходит :)
Вот коменты к посту на HN, про который я забыл написать:
https://news.1rj.ru/str/devfounder/14
Естественно, так оно и происходит :)
Вот коменты к посту на HN, про который я забыл написать:
https://news.1rj.ru/str/devfounder/14
Telegram
.и в продакшен
На Hackernews недели три назад прошло голосование "какую технологию стоит учить в 2020?"
И больше всего апвоутов набрал такой ответ:
Learn how to really use a relational database, relational data modeling, and SQL
Ну неужели, наконец-то кто-то это сказал.…
И больше всего апвоутов набрал такой ответ:
Learn how to really use a relational database, relational data modeling, and SQL
Ну неужели, наконец-то кто-то это сказал.…
Forwarded from proVenture (проВенчур)
Могло это случиться с postgresql или mssql?
Могло. Но постоянно случается с mongodb и elasticsearch.
Можно сделать плохую архитектуру на go?
Можно. Но постоянно делают на ruby :)
https://vc.ru/finance/106366-dannye-44-tysyach-klientov-kreditnogo-brokera-alfa-kredit-okazalis-v-otkrytom-dostupe
Могло. Но постоянно случается с mongodb и elasticsearch.
Можно сделать плохую архитектуру на go?
Можно. Но постоянно делают на ruby :)
https://vc.ru/finance/106366-dannye-44-tysyach-klientov-kreditnogo-brokera-alfa-kredit-okazalis-v-otkrytom-dostupe
Как оказалось, все любят подборки ссылок.
У подборки про собеседования https://news.1rj.ru/str/nosingularity/197
620 просмотров на данный момент.
У меня в загашнике огромная подборка по postgresql, по которой я пилю правила для своего анализатора. Я ее когда-нибудь причешу и выложу, но пока есть вот такое:
https://github.com/pingcap/awesome-database-learning
У подборки про собеседования https://news.1rj.ru/str/nosingularity/197
620 просмотров на данный момент.
У меня в загашнике огромная подборка по postgresql, по которой я пилю правила для своего анализатора. Я ее когда-нибудь причешу и выложу, но пока есть вот такое:
https://github.com/pingcap/awesome-database-learning
Telegram
Сингулярности не будет (18+)
В @ctodailychat подняли вопрос повышения квалификации и подготовкам к интервью при смене работы.
И если для молодых разработчиков смена работы довольно привычный паттерн, то для людей постарше это может быть проблемой. Особенно, когда работаешь 10 лет…
И если для молодых разработчиков смена работы довольно привычный паттерн, то для людей постарше это может быть проблемой. Особенно, когда работаешь 10 лет…
Обещал пост про то, какой я контрол-фрик, но не было повода.
Олег запостил про скорость написания кода ведущего разработчика redis:
https://news.1rj.ru/str/oleg_log/2785
Мне тоже было интересно про скорость :)
Я для статы стал использовать
wakatime.com
А вы с какой скоростью фигачите?
Олег запостил про скорость написания кода ведущего разработчика redis:
https://news.1rj.ru/str/oleg_log/2785
Мне тоже было интересно про скорость :)
Я для статы стал использовать
wakatime.com
А вы с какой скоростью фигачите?
Telegram
oleg_log
Капитанский журнал.
День 3650й
Спустя 10 лет создатель Редиса пересчитал сколько кода он пишет в день. Получилось ~29 строк в день на основном проекте и где-то 50 вместе с сайд проектами. И это довольно интересный, но ожидаемый, показатель особенно учитывая…
День 3650й
Спустя 10 лет создатель Редиса пересчитал сколько кода он пишет в день. Получилось ~29 строк в день на основном проекте и где-то 50 вместе с сайд проектами. И это довольно интересный, но ожидаемый, показатель особенно учитывая…
В твиттере разрабы стали светить свои инкамы и один добрый человек подбил все в табличку:
https://news.ycombinator.com/item?id=22334702
Самое большое удивление вызвал инкам Дэна Абрамова с $130к в год в Лондоне в FB до налогов или $78к в год после.
Для тех кто не знает Дэна - это чувак, которого не взяли в яндекс :) после этого он покурил elm и на его идеях запилил Redux.
https://news.ycombinator.com/item?id=22334702
Самое большое удивление вызвал инкам Дэна Абрамова с $130к в год в Лондоне в FB до налогов или $78к в год после.
Для тех кто не знает Дэна - это чувак, которого не взяли в яндекс :) после этого он покурил elm и на его идеях запилил Redux.
По ссылке ниже показано как хороша жизнь без наркотиков (зачеркнуто) у джавистов, которые используют mysql и jooq.
https://stackoverflow.com/a/60165985/521799
Если вы не знаете что такое jooq, то я расскажу. Это такая страшная ORM для джавистов, где есть отдельный DSL (свой язык), который билдится в sql.
Я вот прям даже не знаю, можно ли придумать пример лучше, который бы иллюстрировал, что так делать не надо. (Miro, привет!)
Фанаты jooq называют это simple hack, кстати :)
https://stackoverflow.com/a/60165985/521799
Если вы не знаете что такое jooq, то я расскажу. Это такая страшная ORM для джавистов, где есть отдельный DSL (свой язык), который билдится в sql.
Я вот прям даже не знаю, можно ли придумать пример лучше, который бы иллюстрировал, что так делать не надо. (Miro, привет!)
Фанаты jooq называют это simple hack, кстати :)
я посмотрел ^.
Разговор шел с героем этого твита:
https://news.1rj.ru/str/nosingularity/252
Никаких особенных откровений не было. Выгнали пхпэшников, которые не знают sql, взяли тех, которые знают. 10 лет страдали, теперь не страдают. Что мешало не страдать - не рассказали :)
Я каждый раз удивляюсь таким историям: мы долго страдали, потом немного подумали, перестали страдать.
Но rocket science при этом не происходит.
Почему не подумали до этого - хз. Зачем рассказывать какие вы балбесы - хз.
Разговор шел с героем этого твита:
https://news.1rj.ru/str/nosingularity/252
Никаких особенных откровений не было. Выгнали пхпэшников, которые не знают sql, взяли тех, которые знают. 10 лет страдали, теперь не страдают. Что мешало не страдать - не рассказали :)
Я каждый раз удивляюсь таким историям: мы долго страдали, потом немного подумали, перестали страдать.
Но rocket science при этом не происходит.
Почему не подумали до этого - хз. Зачем рассказывать какие вы балбесы - хз.
И еще в догонку про новость про обман систем распознавания образов (https://news.1rj.ru/str/nosingularity/236)
Тут опять дурят теслу:
https://news.1rj.ru/str/brodetsky/2074
Стоит отметить, что подобны системы стоят на многих автомобилях. Здорово бы было сравнить :)
Тут опять дурят теслу:
https://news.1rj.ru/str/brodetsky/2074
Стоит отметить, что подобны системы стоят на многих автомобилях. Здорово бы было сравнить :)
Telegram
Сингулярности не будет
В процессорах intel нашли очередную дыру, при помощи ведра с андройдамии можно эмулировать пробки в google maps, а в хром палит каждого из нас по индивидуальному айдишнику.
Как говорится, ален нови, ностра алис! Что означает — ежели один человек построил…
Как говорится, ален нови, ностра алис! Что означает — ежели один человек построил…
открытое письмо, блин :)
@jitbit написал как он решал боль с тринарным оператором:
https://news.1rj.ru/str/devfounder/18
У меня есть пара комментариев, которые явно не тянули на отдельную статью, но теперь можно :)
Тут, безусловно, опыт накладывает отпечаток, но отсутствие правой части плохо тем, что возникает место, где что-то подразумевается.
Это плохо по многим причинам, но основная причина в том, что разные люди могут подразумевать разное, а компилятор совсем другое :)
Я стараюсь придерживаться принципа more verbose и искренне вам советую.
Например, в нашем конфиге линтера включено правило, которое запрещает в тринарных операторах писать так:
a ? 1 : 2
нужно обязательно написать конкретно:
a != null ? 1 : 2
Больше букв? Больше. Но, как говорится, есть нюанс :)
"" ? 1 : 2
Результат равен 2.
оО скажете вы. «Сюрприз!», - скажет js.
Или еще одна вещь, которая пила мне кровь, и мы, кажется, тоже запретили ее в линтере.
Это дефолтные значения параметров в функциях.
В питоне, например, все библиотеки забиты функциями с дефолтными параметрами и это одна из хороших причин не любить этот язык.
Что тут такого?
Описана, например, функция getData(query, limit=100), которая, допустим, выбирает что-то из базы с заданным лимитом. В коде она будет выглядеть как
getData(‘...’)
Сколько времени придется потратить, прежде чем новый программист в этом проекте поймет почему у него иногда возвращаются не все данные?
Зависит от опыта, но это явно не 5 минут.
Как сэкономить себе и другим нервы и время? заведите рядом константу или передавайте это значение из конфига.
Еще одно правило, экономящее нервы, запрещало писать функции без лямбды в качестве параметров функций. Например:
1,2.map(console.log)
Что ожидается? Две строки со значениями элементов в консоли. А что будет?
1,0
2,1
wtf? В колбек map передается две переменных - значение и номер в массиве. А console.log выведет все, что ей передали.
Конкретно в этом случае это безвредно, но так будет не всегда :)
И последний пример, показывающий важность статического анализа.
Есть в js вещь, которую без типов и стат анализа не сделать, и она портит жизнь всем js/flow/ts разработчикам в мире. Это конструкция вида
array.includes(value)
Не знаю по какой причине во flow этого нет (хз как в ts, но думаю, что тоже), но сигнатура функции позволяет проверять на вхождение в массив элементов типов, отличных от типа массива. В итоге получается, что ты пишешь
1,2.includes(object)
и у компилятора это не вызывает вопросов, хотя ты явно хотел не этого, а чего-то вида
1,2.includes(object.field)
Один раз я потратил 5 часов, когда искал эту багу.
После чего я попросил запилить ворнинг для линтера, который будет орать на все .includes
Лучше я проверю это место руками и задизейблю это правило для конкретной строки, чем пропущу это место.
Какие выводы, кроме того, что js и питон плохие языки и даже статические типизаторы вас не спасут?
1) изучайте разные языки для расширения кругозора. В функциональных языках невозможно делать if без else и рекурсивную функцию без описанного условия выхода. И тринарному оператору нельзя существовать без правой части.
Если вы будете делать так же в своем коде, завтрашний вы скажет вам спасибо :)
2) не экономьте на символах. Чем более точно вы опишете компилятору, что вы от него хотите, тем спокойнее будет ваш сон :) Даже если компилятор поймет укороченную версию, завтрашний вы можете об этом забыть. Не говоря уже о новых сотрудниках на проекте.
3) используйте статические анализаторы и статическую типизацию в языках, где нет нормальной типизации. Велика вероятность, что это сэкономит вашей компании много денег, а вас не лишит места в этой компании :)
Кстати, скоро я выкачу первую версию статического анализатора для sql, поэтому готовьте ваши запросы :)
@jitbit написал как он решал боль с тринарным оператором:
https://news.1rj.ru/str/devfounder/18
У меня есть пара комментариев, которые явно не тянули на отдельную статью, но теперь можно :)
Тут, безусловно, опыт накладывает отпечаток, но отсутствие правой части плохо тем, что возникает место, где что-то подразумевается.
Это плохо по многим причинам, но основная причина в том, что разные люди могут подразумевать разное, а компилятор совсем другое :)
Я стараюсь придерживаться принципа more verbose и искренне вам советую.
Например, в нашем конфиге линтера включено правило, которое запрещает в тринарных операторах писать так:
a ? 1 : 2
нужно обязательно написать конкретно:
a != null ? 1 : 2
Больше букв? Больше. Но, как говорится, есть нюанс :)
"" ? 1 : 2
Результат равен 2.
оО скажете вы. «Сюрприз!», - скажет js.
Или еще одна вещь, которая пила мне кровь, и мы, кажется, тоже запретили ее в линтере.
Это дефолтные значения параметров в функциях.
В питоне, например, все библиотеки забиты функциями с дефолтными параметрами и это одна из хороших причин не любить этот язык.
Что тут такого?
Описана, например, функция getData(query, limit=100), которая, допустим, выбирает что-то из базы с заданным лимитом. В коде она будет выглядеть как
getData(‘...’)
Сколько времени придется потратить, прежде чем новый программист в этом проекте поймет почему у него иногда возвращаются не все данные?
Зависит от опыта, но это явно не 5 минут.
Как сэкономить себе и другим нервы и время? заведите рядом константу или передавайте это значение из конфига.
Еще одно правило, экономящее нервы, запрещало писать функции без лямбды в качестве параметров функций. Например:
1,2.map(console.log)
Что ожидается? Две строки со значениями элементов в консоли. А что будет?
1,0
2,1
wtf? В колбек map передается две переменных - значение и номер в массиве. А console.log выведет все, что ей передали.
Конкретно в этом случае это безвредно, но так будет не всегда :)
И последний пример, показывающий важность статического анализа.
Есть в js вещь, которую без типов и стат анализа не сделать, и она портит жизнь всем js/flow/ts разработчикам в мире. Это конструкция вида
array.includes(value)
Не знаю по какой причине во flow этого нет (хз как в ts, но думаю, что тоже), но сигнатура функции позволяет проверять на вхождение в массив элементов типов, отличных от типа массива. В итоге получается, что ты пишешь
1,2.includes(object)
и у компилятора это не вызывает вопросов, хотя ты явно хотел не этого, а чего-то вида
1,2.includes(object.field)
Один раз я потратил 5 часов, когда искал эту багу.
После чего я попросил запилить ворнинг для линтера, который будет орать на все .includes
Лучше я проверю это место руками и задизейблю это правило для конкретной строки, чем пропущу это место.
Какие выводы, кроме того, что js и питон плохие языки и даже статические типизаторы вас не спасут?
1) изучайте разные языки для расширения кругозора. В функциональных языках невозможно делать if без else и рекурсивную функцию без описанного условия выхода. И тринарному оператору нельзя существовать без правой части.
Если вы будете делать так же в своем коде, завтрашний вы скажет вам спасибо :)
2) не экономьте на символах. Чем более точно вы опишете компилятору, что вы от него хотите, тем спокойнее будет ваш сон :) Даже если компилятор поймет укороченную версию, завтрашний вы можете об этом забыть. Не говоря уже о новых сотрудниках на проекте.
3) используйте статические анализаторы и статическую типизацию в языках, где нет нормальной типизации. Велика вероятность, что это сэкономит вашей компании много денег, а вас не лишит места в этой компании :)
Кстати, скоро я выкачу первую версию статического анализатора для sql, поэтому готовьте ваши запросы :)
И, конечно же, этот пост был бы не полным без этой картинки
а еще кривой бот сожрал квадратные скобки у всех массивов. ЪУЪ!
Forwarded from I hate overtime
This media is not supported in your browser
VIEW IN TELEGRAM
И вместо пятничного мема вот вам гифка на случай важных переговоров.
Если что, это Robert Martin, автор Clean Code
Если что, это Robert Martin, автор Clean Code