Tag programming

103 bookmarks have this tag.

2024-10-13

1558.

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

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

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

2024-10-12

Reposted 1557.

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

github.com/zakirullin/cognitive-load

2024-10-08

1547.

The Pull Request Hack · Felix Geisendörfer

felixge.de/2013/03/11/the-pull-request-hack

Giving write access to your contributors might motivate them to do more. Super cool!

1546.

Handmade Manifesto

handmade.network/manifesto

Computers are amazing. So why is software so terrible?

2024-09-21

Reposted 1520.

KDE Eco – Handbook

eco.kde.org/handbook

Applying The Blue Angel Criteria To Free Software

2024-09-10

1505.

1OPS - One Operation Per Statement

blog.pwkf.org/2023/08/17/one-sloc.html

The 1OPS principle is the single principle that had the biggest impact in my entire coding career. I gave some hints about it in a previous post, but I was suggested that it might warrant a post on its own to go more in depth.

1504.

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-09-08

1501.

OSDL - A guide to homebrew development for the Nintendo DS

osdl.sourceforge.net/main/documentation/misc/nintendo-DS/homebrew-guide/HomebrewForDS.html

2024-09-07

1498.

Is Linux collapsing under its own weight? On Rust for Linux - the sporks space

sporks.space/2024/09/05/is-linux-collapsing-under-its-own-weight-on-rust-for-linux

2024-09-01

1478.

Зарплаты разработчиков в первом полугодии 2024: языки и квалификации

habr.com/ru/companies/habr_career/articles/839252

Работаем.

2024-08-26

1465.

Автоматное программирование — Википедия

ru.wikipedia.org/wiki/Автоматное_программирование
1464.

Монокультура в программировании

habr.com/ru/articles/838682

Лучше пользоваться несколькими языками, чем только одним.

2024-08-22

1461.

Джуны в IT: зарплаты в компаниях, вакансии и отклики

habr.com/ru/companies/habr_career/articles/837596

Стажёром я получал мало, джуном получаю нормально.

Reposted 1457.

I've Built My First Successful Side Project, and I Hate It

switowski.com/blog/i-have-built-my-first-successful-side-project-and-i-hate-it

2024-08-12

Reposted 1438.

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

grishaev.me/enter-it

2024-07-28

Reposted 1411.

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-25

1404.

Technology | 2024 Stack Overflow Developer Survey

survey.stackoverflow.co/2024/technology

2024-07-20

1396.

Where Should Visual Programming Go? @ tonsky.me

tonsky.me/blog/diagrams

TempleOS has images in comments btw.

2024-07-17

1391.

А что если исходные коды программ хранить в бинарном формате?

habr.com/ru/companies/karuna/articles/823710

TLDR: предлагаю рассмотреть хранение исходных кодов программ в некоем бинарном формате вместо голого текста.

2024-07-14

1379.

An API is a user interface

www.arp242.net/api-ux.html

2024-06-28

1355.

Programming language notes

felix.plesoianu.ro/languages/notes.html#Intro

Felix on Vala, Zig, C++, Fortran, Ada, Scheme and Common Lisp.

Is this site running Feather Wiki? Seems so.

2024-06-09

Reposted 1305.

Understanding ActivityPub Part 2: Lemmy

seb.jambor.dev/posts/understanding-activitypub-part-2-lemmy

This article is part of the series Understanding ActivityPub, which takes a look at the ActivityPub protocol through the lens of real-world examples. The protocol exchanges are taken from ActivityPub.Academy, a modified Mastodon instance that shows ActivityPub messages in real time (see the announcement post).

Reposted 1304.

Understanding ActivityPub Part 1: Protocol Fundamentals

seb.jambor.dev/posts/understanding-activitypub

This article is part of the series Understanding ActivityPub, which takes a look at the ActivityPub protocol through the lens of real-world examples. The protocol exchanges are taken from ActivityPub.Academy, a modified Mastodon instance that shows ActivityPub messages in real time (see the announcement post).

2024-06-06

Reposted 1294.

Queueing – An interactive study of queueing strategies

encore.dev/blog/queueing

In this blog, we go on an interactive journey to understand common queueing strategies for handling HTTP requests.

Reposted 1293.

Load Balancing

samwho.dev/load-balancing

A bottom-up, animated guide to HTTP load balancing algorithms.

2024-06-04

1290.

How we're building a browser when it's supposed to be impossible

awesomekling.substack.com/p/how-were-building-a-browser-when

2024-05-27

Reposted 1283.

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.

Reposted 1282.

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.

2024-05-24

Reposted 1278.

Writing commit messages

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

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

2024-05-19

1266.

BCHS stack

learnbchs.org

BSD, C, httpd, SQLite: an open software stack for web applications

2024-05-13

1257.

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-04-03

1216.

s-macke/VoxelSpace: Terrain rendering algorithm in less than 20 lines of code

github.com/s-macke/VoxelSpace

Terrain rendering algorithm in less than 20 lines of code - s-macke/VoxelSpace

via https://t.me/optorepost/55

Если кратко, то там вся карта хранится в виде двух текстур, а "воксели" рендерятся хитрым образом, просто проходя по этим текстурам в нужном порядке.

2024-04-02

1214.

EditorConfig

editorconfig.org

EditorConfig helps maintain consistent coding styles for multiple developers working on the same project across various editors and IDEs. The EditorConfig project consists of a file format for defining coding styles and a collection of text editor plugins that enable editors to read the file format and adhere to defined styles. EditorConfig files are easily readable and they work nicely with version control systems.

2024-04-01

1212.

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-21

1202.

Interning strings in Go

commaok.xyz/post/intern-strings

In Go, a string is a (possibly empty) immutable sequence of bytes. The critical word here for our purposes is immutable. Because byte slices are mutable, converting between string and []byte generally requires an alloc and copy, which is expensive.

What if such conversions were cached? That would make comparing strings so much faster!: two integer comparisons (len and ptr). This article explains how this approach could be implemented.

A library implementing this:

It looks pretty small and simple. Despite having only 81 stars, it is used by 67.4k GitHub packages. Transitive dependencies. Found it at work accidentally. OpenSource woes.

2024-03-11

1196.

Choose Boring Technology

boringtechnology.club

Innovation tokens and whatnot.

2024-03-06

Reposted 1180.

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-05

1177.

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-02

1167.

Universal domain types

mmapped.blog/posts/25-domain-types.html

A guide to domain-specific types that make sense.

2024-02-22

Reposted 1153.

Strategy pattern in Go

rednafi.com/go/strategy_pattern

2024-02-05

1114.

What Can Philosophers Learn from Programmers?

250bpm.com/blog:133

Programmers are the builders of ontologies.

1108.

Introducing Pkl, a programming language for configuration :: Pkl Docs

pkl-lang.org/blog/introducing-pkl.html

Apple released a language for configs. It's well-designed, take a look. Has Go bindings. I would've considered it if I needed a config language.

2024-02-04

1105.

On Rigorous Error Handling

250bpm.com/blog:140
1103.

Такой же

grishaev.me/the-same

Гришаев решил корабль Тезея.

2024-02-02

1088.

Don’t prefill config files

www.makeworld.space/2024/02/no_prefill_config.html

The biggest design mistake I made with Amfora, my first community open source project, was autogenerating config files. On startup, the application looks for a config file, and creates one if it doesn’t exist, full of all the application defaults. At the time, I thought this was great, as it documents all the existing options, and makes them very visible to the user in case they want to change them. In the end, this decision created a lot of headaches and is not something I’d ever do again.

makeworld is right! I had the same problem in Mycorrhiza but didn't suffer great consequences because the configuration design didn't change much.

2024-01-31

1084.

Some activities are harder than others

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

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 😭

2024-01-29

Reposted 1079.

Вложенность

grishaev.me/nesting-01

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

2024-01-21

1072.

SocialHub

socialhub.activitypub.rocks

Where ActivityPub developers coordinate their efforts to make the Fediverse a great space for cooperation

A forum for the fedidevs. What's funny is this notice it shows on my outdated Safari:

Unfortunately, your browser is unsupported. Please switch to a supported browser to view rich content, log in and reply.

This sentence contains to a funky website that recommends some browsers. Links2 is not there for some reason.

I should join the forum though, as I'm a proud fedidev now!

2024-01-20

1070.

Magic numbers in C

250bpm.com/blog:43

Replacing all magic numbers with variables/constants is not always good. Think.

1069.

Finish your stuff

250bpm.com/blog:50

If there is one principle that should be added to the UNIX philosophy, it is:

"Finish your project."

Let me list my finished projects.

  • Uh...

I can't even say Mycorrhiza is finished despite it being in maintenance mode!

1066.

Hard Things in Computer Science: Naming things

250bpm.com/blog:110

Martin came up with the idea of using something like the roots from semitic languages for naming things. I thought of the same before I read this article, but it's good to have it written down by somebody.

2024-01-11

1035.

Shirky: Situated Software

web.archive.org/web/20190213201804/http://shirky.com/writings/situated_software.html

2024-01-08

1021.

The beauty of finished software

josem.co/the-beauty-of-finished-software

All these retrogrades usually forget about Unicode updates! If your finished software does not support the newest writing system, then something is wrong. Well, I'm just saying. Actually, I like finished software! One day, I'll write one.

2024-01-07

1018.

Gitpod: Always ready-to-code.

www.gitpod.io

Gitpod is a cloud development environment for teams to efficiently and securely develop software. Improve your team's developer experience by coding in a CDE.

Mysh recommended me this.

2024-01-02

1007.

Реальный Windows. Пишем realtime под окошками

habr.com/ru/articles/652291

Результат всего этого счастья нужен в режиме реального времени и крайне важен. Пропускать нельзя ни одного замера, потому что основную работу по анализу данных исследователи выполняют после окончания эксперимента. Поэтому всё это богатство данных, помимо показа на экране, придётся записывать на жёсткий диск. Все 1,3 гигабайта данных в секунду. И потом читать в Matlab'е, NeuroExplorer'е или другой программе. Система, которая сохраняла 99,99999% данных, не прошла контроль качества и была забракована, потому что теряла до 13 тысяч замеров каждую секунду.

В комментах пишут ещё:

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

Статью написал Alex Hitech, что уже показатель качества. И комментарии у него заводные:

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

2023-12-19

985.

Zeal - Offline Documentation Browser

zealdocs.org

2023-12-17

Reposted 981.

Banish state-mutating methods from data classes

rednafi.com/python/dataclasses_and_methods

Data classes are containers for your data—not behavior

2023-12-02

947.

Confessions of an Abstraction Hater

250bpm.com/blog:144

Somehow, longer functions are good.

2023-12-01

937.

Redowan's Reflections

rednafi.com

Hi, I'm Redowan Delowar—a wandering sciolist with a flair for ones and zeros. I learn, write, and tweet about Python, Go, SQL, and the broader landscape of software in general.

2023-11-30

936.

Laurence Tratt: Four Kinds of Optimisation

tratt.net/laurie/blog/2023/four_kinds_of_optimisation.html
  1. Use a better algorithm.

  2. Use a better data-structure.

  3. Use a lower-level system.

  4. Accept a less precise solution.

Pick the simplest solution.

2023-11-22

900.

write your own terminal

flak.tedunangst.com/post/write-your-own-terminal

2023-11-21

892.

ЯОС, MINOS - Вече на п-п-р

вече.программирование-по-русски.рф/viewforum.php?f=5

Там творятся удивительные вещи.

2023-11-20

Reposted 887.

Gripes With Go

peppe.rs/posts/gripes_with_go

2023-11-16

867.

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.

1