λ
New year with a new editor. - Keymaps are learnt - Plugins are installed Ready, set, go! Thanks for challenge to Haskell Uzbekistan My setup here: https://github.com/abdivasiyev/nix/tree/master/modules/home/emacs
This media is not supported in your browser
VIEW IN TELEGRAM
New year with a new car 🤩🤩
🏆2
Forwarded from Denis Sexy IT 🤖
Сам инструмент бесплатный, но команда что его строила, зарабатывала на платных библиотеках из готовых шаблонов и компонентов (готовый красивый интерфейс, бери и вставляй на сайт) и на программе поддержки от компаний и пользователей
В ноябре, в их репозитории всплыла идея: добавить на сайт специальную страницу
/llms.txt – одну большую "упрощённую" текстовую версию всей документации, чтобы кодинг агенты и LLM могли легче её читать. Казалось бы: всем удобнее, меньше ошибок, быстрее находишь нужное и тпСоздатель Tailwind отказался и прямо сказал, что АИ уже ударил по их бизнесу: люди перестали заходить на сайт за документацией (-40% по посещениям), а этот трафик раньше конвертировал юзеров в платные услуги. В итоге выручка просела на 80%, уже дошло до увольнений, и делать АИ‑доступ к знаниям ещё проще – авторам страшно, потому что это может добить единственный канал продаж
Похоже, это одна из первых крупных жертв эпохи АИ в разработке: популярнейший проект, который все используют, но которому внезапно стало не на что жить
Да, кодинг с агентами работает – дальше таких будет больше, увы
Please open Telegram to view this post
VIEW IN TELEGRAM
Imagine, you have a process like this:
1. tries to withdraw money
2. updates database
and after successfull withdraw, let's say we get an error from database and our transaction will be rolled back. So, what can we do?
solution 1: send an event to message broker and update database again or give back money to client
but, what if our message broker will also fail? will we lose our state and can not give back money to client? So this solution also will not work well.
solution 2: create a background worker and check all payment statuses. It will work and we will have a proper state
Maybe there are also edge cases, but more reliable than first one
1. tries to withdraw money
2. updates database
and after successfull withdraw, let's say we get an error from database and our transaction will be rolled back. So, what can we do?
solution 1: send an event to message broker and update database again or give back money to client
but, what if our message broker will also fail? will we lose our state and can not give back money to client? So this solution also will not work well.
solution 2: create a background worker and check all payment statuses. It will work and we will have a proper state
Maybe there are also edge cases, but more reliable than first one
Believe or not, nix is the best packaging tool ever made for me. It is so crazy.
Here is an example of using custom golangci-lint with
https://gist.github.com/abdivasiyev/eec72445c494f5e4712b627baf5506ce
Here is an example of using custom golangci-lint with
nilaway plugin:https://gist.github.com/abdivasiyev/eec72445c494f5e4712b627baf5506ce
Gist
Nilaway enabled golangci-lint for pre-commit hooks
Nilaway enabled golangci-lint for pre-commit hooks - 0001-feat-Add-nilaway-plugin.patch
👍2
https://injuly.in/blog/phantom-types/index.html
Parse, Don't Validate in action
I really like this approach to write anything, because it will handle all unnecessary security and misusing issues with my source code. And also I do my best to avoid using naked strings or integers in my work
Parse, Don't Validate in action
I really like this approach to write anything, because it will handle all unnecessary security and misusing issues with my source code. And also I do my best to avoid using naked strings or integers in my work
InJuly
Of Phantoms, witches, and type driven design in Haskell
Type driven design with Phantom types in Haskell
👍1
-- >>> parseSrc "λx.x - -1"
-- Right (EAbs "x" (EApp (EApp (EVar "x") (EVar "-")) (EVar "-1")))
EVar "-1" 😭😁2
λ
-- >>> parseSrc "λx.x - -1" -- Right (EAbs "x" (EApp (EApp (EVar "x") (EVar "-")) (EVar "-1"))) EVar "-1" 😭
@@
- lexSymbol,
lexLambda,
lexString,
lexBool,
lexChar,
- lexInt
+ try lexInt,
+ lexSymbol
When you don’t understand how something works, just do experiments.
For example, code works but how? Do experiments with different values or codes.
In this example try changing anything and compile. If you get a new error which have never seen yet, you just learn something new. It is so easy, don’t afraid from mistakes or reddish error messages. They are here to guide you in this fucking crazy world.
FYI: if you are an experienced developer, just ignore this message 🙃
For example, code works but how? Do experiments with different values or codes.
module Main where
main :: IO ()
main = putStrLn $ "hello, world"
In this example try changing anything and compile. If you get a new error which have never seen yet, you just learn something new. It is so easy, don’t afraid from mistakes or reddish error messages. They are here to guide you in this fucking crazy world.
FYI: if you are an experienced developer, just ignore this message 🙃
👍2🔥1
λ
Github is going on the wrong waaay🤢
I have started to use them. Actually they are good as junior developer and if you give straight follow-up, they can do. I've encountered only conflict resolution problem with AI agents. They just fucked up everything and created tons of changes.
λ
I have started to use them. Actually they are good as junior developer and if you give straight follow-up, they can do. I've encountered only conflict resolution problem with AI agents. They just fucked up everything and created tons of changes.
btw, merged pull requests without any overhead. they did very well their work. Only left me to write proper prompt and doing review😕
Time to learn another profession which AI can not do