Pull to refresh
3
0.1
Александр Игнатьев @ialexander

Software Engineer

Send message

Для размышлений и решения задач мозг не нужен – с этим справляются и простые клетки

Reading time17 min
Views32K

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

Но червь овладел одной задачей, которая до сих пор не удавалась величайшим умам человечества: идеальной регенерацией. Если разорвать его пополам, из головы вырастет новый хвост, а из хвоста — новая голова. Через неделю два здоровых червяка уплывут.

Выращивание новой головы — хитрый трюк. Но биолога Майкла Левина из Университета Тафтса интригует именно хвостовая часть червя. Он изучает, в частности, как организм развивается из отдельных клеток, и его исследования заставляют его подозревать, что разум живых существ, как ни странно, находится за пределами их мозга. Например, в клетках задней части тела червя может находиться довольно развитый «интеллект». «Любой интеллект — это коллективный интеллект, потому что любая когнитивная система состоит из каких-то частей», — говорит Левин. Животное, способное пережить полную потерю головы, стало для Левина идеальным подопытным.

Читать далее
Total votes 91: ↑86 and ↓5+81
Comments45

8 невероятно крутых фильмов про хакеров

Level of difficultyEasy
Reading time3 min
Views5.8K

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

Сноуден

Фильм основан на реальных событиях. Это история о сотруднике ЦРУ, который не пожелал мириться с несправедливым устройством нашего мира. Как быть, когда путь на родину закрыт, карьера окончена и все идеалы разрушены? Эдвард Сноуден выбрал борьбу. Чем же она закончится для него лично и для всего остального мира. Ведь те сведения, которыми владеет герой, касаются практически каждого из нас.

Девушка, которая застряла в паутине

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

Пятая власть

Ещё один фильм о реальной исторической личности и событии, которое разделило мир на «до» и «после». Из постановки зритель узнает о Джулиане Ассанже. Чем знаменит этот человек? Почему за ним охотятся агенты спецслужб со всей Европы? Кино наглядно показывает, к чему может привести банальная, на первый взгляд, утечка информации. Именно после описанных в киноленте событий, человечеству стало понятно, что информация может цениться дороже всего на свете, а киберпреступления — не пустой звук, а реальная опасность, с которой мировое сообщество будет сталкиваться всё чаще и чаще.

Читать далее
Total votes 30: ↑6 and ↓24-18
Comments16

LLVM: компилятор своими руками. Введение

Reading time14 min
Views56K
Представим себе, что в один прекрасный день вам пришла в голову идея процессора собственной, ни на что не похожей архитектуры, и вам очень захотелось эту идею реализовать «в железе». К счастью, в этом нет ничего невозможного. Немного верилога, и вот ваша идея реализована. Вам уже снятся прекрасные сны про то, как Intel разорилась, Microsoft спешно переписывает Windows под вашу архитектуру, а Linux-сообщество уже написало под ваш микропроцессор свежую версию системы с весьма нескучными обоями.
Однако, для всего этого не хватает одной мелочи: компилятора!
Да, я знаю, что многие не считают наличие компилятора чем-то важным, считая, что все должны программировать строго на ассемблере. Если вы тоже так считаете, я не буду с вами спорить, просто не читайте дальше.
Если вы хотите, чтобы для вашей оригинальной архитектуры был доступен хотя бы язык С, прошу под кат.
В статье будет рассматриваться применение инфраструктуры компиляторов LLVM для построения собственных решений на её основе.
Область применения LLVM не ограничивается разработкой компиляторов для новых процессоров, инфраструктура компиляторов LLVM также может применяться для разработки компиляторов новых языков программирования, новых алгоритмов оптимизации и специфических инструментов статического анализа программного кода (поиск ошибок, сбор статистики и т.п.).
Например, вы можете использовать какой-то стандартный процессор (например, ARM) в сочетании с специализированным сопроцессором (например, матричный FPU), в этом случае вам может понадобиться модифицировать существующий компилятор для ARM так, чтобы он мог генерировать код для вашего FPU.
Также интересным применением LLVM может быть генерация исходных текстов на языке высокого уровня («перевод» с одного языка на другой). Например, можно написать генератор кода на Verilog по исходному коду на С.



КДПВ

Читать дальше →
Total votes 58: ↑55 and ↓3+52
Comments55

Наш опыт миграции PostgreSQL с AWS RDS на свою (self-hosted) инсталляцию

Reading time15 min
Views5.9K

В статье рассмотрен способ безболезненной миграции базы данных PostrgeSQL c RDS-сервиса в AWS на self-hosted-инстанс с обеспечением отсутствия простоя в работе и максимальной консистентности данных.

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

Читать далее
Total votes 22: ↑21 and ↓1+20
Comments11

Материалы бэкенд-митапа. MongoDB, оптимизация алгоритмов и диагностика проблем в больших проектах

Reading time1 min
Views4.3K

Привет! Это пост-отчёт с митапа «Быстрый бэкенд», который прошёл в офисе Joom. С коллегами из Джум Лабс и Авито обсудили, как живётся с большим кластером MongoDB, как битмап-индексы помогают быстро искать по каталогам и как анализировать большие объемы Jaeger-трейсов. В этом посте — видеозаписи докладов, презентации спикеров и несколько фотографий со встречи. 

Читать далее
Total votes 19: ↑18 and ↓1+17
Comments0

Лучшие Проекты Для Начинающих Python-Разработчиков

Reading time8 min
Views220K

Чтобы научиться ходить – надо ходить, чтобы научиться подтягиваться – надо подтягиваться, чтобы научиться решать задачи по физике – надо решать задачи по физике. Так говорил преподаватель физики в моём университете, и эта аналогия применима и к программированию.

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

Цель данного "топа" – это не создание самого оригинального портфолио и не перечисление уникальных проектов. Цель статьи разобраться в простых вещах, технологиях и темах, которые помогут развить практические навыки программирования. Поэтому не стоит ждать здесь сборку Оптимуса Прайма, программирование Звезды смерти и создание двигателя на китовом жире. Мы пройдёмся по простым, но в тоже время базовым вещам. Ведь как говорил один мой приятель: «Всё великое начинается с малого».

Читать далее
Total votes 31: ↑28 and ↓3+25
Comments43

Почему я ушла из команды Google WebAssembly

Reading time6 min
Views14K

Я пришла в Google в начале 2015 года, чтобы работать в команде V8, и была одним из первых авторов спецификации WebAssembly. В этой статье я частично расскажу историю того, что не так было с этим процессом и как он нанёс мне непоправимый урон. Надеюсь, эта история поможет людям распознавать токсическую культуру на рабочем месте, или позволит новым сотрудникам построить более удачную карьеру в Google. Любая история WebAssembly была бы подвержена искажениям из-за сложной судьбы проекта, и моя — не исключение.

На момент присоединения к команде V8 я уже несколько лет занималась поддержкой транспилятора, преобразующего приложения .NET в эффективный JavaScript. Проект начался в одно время с Emscripten — приложением, превратившимся в стандарт и ставшим источником вдохновения для создания WebAssembly. В то время мне удалось поработать с создателем asm.js Алоном Закаем и я многому у него научилась. Благодаря этому опыту я стала подходящим кандидатом для команды WebAssembly.
Читать дальше →
Total votes 27: ↑24 and ↓3+21
Comments10

О применении RazorPages в консольных и десктопных приложениях

Reading time17 min
Views4K

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments13

Хостим Bitwarden — open-source менеджер паролей

Reading time5 min
Views73K


Менеджеры паролей действительно полезны и важны как для отдельных пользователей, так и для организаций, и они пригодятся, когда у вас много разных учетных записей и паролей. Обычно люди не любят пользоваться сторонними менеджерами паролей с сервисной архитектурой — неизвестно, что происходит с данными на чужом сервере, и не будет ли он скомпрометирован. Самое безопасное решение это разместить менеджер на своём собственном (как следует защищенном) сервере. Разумеется, к такому self-hosted варианту возникает много требований, и большой список решений с открытым исходным кодом довольно быстро сужается до нескольких известных, проверенных продуктов. Среди них мне больше всего нравится Bitwarden, и сейчас я объясню почему.
Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments42

Абстрактная алгебра в действии

Reading time6 min
Views25K

В последнее время всё чаще я ощущаю математическое веяние в программировании. Нет, это не про интегралы с производными, а про что-то абстрактное, другое. Про то, что было всегда у нас под носом, но оставалось незамеченным. Наступит день - про это будут говорить на каждом углу. Но не сегодня. Сегодня мы с этим познакомимся.

Читать далее
Total votes 43: ↑43 and ↓0+43
Comments31

Как создать telegram бот на C# быстро?

Reading time6 min
Views143K

Как создать telegram bot на C# быстро?

В этой статье мы рассмотрим заготовку для создания telegram бота на C#. В связи с последними обновлениями TelegramBotAPI, большая часть удачных с моей точки зрения публикаций на эту тему несколько устарело. Потому предлагаю разобраться в этой теме.

Читать далее
Total votes 32: ↑24 and ↓8+16
Comments39

О глупости «программирования на естественном языке»

Reading time4 min
Views22K

От переводчиков. Хотя Эдсгер Дейкстра — одна из главных личностей в истории IT, эта его коротенькая публикация ранее не попадала на Хабр, да и сами мы узнали о ней лишь благодаря докладу на нашей конференции. Но при этом она выглядит очень любопытным документом эпохи, показывая, что ещё несколько десятилетий назад люди думали о перспективе писать программы на «обычном языке». Поэтому мы решили восполнить пробел и перевести.

С первых же дней появления автоматических вычислительных машин были люди, которые считали недостатком тот факт, что программирование требует внимательности и точности, свойственных любому формального символизму. Они критиковали механического слугу за то неукоснительное выполнение данных ему инструкций, когда достаточно было бы поразмышлять мгновение, чтобы заметить, что в этих инструкциях есть очевидная ошибка. «Но мгновение — это долго, а размышлять — болезненный процесс». (А. Э. Хаусман). Они страстно надеялись и ждали появления более разумных машин, которые отказались бы приступать к таким бессмысленным действиям, какие в то время вызывались банальной опечаткой.

Читать далее
Total votes 68: ↑65 and ↓3+62
Comments66

N (Насти) алгоритм

Reading time8 min
Views11K

Памяти Насти. Памяти дочери.

Что знаем об алгоритмах поиска? Есть граф. Чаще ориентированный. И некое целевое состояние. Фиксированное. А если нет?

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

Передвигаться случайно? Да. Но еще лучше выбирать те направления, где меньше всего были. Есть дополнительные признаки, например следы? Отлично. В первую очередь ориентируемся на них. Потерялись следы? Вновь возвращаемся к поиску с учетом только памяти.

Читать далее
Total votes 17: ↑14 and ↓3+11
Comments6

Пишем асинхронного Телеграм-бота

Level of difficultyEasy
Reading time10 min
Views58K

Сегодня я покажу, как написать своего Телеграм-бота на основе asyncio и aiohttp.

Мы не будем использовать ни aiogram, ни любые другие библиотеки, а напишем бота с нуля, чтобы немного познакомиться с асинхронным программированием, корутинами и некоторыми примитивами синхронизации. Углубляться в устройство Телеграма не будем.

Статья предназначена для начинающих асинхронных программистов.

Читать далее
Total votes 33: ↑31 and ↓2+29
Comments10

В России создадут собственные литографы, поможет ли это отечественной микроэлектронике?

Reading time11 min
Views131K

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

Ведь где иначе искать истины в этом вопросе, как не на Хабре...

Под катом очень много буков...
Total votes 317: ↑292 and ↓25+267
Comments724

Отдаю NFT за 880 миллионов долларов

Reading time12 min
Views45K
«Код — это единственный закон, которому подчиняются цифры»

Если вы читаете этот текст, но ни разу не слышали про NFT, то, наверное, вы моя мама (мама, привет). Про этот феномен уже должен был кто-то написать человеческим языком без пустых восторгов и пересказывания мифов, но, похоже, эту траншею придётся копать мне. Странная штука: чем больше народу обсуждает NFT, тем ниже процент понимающих хоть что-то. Изначально этот материал задумывался как короткий обзор в духе «А король-то голый!», но по мере изучения проблемы, становилось всё яснее, почему так сложно сформировать собственное мнение относительно происходящего безумия.

Неприятность ситуации заключается в том, что широко тиражируемое объяснение смысла NFT является наглой ложью, в противовес которой пока не сформировалось имеющее вес экспертное мнение. Человек с ра́звитым критическим мышлением чувствует в происходящем нечто, мягко говоря, подозрительное, но объективное суждение требует подробного анализа устройства этой системы, который могут осуществить «немногие лишь те», кто обладает хорошими знаниями в разных областях. Так что, как говорится, давайте раскидаем всё по фактам. Информации по теме получилось много, в этот раз будут основные моменты, а в последующих статьях копнём глубже и разберём практические аспекты.
Читать дальше →
Total votes 107: ↑92 and ↓15+77
Comments52

Поиск Google умирает

Reading time7 min
Views135K
Сегодня самый популярный поисковый движок — это Reddit. Единственные, кто этого не знает — команда Reddit, которая не может отвлечься на создание приличного интерфейса поиска. Поэтому вместо этого нам приходится прибегать к Google и добавлять в строку запроса слово «reddit».

Пол Грэм считает, что такая ситуация означает, что Reddit как сайт социальной сети «всё ещё не достиг своего пика». На самом деле это означает, что количество людей, использующих Reddit как поисковый движок, растёт.

reddit google graph

Пол Грэм: «Reddit — уникальная соцсеть. Спустя 15 лет после запуска она всё ещё не достигла своего пика».

Почему люди ищут именно на Reddit? Короткий ответ: очевидно, что поисковые результаты Google умирают. Длинный ответ: бОльшая часть веба стала слишком недостоверной, чтобы ей доверять.
Читать дальше →
Total votes 170: ↑153 and ↓17+136
Comments436

Как не надо индексировать

Reading time5 min
Views37K

Развитие происходит по спирали: когда-то люди не умели правильно индексировать, потом (в основном) научились, потом пришли noSQL и все снова забыли знание древних. Что вы будете делать, когда последние из старых DBA отплывут в Валинор?

Снова и снова и сталкиваюсь с полным набором антипаттернов индексирования. Я их перечислю, но! Для каждого антипаттерна есть исключение, когда именно это и стоит делать. Поэтому кликбейтно сформулированное правило верно в 95% случаях, но если вы хотите копнуть глубже, то прочитайте про исключения.

И в конце полезные скрипты для MSSQL, Postgres и MySQL.

Читать далее
Total votes 44: ↑44 and ↓0+44
Comments25

Как получить онлайн магистратуру по CS от американского университета по цене кофе

Reading time9 min
Views35K


Поговорим о: 1) том как я попал в магистратуру по Computer Science от Georgia Tech пока жил и работал в Воронеже, 2) требованиях к поступлению, 3) стоимости, 4) моих впечатлениях от курсов, которые мне читают, 5) почему я все еще продолжаю учиться после того, как начал работать в FAANG и переехал в UK.

Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments21
1
23 ...

Information

Rating
2,368-th
Location
London, England - London, Великобритания
Registered
Activity