Рубрика «Блог компании RUVDS.com» - 7

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


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

Ресурсы

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

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

Зачем?

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

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

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

image

Мы шутили про эти телефоны, а они пригодились на прошлых выходных. Точнее, пригодилось резервирование телефонии. Не конкретно эти, но похожие)

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

Но давайте обо всём по порядку.

— Сколько клиентов пострадало?

— На три часа и более в одном ЦОДе отключилось 7–10 % из 14 наших, то есть менее 0,5 % от общего числа клиентов хостинга (точнее, хостов). Тем не менее мы очень подробно рассказываем про эту аварию, потому что она вызвала очень много вопросов. Читать полностью »

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

Источник

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

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

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

История компьютерных стратегий, часть 1: всё началось с шахмат - 1


Стратегии — один из давних и почтенных жанров компьютерных игр. Ценители жанра, вроде вашего покорного слуги, проводили в них тысячи и тысячи часов — и судя по объёмам дофамина, и эндорфинов, это время точно не было потрачено впустую. Ну и мозги это дело прокачивает неплохо, пожалуй.
Правда, ни одна самая глубокая и прошаренная стратегическая игра, увы, даже близко не подходит к уровню сложности и многогранности реальности. Стратегии как создают когнитивные искажения, порождая весьма ошибочные мнения о том, «как всё работает и как всех ногебать» в реальности — так и помогают понять хотя бы часть этой сложности. Об этом мы тоже поговорим, но чуть позже. А сейчас — к основам и истокам жанра, о том, как всё зарождалось в далёкую и ностальгическую эпоху классического киберпанка.Читать полностью »

В годы юности я играла в «Ну, погоди» до высоких уровней, на которых яйца катились практически непрерывным потоком. В какой-то момент внимание и ловкость подводили и звучал характерный сигнал: всё, жизни закончились. А при включении можно было увидеть двух четырёхруких (шестилапых?) волков, пытающихся поймать все яйца. Казалось бы — игрушка, которая осталась в прошлом, но её образ нет-нет, да всплывает в голове. Это случается в минуты полной перегрузки делами, когда пытаешься поймать все яйца, закрыть задачи и планы, а все шесть лап опускаются. Приходит усталость: то ли от сделанного, то ли от хронического неуспевания, то ли от переживаний за всё сразу. От этого состояния до выгорания рукой подать. А вокруг все такие эффективные, скоростные, продвинутые или… нет?

Я ничего не успеваю - 1

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

Действительно ли Земля – единственная из известных нам планет с тектоникой плит? - 1

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

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

Откуда же взялась тектоника земных плит? Модели показывают, что для того, чтобы тектоника плит начала работать, планета должна быть подходящего размера. Если она получится слишком маленькой, то её литосфера — твёрдая часть коры и верхней мантии — будет слишком толстой. Слишком большой — и её мощное гравитационное поле сожмёт все плиты вместе, крепко удерживая и не давая двигаться. Условия также должны быть оптимальными: породы, из которых состоит планета, должны быть не слишком горячими, не слишком холодными, не слишком влажными и не слишком сухими.
Читать полностью »

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


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

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

Как протокол RDP (почти) вырвался из проприетарного рабства - 1


Remote Desktop Protocol (протокол удалённого рабочего стола, RDP) — проприетарный протокол, разработанный Microsoft примерно в 1998 году. Начиная с XP каждая версия Windows включает системный компонент mstsc.exe.

Благодаря RDP, можно подключиться к другой системе и работать за ней словно за своим компьютером. То же самое делают, например, AnyDesk и TeamViewer, у которых протоколы схожей функциональности.
Читать полностью »

Коротко: 17 июня около часа ночи мы потеряли два ввода питания от города из-за аварии на подстанции, затем — один из дизелей, что вызвало «мигание» питания в подземном дата-центре. Итог инцидента — простой около 12 часов примерно 7–10 % машин одного из 14 наших ЦОДов.

Это просто дикая цепочка событий.

image

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

Итак, мы потеряли оба городских ввода — всё как в худших домах Парижа. Как мы уже потом узнаем, вроде бы авария была на трансформаторе 110 МВт: при перераспределении мощностей с первого произошло замыкание второго. За полтора года это уже третий раз, когда пропадают оба луча, и вот тут я рассказывал, как мы почти сутки стояли на дизеле. Для клиентов это прошло незаметно (кроме той стойки, где при мигании света сгорел ИБП: там был простой на перезагрузку).

Штатно сработали ИБП, автоматически завелись дизель-генераторы, ЦОД продолжил работу. У нас общая энергосеть с соседним ЦОДом всё в том же подземном бомбоубежище. Общее потребление — 0,5 МВт, дизелей — на 1,05 МВт.

Через два часа, около 3:30 ночи, лопнул патрубок дизеля 0,5 МВт, отчего он внезапно перестал работать. Админы убежища переключили мощности на дизели 2 х 100 КВт и 2 х 200 КВт. В момент переключения нагрузка снова легла на ИБП, а за два часа они не успели восстановиться, и часть оборудования выключилась.

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

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

Немного обыкновенных чудес: подводный свисток и труба Рийке - 1

Картинка Vecstock, Freepik

Некоторые предметы настолько плотно вошли в нашу жизнь, что мы даже и не представляем себе, что они могут выглядеть как-то иначе. Тем не менее, они могут! Например, свисток может быть жидкостным и использовать в качестве рабочего тела струи жидкости. Нет, мы не собираемся «вдувать» воду в обычный спортивный свисток :-) Такой свисток будет иметь свои особенности конструкции и принцип действия — ниже мы рассмотрим их и многое другое. Так как существует ещё один весьма занятный способ извлечения звука…

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


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