Рубрика «ruvds_перевод» - 29

Время «рок-звёзд»: когда разработка ПО основывалась на талантах и креативности - 1

Впервые за 5 лет в отпуске на Гватемале. Заканчиваю эту статью

В качестве саундтрека для этого поста я выбрал песню Torn Натали Имбрульи.

Какие статьи у нас выходили после «Куда подевались все хакеры?» Самое масштабное из того, что помню – это прекрасная серия Software and its Discontents за авторством Келлана, в которой он постарался ответить на вопрос «Почему сегодня все так недовольны ПО?»

Мне та серия очень понравилась, но при этом я чувствовал, что она не раскрывает всеобъемлющий контекст, стоящий за всеми описанными в ней мрачными чувствами: «Разработка прикладного ПО больше не является игрой талантов и креативщиков. Теперь это превращённая в коммерческий товар муть с прописанными правилами для её создания». Эти правила описывают игру, которая: а) не вызывает у большинства участников интереса и мотивации, b) больше основана на управлении рисками (страхе), чем на максимизации результата (надежде) и с)… похоже, на деле не особо работает? Если же ты вдруг отклоняешься от этих правил, то на тебя все начинают кричать, называя незрелым или несерьёзным.Читать полностью »

Мониторинг — это боль - 1


И все мы выполняем его неправильно (в том числе и я).

Я должен признаться. Несмотря на то, что меня много раз нанимали в том числе и благодаря моему опыту работы с платформами мониторинга, я начал его ненавидеть. Инструменты мониторинга и наблюдаемости (observability) совершают тяжкий грех: обманом заставляют людей думать, что это простая задача. Очень легко мониторить маленькое приложение или сервис. Но почти ни одно из таких решений не масштабируется.

Вместо этого мониторинг превращается в бесконечную последовательность маленьких неудач. Метрики на какое-то время исчезают, логи перестают записываться на несколько часов, веб-UI для трассировок больше не работает. Мы настраиваем эти инструменты, готовясь, что сможем о них после этого забыть, но на самом деле они требуют постоянно растущих усилий по обслуживанию. Некоторые инструменты ломаются, и их больше никто не чинит. Я слишком часто приходил в новую компанию и видел, что в ней развёрнут нелюбимый мной поломанный Jaeger.

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

В статье я расскажу о том, что, по моему мнению, нужно делать, а также поделюсь своими надеждами и мечтами. Прошу вас убедить меня, что я не прав и что есть более качественные решения.
Читать полностью »

Канал передачи 500 Кбит-с со стратостата - 1


Последние несколько месяцев я работал над системой связи для стратостата. И хотя в первую очередь мне бы хотелось поговорить о высокоскоростной передаче данных на Землю, в этой статье я задокументировал всё, над чем работал.Читать полностью »

Доводите свои проекты до конца - 1


Браться за новый проект всегда интересно и волнительно. Возможности безграничны. Нет никакого легаси-кода, тянущего ко дну; на этот раз мы будем принимать только хорошие решения! Начало любого проекта всегда характеризуется вдохновенной продуктивностью. Предстоит ещё так многое сделать. Как можно что-то не сделать даже за такое короткое время? Пограничных случаев не существует. Все дороги доставляют удовольствие. Нет ни тяжёлых решений, ни компромиссов, ни пользователей, ни клиентов. Только вы и бесконечный холст.

Но рано или поздно вдохновение сменяется чем-то больше похожим на… работу. На рутину. Но ведь так будет только с этим проектом, правда? Вы потеряли интерес. Страсть ушла. Он уже не такой интересный, как вы думали. Осталось сделать только самое «скучное».

У вас появляется новая идея, и вы думаете, что эту-то уж точно реализуете!

И этот цикл продолжается снова и снова, пока у вас не образуется кладбище незаконченных проектов. Вы задаётесь вопросом: как вообще кому-то удаётся что-то завершать? Что все остальные знают такого, что неизвестно вам?

Но не волнуйтесь, вы не один. На самом деле, вы, скорее, в большинстве! Многие люди мечтают создавать что-то великое, но никак не могут начать. Из тех немногих, кто начинает, очень немногие заканчивают. И эти несколько людей знают чувство глубокого удовлетворения от того, что видят готовый результат своей работы. Это удовлетворение намного глубже, чем эйфория начала проекта.
Читать полностью »

Эффективная работа с битами при помощи Go - 1


Это статья познакомит вас с использованием возможностей Go для выполнения манипуляций с битами. Здесь мы разберём установку, очистку, инвертирование, сдвиг битов, использование техники SWAR, эффективную обработку Юникода и прочие приёмы, позволяющие повысить продуктивность программирования.Читать полностью »

Почему в байте именно 8 бит? - 1


Я опубликовала в интернет-журнале статью на тему двоичного представления информации компьютерами и, среди прочих, неоднократно получала вопрос: «Почему в архитектуре x86 используются байты, состоящие именно из 8 бит, а не иного их количества?»

Я считаю, что на любой подобный вопрос можно дать два основных ответа и некую их комбинацию:

  1. Так сложилось исторически, и другой размер (например, 4, 6 или 16 бит) тоже вполне сработает.
  2. Восемь бит по какой-то причине является лучшим вариантом, и даже если бы история сложилась иначе, мы бы всё равно использовали именно 8-битные байты.
  3. Некая комбинация этих двух версий.

Я не большой специалист по компьютерной истории (мне куда больше нравится использовать компьютеры, чем читать про них), но меня всегда интересовало, есть ли какая-то весомая причина, по которой мир компьютеров сегодня выглядит именно так, или это, по большому счёту, просто историческая случайность. Так что в этой статье речь пойдёт об истории компьютеров.Читать полностью »

Выбор структур данных для самописного текстового редактора - 1


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

Ресурсы

Прежде чем мы приступим к разбору того, что я сделал, важно упомянуть очень полезные ресурсы для создания собственного текстового редактора:

  • Build Your Own Text Editor — наверно, самый фундаментальный пост о создании текстового редактора с нуля, который я видел. Это превосходный туториал на случай, если вы хотите начать писать собственный текстовый редактор. Стоит заметить, что в редакторе из этого туториала в качестве внутренней структуры для текста используется, по сути, вектор строк.
  • Text Editor: Data Structures — отличный обзор множества структур данных, которые можно использовать при реализации текстового редактора. (Спойлер: как минимум одна из них будет рассмотрена в моём посте)
  • Плейлист Ded (Text Editor) на YouTube — это потрясающая серия, в которой @tscoding фиксирует процесс создания с нуля текстового редактора. Эти видео стали для меня источником вдохновения.

Зачем?

Если в сети есть так много хороших ресурсов о создании собственного текстового редактора (не говоря уже о том, что уже существует множество феноменальных текстовых редакторов), то зачем я это пишу? На то есть несколько причин:

  1. Я хотел заняться проектом, непохожим ни на один свой прошлый.
  2. Я хотел создать инструмент, которым смогу пользоваться.
  3. Мне всегда хотелось глубже разобраться с созданием собственных структур данных.

Читать полностью »

11 лет хостинга SaaS: история и мой опыт - 1

Источник

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

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

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

Установка Gentoo на Playstation 3 - 1


История Linux на PS3 довольно интересна. Если вы знакомы с историей PS3, то, вероятно, знаете, что Sony выпустила её в 2006 году с поддержкой возможности запуска других операционных систем при помощи функции под названием OtherOS. OtherOS позволяла пользователям устанавливать операционные системы наподобие Linux или FreeBSD во второй раздел жёсткого диска PS3.

В 2010 году Sony в прошивке 3.21 избавилась от поддержки OtherOS «из соображений безопасности». На самом деле это означало, что некоторые люди начали использовать эту функцию для глубокого изучения внутренностей PS3 и разбираться, как пиратить игры. Благодаря модифицированной прошивке, можно использовать OtherOS с современными прошивками; именно этим мы и займёмся.
Читать полностью »

Какие уроки я извлёк из создания расширения VSCode с помощью GPT-4 - 1


В последнее время я много экспериментировал с написанием кода при помощи LLM (Large Language Model, большая языковая модель). На мой взгляд, эти инструменты отлично справляются с генерацией небольших самодостаточных фрагментов. К сожалению, что-то большее уже требует человеческого участия для оценки результата LLM и предоставления дальнейших инструкций.

В большинстве случаев, когда кто-то утверждает, что «GPT написал X», человек выступает для LLM в роли своеобразного REPL (Read-Eval-Print Loop, цикл чтение-оценка-вывод), внимательно подводя модель к функциональному результату. Я нисколько не хочу принизить ценность этого процесса – очень здорово, что он работает. Но можем ли мы шагнуть дальше? Можем ли использовать LLM для генерации ВСЕГО кода сложной программы за раз без человеческого вмешательства?Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js