There will be no singularity – Telegram
There will be no singularity
1.99K subscribers
248 photos
15 videos
5 files
995 links
Smartface, technologies and decay
@antonrevyako
Download Telegram
Апдейт из обсуждения поста
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, и прочего, но я, к сожалению, не слышал о их применении в проде за пределами компаний, которые их разработали.
Добавлю, что для хранения 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://news.1rj.ru/str/nosingularity/268, связанная с neo4j.
Говорят, что некачественный продукт :(
И это плохо, потому как из всех графовых баз эта казалась самой грамотной.

Есть еще redis-graph, но тут, сами понимаете, зависит от размера базы. Если засовывать что-то большое, то либо придется продать органы Безосу, либо покупать optane и мучаться самим...
​​Вот сложно им было в json, придумали yaml. Нате, получите :)

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/
хорошая игра. и геймплей интересный
Forwarded from XYZ
5 марта выходит The Longing — одна из самых необычных инди-игр года. Чтобы её пройти, можно просто подождать 400 дней реального времени — игру при этом даже не нужно держать включённой.

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

https://bit.ly/2PyG0oJ
¯\_(ツ)_/¯
... Где вы видели лопату с моторчиком?.. (старый анекдот)

Что приходится регулярно заряжать? Телефон, планшет, ноут, часы, павербанк :) Для жителей столицы в список можно добавить вейп, самокат, моно-колесо, теслу.

Но повестка сейчас другая, поэтому держите:

https://aliexpress.ru/item/4000268598234.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, но он не выглядит живым...
Не связывайтесь с питоном :)
Подвожу итоги февраля.

- начал курс по 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…»