Раз уж тут так много новых людей — и особенно много тех, с кем я совершенно не знаком — пожалуй, стоит рассказать немного о себе и об этом канале.
Меня зовут Антон, ястудент человек студенческого возраста и в настоящий момент я работаю программистом, по работе пишу в основном... Да, на Rust, а как вы догадались? Я люблю Rust и ненавижу примерно все остальные языки программирования. Круг моих интересов относительно широк, но на канал изливается в основном программирование (серьёзно, около половины постов с хештегом #prog). Этот канал изначально планировался как удобная свалка ссылок, материалов и #meme-ов, и... Он таковым, в сущности, и остался. В своё оправдание я могу сказать, что все статьи (выкладываемые с хештегом #article) я всегда читаю перед тем, как выложить, так что делюсь я тем, что считаю стоящим своей аудитории.
Также ведение своего канала сподвигнуло меня на написание своих постов (и иногда даже перевод чужих статей), которые я выкладываю под хештегом #моё (как, впрочем, и созданные мною мемы). В их числе я хотел бы отметить:
- написание трейта, гарантирующего нулевой размер типа
- оптимизация размера итератора из стандартной библиотеки Rust (увы, не принятая)
- реализация zero-cost форматировщиков даты
- разбор различных способ реализации полиморфизма, с их достоинствами и недостатками
- эпические "Хроники замыканий" в 3 (пока что) частях: раз, два, три
- деликатный и глубокий анализ недостатков регулярных выражений
Для удобства привожу список всех хештегов на канале (может быть пополнен в будущем):
#3dcg
#abnormalprogramming
#algo
#amazingopensource
#anime
#art
#article
#bash
#bio
#blogrecommendation
#c
#cinema
#clojure
#cpp
#csharp
#db
#demoscene
#design
#dotnet
#erlang
#game
#go
#idris
#itsec
#haskell
#js
#java
#julia
#justrustaceanthings
#kbd
#life
#math
#mechanics
#meme
#menacingopensource
#ml
#mood
#music
#outoflinestorage
#parsing
#performancetrap
#php
#pixelart
#politota
#postgresql
#prog
#psy
#puzzle
#python
#quotes
#regex
#retroit
#r
#rust
#rustasync
#rustforlinux
#rustreleasenotes
#rustlib
#scala
#science
#serde
#shell
#soc
#softskills
#sql
#successstory
#suckassstory
#tips
#typescript
#video
#web
#zig
#бомбёжкипост
#культурнаяпрограмма
#лингво
#моё
#право
#трудовыебудни
Ну и традиционно — лайки, колокольчик, рассказывайте друзьям, бла бла бла, ну, вы знаете, как это обычно выглядит. Ну и раз уж я пока не могу поприветствовать каждого лично, я поприветствую всех новоприбывших скопом:
Добро пожаловать на канал!
Меня зовут Антон, я
Также ведение своего канала сподвигнуло меня на написание своих постов (и иногда даже перевод чужих статей), которые я выкладываю под хештегом #моё (как, впрочем, и созданные мною мемы). В их числе я хотел бы отметить:
- написание трейта, гарантирующего нулевой размер типа
- оптимизация размера итератора из стандартной библиотеки Rust (увы, не принятая)
- реализация zero-cost форматировщиков даты
- разбор различных способ реализации полиморфизма, с их достоинствами и недостатками
- эпические "Хроники замыканий" в 3 (пока что) частях: раз, два, три
- деликатный и глубокий анализ недостатков регулярных выражений
Для удобства привожу список всех хештегов на канале (может быть пополнен в будущем):
#3dcg
#abnormalprogramming
#algo
#amazingopensource
#anime
#art
#article
#bash
#bio
#blogrecommendation
#c
#cinema
#clojure
#cpp
#csharp
#db
#demoscene
#design
#dotnet
#erlang
#game
#go
#idris
#itsec
#haskell
#js
#java
#julia
#justrustaceanthings
#kbd
#life
#math
#mechanics
#meme
#menacingopensource
#ml
#mood
#music
#outoflinestorage
#parsing
#performancetrap
#php
#pixelart
#politota
#postgresql
#prog
#psy
#puzzle
#python
#quotes
#regex
#retroit
#r
#rust
#rustasync
#rustforlinux
#rustreleasenotes
#rustlib
#scala
#science
#serde
#shell
#soc
#softskills
#sql
#successstory
#suckassstory
#tips
#typescript
#video
#web
#zig
#бомбёжкипост
#культурнаяпрограмма
#лингво
#моё
#право
#трудовыебудни
Ну и традиционно — лайки, колокольчик, рассказывайте друзьям, бла бла бла, ну, вы знаете, как это обычно выглядит. Ну и раз уж я пока не могу поприветствовать каждого лично, я поприветствую всех новоприбывших скопом:
Добро пожаловать на канал!
Telegram
Блог*
#prog #rust #article #моё
Как я и обещал, я... Так, погодите, я не писал об этом в блоге? Впрочем, ладно, напишу сейчас: я планировал написать перевод этой статьи и выложить его на Хабре. Собственно, сегодня я это и сделал.
Как я и обещал, я... Так, погодите, я не писал об этом в блоге? Впрочем, ладно, напишу сейчас: я планировал написать перевод этой статьи и выложить его на Хабре. Собственно, сегодня я это и сделал.
#prog #js #typescript #article
Статья (pdf) о том, как типы могут помочь поймать баги в коде на JavaScript, на базе случайной выборки из репозиториев по всему GitHub. TL;DR: Flow и Typescript в состоянии поймать 15% из допущенных багов (с доверительным интервалом 5%)! Причём, учитывая методологию, это число наверняка занижено. К сожалению, ссылки на материалы исследования нерабочие, так что проверить результаты несколько затруднительно.
Статья (pdf) о том, как типы могут помочь поймать баги в коде на JavaScript, на базе случайной выборки из репозиториев по всему GitHub. TL;DR: Flow и Typescript в состоянии поймать 15% из допущенных багов (с доверительным интервалом 5%)! Причём, учитывая методологию, это число наверняка занижено. К сожалению, ссылки на материалы исследования нерабочие, так что проверить результаты несколько затруднительно.
#prog #js #typescript #abnormalprogramming
github.com/jamiebuilds/json-parser-in-typescript-very-bad-idea-please-dont-use
github.com/jamiebuilds/json-parser-in-typescript-very-bad-idea-please-dont-use
GitHub
GitHub - jamiebuilds/json-parser-in-typescript-very-bad-idea-please-dont-use: JSON Parser written entirely in TypeScript's type…
JSON Parser written entirely in TypeScript's type system - jamiebuilds/json-parser-in-typescript-very-bad-idea-please-dont-use
Блог*
#prog #js #typescript #abnormalprogramming github.com/jamiebuilds/json-parser-in-typescript-very-bad-idea-please-dont-use
#prog #typescript #article
Extreme Explorations of TypeScript's Type System
(thanks @randomstuffilike)
Extreme Explorations of TypeScript's Type System
(thanks @randomstuffilike)
Learningtypescript
Extreme Explorations of TypeScript's Type System | Learning TypeScript
Some of the most creative, wacky explorations of what you can do in TypeScript's type system!
#prog #typescript #abnormalprogramming
https://github.com/ronami/HypeScript
(thanks @randomstuffilike)
https://github.com/ronami/HypeScript
(thanks @randomstuffilike)
GitHub
GitHub - ronami/HypeScript: 🐬 A simplified implementation of TypeScript's type system written in TypeScript's type system
🐬 A simplified implementation of TypeScript's type system written in TypeScript's type system - ronami/HypeScript
#prog #typescript #abnormalprogramming
Assembly interpreter inside of TypeScript's type system
Автору пришлось повысить лимиты внутри исходников компилятора Typescript, чтобы это заработало и не падало из-за слишком глубокого инстанцирования.
(thanks @randomstuffilike)
Assembly interpreter inside of TypeScript's type system
Автору пришлось повысить лимиты внутри исходников компилятора Typescript, чтобы это заработало и не падало из-за слишком глубокого инстанцирования.
(thanks @randomstuffilike)
Блог*
Подписчики, а какие вы знаете IDL (interface definition languages) с поддержкой сумм-типов?
#prog #rust #typescript #amazingopensource
Typical — IDL, который предоставляет одновременно:
* типобезопасность
* бинарную совместимость между схемами разных версий
* СУММ-ТИПЫ
* обязательные поля в схеме (я смотрю на тебя, Protobuf)
* возможность постепенно мигрировать поля из статуса опциональных в статус обязательных и наоборот
В Readme подробнее рассказывается, как достигается последний пункт за счёт новой концепции ассиметричных полей. Из недостатков можно отметить разве что небольшое число бекендов: пока что Typical умеет генерировать код только для Rust и Typescript.
(thanks @ployd)
Typical — IDL, который предоставляет одновременно:
* типобезопасность
* бинарную совместимость между схемами разных версий
* СУММ-ТИПЫ
* обязательные поля в схеме (я смотрю на тебя, Protobuf)
* возможность постепенно мигрировать поля из статуса опциональных в статус обязательных и наоборот
В Readme подробнее рассказывается, как достигается последний пункт за счёт новой концепции ассиметричных полей. Из недостатков можно отметить разве что небольшое число бекендов: пока что Typical умеет генерировать код только для Rust и Typescript.
(thanks @ployd)
GitHub
GitHub - stepchowfun/typical: Data interchange with algebraic data types.
Data interchange with algebraic data types. Contribute to stepchowfun/typical development by creating an account on GitHub.
#prog #js #typescript
Banditypes — the mighty 400-byte validator
Check if data conforms to a TS type at runtime — much like zod, yup or superstruct, but in a tiny 400-byte package. Despite the small size, it's not a toy:
Passes the relevant superstruct test suite.
Rich built-in types: maps, sets, tuples, literals, and generic union types.
Mostly API-compatible with the established libraries.
Supports both deriving TS types from schema and declaring a schema for an existing TS type.
User-defined types, refinements, and conversions.
Decent performance — among the top libraries not using code generation.
Banditypes — the mighty 400-byte validator
Check if data conforms to a TS type at runtime — much like zod, yup or superstruct, but in a tiny 400-byte package. Despite the small size, it's not a toy:
Passes the relevant superstruct test suite.
Rich built-in types: maps, sets, tuples, literals, and generic union types.
Mostly API-compatible with the established libraries.
Supports both deriving TS types from schema and declaring a schema for an existing TS type.
User-defined types, refinements, and conversions.
Decent performance — among the top libraries not using code generation.
GitHub
GitHub - thoughtspile/banditypes: 🤠🧨 The mighty 400-byte schema validator for TS / JS
🤠🧨 The mighty 400-byte schema validator for TS / JS - thoughtspile/banditypes
#prog #typescript #article
How types make hard problems easy (перевод)
Статья ценна тем, что демонстрирует выгоды на Typescript и относительно реалистичных примерах. Отправьте знакомому фронтендеру, может, научиться программировать наконец
How types make hard problems easy (перевод)
Статья ценна тем, что демонстрирует выгоды на Typescript и относительно реалистичных примерах. Отправьте знакомому фронтендеру
Блог*
#prog #abnormalprogramming #article Building a url-shortener with Lambda — JUST Lambda (и немного Python) Работает без базы данных, если что
И ещё пачка #prog #abnormalprogramming от этого же человека:
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
#prog #typescript
В Microsoft решили из-за проблем с производительностью переписать компилятор Typescript с Typescript на... #Go. Выбор языка аргументируют сочетанием контроля над раскладкой структур в памяти вкупе со сборщиком мусора и лёгкостью портирования уже имеющегося кода. На мой взгляд, очень странный выбор.
Производительность, впрочем, действительно улучшилась — прототип уже в состоянии компилировать реальные проекты на порядок быстрее.
В Microsoft решили из-за проблем с производительностью переписать компилятор Typescript с Typescript на... #Go. Выбор языка аргументируют сочетанием контроля над раскладкой структур в памяти вкупе со сборщиком мусора и лёгкостью портирования уже имеющегося кода. На мой взгляд, очень странный выбор.
Производительность, впрочем, действительно улучшилась — прототип уже в состоянии компилировать реальные проекты на порядок быстрее.
Microsoft News
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.