101010.pl is one of the many independent Mastodon servers you can use to participate in the fediverse.
101010.pl czyli najstarszy polski serwer Mastodon. Posiadamy wpisy do 2048 znaków.

Server stats:

483
active users

#программирование

0 posts0 participants0 posts today

Stack Overflow умирает? Как ИИ вытесняет живые сообщества разработчиков

Stack Overflow, некогда главная платформа для программистов, переживает кризис: за два года трафик упал почти на 90%. Что стало причиной — изменившиеся привычки пользователей или ошибки самой платформы? Давайте попробуем разобраться в происходящем. А еще посмотрим, что администрация делает для спасения и что ждет сообщества разработчиков в новой реальности, где ответы на вопросы находятся быстрее, чем успеваешь их задать.

habr.com/ru/companies/ru_mts/a

#сервисы #программирование #машинное+обучение #управление_сообществом #облачные_сервисы #Stack_Overflow #искусственный_интеллект

ХабрStack Overflow умирает? Как ИИ вытесняет живые сообщества разработчиковStack Overflow, некогда главная платформа для программистов, переживает кризис: за два года трафик упал почти на 90%. Что стало причиной — изменившиеся привычки пользователей или ошибки самой...

1/3. Первый тестовый запуск видеосистемы в графическом движке.

Ранее для медиаприложений я использовал GStreamer, однако недавнее добавление плагинов на Rust делает его мультиязычным проектом, усложняя сборку.

Если Rust продолжит распространяться по фреймворку, то сборка может стать ещё более проблемной, что риск.

Я решил повысить уровень сложности, пуститься во все тяжкие и собрать пайплайн самостоятельно с помощью более низкоуровневой либы - FFmpeg.

Для теста использовал опенсурсные мультики Blender Open Movie (commons.wikimedia.org/wiki/Cat), в частности - WING IT! (commons.wikimedia.org/wiki/Fil). Также потестил фильтр colorbalance c фильтром format, ибо YUV цветофильтр явно портит.

Всегда есть дефицит наглядных примеров по вопросу rebase vs. merge.
Для убеждения заблудших можно использовать такую публикацию «Чем опасен rebase, или как получилось, что 2*3=5»

Поскольку другие публикации на схожую тематику водянисты, расплывчаты и вообще TL;DR.

Да обрящут заблудшие разум, да не истощится терпение взразумляющих :)

#git #software #SoftwareDevelop #программирование #разработка #programming @russian_mastodon @ru @Russia

ХабрЧем опасен rebase, или как получилось, что 2*3=5Однажды старший программист Антон искал причину очередного бага в очень важном проекте компании: git bisect start git bisect bad git bisect good … В компании использовали rebase, история коммитов была...

Открытие Эндрю Крапивина о хеш-таблицах и микро-указателях?
Чисто гипотетически, может и актуально, но лишь в чистой и голой computer science теории.
На практике же полно нюансов реализации, сводящихся к оптимизациям конкретных аппаратных платформ.

Например, есть #SwissTable известные с 2018 года, недавно #Golang перешёл на них (с версии 1.24). И до него на SwissTable перейти успел #Rust.

Хеш-таблицы Google SwissTable и Facebook F14 примерно одинаковые, одно лишь вариант другого.

Идея оптимизации работы вокруг использования #SIMD инструкций для поиска занятых ячеек и проверки ключа. И в тотально подавляющем большинстве случаев хватает одной проверки блока из восьми элементов.

Надо ещё много раз поиграться с вариантами реализации какой-либо идеи из чистого computer science. Посмотрев как оно ложится на аппаратную платформу сродни x86-64.

  1. Есть prefetching памяти и работа с ОЗУ идёт через загрузку целиком всей cache line в ЦПУ, даже при обращении на чтение лишь к одному значению в пару байт.

  2. Предыдущий пункт не только про cache misses, но и «локальность данных». Как повышающую производительность, так и приводящих к false sharing при многопоточном использовании структуры данных.  

  3. Необходимо учитывать и размер страницы виртуальной памяти, чтобы снизить «давление» на TLB и уйти от TLB miss.

Для пример, в нагруженных системах используется донастройка системы на huge pages, например, все кто используют модный #DPDK сам по себе или с каким-нибудь #Seastar:

  • Выбравшие не оригинальную #Kafka, а её более производительный аналог #RedPanda.
  • Использующие вместо Apache #Cassandra более производительную #ScyllaDB

Голая теория computer science это хорошо и замечательно, но практика омерзительна свой приземлённостью. Прямой проход перебором по небольшому массиву оказывается быстрее, чем использование binary search tree. И совершенно не важно какого именно красно-чёрного или же АВЛ.

Это не вопрос ретроградства и вызова 40-летней теории :)

#software #SoftwareDevelop #программирование #разработка #programming @russian_mastodon @ru @Russia

idealists.suAkkoma

Неплохо рассказывается что добавить в свой:
~/.gitconfig

https://blog.gitbutler.com/how-git-core-devs-configure-git/

Много разных полезностей, такого рода как

  • Чтобы теги автоматом синхронизировались.
  • Список веток отображался по свежести коммитов.
  • Перемещение кода отображалось разными цветами.
  • Выявление был ли файл переименован.
  • Префиксы в diff откуда пришло различие.
  • Алгоритм вычисления разности коммитов.
  • Автоматом разруливать «has no upstream branch».
  • Дописывать чутка сведения в конфликты.
  • Индексирование файлов для ускорение status.

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

#git #software #SoftwareDevelop #программирование #разработка #programming @russian_mastodon @ru @Russia

GitButler · How Core Git Developers Configure GitWhat `git config` settings should be defaults by now? Here are some settings that even the core developers change.

В блоге, а потом и в книге Joel Spolsky была расписана история появления #VBA в том самом Microsoft #Excel.

Этот персонаж так же потом сделал #stackoverflow и вообще известный графоман от #softwaredevelopment, сродни Лебедеву от дизайна — https://neolurk.org/wiki/Джоэл_Спольски ———

В допотопные времена в Excel был очень неудобный язык программирования, которому не дали названия. Мы называли его «макросы Excel». Он был весьма ограничен – без переменных (значения приходилось хранить в ячейках таблицы), локальных переменных и вызовов подпрограмм – короче, сопровождать такой язык было практически невозможно. В нем имелись некоторые более сложные функции вроде Goto, но метки были скрыты от глаз.

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

17 июня 1991 года я приступил к работе в Microsoft в составе команды Excel. Моя должность называлась Program Manager. Предполагалось, что я как&то решу проблемы языка. Подразумевалось, что это решение будет связано с языком программирования Basic.

Basic? Фу!

Некоторое время я вел переговоры с разными группами разработчиков. Только что появился Visual Basic 1.0, выглядевший довольно круто. Также имелся неудачный проект под кодовым названием MacroMan и еще один проект – создание объектно-ориентированного языка Basic – под кодовым названием Silver. Команде Silver было сказано, что первый клиент для их продукта уже есть – это Excel. Менеджер по маркетингу проекта Silver Боб Уаймен (Bob Wyman) – да, тот самый – мог продать свою технологию только мне.

Проект MacroMan, как я сказал, был неудачным, и с некоторым трудом его все же удалось закрыть. Команда Excel убедила команду Basic в том, что ей нужен особый вариант Visual Basic для Excel. Моими стараниями в Basic включили четыре вещи, которые мне очень нравились. Был добавлен структурный тип данных Variant, позволяющий хранить данные любого типа, потому что иначе сохранить в переменной содержимое ячейки рабочего листа можно было только с помощью оператора переключения. Также было добавлено позднее связывание, ныне известное как IDispatch, или COM&автоматизация, потому что исходный проект Silver требовал глубокого понимания системы типов, чего трудно было ожидать от тех, кто станет писать макросы. И еще я получил две свои любимые синтаксические конструкции – For Each, украденную из csh, и With, украденную из Pascal.

Потом я засел за написание спецификации Excel Basic – огромного документа, разросшегося до сотен страниц, – думаю, в конце их стало не меньше пятисот. («Каскадное проектирование» – усмехнетесь вы. Да-да, приятель, оно самое.)

В те времена существовало понятие «рецензирования БиллГ». Практически любой крупной и важной функции требовалась оценка Билла Гейтса. Мне сказали послать в его офис на рецензию экземпляр спецификации (фактически, это целый том лазерных распечаток).

Я тут же напечатал и отослал ее. В тот день у меня оставалось немного свободного времени, и я стал размышлять над тем, достаточно ли в Basic функций для работы с датами и временем, чтобы делать с ними все то, что позволяет Excel.

В большинстве программных сред даты хранятся в виде действительных чисел. При этом целая часть – это количество дней, истекших с некой оговоренной даты в прошлом, называемой началом эпохи (epoch). В Excel сегодняшняя дата 16 июня 2006 года хранится как число 38884, за точку отсчета принято 1 января 1900 года.

Я стал экспериментировать с различными функциями даты и времени Basic и Excel и обнаружил в документации Visual Basic нечто странное: в Basic началом эпохи считалось 31 декабря 1899 года, а не 1 января 1900 года, но по каким-то причинам сегодняшняя дата и в Excel, и в Basic представлялась одинаково.

Что?! Я стал искать разработчика Excel, достаточно старого, чтобы помнить такие вещи. Похоже, ответ знал Эд Фрайз (Ed Fries).

– Ха, – сказал он мне, – проверь 28 февраля 1900 года. – 59, – отвечал я. – Теперь 1 марта 1900 года. – 61! – А где 60? – спросил Эд. – 29 февраля 1900 года, год был високосным! Он делится на 4! – Мысль интересная, но неверная, – сказал Эд, оставив меня в недоумении.

Пришлось провести некоторые исследования. Оказалось, что годы, которые делятся на 100, бывают високосными, только если при этом еще делятся на 400. 1900-й год не был високосным. – В Excel ошибка! – воскликнул я. – Не совсем так, – возразил Эд. – Нам пришлось пойти на это, чтобы импортировать таблицы Lotus 1-2-3. – Значит, ошибка в Lotus 1-2-3? – Да, но, скорее всего, умышленная.

Требовалось уместить Lotus в 640 Kбайт – не так много памяти. Если не обращать внимания на 1900 год, то можно проверить год на високосность по двум правым разрядам числа – они должны быть нулевыми. Быстро и легко. Наверное, ребята из Lotus решили, что ничего не случится, если какие&то два месяца в далеком прошлом будут считаться неправильно. Похоже, разработчики Basic дотошно учли эти два месяца, сдвинув эпоху на день назад. – Вон оно что, – сказал я и стал выяснять, что означает флажок 1904 Date System (Система дат 1904) в окне параметров. На следующий день должно было состояться рецензирование БиллГ.

30 июня 1992 года. В те дни в Microsoft было гораздо меньше бюрократии. Это сейчас там одиннадцать или двенадцать уровней управления, а тогда я подчинялся Майку Конте (Mike Conte), который подчинялся Крису Грэму (Chris Graham), который подчинялся Питу Хиггинсу (Pete Higgins), который подчинялся Майку Мэйплзу (Mike Maples), который подчинялся Биллу. Всего примерно шесть уровней иерархии. Мы еще посмеивались над компаниями вроде General Motors, где этих уровней было восемь или около того. На моем рецензировании БиллГ присутствовала вся иерархическая цепочка вместе с родными и двоюродными сестрами и тетками, а также человек из моей команды, который должен был точно подсчитать, сколько раз Билл скажет f… (чем меньше, тем лучше).

Вошел Билл. Я подумал: как странно, что у него тоже две ноги, две руки, одна голова и так далее – совсем как у обычных людей. В руках у него была моя спецификация. В руках у него была моя спецификация! Он сел, обменявшись с кем-то из незнакомых мне управленцев шуткой, смысл которой до меня не дошел. Несколько человек рассмеялись. Билл повернулся ко мне. Я заметил комментарии на полях моей спецификации. Он прочел первую страницу! Он прочел первую страницу моей спецификации и что-то написал на ее полях! Если учесть, что мы послали ему спецификацию всего 24 часа назад, он должен был читать ее накануне вечером.

Он стал задавать вопросы. Я отвечал. Вопросы были достаточно простыми, но я не в силах их вспомнить, потому что неотрывно следил за тем, как он листает спецификацию… Он листал спецификацию! [Успокойся, ты же не маленькая девочка!]

И НА ВСЕХ ПОЛЯХ БЫЛИ ПОМЕТКИ. НА КАЖДОЙ СТРАНИЦЕ. ОН ПРОЧЕЛ ВСЮ ЭТУ ЧЕРТОВУ СПЕЦИФИКАЦИЮ И НАПИСАЛ ЗАМЕЧАНИЯ НА ПОЛЯХ. Он Прочел Все! [БОЖЕ МИЛОСТИВЫЙ!] Вопросы становились более сложными и детальными. Они казались несколько случайными. Я уже был готов считать Билла своим приятелем. Какой славный малый! Он прочел мою спецификацию! Он, наверное, хочет задать мне несколько вопросов, связанных с заметками на полях! Я занесу все его замечания в систему контроля ошибок и прослежу, чтобы все они были учтены, и как можно скорее!

И вот решающий вопрос. – Не знаю, ребята, – сказал Билл, – есть здесь кто-нибудь, кто действительно в деталях разбирается, как это сделать? Например, все эти функции даты и времени. В Excel их очень много. Будут ли такие же функции в Basic? И будут ли они работать точно так же? – Да, – ответил я, – кроме января и февраля 1900 года. Тишина.

«Счетчик f» и мой босс изумленно переглянулись. Откуда он это взял? Января и февраля КАКОГО ГОДА? – ОК. Хорошая работа, – сказал Билл. Он взял свой размеченный экземпляр спецификации. …Погодите! Я же хотел… И вышел.

– Четыре, – объявил «счетчик f», и все заговорили, что такого низкого счета на их памяти не было и что Билл с годами становится мягче. Ему тогда было 36.

Позже мне все объяснили. «На самом деле, Билл не собирается обсуждать твою спецификацию, ему просто нужно убедиться, что ты владеешь темой. Его обычный стиль – задавать вопросы все сложнее и сложнее, пока он не уличит тебя в каком-нибудь незнании, и тогда можно сделать тебе выволочку за неподготовленность. Никто не знал, что произойдет, если кто-то ответит на самый трудный его вопрос, потому что такого раньше не случалось».

– Если бы на этом совещании был Джим Манци, – сказал кто-то, – он спросил бы, что такое функция даты.

Джим Манци (Jim Manzi) – это тот менеджер с MBA, задачей которого было загнать в гроб Lotus.

Замечание было верным. Билл Гейтс поразительно разбирался в технических деталях. Он понимал, что такое Variant, COM&объекты, IDispatch, и чем автоматизация отличается от vtables, и как возникают двойственные интерфейсы. Его интересовали функции даты. Он не влезал в программу, если доверял тем, кто над ней работает, но его нельзя было провести на мякине, потому что он сам был программистом. Настоящим, действующим программистом.

Смотреть, как непрограммист пытается управлять софтверной компанией – все равно что наблюдать за новичком серфингистом. «Все отлично! У меня на берегу отличные помощники, которые подсказывают мне, что нужно делать!» – говорит он и снова падает в воду. Типичное поведение администратора, считающего управление универсальной функцией. Не повторит ли Стив Балмер подвиг Джона Скалли, который едва не довел Apple до исчезновения, хотя совет директоров посчитал, что торговля пепси-колой – подходящая подготовка для руководителя компьютерной фирмы? Поклонники MBA склонны полагать, что справятся с управлением организацией, в работе которой они не разбираются.

——— Перевод на русский язык этой публикации найти более не удаётся, взята из книги «Джоэл: и снова о программировании» ISBN 978-5-93286-144-8

#программирование #programming #software #Microsoft @russian_mastodon @ru @Russia

idealists.suAkkoma

Про книги по Go, который ещё Golang.
Из последнего очень зашли:

  • Tapir Liu — Go Details & Tips 101
  • Harsanyi Teiva — 100 Go Mistakes and How to Avoid Them

Так же неплоха и полезна, прямо отдельно стоит выделить:

  • Tapir Liu — Go Optimizations 101

На очереди, ещё не заценил:

  • Płotka Bartłomiej — Efficient Go. Data-Driven Performance Optimizations
  • Arundel John — The Power of Go - Tools

Интересно, но времени такое чтиво жрёт прорву, лишние 10-20 часов в неделю, как минимум. Эх, если бы это время ещё и оплачивалось, но в любом случае не сожалею. Издержки профессии.

idealists.suAkkoma
#books#go#golang

Rust в ядре Linux: лекарство или яд? Споры о будущем

В мире разработки программного обеспечения, особенно в области системного программирования, языки C и Rust занимают особое место. C, как проверенный временем язык, десятилетиями служил основой для создания операционных систем, включая Linux. Однако с появлением Rust, который позиционируется как более безопасный и современный ЯП, начались жаркие споры о том, стоит ли переписывать части ядра Linux на Rust или оставить всё как есть. Дискуссия вышла на новый уровень, когда разработчики Linux начали активно сопротивляться внедрению Rust. Кристоф Хеллвиг даже сравнил нововведение с «раковой опухолью». Что стоит за этим противостоянием, и почему Rust вызывает такие полярные мнения?

habr.com/ru/companies/selectel

ХабрRust в ядре Linux: лекарство или яд? Споры о будущемВ мире разработки программного обеспечения, особенно в области системного программирования, языки C и Rust занимают особое место. C, как проверенный временем язык, десятилетиями служил основой для...
#selecterl#rust#c

Наблюдая за публикациями и выступлениями Андрея Карпова из PVS-Studio постоянно ловил себя на фейспалме. Особенно, когда этот человек бегал по LinkedIn и набивался в друзья ко всем подряд.

И вот никогда не сомневался, что в своём падении такой человек может пойти дальше. Нисколько не останавливаясь и не тормозя пробить «дно-днище» не одно и не два сразу.

В чём лишний раз и убедился полистав его очередной опус — аж целую книжку: «Вредные советы для C++ программистов»

Давненько не доводилось видеть столь убогой работы в плане вёрстки и типографики. Настоящая колхозная самодеятельность 21-го века.

За суть и содержимое не подскажу, чувство гадливости напрочь отшибает любое желание погружаться в контент.

Спасибо, Андрей, что про продолжаешь радовать и тешить нас! Настоящий со-учредитель и успешный бизнесмен ИТ-сектора, стоящий на страже качества и надёжности АИС!

P.S. Мы как пользовались #ClangTidy да #CppCheck так и продолжим, не потому что #PVSStudio плохой продукт, а из-за того, кто и как его пиарит, кто за ним стоит (в твоём лице).

#книги #C++ ++ #программирование #programming

idealists.suAkkoma

Генерировать большие объёмы случайных данных, буквально гигабайты в секунду? Когда нужны просто большие несжимаемые массивы.

Например, для генерации сетевого трафика или заполнения накопителей данных (HDD, SSD, NVMe) или образов дисков виртуальных машин.

Один из наиболее простых и много раз проверенных вариантов:

var x = 12345;
...
x ^= x >> 12;
x ^= x << 25;
x ^= x >> 27;
var random = x * 0x2545F4914F6CDD1DULL;
... отдаём random потребителю
... сохраняем вместо 12345
x = random;

Это частный случай хорошо известного подхода, вполне корректный и стоящий в одном ряду со многими другими

Нет смысла вычитывать данных из /dev/random. Или насиловать процессор генераторами псевдослучайных чисел из стандартной библиотеки своего тулчейна.

Они потому и низкопроизводительные, что управляют распределением. Например, выдавая нормальное распределение случайных величин — стандартное распределение, Гаусса — Лапласа, с математическим ожиданием μ = 0 и стандартным отклонением σ = 1.

А получать большие массивы данных в виде псевдослучайной последовательности с периодом 2^64 можно и гораздо более простыми способами.

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

en.wikipedia.orgXorshift - Wikipedia

**Подборка топовых и новых идей для блога с хэштегами.**
---
### **10 лучших тем**
(на основе актуальности, трендов и универсальности):
1. **Стейкинг в 2024: что значит Ethereum 2.0?**
- Хэштеги: #Ethereum #Стейкинг #Web3 #Блокчейн
2. **Mastodon vs Threads: кто выигрывает?**
- Хэштеги: #Федиверс #Mastodon #Threads #СоциальныеСети
3. **Rust для начинающих: почему стоит попробовать?**
- Хэштеги: #Rust #Разработка #Программирование #OpenSource
4. **Токенизация активов: реальные примеры**
- Хэштеги: #Токенизация #Блокчейн #Финансы #Децентрализация
5. **Создание Telegram-бота за час**
- Хэштеги: #Telegram #Боты #Программирование #Автоматизация
6. **ActivityPub за пределами социальных сетей**
- Хэштеги: #ActivityPub #Децентрализация #Федиверс #Приватность
7. **Экосистема DAO: руководство для новичков**
- Хэштеги: #DAO #Web3 #Блокчейн #Управление
8. **Docker: лучшие практики для проектов**
- Хэштеги: #Docker #DevOps #Разработка #Технологии
9. **Matrix + Fediverse: дорожная карта**
- Хэштеги: #Matrix #Федиверс #СоциальныеСети #Безопасность
10. **Автоматизация трейдинга: инструменты**
- Хэштеги: #Криптовалюта #Трейдинг #Алгоритмы #Технологии
---
### **23 варианта тем для блога с хэштегами**
#### 1. **Криптовалюты и блокчейн**
1. Влияние Web3 на децентрализованную экономику
- Хэштеги: #Web3 #Блокчейн #Экономика #Децентрализация
2. Монеты конфиденциальности: Monero, Zcash и другие
- Хэштеги: #Конфиденциальность #Monero #Zcash #Криптовалюта
3. Lightning Network: будущее BTC-платежей
- Хэштеги: #Bitcoin #LightningNetwork #Криптовалюта #Технологии
4. BRC-20 токены: инновация или мода?
- Хэштеги: #BRC20 #Web3 #Токены #Финансы
5. Топ криптоафёр: разбираем схемы
- Хэштеги: #Крипто #Безопасность #Мошенничество #Обучение
#### 2. **Федивёрс**
6. Как запустить свой сервер Mastodon?
- Хэштеги: #Mastodon #Федиверс #Сервера #Инструкция
7. PeerTube в 2024: децентрализованный видеохостинг
- Хэштеги: #PeerTube #Видео #Федиверс #OpenSource
8. Частные группы в Fediverse: новые возможности
- Хэштеги: #Сообщества #Децентрализация #Федиверс #Приватность
9. Интеграция Mastodon с RSS: инструкция
- Хэштеги: #RSS #Mastodon #Инструменты #СоциальныеСети
10. Fediverse для бизнеса: советы
- Хэштеги: #Бизнес #Федиверс #Технологии #Соцсети
#### 3. **Разработка**
11. Основы больших языковых моделей (LLM)
- Хэштеги: #AI #LLM #Разработка #Технологии
12. WebAssembly: что это и зачем?
- Хэштеги: #WebAssembly #Веб #Технологии #Разработка
13. Масштабирование с Kubernetes
- Хэштеги: #Kubernetes #DevOps #Сервера #Программирование
14. Защита от SQL-инъекций
- Хэштеги: #Безопасность #SQL #БазыДанных #Программирование
15. Веб-компоненты: современные стандарты
- Хэштеги: #Веб #HTML #CSS #Технологии
16. Серверлесс архитектура: введение
- Хэштеги: #Serverless #Cloud #Программирование #DevOps
17. Оптимизация устаревшего кода
- Хэштеги: #Refactoring #Код #Разработка #Практики
18. Инструменты для тестирования производительности
- Хэштеги: #Тестирование #Производительность #Инструменты #Программирование
#### 4. **Пересечения технологий**
19. AI и блокчейн: точки пересечения
- Хэштеги: #AI #Блокчейн #Технологии #Инновации
20. Децентрализация как ответ на цензуру
- Хэштеги: #Цензура #Децентрализация #Федиверс #Приватность
21. Корпоративные блокчейны: Hyperledger и Corda
- Хэштеги: #Hyperledger #Corda #Блокчейн #Бизнес
22. ActivityPub за пределами социальных сетей
- Хэштеги: #ActivityPub #Протокол #Федиверс #Технологии
23. NFT в бизнесе: успешные кейсы
- Хэштеги: #NFT #Блокчейн #Бизнес #Кейсы
---
Выберите интересующую тему или уточните запрос, чтобы я мог помочь ещё точнее. 💡

bastyon.com/pureaceton?s=e2784

Почему я ушёл из программирования? Что заставило меня сфокусироваться на продукт-менеджменте и проект-менеджменте? Как запустить свой бизнес в IT и какие методы работают сегодня? Как одна неделя упорной работы может превратиться в 50 000$?

youtube.com/watch?v=z6eqt-Dxep

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

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

А вот поиграться с самыми глупенькими алгоритмами вполне можно. Я потестил "двоичное дерево" (слева), Sidewinder (посередине) и Олдос-Бродер (справа), которые несмотря на свою примитивность уже вырисовывают эдакое красивое. На хабре есть дотошные статьи habr.com/ru/articles/320140/ и habr.com/ru/articles/321210, встречаются визуализации, например, professor-l.github.io/mazes/ и bost.ocks.org/mike/algorithms/, да и обзорные русскоязычные статьи попадаются тоже teletype.in/@gnykka/mazes

@ae Сишники — это как раз и есть настоящие программисты. Я всего лишь перлист, и мне не хватает наглости считать себя программистом (на своём личном сайте я пишу, что я немного программист, потому что иначе мало кто поймёт).

Если завтра кто-нибудь напишет на горячо любимом Вами питоне операционную систему, Вы будет использовать такую операционную систему? И надолго ли хватит терпения?

Коллеги-программисты! Задроты в хорошем смысле слова!

Я тут такую задачку нашёл, что пиздец.

Перескажу своими словами, чтоб короче.

В общем, есть участок координатной плоскости [-24...24; -24...24]. Начало координат, соответственно, в центре.

Надо начертить там 12 векторов, с таким условием:

1) Каждый вектор выходит из начала координат и имеет целочисленные координаты
2) Длина каждого вектора не должна быть целым числом
3) Векторы уникальны
4) Главное! Сумма длин всех векторов — "почти целое число" с точностью до 12 знака после запятой.

ПРИМЫЧАНИЕ: Что такое здесь "почти целое число с точностью P знаков после запятой": это вещественное число, разность которого с ближайшим целым не превышает 10 в степени P.

Ах да, забыл сказать — по условию первый вектор из этих 12 известен, и передаётся в функцию, как аргумент.

Вот пример для входного вектора 7;11 :

11; 1
-2; 12
5; 4
12; -3
10; 3
9; 6
-12; -7
1; 11
-6; -6
12; -4
4; 12

Что скажете, классная задачка?

Т.е., фактически сводится к тому, что у нас есть множество иррациональных чисел, которые в сумме дают нечто очень близкое к целому (но понятно, что не целое, ибо это невозможно в принципе) #hackerrank #задачи #программирование

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

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

На всякий случай: Асимптотическая сложность - оценка скорости роста времени работы алгоритмов, предназначенных для решения одной и той же задачи, при больших объемах входных данных. Так же по ней можно рассчитывать затраты по памяти на хранения некоторого объём полезных данных в структуре данных (как указано на схеме).
#программирование

#мнение #программирование

Одна из основных задач программиста - это упрощать. Упрощать компоненты и их взаимодействие между друг другом

Сложно написанный код сложнее понимать и поддерживать. Такой код вызывает желание влезть в петлю (и я не про циклы). Каждый программист должен испытать отвращение при виде той фигни которую он написал, и исправить положение. Даже если лень. В будущем он окажет себе (и другим) большую услугу. Это неотъемлемая часть его профессии

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

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