Search
Write a publication
Pull to refresh
7
0
Владимир @Arkham

Web-программист

Send message

Десять уровней развития предпринимателя

Level of difficultyEasy
Reading time3 min
Views5.7K

Я задавался вопросом, чем отличаются собственник кофейни, программист, создающий стартап, и предприниматель, успешно продавший свой бизнес стратегическому инвестору? На основе анализа успешных и убыточных проектов, я сформулировал 10 уровней развития предпринимателей, через которые каждый из них последовательно проходит.

Читать далее

Я ускорил генерацию blurhash в 3̶6̶ 8̶7̶ 128 раз

Level of difficultyMedium
Reading time15 min
Views10K

Старую собаку новым трюкам не обучишь, вот и я взялся за старое. Blurhash — это компактный способ представления размытой превьюшки изображения в виде ASCII-строки. Разработан финской компанией Wolt (аналог Delivery Club). Давно хотелось внедрить такое к себе в API, чтобы любой клиент мог более плавно и изящно делать загрузку контент на своем сайте. Но сколько я на него смотрел — всегда не давала покоя скорость работы, уж больно медленно и «в лоб» он был написан. Но вот время пришло наконец-то разобраться, что же он так медленно работает.

Читать далее

Вирус бешенства. Беспощадная непостижимость

Level of difficultyMedium
Reading time19 min
Views45K
Мой первый урок по бешенству начался с инструктора который молча вышел и нарисовал на доске огромные «100%» © LAB-66

Про бешенство говорится много и часто. В массовом сознании существует огромное количество слухов, домыслов, страхов. Все это до поры до времени сосуществовало где-то параллельно относительно меня. Но вот недавно на близкого знакомого бросилась (внезапно) домовая мышь и прокусила ему до крови палец. Несмотря на очевидность ситуации, пришлось потратить значительную часть времени на объяснение человеку того, чем все это чревато, перебрать в Интернет кучу ссылок. В итоге пострадавший все-таки отправился к врачу, а я понял, что пора браться за клавиатуру и писать себе туториал для таких случаев.

Про бешенство. Под катом


Что он такое? Вирус бешенства

Как жить и работать при нарушениях внимания?

Level of difficultyMedium
Reading time11 min
Views38K

▍ Предисловие. Флейта хулуси


Щёлк — я обнаруживаю себя за просмотром ролика на YouTube, в котором музыкант рассказывает, как ухаживать за флейтой из сушёной тыквы. Как я оказался здесь?! Зачем? На мгновение я пугаюсь того, что не могу вспомнить, каким образом попал на этот ролик. Я ведь не планировал узнавать про эти флейты и вообще сел работать. Холодок пробегает по коже.

Пытаюсь размотать предысторию, пройти путь своих блужданий обратно. Листаю историю браузера и вижу, что это уже третий по счёту ролик, а до этого я был на вкладке с «Авито». И тут понимаю, как это произошло. Я сел работать и на мгновение решил заглянуть на сайт по продаже вещей, посмотреть, есть ли сообщения, и там залип на странице с предложенными товарами, среди которых была эта самая флейта. Мне стало интересно, я полез сначала на Википедию, потом на YouTube. Ну нужно же послушать, как она звучит… Вот небольшой пример того, как живётся людям с неустойчивым вниманием.


▍ Дисклеймер


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

Программирование для детей 7 лет: ТОП-30 бесплатных видеоуроков

Level of difficultyEasy
Reading time10 min
Views6.9K

Научиться программировать может даже ребенок 7 лет. В этом ему помогут вводные языки и среды вроде Scratch и Kodu Game Lab. О них и поговорим в этой статье и прикрепим ссылки на уроки.

Мы с коллегами считаем, что даже младший школьный возраст — не причина для отказа от обучения ребенка кодингу. Особенно при условии, что он интересуется геймингом и написанием кода. Это увлечение обязательно нужно поддержать: погружение дошкольника или школьника в азы программирования в игровой форме способно приблизить к IT и заложить основы профессионального будущего в одной из востребованных профессий.

Хочу отметить 3 направления обучения для начинающих: Scratch Junior, Kodu Game Lab и Scratch. Давайте рассмотрим каждое и ознакомимся с тематическими уроками: это поможет погрузиться в основы IT и попрактиковаться, решая различные задачи по понятным примерам.

Читать далее

Математика надёжности. Доклад Яндекса

Level of difficultyEasy
Reading time18 min
Views15K

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

Читать далее

Непересекающиеся множества и загадочная функция Аккермана

Reading time14 min
Views40K
Речь пойдёт о простой структуре данных — системе непересекающихся множеств. Вкратце: даны непересекающиеся множества (например, компоненты связности графа) и по двум элементам x и y можно: 1) узнать, находятся ли x и y в одном множестве; 2) объединить множества, содержащие x и y. Сама структура очень проста в реализации и описывалась много раз в различных местах (например, есть хорошая статья на хабре и ещё кое-где). Но это один из тех удивительных алгоритмов, написать который ничего не стоит, а вот разобраться, почему он работает эффективно совсем нелегко. Я постараюсь изложить относительно простое доказательство точной оценки на время работы этой структуры данных, придуманное Зейделем и Шариром в 2005 (оно отличается от того ужаса, который многие могли видеть в других местах). Конечно, сама структура тоже будет описана, а попутно разберёмся причём здесь обратная функция Аккермана, о которой многие знают только, что она оооочень медленно растёт.
Читать дальше →

Как работает блокчейн: объяснение от эксперта по ИТ Петра Емельянова

Level of difficultyEasy
Reading time14 min
Views11K

Блокчейну приписывают три свойства: неизменяемость, распределенность и консенсус. Разберём, что обеспечивает ему эти свойства и как работает. Объясняет эксперт по машинному обучению и AI — дотошно и подробно, заглянем под капот.

Читать далее

Как я превратил обычный бизнес в IT компанию, читая книги

Level of difficultyEasy
Reading time14 min
Views10K

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

Я готовился к настоящему валу звонков, ведь никто ничего похожего не предлагал.

Казалось бы, что могло пойти так?

Как перенести 1,4 ТБ с MS SQL на PostgresSQL за 13 часов

Level of difficultyEasy
Reading time7 min
Views18K

Привет, Хабр! Меня зовут Павел Кузьмин, я работаю ведущим разработчиком в РСХБ-Интех. Однажды в своей работе мы столкнулись с острой необходимостью перенести БД объемом 1,4 ТБ (более 1,5 млрд строк) с MS SQL на PostgresSQL не более чем за 20 часов. Неожиданно для нас, все имеющиеся готовые варианты не подходили, поэтому мы решили взять библиотеку Npgsql на C# и написать свой код. В итоге созданное решение справилось с поставленной задачей за 13 часов. Рассказываем, как мы это сделали, и делимся кодом. Возможно, он вам пригодится в работе.

Читать далее

Выжимаем из Go максимум производительности

Level of difficultyMedium
Reading time11 min
Views24K

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

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

Читать далее

Как мы повышали производительность очереди сообщений

Reading time14 min
Views12K

Работа в Яндексе ставит огромное количество технических вызовов, которые интересно решать. И один из них — это производительность основной очереди сообщений YDB Topics. Посмотрим, может ли опенсорсный продукт от Яндекса конкурировать с Apache Kafka по производительности.

Меня зовут Зевайкин Александр. Я уже практически 20 лет в IT. Начинал с преподавания в вузе, запускал множество стартапов, руководил командами разработки. В текущий момент я работаю в Яндексе в отделе, занимающимся одной из высоконагруженных систем. Это разработка распределённой базы YDB, в частности, функциональности YDB Topic.

Читать далее

Может уже сами с нейросетями сделаем дизайн для нашего продукта? От идеи до запуска на маркетплейс, пошаговая инструкция

Reading time14 min
Views19K

— Добрый день, хотим дизайн вот заказать для упаковки нашей продукции на маркетплейсах.
— Ой, ну это короче бюджет нужен.
— А по срокам как?
— Давайте сначала ТЗ составим, а там уже и сроки почувствуем.

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

В чём проблема?

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

Всегда ли хорош Index Only Scan?

Level of difficultyMedium
Reading time5 min
Views14K

Среди применяемых в PostgreSQL методов доступа к данным Index Only Scan стоит особняком, считаясь у многих разработчиков "волшебной пилюлей" для ускорения работы запроса - мол, "Index Scan - плохо, Index Only Scan - хорошо, как только получим его в плане - все станет замечательно".

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

Читать далее

Как работает физика в играх

Level of difficultyMedium
Reading time17 min
Views23K

В мире видеоигр игровая физика играет важную роль, определяя реалистичность и взаимодействие игрового мира с игроком. Что же происходит под капотом? Какие алгоритмы и подходы используются в современных движках? И что же значит «застрять в текстурах»? (спойлер: чушь полнейшая)

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

Читать далее

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Level of difficultyMedium
Reading time46 min
Views345K

Поскольку блокировки интернета в РФ в последние недели и месяцы многократно активизировались, а маразм все крепчает и крепчает, стоит еще раз поднять тему обхода этих самых блокировок (и делаем ставки, через сколько дней на эту статью доброжелатели напишут донос в РКН чтобы ограничить к ней доступ на территории страны).

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее

[Перевод] Анемичная модель предметной области — не анти-шаблон, а архитектура по принципам SOLID

Reading time15 min
Views51K

От переводчика: На проекте, где я работаю, сейчас идет активное переписывание логики, ранее реализованной в виде богатой модели предметной области (с использованием Active Record и Unit of Work). Новый подход включает в себя классы сущностей без поведения и служб без состояния, взаимодействующих посредством интерфейсов — фактически, он представляет собой анемичную модель, с перспективой перехода в дальнейшем на микросервисную архитектуру. Наблюдая в режиме реального времени, как «макаронный монстр» из примерно полутора миллионов LOC постепенно обретает форму, как упрощаются тестирование, масштабирование и кастомизация системы под нуждый различных заказчиков, я был весьма удивлен, узнав, что такой подход часто рассматривается как архитектурный анти-шаблон. Пытаясь разобраться в причинах этого, я наткнулся на данную статью и размещаю здесь ее перевод, чтобы обсудить с сообществом плюсы и минусы подхода.


Оригинал: The Anaemic Domain Model is no Anti-Pattern, it’s a SOLID design

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

Event Loop. Мифы и реальность

Reading time19 min
Views21K

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

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

Читать далее

Паттерны отказоустойчивости приложений в Kubernetes

Reading time22 min
Views20K
Балансировщики падают, контроллеры зависают, а дата-центры атакуют экскаваторы. Это нормальная история. Мы живём в мире, где нет ничего надёжного на 100 %, а любой бит в планке оперативной памяти может внезапно перещёлкнуться из-за пролетевшей космической частицы.

Другое дело, что даже в условиях постоянных рисков отказа отдельных элементов нам нужно обеспечить работоспособность инфраструктуры в целом. Клиент не должен заметить, что где-то отказал контейнер с php-fpm или одна из серверных стоек выпала из сети.

По роду деятельности мне постоянно приходится сталкиваться с проблемами отказоустойчивости, так как я руководитель разработки в отделе Газпромбанка, обеспечивающем эксплуатацию ML и Big Data-решений. Поэтому сегодня я хочу рассказать о нескольких паттернах отказоустойчивости и типовых решениях при эксплуатации приложения в кластере Kubernetes. Разберём основные паттерны, ну и, конечно, рассмотрим варианты, при которых неправильные настройки прострелят вначале одну ногу, а потом — другую, потому что она слишком медленно стала шагать.


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

SQL HowTo: обход дерева иерархии «по курсору» через двойную рекурсию

Reading time3 min
Views10K

В предыдущих статьях "PostgreSQL Antipatterns: навигация по реестру", "PostgreSQL 13: happy pagination WITH TIES" и "SQL HowTo: курсорный пейджинг с неподходящей сортировкой" я уже рассматривал проблемы навигации по данным, представленных в виде плоского реестра.

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

Читать далее

Information

Rating
Does not participate
Location
Владивосток, Приморский край, Россия
Registered
Activity