Pull to refresh
0
0
Константин Садовский @AsmodeusL

User

Send message

Почему проекты переписываются и почему это не удается

Reading time13 min
Views9.8K
Извечная тема — можно или нельзя переписать большой, работающий продукт с активной пользовательской базой? Ответ, в целом, будет — да, можно. Вопрос только — как? Наблюдая в прошлом несколько таких попыток (как удачных, так и не очень), данная статья является авторским взглядом на эту проблему.
Читать дальше →

Графика в терминале

Reading time3 min
Views33K
Эта история началась, когда я узнал о существовании bpytop. Меня поразила детализация графиков и я начал разбираться как это сделано. Оказалось, что для вывода графиков использовались символы алфавита Брайля, представляющие из себя комбинацию из 8 точек: 2 точки в ширину и 4 точки в высоту. Поискав готовые решения, использующие этот подход, я нашел на реддите анонс такого проекта. В первом же комментарии анонса я прочитал:
Это конечно круто, но почему люди просто не переоткроют для себя ReGIS (векторную графику в терминале) и sixel (пиксельную графику в терминале).
До этого момента я ничего не знал про sixel. Копнув глубже я выяснил, что в теории sixel должен поддерживаться xterm-ом. Я запустил xterm на своей ubuntu 20.04 в режиме эмуляции vt340

xterm -xrm "XTerm*decTerminalID: vt340" -xrm "XTerm*numColorRegisters: 256"

выполнил вот такую команду (convert это команда из пакета imagemagick)

clear && convert <(curl -s https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png) sixel:-

и увидел вот это:

image
Вау, работает!
Читать дальше →

О провиженинге тестовых баз

Reading time83 min
Views3.2K

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

В общем, в одной далёкой-далёкой галактике динамичной-быстро развивающейся компании есть множество (десятки) продовых oracle-баз. Продовые бд - названы одинаково. Специфика обстановки, с этой стороны: SE, типовой размер баз 3-3.5Тб, самая большая бд - 7+Тб. Легаси-монолит, всё работает - на хранимках (да, буээ и фу, но разговор не об этом).

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

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

Иначе говоря: тестовых баз надо:

Читать далее

nmap скрипты

Reading time3 min
Views18K

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

Читать далее

10 английских слов, которые можно использовать вместо скучного «good»

Reading time5 min
Views34K

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

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

Сегодня говорим о синонимах к слову «good» и о том, как правильно их использовать. Поехали.

Читать далее

Основы Bash-скриптинга для непрограммистов. Часть 3

Reading time8 min
Views12K

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

Читать далее

Основы Bash-скриптинга для непрограммистов. Часть 2

Reading time10 min
Views41K

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

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

Читать далее

Основы Bash-скриптинга для непрограммистов

Reading time8 min
Views31K

Статья рассчитана на тех, кто не имеет или имеет мало опыта работы с командной строкой Unix/Linux, но желает научиться с ней эффективно взаимодействовать и разрабатывать скрипты для выполнения своих задач. Приведенные примеры справедливы для выполнения в командной оболочке bash операционной системы Ubuntu/Debian, но могут быть использованы и в других оболочках и ОС с учетом их специфики.

Читать далее

Средиземное море, тропики и морозы. Релокейт-обзор: 5 стран для переезда IT-специалиста

Reading time17 min
Views22K

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


В предыдущем дайджесте мы рассказали про десять стран, в том числе США и Германию. Тогда в опросе большинство хабровчан проголосовали за то, чтобы узнать подробности о Канаде, Швеции, Италии и Финляндии. Выполняем просьбу! Мы нашли разработчиков, которые переехали туда из России, и выяснили, с какими проблемами они столкнулись, и чего нужно ждать.


Отдельно идет Сингапур — его в опросе не было, но тут как раз самое интересное.




Читать дальше →

Простой способ релокейта в Италию: опыт инженера из России

Reading time10 min
Views29K

Несколько лет назад инженер и BIM-специалист Сергей Кулешов прочитал в ЖЖ программиста Андрея Коринского пост о том, как тот эмигрировал в Италию. Этот пост вдохновил Сергея на переезд — и вот он уже шесть лет живёт и работает в этой прекрасной стране на юге Европы.


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




Читать дальше →

Четыре API для базы данных

Reading time13 min
Views32K

Как то мы уже обращались к теме превосходства объектного/типизированного представления в реализации моделей предметной области в сравнении с SQL. И верность тех доводов и фактов на на йоту не уменьшилась. Казалось бы, зачем отступать и обсуждать технологии, которые глобально низвергают абстракции обратно в дообъектную и дотипизированную эпоху? Зачем провоцировать рост спагетти-кода, непроверяемых ошибок и упование на виртуозное мастерство разработчика?

Есть несколько соображений о том, почему стоит поговорить про обмен данными через API на основе SQL/REST/GraphQL, в противовес представлению их в виде типов/объектов:

Читать далее

Connected speech: как научиться говорить на английском связно

Reading time6 min
Views26K

Когда человек, изучающий английский как иностранный, впервые попадает в круг носителей языка, у него случается лингвистический шок. 

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

В США или Британии не говорят как дикторы на BBC, с паузами и четкой артикуляцией слов — и к этому нужно быть готовым. А чтобы говорить как носитель, нужно самому тренировать связную речь. Об этом сегодня и поговорим.

Читать далее

DBA: «Кто-то слишком много ест!»

Reading time6 min
Views16K

Тема "распухания" таблиц и индексов из-за реализации MVCC - больная для пользователей и администраторов PostgreSQL.

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

Но, помимо влияния на скорость, есть еще и факт влияния на занятое место. Наверное, вы сильно удивитесь, если таблица с единственной "живой" записью после успешного прохода autovacuum продолжит занимать гигабайты пространства на дорогих SSD.

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

Читать далее

Что такое фильтр Блума?

Reading time9 min
Views53K

Всем привет! В этой статье я постараюсь описать, что такое фильтр Блума, рассказать о его назначении и показать сценарии, в которых его можно использовать. Я также реализую фильтр Блума на Python с нуля в целях облегчения понимания его внутреннего устройства.

Фильтр Блума. Что это?

100500 способов кэширования в Oracle Database

Reading time21 min
Views26K
Рассказывать, какие есть кэши, что такое Result Cache, как он сделан в Oracle и в других базах данных не очень интересно и довольно шаблонно. Но все приобретает совершенно другие краски, когда речь идет о конкретных примерах. Александр Токарев (shtock) построил свой доклад на Highload++ 2017 исходя из кейсов. И именно опираясь на кейсы, рассказал, когда может быть удобен самодельный кэш, в чем боль server-side Result Cache и как заменить его клиентским, и вообще вывел ряд полезных советов по настройке Result Cache в Oracle.


О спикере: Александр Токарев работает в компании DataArt и занимается вопросами, связанными с базами данных как в части построения систем «с нуля», так и оптимизации имеющихся.

Начнем с нескольких риторических вопросов. Вы работали с Oracle Result Cache? Вы верите, что Oracle — это база данных, удобная на все случаи? По опыту Александра большинство людей на последний вопрос отвечает отрицательно, на сто суровых прагматиков приходится один мечтатель. Но благодаря его вере двигается прогресс.

Кстати, у Oracle уже 14 баз данных — пока 14 — что будет в будущем, неизвестно.

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

Oracle: Deterministic functions, result_cache and operators

Reading time4 min
Views4.1K

После перевода статьи Oracle: разница между deterministic и result_cache от Steven Feuerstein, хотелось бы дополнить ее действительно важными деталями их устройства. У меня есть серия статей на эти темы, но тут я хотел бы просто все резюмировать и оставить самое важное.

Read more

Создаём мини PHP SDK для подписи запросов к Oracle Cloud Infrastructure API

Reading time8 min
Views2.8K

Идея написать эту библиотеку возникла, когда захотелось в полной мере воспользоваться всеми преимуществами бесплатного предложения Oracle Cloud Infrastructure, а именно 10 ГБ хранилища объектов (Object Storage) и 10 ТБ исходящего трафика в месяц. К сожалению, Oracle Cloud не имеет в наличии SDK для всё еще самого популярного языка программирования для разработки веб-сайтов. Хорошая новость состоит в том, что сервис частично совместим с Amazon S3, а это означает, что можно применить уже имеющиеся и отлично задокументированные инструменты разработчика, в том числе для PHP.

Читать далее

Пишем расширение-читалку для Habr

Reading time9 min
Views6.6K

Теперь посты на Habr будут читаться за вас!

В данной статье я хочу показать, как можно совместить утренние сборы на работу с прочтением статей на Habr. Для этого мы напишем простое расширение для браузеров на базе chromium (в частности, Chrome и Opera), которое будет зачитывать для нас вслух открытый во вкладке пост на Habr.

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

Читать далее

Сколько CPU и RAM вам нужно, чтобы сделать бекап?

Reading time10 min
Views17K

Помните, как во второй половине 90-х один известный тогда профессор хрипло пел “Бегут года, и грусть, печаль в твоих глазах, а я не знаю что тебе сказать”. Так вот, года действительно бегут, а грусть-печаль в глазах из-за того, что гонка технологий уже достигла таких скоростей, что успеть за ними не может даже самый ловкий мангуст. Правда, некоторые вещи категорически отказываются меняться, и раз уж эта статья из блога компании, занимающейся бекапами, видимо, что-то не меняется в бекапах. А проблема, о которой хочется поговорить сегодня - это выбор сервера, который эти бекапы и будет делать. Все как-то привыкли думать только о размере стораджа, куда их предстоит складывать, а то, что процесс бекапа - это типичная задача обработки большого массива данных, которая жрёт RAM и CPU как не в себя, многие то ли забывают учесть, то ли по неопытности упускают этот момент. Так что сегодня учимся подбирать сервера для бекапов не только по размеру дисков. Или, как говорят зарубежные коллеги: backup server sizing best practices.

И да, в посте будет математика. Целых две формулы. Я предупредил.

Читать далее

Уважаемые рекрутеры, а вы не офигели?

Reading time3 min
Views196K

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

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

99% моего времени отнимает прочтение рекрутерского спама, ответы на по определению неподходящие вакансии и прохождение технических интервью, в которых я не пройду, потому что у меня ИЗНАЧАЛЬНО нерелевантный опыт. Это мы вместе с техническим интервьюером понимаем уже в процессе разговора.

Читать далее

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity