Search
Write a publication
Pull to refresh
4
0
Groosha @Groosha

Программист

Send message

1 год с Flutter в продакшне

Reading time13 min
Views20K

Это текстовая версия моей презентации на DartUp 2020 (на английском). В ней я делюсь проблемами, с которыми мы столкнулись, обсуждаю наш архитектурный подход, рассказываю о полезных библиотеках, ну и отвечаю на вопрос, удачной ли была эта идея – взять и всё переписать.

Читать далее

Самый важный эксперимент 20 века

Reading time5 min
Views53K
image

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

Меня этот простой вопрос ввел в ступор на несколько часов. Потому что выбор был действительно сложным. С девятнадцатом веком проще — там сразу понятно, что двухщелевой опыт*.

А с двадцатым?

Конечно, если выбирать по значительности — то тут все просто. Это «Тринити» — первое в мире испытание ядерного оружия, произошедшее 16 июля 1945 года. Нисколько не преувеличивая, можно сказать, что после этого испытания мир проснулся другим.

Но, при всей значительности этого эксперимента, он не принес новых знаний. Все и до этого знали, что бомба взорвется. Новых знаний эксперимент не добавил.

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

Рассмотрев Стэндфордский тюремный эксперимент, эксперимент Милгрэма и «Вселенную-25», она же «Крысиный рай», я выбрал эксперимент по выведению дружелюбной лисы советского ученого, академика Дмитрия Беляева.
Читать дальше →

Византийская проституция: взгляд сквозь время и юбки

Reading time9 min
Views22K

При словах Греция, многие вспоминают полисы, философов, геометрию, немногие озорные - торс Джерарда Батлера и фривольные халаты с фибулой, для кого то Македония - это фаланги, уникальные артефакты и мечта Александра о единой империи, а для кого то - это "горбатые горы" на побережье Эгейского моря и любвеобильный Гефестион. У ScinetaeVulgaris неделя Византии, и сегодня мы заглянем под юбки интимной жизни одной из величайших империй мира.

Читать далее

Как увидеть ℼ? Нужно швырнуть ℼ в стену

Reading time2 min
Views49K
Лучший способ объяснить школьникам и самому себе, что такое фазовое (конфигурационное) пространство.

image


Дано: Два блока массой 1 кг и 100 (10 000, 1 000 000,… 100x) кг. Трение в системе отсутствует, удары абсолютно упругие (потерь энергии нет). Более массивный блок ударяет менее массивный и тот отскакивает от него, а потом от стенки слева. Справа стены нет, тела могут двигаться в бесконечность.

Вопрос: Сколько столкновений совершит маленький блок, пока система не придет в состояние, когда столкновения невозможны (скорость маленького тела меньше скорости большого, двигающегося в бесконечность)?

Ответ невероятен:

image


В очередной раз поражаюсь изящности объяснений от 3Blue1Brown. Предлагаю читабельный конспект с небольшими сокращениями и дополнениями.

Как *nix-сигналы позволяют читать память других процессов

Level of difficultyMedium
Reading time6 min
Views5.1K
Есть такая очень старая и вросшая в *nix с корнями штука под названием «сигналы». Идея этих примитивов очень проста: реализовать программный аналог прерываний. Различные процессы могут посылать сигналы друг другу и самим себе, зная process id (pid) получателя. Процесс-получатель волен либо назначить функцию-обработчик сигнала, которая будет автоматически вызываться при его получении, либо игнорировать его с помощью специальной маски, либо же довериться поведению по умолчанию. So far so good.

Поведение по умолчанию при получении сигнала… А что означают эти успокаивающие слова? Уверен, не то, что вы ожидали. Вики говорит, что обработчики 28 стандартных сигналов (существуют и другие!) по умолчанию таковы: 2 игнорируются, 4 вызывают остановку процесса, 1 – его продолжение, 11 – его завершение, 10 – его завершение с созданием дампа памяти. Вот это уже интересно! Итак, дело обстоит следующим образом: даже если ваша программа никак не упоминает сигналы в исходном коде, на самом деле она их использует, причём весьма драматичным образом.
Читать дальше →

Raspberry Pi в роли сервера для хостинга сайтов

Reading time8 min
Views94K
Raspberry Pi — это недорогой одноплатный компьютер, отличающийся крайней экономичностью в плане потребления электроэнергии. Он хорошо подходит на роль платформы, на базе которой создают устройства, которые постоянно должны быть включены. Среди множества способов применения Raspberry Pi можно выделить использование этого компьютера в качестве веб-сервера. И, на самом деле, хостить сайты на Raspberry Pi очень просто. Если посчитать стоимость услуг обычного хостинг-провайдера, то окажется, что они не так уж и дёшевы. Альтернативой таким услугам может стать собственный хостинг на Raspberry Pi, обслуживание которого не стоит практически ничего. Кроме того, платформа Raspberry Pi постоянно развивается, поэтому тому, кто решает ей пользоваться, можно не беспокоиться о том, что в будущем ему придётся работать с устаревшим аппаратным и программным обеспечением.


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

Архитектура и стоимость простого бессерверного веб-приложения Amazon Web Services

Reading time7 min
Views17K

Введение


Весной этого года я сидел в локдауне на Багамах, без права сходить на берег и, борясь со скукой, решил посмотреть, что это за зверь такой Amazon Web Services, и да, я пропал. Случилось, что называется, любовь с первого взгляда. Одной из технологий, что пьянила меня не хуже багамского рома, были бессерверные вычисления.


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

Вакцина «Спутник V»: инструкция, как испортить хорошее дело

Reading time9 min
Views223K

Давайте на минуту отбросим все предубеждения и стереотипы об отечественной медицине и попробуем объективно разобраться в том, что сделано правильно, а что неправильно с "первой в мире вакциной от COVID" — Спутник V от «НИИ эпидемиологии и микробиологии им. Н. Гамалеи».


Поговорим о том, как устроена современная наука в целом и доказательная медицина в частности, и при чем тут пиар.


image

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

Как появилась на свет программа youtube-dl

Reading time10 min
Views29K
Как известно, в данный момент репозиторий youtube-dl на GitHub заблокирован по DMCA-запросу от RIAA. Хотя я не могу комментировать текущие планы мейнтейнеров или текущие дискуссии, но после сделанных обвинений RIAA я подумал, что мне как создателю программы и первому мейнтейнеру будет полезно рассказать о первых годах youtube-dl.

Сборщики меди


В любой хорошей истории должен быть злодей, и в качестве такого персонажа я решил выбрать сборщиков меди — воришек, которые собирали цветные металлы в округе. Именно они подтолкнули к созданию youtube-dl. В далёком 2006 году мой посёлок находился в 5-10 километрах от небольшого города Авилес на севере Испании. Жители Авилеса наслаждались хорошей инфраструктурой и услугами, включая кабельное телевидение и ADSL-доступ в интернет. В моём районе ничего такого не было: слишком далеко от телефонной станции с ADSL, а сборщики меди годами воровали медные провода по пути к ней, время от времени вызывая перебои в телефонной связи и заставляя телефонную компанию заменять эти провода более слабыми и тонкими, потому что их тоже, скорее всего, украдут. Это продолжалось несколько лет.

Единственным вариантом выхода в интернет из дома был модем 56k V.90. На самом деле качество связи было настолько плохим, что приходилось для стабильности снижать скорость до 33,6 Кбит/с. Фактическая скорость загрузки редко превышала 4 КБ/с. В то же время в интернете появился интересный видеосервис YouTube, он быстро набирал популярность, а в конце того же года его купила компания Google.
Читать дальше →

Linux-контейнеры в паре строчек кода

Reading time5 min
Views6.8K
В продолжение прошлой статьи о KVM публикуем новый перевод и разбираемся, как работают контейнеры на примере запуска Docker-образа busybox.

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

В отличие от понятия «виртуальная машина», термин «контейнер» очень расплывчатый и неопределенный. Обычно мы называем контейнером — автономный пакет кода со всеми необходимыми зависимостями, которые могут поставляться вместе и запускаться в изолированной среде внутри операционной системы хоста. Если вам кажется, что это описание виртуальной машины, давайте погрузимся в тему глубже и рассмотрим, как реализованы контейнеры.
Читать дальше →

ВИЧ — нулевой пациент мировой пандемии

Reading time16 min
Views700K

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

Но с чего все началось? От первой капли крови до эпицентра пандемии, от первого межвидового заражения до всемирной войны с вирусом. Кто был истинным «пациентом ноль»? Откуда появилось заболевание? Отчего мы все умрём и умрем ли? Каков этот длинный путь эволюции от похотливых лемуров до парада колумбийских наркотиков в южных штатах, от гей-сообществ и наркомании до африканских рабов. Что мы натворили? Что мы сделали такого, из-за чего теперь имеем дело с ВИЧ. Предлагаю вам погрузиться в небольшое расследование Scientae Vulgaris и отправиться на поиски нулевого пациента вместе со мной.

Часть 1. Рождение мифа

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

Дело было так, Центр по контролю и профилактике заболеваний публиковал еженедельные отчеты о заболеваемости и смертности, и несколько недель подряд в них отображались необычно высокие данные по числу сарком, пневмонии Pneumocystis carinii pneumonia (PCP) и оппортунистических инфекций. То, чем обычно болеют достаточно редко. Общее состояние пациентов выделили в отдельный синдром, собрали рабочую группу и стали разбираться.

И вот спустя пару месяцев, в марте 1984 года в Центре по контролю и профилактике заболеваний в США уже вовсю тщательному анализу и исследованию подвергались сексуальные связи нескольких геев и бисексуальных мужчин. По странному стечению обстоятельств из всех заболевших мужчин, женщин и детей именно эта группа была наиболее многочисленной. Одним из подопытных «содомитов» стал канадский бортпроводник Гаэтан Дугас. Он работал в Эйр Кэнада и умер в 1984-м от почечной недостаточности, вызванной оппортунистической инфекцией на фоне ослабленного иммунитета. Множество журналистов и публицистов 80-х впоследствии опишут Дугаса, как очаровательного и сексуального спортсмена с необъёмным гомосексуальным либидо. Ошибочно определённый как пациент «Ноль», Гаэтан на самом деле не были ни «пациентом О», ни нулевым как таковым. Касательно канадского бортпроводника, его случай числился за номером 57, а обозначение «О» относилось к слову «outside» - то есть, прибывшим из-за пределов США. Именно с Дугаса вообще начинается использование термина «нулевой пациент» в эпидемиологии. Но, как часто бывает, это всего лишь опечатка, вернее, неправильно воспринятая аббревиатура. 57-й пациент был ответственнен за, по меньшей мере, 40 из 248 случаев заражения ВИЧ в 1983 году (исследования Уильяма Дароу в Центре контроля заболеваний). Многие нити на нарисованной эпидемиологами схеме распространения вируса сводились к Гаэтану. Но ,во-первых, далеко не все из них и, во-вторых, на нем они не заканчивались. Молодой человек был продуктом своей эпохи, ВИЧ в его случае и его положении был скорее вопросом времени.Чтобы вы понимали, что за радужные времена в Канаде были в эти годы, нужно упомянуть, что к 1970-м ЛГБТ сообщество игривой походкой праздновало свои победы. В 1971 году в Оттаве состоялся первый в Канаде марш за права геев. Стала выпускаться первая Канадская газета на тему освобождения гомосексуалистов - The body politic - в Торонто. Вышел документальный ЛГБТ сериал «Выход» («каминг аут»). В 73-м году сразу несколько городов в Канаде провели масштабные мероприятия по защите прав геев, назвав это всё «неделей гордости» («прайд вик»). В 74-м году молодому Дугасу было 22 года, быть геем было дерзко и даже немного модно. Во время полётов в самолётах всё ещё курили и подавали крепкий алкоголь крупными порциями, небо пахло романтикой и приключениями. Дугас рос в небольшой семье в пригороде Квебека L’ansien-lorette, возле пригородного аэропорта, он учился на парикмахера и с восторгом наблюдал за пролетающими самолётами. Как только авиакомпании вслед за волной всеобщей либерализации сняли запрет на работу мужчин на борту самолётов, Дугас понял, что всю жизнь мечтал стать стюардессой: белоснежная рубашка с длинными лацканами воротника, голубые обтягивающие штаны и платочек на поясе. Он делился советами по макияжу с коллегами-женщинами и был на острие хипстерской моды 80-х, крутил романы, посещал гей бары и жил полной активной жизнью гейской стюардессы.

Читать далее

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

Reading time7 min
Views44K


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

Компания, которая написала, занималась аналитикой данных. Ежедневно она обрабатывала тысячи запросов. К нам они пришли со словами: ребят, у нас есть ClickHouse и мы хотим автоматизировать его настройку и установку. Хотим Ansible, Terraform, Докер и чтобы это все хранилось в гите. Хотим кластер из четырех нод по две реплики в каждой.

Стандартная просьба, каких десятки, и нужно такое же хорошее стандартное решение. Мы сказали «окей», и через 2-3 недели все было готово. Работу они приняли и начали переезжать на новый кластер Кликхауса с помощью нашей утилиты.
Читать дальше →

Как генерируются UUID

Reading time7 min
Views139K

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

Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Читать дальше →

GitOps: очередной модный термин или прорыв в автоматизации?

Reading time4 min
Views6.1K

Большинство из нас, подмечая очередной новый термин в IT блогосфере или конференции, рано или поздно задается подобным вопросом: “Что это? Очередное модное слово, “buzzword” или действительно что-то стоящее пристального внимания, изучения и обещающее новые горизонты?” Точно также вышло у меня и с термином GitOps некоторое время назад. Вооружившись множеством уже существующих статей, а также знанием коллег из компании GitLab, я попытался разобраться, что же это за зверь, и как его применение может выглядеть на практике.

Читать далее

Базы данных: большой обзор типов и подходов. Доклад Яндекса

Reading time28 min
Views84K
Это конспект лекции Татьяны Денисовой tdenisova — бэкенд-разработчика в Яндекс.Учебнике. Вы узнаете, какие бывают базы данных, какие их особенности важно помнить, как в работе с данными учитывать характеристики системы и планы масштабирования, в какую из тем нужно углубиться для решения конкретной задачи. А также как при возникновении багов определить, является ли работа с БД источником проблемы (и если да, то в какую сторону копать).



— О чем именно мы будем говорить? Не о примитивных селектах и джойнах — о них, я думаю, большинство из вас уже знает.
Читать дальше →

Разработка графического профайлера Python FunctionTrace

Reading time9 min
Views3.7K


Сегодня мы делимся с вами переводом статьи создателя FunctionTrace — профайлера Python с интуитивно понятным графическим интерфейсом, который может профилировать многопроцессорные и многопоточные приложения и потребляет на порядок меньше ресурсов, чем другие профайлеры Python. Неважно, только учитесь ли вы веб-разработке на Python, либо уже давно используете его — всегда полезно понимать, что делает ваш код. О том, как появился этот проект, о деталях его разработки — далее под катом.
Читать дальше →

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

Reading time15 min
Views13K
Пять лет назад я попробовал работать с Tarantool, но тогда он мне не зашел. Но недавно я проводил вебинар, где рассказывал про Hadoop, про то, как работает MapReduce. Там мне задали вопрос — «А почему под эту задачу не использовать Tarantool?».

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


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

Почему мой NVMe медленнее SSD?

Reading time5 min
Views26K

В данной статье мы рассмотрим некоторые нюансы подсистемы ввода-вывода и их влияние на производительность.

Пару недель назад я столкнулся с вопросом, почему NVMe на одном сервере медленнее, чем SATA на другом. Посмотрел в характеристики серверов и понял, что это был вопрос с подвохом: NVMe был из пользовательского сегмента, а SSD — из серверного.

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

В IT растет цензура, а мы не замечаем — разрешают только улыбаться и молчать

Reading time8 min
Views126K

У меня есть две статьи-интервью вот с такими странными абзацами. За обоими кроются неприятные истории для меня и для людей, про которых я писал.

Читать далее

Стартап Glide для создания мобильных приложений из Google-таблиц

Reading time9 min
Views40K


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

Например, если говорить о сайтах, то можно вспомнить то время, когда цена простейшего лендинга начиналась от нескольких тысяч долларов. Сегодня же можно бесплатно скачать готовый шаблон практически для любого сайта. Либо же воспользоваться одним из популярных конструкторов. И да, «создать сайт за 5 минут» – это именно то, что нужно большинству заказчиков.

Похожая тенденция наблюдается и на рынке мобильных приложений. Для них тоже существует огромное множество бесплатных шаблонов. А простые конструкторы вполне подходят для самостоятельной разработки.

И сегодня мы решили рассказать о проекте, который имеет все шансы открыть новый виток развития в этой сфере. Стартап Glide привлек к себе внимание возможностью создавать приложения на базе Google-таблиц для любой мобильной ОС. При этом «разработчику» не нужно иметь знаний кода и опыта в программировании.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity