Tag programming

99 bookmarks have this tag.

2024-12-20

812.

Naming is Hard

www.romainguy.dev/posts/2024/naming-is-hard

We all know that naming things in programming is hard. If you’ve read this entire post it just got a little bit harder.

2024-12-18

810.

Go Protobuf: The new Opaque API - The Go Programming Language

go.dev/blog/protobuf-opaque

We are adding a new generated code API to Go Protobuf.

2024-11-06

793.

Software Carpentry

software-carpentry.org

Software Carpentry is a volunteer project dedicated to teaching basic computing skills to researchers.

2024-11-05

792.

И28: Н.А. Соболев | sobolevn, CPython, Full-time Open Source, Python vs. legacy, Performance Review

www.youtube.com/watch?v=097tW0c3Aec

2024-10-28

789.

Пагинация

grishaev.me/pagination

Не люблю, когда для обхода данных нужна пагинация. Всякие LIMIT/OFFSET,nextToken и прочие костыли.

Да!

788.

Generators in Go 1.23 for Database Pagination - DZone

dzone.com/articles/practical-generators-in-go-123-for-database-pagina

2024-10-24

787.

Explain PostgreSQL

explain.tensor.ru

PostgreSQL Query Plan Visualizer add new plan

2024-10-14

Reposted 784.

Стажёр Вася и его истории об идемпотент­ности API | Блог | Яндекс Go Dev

dev.go.yandex//blog/intern-vasya-2019-03-12

Идемпотентность — звучит сложно, говорят о ней редко, но это касается всех приложений, использующих API в своей работе. Меня зовут Денис Исаев, и я руковожу одной из бэкенд групп в Яндекс Такси. Сегодня я поделюсь с читателями описанием проблем, которые могут возникнуть, если не учитывать идемпотентность распределенных систем в своем проекте.

2024-10-12

782.

zakirullin/cognitive-load: 🧠 Cognitive Load is what matters

github.com/zakirullin/cognitive-load

2024-09-27

773.

Collection

git.calculate-linux.org/serg-sg/collection

Сборник различных сценариев автоматизации и справочных материалов

Есть инструкция для почтового сервиса в кластере

2024-09-25

770.

What is io_uring?

matklad.github.io/2024/09/32/-what-is-io-uring.html
769.

The Watermelon Operator

matklad.github.io/2024/09/24/watermelon-operator.html

2024-09-11

Reposted 760.

Always Optimize for Junior Devs

blog.pwkf.org/2022/09/18/always-optimize-for-dummies.html

There is a single advice I would give to anyone writing software, and specially to great devs : Always optimize your code for your most junior developers. I agree that it is not a very popular advice, but it is the one that, in my experience, give the biggest bang for the buck.

2024-08-17

741.

Не было времени

grishaev.me/no-time

2024-08-10

736.

Переход в айти

grishaev.me/enter-it
735.

99 бутылок: mkdir + find

bolknote.ru/all/99-butylok-mkdir-find

2024-07-27

725.

Как наполнить базу сгенерированными джейсонами

grishaev.me/json-sql

2024-07-25

724.

Just discovered in amazement that in Bash scripts,... | Nathan Manceaux-Panot

friends.grishka.me/posts/1392836

any variable named SECONDS will automatically increment every second. Bash is bonkers

2024-07-20

720.

SDK, работа над ошибками

grishaev.me/aws-sdk-fix

используйте неизменяемые объекты, не допускайте частичной инициализации, требуйте обязательные поля сразу – не надейтесь, что кто-то заполнит их позже

2024-07-19

719.

Паттерны

grishaev.me/patterns

2024-07-17

714.

Как разработчику вкатываться в новые проекты

strizhechenko.github.io/2024/07/12/how-to-dig-into-a-project.html

2024-07-04

702.

Conventional Commits

www.conventionalcommits.org/en/v1.0.0

A specification for adding human and machine readable meaning to commit messages

2024-06-20

690.

Skip

skip.tools

Skip brings Swift app development to Android

2024-05-27

668.

Four NOs of a Serious Code Reviewer

www.yegor256.com/2015/02/09/serious-code-reviewer.html

It is very important to conduct regular code reviews within every software team, but it is not so easy to do them right; here are a few typical pitfalls.

667.

Don't Aim for Quality, Aim for Speed

www.yegor256.com/2018/03/06/speed-vs-quality.html

When project scope is perfectly decomposed and management rules are clear and strict, speed of delivery is the virtue, not the quality.

2024-05-24

664.

Feature Flags: What They Are and How to Use Them | The Space Blog

blog.jetbrains.com/space/2022/06/16/feature-flags

The concept of feature flags is simple – it’s essentially just an if. This makes it a very powerful concept!

Жетбрейнсы рассказывают о концепции фича-флагов

2024-05-22

663.

Writing commit messages

www.chiark.greenend.org.uk/~sgtatham/quasiblog/commit-messages

Гайд, как правильно писать сообщения для коммитов. О важности упоминания не просто того, что делает изменение, а зачем оно это делает. Очень мудро.

2024-05-17

658.

A Distributed Team Delivers Code of Higher Quality

www.yegor256.com/2016/08/05/distributed-teams-are-higher-quality.html

A properly configured distributed team of programmers can and must deliver a higher quality of code than a co-located one.

655.

Good Programmers Don't Work for Equity

www.yegor256.com/2016/01/12/good-programmers-dont-work-for-equity.html

Equity or cash? These days, it seems that working for equity is the way to become a millionaire. I don't think it's true.

652.

16 Don'ts of Career Growth

www.yegor256.com/2017/01/24/career-advice.html

I often hear the question of how to become a senior developer; this is my story and my advice; hope it helps you.

651.

Stack Overflow Is Your Mandatory Tool

www.yegor256.com/2017/02/14/stackoverflow-is-your-tool.html

If you actively use Stack Overflow as a coding instrument, your reputation will be lofty; if you don't use it, you're not really a professional software engineer.

650.

Are You a Hacker or a Designer?

www.yegor256.com/2014/10/26/hacker-vs-programmer-mentality.html

Twenty years ago we worried about performance. Now it is time to worry about maintainability, even though it often compromises performance.

647.

Why Don't You Contribute to Open Source?

www.yegor256.com/2015/12/22/why-dont-you-contribute-to-open-source.html

An active open source contribution is a good habit for a software developer who is passionate about his or her job.

645.

Stop Chatting, Start Coding

www.yegor256.com/2014/10/07/stop-chatting-start-coding.html

In XDSD everybody is motivated to produce tangible and meaningful results. That's why we don't use emails, Skype, HipChat or phone calls.

644.

Puzzle Driven Development

www.yegor256.com/2010/03/04/pdd.html

Patent-pending methodology of breaking down big tasks into smaller ones is explained in the article, by example in Java

641.

How to Pay Programmers Less

www.yegor256.com/2016/12/06/how-to-pay-programmers-less.html

Programmers are expensive and difficult to control; here are a few tricks to keep them underpaid and happy, for a while.

2024-05-15

640.

Golang + HTMX - Creating a Go webserver / HTMX Integration / Template Fragments

www.youtube.com

2024-05-13

Reposted 638.

Hits-of-Code Instead of SLoC

www.yegor256.com/2014/11/14/hits-of-code.html

How about we measure the amount of times programmers touch the lines. Instead of counting the number of lines we’ll count how many times they were actually modified—we can get this information from Git (or any other SCM). The more you touch that part of the aircraft—the more effort you spent on it, right?

I called it Hits-of-Code (HoC) and created a small tool to help us calculate this number in just one line.

What a nice idea! I installed this program and ran it on Betula and Mycorrhiza codebases. For Betula it's 26350 HoC, for Mycorrhiza it's 137208 HoC. Yeah, Betula is still comparatively young! Hey, what about Mycomarkup? 23443. Oh wow, just a little less than Betula. I expected a small number.

2024-05-06

631.

The Notifier Pattern for Applications That Use Postgres

brandur.org/notifier

2024-05-02

619.

Выжимаем из Go максимум производительности

www.youtube.com/watch?v=QMC9Kg4Ogxg

Никита рассказывает про оптимизации в Го.

Треш, конечно. Язык приколов

618.

Uiua

www.uiua.org

Uiua (wee-wuh) is a general purpose, stack-based, array-oriented programming language with a focus on simplicity, beauty, and tacit code

2024-04-26

613.

Learn Computing Through Games - SCMB XYZ

www.scmb.xyz/post/learn-through-games

Список игр, которые учат компьютер сайенсу

2024-04-11

604.

How I write tests in Go

blog.verygoodsoftwarenotvirus.ru/posts/testing-in-go

In many other languages, you have to not only evaluate testing libraries, but also write your tests in a style that complies with that library’s expectations. Gophers are blessed to have a thoroughly adequate solution out-of-the-box, and even further blessed to have an active ecosystem where folks are making in-depth testing a walk in the park.

603.

ETag and HTTP caching

rednafi.com/misc/etag_and_http_caching

2024-04-01

Reposted 597.

Trunk Based Development

trunkbaseddevelopment.com

A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’ *,
resist any pressure to create other long-lived development branches by employing documented techniques. They
therefore avoid merge hell, do not break the build, and live happily ever after.

2024-03-24

586.

Redict

redict.io

Redict is a distributed key/value store (a remote dictionary, if you will).

Redict is an independent fork of Redis®1 OSS 7.2.4 licensed under the Lesser GNU General Public license (LGPL-3.0-only). Redict is not affiliated with Redis®.

2024-03-12

576.

Михаил Раер - Testing in Production

www.youtube.com/watch?v=evDn0AvTDSQ

Достаточно ли отдельных энвайрментов, или нужно тестировать в продакшене, и как это делать безопасно.

575.

Антон Архипов - Полезняшки отладчика в IntelliJ IDEA

www.youtube.com/watch?v=4sKpx2F30r8

Узнал про дебаггер много нового

Reposted 573.

Choose Boring Technology

boringtechnology.club

Innovation tokens and whatnot.

2024-03-10

567.

Сервисы

grishaev.me/services

Я согласен с тем, что логику нужно разносить по сервисам. Но сервисы должны использовать общую шину данных: базу, очередь сообщений, файлы в S3 в конце концов. Гонять друг другу JSON выглядит хорошо в теории, но на практике — фу.

Условный Постгрес выплюнет миллион записей за доли секунды. Забрать этот же миллион из другого сервиса — приключение на неделю. Тут и метрики, лимиты, квоты, сетевые спайки, etc… А когда таких запросов несколько, сервис ложится спать.

566.

valyala/quicktemplate

github.com/valyala/quicktemplate

Fast, powerful, yet easy to use template engine for Go. Optimized for speed, zero memory allocations in hot paths. Up to 20x faster than html/template

2024-03-07

549.

SQL Polyglot

codapi.org/sql

SQL Polyglot is a quick way to see if a particular SQL feature is supported in different database systems. Write a query and see it run anywhere from PostgreSQL to DuckDB without leaving your browser.

548.

Структурированное логирование в Go с помощью Slog

habr.com/ru/companies/slurm/articles/798207

2024-03-06

547.

Dysfunctional options pattern in Go

rednafi.com/go/dysfunctional_options_pattern
package src

type config struct {
    // Required
    foo, bar string

    // Optional
    fizz, bazz int
}

// Each optional configuration attribute will have its own public method
func (c *config) WithFizz(fizz int) *config {
    c.fizz = fizz
    return c
}

func (c *config) WithBazz(bazz int) *config {
    c.bazz = bazz
    return c
}

// This only accepts the required options as params
func NewConfig(foo, bar string) *config {
    // First fill in the options with default values
    return &config{foo, bar, 10, 100}
}

func Do(c *config) {}

You’d use the API as follows:

package main

import ".../src"

func main() {
    // Initialize the struct with only the required options and then chain
    // the option methods to update the optional configuration attributes
    c := src.NewConfig("hello", "world").WithFizz(0).WithBazz(42)
    src.Do(c)
}
Reposted 546.

Task

taskfile.dev

Task is a task runner / build tool that aims to be simpler and easier to use

version: '3'

tasks:
  hello:
    cmds:
      - echo 'Hello World from Task!'
    silent: true

2024-03-05

543.

Wrapping Errors in Go - How to Handle Nested Errors

blog.boot.dev/golang/wrapping-errors-in-go-how-to-handle-nested-errors

By wrapping errors and building well-formatted error messages, we can keep better track of where errors are happening. I often just add the name of the function being called to my error messages, but we can make the message say whatever we want. For example, I’ll often include parameter information in the error so I know which inputs caused the error.

2024-03-04

541.

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

habr.com/ru/articles/793166

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go:

  • Структурирование серверов и обработчиков с расчётом на максимальное удобство поддержки;

  • Советы и рекомендации по оптимизации сервисов под быстрый запуск и правильное отключение;

  • Обработка стандартных задач, применимых ко множеству типов запросов;

  • Глубокое исследование правильного тестирования сервисов.

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 и вижу, как его можно упростить, убрав лишнюю вложенность. Вдвойне обидно, что на эту вложенность кто-то тратил время, а она не нужна!

1