Tag programming

106 bookmarks have this tag.

2024-03-02

540.

The Blessing of Interactive Development

tonsky.me/blog/interactive-development

In this post I describe a couple of practice that makes the process of writing code faster, more predictable and straightforward

2024-02-18

524.

Strategy pattern in Go

rednafi.com/go/strategy_pattern

2024-02-12

521.

Functional programming in Go

bitfieldconsulting.com/golang/functional

Thanks to generics, there are some interesting new ways to program in Go. This article explains how we can use functional programming techniques like Map, Filter, and Reduce, and what kind of problems they might help us to solve.

2024-02-11

520.

Гигиена в Git

grishaev.me/git-pretty

Несколько правил, чтобы держать Git приличном виде.

2024-02-01

512.

Some activities are harder than others

alexschroeder.ch/view/2024-01-31-activities

from bouncepaw:

Alex tells us that, for him, baking and cooking are easier than programming and soldering, because the errors there average out. As for me, this is completely inverse.

In programming, an error never fixes itself. You can observe it and fix it, you can write tests. You can run the program multiple times. It's you who fixes it, and you can understand how it's done. It's measurable!

Meanwhile, cooking is a nightmare. Burning something is routine for me. Is that too much or too little oil? For how long do I fry? What do I do with these spices? Do they really affect the taste? And to observe something, I can't rely on symbolic things like text. No, I have to look (is this color good? No idea!), smell (as if I know the difference) and taste (nothing more inaccurate).

I'm happy when something can be cooked with a timer. 15 min for buckwheat? I'm in. I'm more happy when the time is short. 4 min for this thin kind of spaghetti? Already boiling water!

I mean, even boiling water is not simple. My parents told me to wait until the correct bubbles appear. I'm waiting for the scary ones. Also, salt is supposed to make it boil faster. How much salt do I add?

And I didn't even talk about plants, which Alex also considers easy. They're not 😭

Totally agree!

2024-01-31

509.

A New Medium for Communicating Research on Programming Languages

willcrichton.net/nota

Papers about programming languages involve complex notations, systems, and proofs. Static PDFs offer little support in understanding such concepts. I describe Nota, a framework for academic papers that uses the browser's interactive capabilities to support comprehension in context. Nota uses hover effects, tooltips, expandable sections, toggleable explanations, and other interactions to help readers understand a language's syntax and semantics. I demonstrate the use of Nota by rewriting a PL paper using its primitives, and also by writing this paper in Nota.

2024-01-27

502.

Вложенность

grishaev.me/nesting-01

Беру любой JSON и вижу, как его можно упростить, убрав лишнюю вложенность. Вдвойне обидно, что на эту вложенность кто-то тратил время, а она не нужна!

2024-01-17

496.

Google I/O 2013 - Advanced Go Concurrency Patterns

www.youtube.com/watch?v=QDDwwePbDtw

Concurrency is the key to designing high performance network services. This talk expands on last year's popular Go Concurrency Patterns talk to dive deeper into Go's concurrency primitives, and see how tricky concurrency problems can be solved gracefully with simple Go code.

2024-01-12

488.

Фаззинг (fuzzing) тестирование

b.sattellite.me/2022/01/2022-01-golang-fuzzing

2024-01-10

Reposted 485.

What We Got Right, What We Got Wrong

commandcenter.blogspot.com/2024/01/what-we-got-right-what-we-got-wrong.html

2024-01-06

Reposted 480.

Есть табак, да нечем нюхать: Об использовании Питона в высшем образовании

shmat-razum.blogspot.com/2024/01/python.html

Смешной текст о том, что питон учить не надо. Я Питон не люблю, но тут совсем кринж!

2023-12-29

476.

Две проблемы

grishaev.me/two-problems

Первая — программист закладывает абстракции там, где не следует.

Бритва Оккама ?

Вторая проблема — наоборот: программист не оставляет шанса поправить его код.

475.

Проблема и решение

grishaev.me/problem-and-solution

Бывает, проблему можно поправить функцией или макросом, но в код тянут библиотеку. Или можно купить готовое решение, но тимлид говорит: мы напишем свое через три месяца. Или разработчик насмотрелся видосов со свежей конфы и хочет проверить чужие идеи.

474.

Горизонтальное масштабирование

ambment.cat/posts/2023-12-26-1.html

если в процессе обсуждения архитектуры вы пришли у выводу, что в проекте потребуется настоящее горизонтальное масштабирование — вам не обойтись без конечных автоматов (так-то лучше вообще любую бизнес-логику строить именно на конечных автоматах, но в автономной системе можно подкостылить и без них, а вот в кластере — уже никак)

Так или иначе, если вы хотите оказаться готовым отмасштабироваться в горизонталь — стройте критические процессы на конечных автоматах и полностью асинхронно

Зато асинхронные взаимодействия поверх FSM — сделают в дальнейшем масштабирование безболезненным, ведь в такой парадигме не имеет никакого значения, на какой ноде выполнится код, отвечающий на запрос.

2023-12-21

468.

research!rsc: Coroutines for Go

research.swtch.com/coro
Reposted 466.

NilAway: Practical Nil Panic Detection for Go

www.uber.com/blog/nilaway-practical-nil-panic-detection-for-go

A linter for Go that finds nil panics. It found several potential nil panic in Betula and Mycorrhiza codebases that I didn't bother fixing.

2023-12-12

454.

Finding unreachable functions with deadcode

go.dev/blog/deadcode

Functions that are part of your project’s source code but can never be
reached in any execution are called “dead code”, and they exert a drag
on codebase maintenance efforts.
Today we’re pleased to share a tool named deadcode to help you identify them.

2023-12-03

447.

Computers can be understood - Made of Bugs

blog.nelhage.com/post/computers-can-be-understood

This belief is, for me, not some abstruse theoretical assertion, but a deeply felt belief that essentially any question I might care to ask (about computers) has a comprehensible answer which is accessible with determined exploration and learning.

2023-11-19

427.

Gripes With Go

peppe.rs/posts/gripes_with_go

2023-11-04

393.

Progopedia

progopedia.com

Free Encyclopedia of Programming Languages.

2023-10-27

374.

CodePhoto

code.xxut.ru

Генерирует фотку экрана с кодом, который вставит пользователь

2023-10-11

361.

CodeReviewComments

github.com/golang/go/wiki/CodeReviewComments

This page collects common comments made during reviews of Go code, so
that a single detailed explanation can be referred to by shorthands.
This is a laundry list of common style issues, not a comprehensive style guide.

2023-10-02

348.

The Absolute Minimum Every Software Developer Must Know About Unicode in 2023 (Still No Excuses!)

tonsky.me/blog/unicode

Никита рассказывает про текст и кодировки

2023-09-24

Reposted 338.

Writing safe-to-use Go libraries

blog.orsinium.dev/posts/go/safe-api

The Go standard library is full of bad design choices from the perspective of safety of use.

2023-09-20

337.

In a git repository, where do your files live?

jvns.ca/blog/2023/09/14/in-a-git-repository--where-do-your-files-live-

2023-09-14

325.

Comparative Analysis

matklad.github.io/2023/09/13/comparative-analysis.html

The core idea is to canonicalize things. Both x < y and y > x mean the same, and, if you usethem with roughly equal frequency, you need to spend extra mental capacity to fold the two versionsinto the single “x tiny, y HUGE” concept in your head.

2023-09-03

313.

Как растить джуниоров

strizhechenko.github.io/2017/01/14/junior-learning.html

Выделите джуниору части проекта, где он будет главным, через него будут решаться все вопросы связанные с ними. При срочной необходимости, можно всё сделать самому, но в штатном режиме хозяин кода - он.

2023-08-26

304.

Monorepo Explained

monorepo.tools

Everything you need to know about monorepos, and the tools to build them.

2023-08-14

286.

HTMX

grishaev.me/htmx

Заметка Ивана об htmx

2023-08-07

279.

Elements of C Style

www.teamten.com/lawrence/style

Заметки о том, как писать и оформлять код на Си

278.

Don't write bugs

www.teamten.com/lawrence/programming/dont-write-bugs.html

If you want a single piece of advice to reduce your bug count, it’s this:
Re-read your code frequently. After writing a few lines of code (3 to 6 lines, a short block within a function), re-read them. That habit will save you more time than any other simple change you can make.

277.

Programming people

leftoversalad.com/c/015_programmingpeople

Языки программирования как люди

2023-07-26

252.

Introduction to Compilers and Language Design

www3.nd.edu/~dthain/compilerbook/compilerbook.pdf

2023-07-25

249.

SQL-шпаргалка

antonz.ru/sql-cheatsheet

Для всех, кто знал SQL, но подзабыл

2023-07-24

248.

The regex [,-.]

pboyd.io/posts/comma-dash-dot

Я ещё так никогда не удивлялся регулярному выражению

247.

5 Ways to Write a Go Database Model

pboyd.io/posts/5-ways-to-write-a-go-database-model

Choosing the right tools to write a database model in Go can be overwhelming. This post describes the various approaches.

2023-07-08

230.

Simple Made Easy

www.infoq.com/presentations/Simple-Made-Easy

Рич Хикки рассказывает о различиях простоты и лёгкости в контексте проектирования и написания программ.

Говорит, что многие выбирают лёгкость, забывая про простоту. Со временем комплексность превращается во что-то такое, что сложно поддерживать и в чём сложно разобраться новичкам.

Нужно стремиться искать лёгкие способы делать простые программы.

2023-05-07

180.

Critical Program Reading (1975) - 16mm Film

youtu.be/7hdJQkn8rtA

Видео о том, как писать понятный код

2023-04-06

172.

Babashka Babooka: Write Command-Line Clojure

www.braveclojure.com/quests/babooka
170.

Clojure beginner resources

gist.github.com/yogthos/be323be0361c589570a6da4ccc85f58f

2023-03-03

52.

Surviving the Release Version

www.codeproject.com/Articles/548/Surviving-the-Release-Version

OK, your program works. You've tested everything in sight. It's time to ship it. So you make a release version.

And the world crumbles to dust.

You get memory access failures, dialogs don't come up, controls don't work, results come out incorrectly, or any or all of the above. Plus a few more problems that are specific to your application.

Now what?

That's what this essay is all about.

2023-02-18

2.

Working with stacked branches in Git is easier with --update-refs

andrewlock.net/working-with-stacked-branches-in-git-is-easier-with-update-refs

The concept of stacked branches and stacked PRs

2