Апдейт из обсуждения поста
https://news.1rj.ru/str/nosingularity/261
в чате канала:
1) дефолтные значения параметров не спасут вас от попадания туда undefined. Пример:
2) возможно, отдельного разговора заслуживает позиция, которая говорит о том, что у функции не должно быть больше 1 параметра. Если это требуется - все параметры необходимо засунуть в объект.
3) parseString(str = '') это не тоже самое, что parseString(val || '')
4) «ide подсвечивает параметры функции». Не любая, не все и не всегда. Кроме того, ide это делает только в процессе написания кода. Когда код написан, уже никто ничего не подсвечивает.
Если уровень понимания кода во время его написания отличается от уровня понимания во время его чтения, такой код называется write only.
Это плохо, тк дебажить и рефакторить такой код становится очень тяжело.
5) типы нужны. причем в наших правилах линтера даже было такое, которе заставляет всегда прописывать тип руками, что фактически запрещает автоматический вывод типов. Это правило вызвало по-началу много ругани, но после пары раз , когда это спасло, дебаты прекратились.
6) типы не спасут от нарушения сервером (фронтом) контракта. Типы для этого не предназначены. От нарушения контракта спасают схемы контрактов и обязательная валидация объектов по этим контрактам. Для json это json-schema. Но так же есть другие форматы, где схема присутвует by design
7) покажи конфиг. Показываю:
https://github.com/acmecryptocorp
Замечу, что создавал и поддерживал этот конфиг отдельный умный разработчик :)
8) js плохой язык. Большенство плохие. Часть при этом еще и скучные. Но с хорошими языками сложная ситуация - вы либо не сможете на них писать, либо не будет желания писать ни на чем, кроме них, а таких вакансий довольно мало.
Бэкам рекомендую посмотреть haskell, фронтам elm.
В далеких планах у меня переезд с flow на go, и хочу замерять скорость перехода.
Буду держать вас в курсе :)
https://news.1rj.ru/str/nosingularity/261
в чате канала:
1) дефолтные значения параметров не спасут вас от попадания туда undefined. Пример:
const parseString = (str = '') => {console.log(str)};
parseString(undefined);2) возможно, отдельного разговора заслуживает позиция, которая говорит о том, что у функции не должно быть больше 1 параметра. Если это требуется - все параметры необходимо засунуть в объект.
3) parseString(str = '') это не тоже самое, что parseString(val || '')
4) «ide подсвечивает параметры функции». Не любая, не все и не всегда. Кроме того, ide это делает только в процессе написания кода. Когда код написан, уже никто ничего не подсвечивает.
Если уровень понимания кода во время его написания отличается от уровня понимания во время его чтения, такой код называется write only.
Это плохо, тк дебажить и рефакторить такой код становится очень тяжело.
5) типы нужны. причем в наших правилах линтера даже было такое, которе заставляет всегда прописывать тип руками, что фактически запрещает автоматический вывод типов. Это правило вызвало по-началу много ругани, но после пары раз , когда это спасло, дебаты прекратились.
6) типы не спасут от нарушения сервером (фронтом) контракта. Типы для этого не предназначены. От нарушения контракта спасают схемы контрактов и обязательная валидация объектов по этим контрактам. Для json это json-schema. Но так же есть другие форматы, где схема присутвует by design
7) покажи конфиг. Показываю:
https://github.com/acmecryptocorp
Замечу, что создавал и поддерживал этот конфиг отдельный умный разработчик :)
8) js плохой язык. Большенство плохие. Часть при этом еще и скучные. Но с хорошими языками сложная ситуация - вы либо не сможете на них писать, либо не будет желания писать ни на чем, кроме них, а таких вакансий довольно мало.
Бэкам рекомендую посмотреть haskell, фронтам elm.
В далеких планах у меня переезд с flow на go, и хочу замерять скорость перехода.
Буду держать вас в курсе :)
https://habr.com/ru/company/piter/blog/489660/
«Пришло время признать давно известную истину: базы данных NoSQL не подходят для решения многих практических задач, стоящих перед современными приложениями, и время этих баз данных прошло.»
Предвижу тред на 300 каментов :)
Я согласен с тезисом и мне тоже кажется, что nosql не могут быть эффективно использованы в качестве основных баз для большинства проектов.
Я уже давал ссылку о том, сколько данных теряет кластер монги, но не грех повторить:
https://aphyr.com/posts/284-jepsen-mongodb
Да и ладно бы кластер, не каждый хипстер доживет до таких размеров проекта.
Но aggregation framework это, на мой взгляд, кровь из глаз.
И при любом шаге в сторону при хранении данных в ненормализованном виде приходит пушной зверёк.
Там, кстати, еще есть про редис, рекомендую.
«Опять бухтишь?»
Нет, с чего вы взяли?! Все эти базы отлично подходят для второстепенных задач. Основное применение - кеширование на разных уровнях. Например, expressjs использует redis для централизованного хранения сессий.
Еще мне нравится neo4j. Надеюсь, что когда-нибудь дойдут руки до одного проекта с графами.
Я уже рассказывал, что Miro (ex-realtimeboard) очень долго хранили все в redis. И теперь из-за этого имеют довольно некрасивый api.
Есть всякие экзотические штуки типа foundationDB, tarantool, и прочего, но я, к сожалению, не слышал о их применении в проде за пределами компаний, которые их разработали.
«Пришло время признать давно известную истину: базы данных NoSQL не подходят для решения многих практических задач, стоящих перед современными приложениями, и время этих баз данных прошло.»
Предвижу тред на 300 каментов :)
Я согласен с тезисом и мне тоже кажется, что nosql не могут быть эффективно использованы в качестве основных баз для большинства проектов.
Я уже давал ссылку о том, сколько данных теряет кластер монги, но не грех повторить:
https://aphyr.com/posts/284-jepsen-mongodb
Да и ладно бы кластер, не каждый хипстер доживет до таких размеров проекта.
Но aggregation framework это, на мой взгляд, кровь из глаз.
И при любом шаге в сторону при хранении данных в ненормализованном виде приходит пушной зверёк.
Там, кстати, еще есть про редис, рекомендую.
«Опять бухтишь?»
Нет, с чего вы взяли?! Все эти базы отлично подходят для второстепенных задач. Основное применение - кеширование на разных уровнях. Например, expressjs использует redis для централизованного хранения сессий.
Еще мне нравится neo4j. Надеюсь, что когда-нибудь дойдут руки до одного проекта с графами.
Я уже рассказывал, что Miro (ex-realtimeboard) очень долго хранили все в redis. И теперь из-за этого имеют довольно некрасивый api.
Есть всякие экзотические штуки типа foundationDB, tarantool, и прочего, но я, к сожалению, не слышал о их применении в проде за пределами компаний, которые их разработали.
Добавлю, что для хранения json идеально подходит postgresql, особенно после появления jsonpath в 12 версии
И да, я знаю, что stripe используют mongo в качестве основной базы. От этого становится особенно страшно за благополучие всех, использующих его компаний.
Что я только не повидал за годы работы с процессингами. Отсутствие монги не гарантирует хороший сервис. Но ее присутствие гарантирует много проблем.
Что я только не повидал за годы работы с процессингами. Отсутствие монги не гарантирует хороший сервис. Но ее присутствие гарантирует много проблем.
Красные вырываются вперёд...
https://blog.cloudflare.com/cloudflares-gen-x-servers-for-an-accelerated-future/
Клаудфлара рассказывает о своих новых серверах, в которых будут стоять кремни от AMD.
Как говорится, ушла эпоха.
Интересно, все те дыры в процах синих повлияли на выбор?
У меня, кстати, был десктоп на AMD. С тремя, сцк, ядрами :)
А еще, внезапно выяснилось, что у меня нет ни одного компа с видюхой от NVIDIA - все от INTEL или AMD. Поэтому фак ю, а не CUDA :(
Клаудфлара, кстати, большие молодцы. Вот пост о том, как они заменили elastic на clickhouse и сэкономили пикап денег:
https://blog.cloudflare.com/http-analytics-for-6m-requests-per-second-using-clickhouse/
Вот это видно - умеют люди в unit-экономику, не то что dhh со своими RoR (https://news.1rj.ru/str/nosingularity/215)
https://blog.cloudflare.com/cloudflares-gen-x-servers-for-an-accelerated-future/
Клаудфлара рассказывает о своих новых серверах, в которых будут стоять кремни от AMD.
Как говорится, ушла эпоха.
Интересно, все те дыры в процах синих повлияли на выбор?
У меня, кстати, был десктоп на AMD. С тремя, сцк, ядрами :)
А еще, внезапно выяснилось, что у меня нет ни одного компа с видюхой от NVIDIA - все от INTEL или AMD. Поэтому фак ю, а не CUDA :(
Клаудфлара, кстати, большие молодцы. Вот пост о том, как они заменили elastic на clickhouse и сэкономили пикап денег:
https://blog.cloudflare.com/http-analytics-for-6m-requests-per-second-using-clickhouse/
Вот это видно - умеют люди в unit-экономику, не то что dhh со своими RoR (https://news.1rj.ru/str/nosingularity/215)
В личку пришла ругань по мотивам https://news.1rj.ru/str/nosingularity/268, связанная с neo4j.
Говорят, что некачественный продукт :(
И это плохо, потому как из всех графовых баз эта казалась самой грамотной.
Есть еще redis-graph, но тут, сами понимаете, зависит от размера базы. Если засовывать что-то большое, то либо придется продать органы Безосу, либо покупать optane и мучаться самим...
Говорят, что некачественный продукт :(
И это плохо, потому как из всех графовых баз эта казалась самой грамотной.
Есть еще redis-graph, но тут, сами понимаете, зависит от размера базы. Если засовывать что-то большое, то либо придется продать органы Безосу, либо покупать optane и мучаться самим...
Вот сложно им было в json, придумали yaml. Нате, получите :)
https://twitter.com/chrisjrn/status/1232016100038266880
norway == no
namibia == na
ontario == on
Последние два, видимо, шутка :)
ps: https://noyaml.com/
https://twitter.com/chrisjrn/status/1232016100038266880
norway == no
namibia == na
ontario == on
Последние два, видимо, шутка :)
ps: https://noyaml.com/
Forwarded from addmeto
Все, режим тестирования закончился - Amazon запустили свой первый полностью автоматизированный ретейл магазин Amazon Go Grocery. Ни кассиров, ни касс, ничего такого - сканируйте свой QR-код на входе, набирайте товары и выходите, деньги спишутся с вашего счета. При этом все автоматическое и работает, не важно сколько вы стояли у полки, не важно сколько раз вы передумали и клали товары обратно на полку - важно только что вы вынесли из магазина.
Удобно, кажется в следующий визит в Штаты надо будет заглянуть в Сиетл хотябы ради этого https://www.geekwire.com/2020/amazon-goes-bigger-first-amazon-go-grocery-new-seattle-store-using-cashierless-technology/
Удобно, кажется в следующий визит в Штаты надо будет заглянуть в Сиетл хотябы ради этого https://www.geekwire.com/2020/amazon-goes-bigger-first-amazon-go-grocery-new-seattle-store-using-cashierless-technology/
GeekWire
Inside ‘Amazon Go Grocery’: Tech giant opens first full-sized store without cashiers or checkout lines
Amazon Go is going full grocery. Two years after launching a chain of convenience stores without cashiers or checkout lines, Amazon is opening its first "Amazon Go Grocery" store in Seattle on Tuesday…
Forwarded from XYZ
5 марта выходит The Longing — одна из самых необычных инди-игр года. Чтобы её пройти, можно просто подождать 400 дней реального времени — игру при этом даже не нужно держать включённой.
Рассказываем, как автор игры придумал и воплотил в жизнь эту странную на первый взгляд концепцию — вдохновившись собственным одиночеством, старинной немецкой легендой, музыкой жанра Dungeon Synth и... мобильными кликерами.
https://bit.ly/2PyG0oJ
Рассказываем, как автор игры придумал и воплотил в жизнь эту странную на первый взгляд концепцию — вдохновившись собственным одиночеством, старинной немецкой легендой, музыкой жанра Dungeon Synth и... мобильными кликерами.
https://bit.ly/2PyG0oJ
Medium
Как создавалась The Longing — игра, в которой нужно ждать 400 дней
Рассказываем об одной из самых необычных инди-игр 2020 года и процессе её создания на основе интервью и статей её автора.
... Где вы видели лопату с моторчиком?.. (старый анекдот)
Что приходится регулярно заряжать? Телефон, планшет, ноут, часы, павербанк :) Для жителей столицы в список можно добавить вейп, самокат, моно-колесо, теслу.
Но повестка сейчас другая, поэтому держите:
https://aliexpress.ru/item/4000268598234.html
(маска с вентилятором)
Что приходится регулярно заряжать? Телефон, планшет, ноут, часы, павербанк :) Для жителей столицы в список можно добавить вейп, самокат, моно-колесо, теслу.
Но повестка сейчас другая, поэтому держите:
https://aliexpress.ru/item/4000268598234.html
(маска с вентилятором)
... и как несложно заметить, всего в 90 строчек мы написали рендер сцены нападения на Зион из третей матрицы...
https://twitter.com/evvvvil/status/1233102898361487360
https://twitter.com/evvvvil/status/1233102898361487360
Twitter
evvvvil
"Mandelbox sweeper": Result of Tuesday's live coding session on Twitch. Made with 91 lines of GLSL shader code. Code on shadertoy: https://t.co/qV4Fej45IA #shader #glsl #livecoding #creativecoding #generativeart #ProceduralArt #Generative #demoscene #gif…
Forwarded from Технологический Болт Генона
This media is not supported in your browser
VIEW IN TELEGRAM
Это просто прекрасно
Building an AWS Dashboard Console using Arduino
https://dev.solita.fi/2019/04/26/aws-dashboard-console-using-arduino.html
Building an AWS Dashboard Console using Arduino
https://dev.solita.fi/2019/04/26/aws-dashboard-console-using-arduino.html
... теперь банановый! (реклама из 90-ых)
Наверняка вы знаете, что хранимки в postgresql можно писать на разных языках: sql, pl/pgsql, pl/tcl, pl/python, pl/perl, pl/java, pl/php, pl/ruby, pl/r, pl/sh, pl/psm(ansi sql), pl/scheme(древний lisp-family язык), pl/v8(js), и даже (гы) на c, но код надо заранее компилировать.
Казалось бы, этого вполне достаточно, чтобы упороться, и чтобы вас никогда не могли уволить (тк саппортить такую вундервафлю никто кроме вас не захочет).
Но теперь вы можете пилить хранимки еще и на go:
https://github.com/microo8/plgo
Точнее, это обман и никакого отдельного языка тут не устанавливается. Это всего-лишь враппер, который позволяет сбилдить extension из ваших сорцов на go.
ps: есть еще и plhaskell, но он не выглядит живым...
Наверняка вы знаете, что хранимки в postgresql можно писать на разных языках: sql, pl/pgsql, pl/tcl, pl/python, pl/perl, pl/java, pl/php, pl/ruby, pl/r, pl/sh, pl/psm(ansi sql), pl/scheme(древний lisp-family язык), pl/v8(js), и даже (гы) на c, но код надо заранее компилировать.
Казалось бы, этого вполне достаточно, чтобы упороться, и чтобы вас никогда не могли уволить (тк саппортить такую вундервафлю никто кроме вас не захочет).
Но теперь вы можете пилить хранимки еще и на go:
https://github.com/microo8/plgo
Точнее, это обман и никакого отдельного языка тут не устанавливается. Это всего-лишь враппер, который позволяет сбилдить extension из ваших сорцов на go.
ps: есть еще и plhaskell, но он не выглядит живым...
Подвожу итоги февраля.
- начал курс по Haskell
- написал пару программ на golang с горутинами :)
- закоммитился со старым корешем сделать воокшоп на productcamp по процессингу, запилил смешную презу и не поехал. upd: результаты на канале соучастника - https://news.1rj.ru/str/ITmoonIT/179
- выдрал из vitess.io ast-парсер для mysql. Не знаю как у них используется этот функционал, но если вам это важно, имейте в виду, что он даже синтаксис 5.7 поддерживает процентов на 40. И даже этот объем поддерживается довольно криво.
Например, при создании таблицы not null допускается писать как до, так и после auto increment, а парсер vitess.io понимает только один вариант.
Issue про синтаксис 8.0 висит уже 2 года и вот только пару дней назад его забрали в todo с приоритетом p3.
Честно говоря, каждый раз смотря на возможности mysql, все меньше понимаю причины по которым нужно брать ее в проект. Раньше этому было оправдание - все хостинги были с php4 + mysql, но сейчас-то зачем?
А, ну да, ну да - django и ror. Там без разницы в какую базу пихать...
Еще я зарелизил первую версию своего статического анализатора для pgsql. Отдельно не рассказывал, тк там пока только около 30 правил и фронт в процессе допиливания.
Пока всё в рамках holistic.dev/playground
В ближайший месяц надеюсь сделаем отдельный кабинет и апишку и буду потихоньку звать на тесты.
Если вдруг у вас есть время и желание приложить руку к проекту, то есть три направления, с чем можно помочь:
- парсеры ast. выдрать из баз или сбилдить по грамматикам (знание си)
- создавать тексты-описания правил для статического анализатора (технический английски, понимание pgsql)
- помочь с описанием типов для type-exporter для разных языков (нужно представление о том, как матчатся типы в вашем языке программирования с типами в pg)
Пиши @antonrevyako обсудим индивидуально :)
- начал курс по Haskell
- написал пару программ на golang с горутинами :)
- закоммитился со старым корешем сделать воокшоп на productcamp по процессингу, запилил смешную презу и не поехал. upd: результаты на канале соучастника - https://news.1rj.ru/str/ITmoonIT/179
- выдрал из vitess.io ast-парсер для mysql. Не знаю как у них используется этот функционал, но если вам это важно, имейте в виду, что он даже синтаксис 5.7 поддерживает процентов на 40. И даже этот объем поддерживается довольно криво.
Например, при создании таблицы not null допускается писать как до, так и после auto increment, а парсер vitess.io понимает только один вариант.
Issue про синтаксис 8.0 висит уже 2 года и вот только пару дней назад его забрали в todo с приоритетом p3.
Честно говоря, каждый раз смотря на возможности mysql, все меньше понимаю причины по которым нужно брать ее в проект. Раньше этому было оправдание - все хостинги были с php4 + mysql, но сейчас-то зачем?
А, ну да, ну да - django и ror. Там без разницы в какую базу пихать...
Еще я зарелизил первую версию своего статического анализатора для pgsql. Отдельно не рассказывал, тк там пока только около 30 правил и фронт в процессе допиливания.
Пока всё в рамках holistic.dev/playground
В ближайший месяц надеюсь сделаем отдельный кабинет и апишку и буду потихоньку звать на тесты.
Если вдруг у вас есть время и желание приложить руку к проекту, то есть три направления, с чем можно помочь:
- парсеры ast. выдрать из баз или сбилдить по грамматикам (знание си)
- создавать тексты-описания правил для статического анализатора (технический английски, понимание pgsql)
- помочь с описанием типов для type-exporter для разных языков (нужно представление о том, как матчатся типы в вашем языке программирования с типами в pg)
Пиши @antonrevyako обсудим индивидуально :)
There will be no singularity pinned «Подвожу итоги февраля. - начал курс по Haskell - написал пару программ на golang с горутинами :) - закоммитился со старым корешем сделать воокшоп на productcamp по процессингу, запилил смешную презу и не поехал. upd: результаты на канале соучастника - h…»