Pull to refresh
60
0

Пользователь

Send message

Как пытались (пере)программировать мозги, и что из этого получилось? Часть 3: мрачный путь к MKUltra

Level of difficultyEasy
Reading time8 min
Views19K

В прошлой части мы рассказали о том, как в США 50-х годов от экспериментов по созданию «сывороток правды» перешли к попыткам программировать человеческое сознание. Сия гениальная идея пришла в головы американским спецслужбам по причине внутриведомственной конспирологии: они верили, что у коммунистов уже были такие технологии, и очень боялись отстать. Во главе проектов ЦРУ в этой сфере стоял Сидни Готтлиб: живое воплощение образа безумного учёного, ставящего самые странные и пугающие эксперименты над людьми… просто потому, что может и ему это очень интересно.
Читать дальше →

Эффект Монреаля: почему языкам программирования нужен Царь стилей

Level of difficultyMedium
Reading time7 min
Views10K

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

Пусть это будет мысленный эксперимент. Подыграйте мне. Если вы читали мою прошлую статью (англ.), то должны правильно предположить, что я бы предпочёл экспрессивный язык, ориентированный на профессионалов. Так и есть. Но в гибком языке программирования есть серьёзная проблема с масштабированием – слишком много стилей оформления кода и способов его написания. В итоге просто не обойтись без руководств по стилю, которые помогут сориентироваться в правильной реализации.

Какое подмножество C++ или Kotlin вы используете? Что вы предпочтёте: project.toml или requirements.txt? Теперь у вашего языка есть возможность поэтапной типизации с помощью аннотаций типов. Хотите ей воспользоваться? Как вы реализуете конкурентность: с помощью многопоточности, Tokio или std::async?

Чем более экспрессивный язык, тем сложнее всё становится. И здесь на сцену выходит Go. И речь не только о gofmt, но и о его стандартной библиотеке и согласованности. В Kotlin вам приходится гадать, что лучше использовать для ошибок: исключения или объекты Result? В случае же Go вам всё ясно – ищем err. Да, это многословно, но зато предсказуемо.

Экспрессивные языки прекрасны, но часто создают путаницу. Вы можете использовать богатый и комплексный язык, поддерживающий миллион способов реализации одного и того же. Именно это я хочу вам показать. Как же сохранить всю эту мощь, но уменьшить беспорядок? Как избежать возникновения 500 поддиалектов? Но прежде, чем переходить к решениям, обсудим Scala.
Читать дальше →

Как пытались (пере)программировать мозги, и что из этого получилось? Часть 2: злой гений Сидни Готтлиб

Level of difficultyEasy
Reading time8 min
Views15K

В начале 50-х годов ЦРУ в рамках проекта «Артишок» активно занималось экспериментами в области того, что в шпионских романах и фильмах обычно называют «сыворотками правды»: как с помощью химических веществ заставить допрашиваемого или расспрашиваемого стать более откровенным, чем ему бы хотелось. Аппетит пришёл во время еды — и уже в начале 1952 года руководством американской разведки была поставлена куда более амбициозная задача: «получить контроль над человеком до такой степени, что он будет выполнять приказы вопреки своей воле и даже вопреки фундаментальным законам природы, таким как самосохранение». Из этой идеи вырос проект «MKUltra», подробности которого до сих пор остаются загадкой для историков спецслужб. Продолжим разбираться в его мрачных тайнах.
Читать дальше →

Как пытались (пере)программировать мозги, и что из этого получилось? Часть 1: проект «Артишок»

Level of difficultyEasy
Reading time10 min
Views23K

Во все века разведчики, шпионы и спецслужбы полагались в своей работе на разные вещества и психологические уловки. Тёмные рыцари плаща и кинжала травили врагов всевозможными ядами, усыпляли стражу, подсылали убийц-фанатиков с промытыми пропагандой и веществами мозгами — как легендарные ассасины времён Крестовых походов, чьё название происходит от неумеренного накачивания одноразовых киллеров гашишем. Развитие науки и техники в ХХ веке только подстегнуло энтузиазм шпионских ведомств. Если в СССР секретная токсикологическая лаборатория №12 при КГБ занималась в основном ядами для ликвидации врагов трудового народа, то в США к боевым токсинам из закрытого центра Форт-Детрик добавлялись безумные во всех смыслах эксперименты ЦРУ по взлому чужих (и даже своих!) мозгов посредством веществ и гипноза. Это привело к грандиозному скандалу в 70-е годы, породило немало теорий заговора, а также отсылок в массовой и не очень культуре. Впрочем — обо всём по порядку.
Читать дальше →

Паяем классическую педаль Marshall Bluesbreaker

Level of difficultyEasy
Reading time8 min
Views7.8K


Привет, Хабр! 62 года назад англичанин Джим Маршалл скопировал гитарный усилитель Fender Bassman из США. Британские лампы зазвучали совсем не так, как американские. Различие в характеристиках громкоговорителей также ощутимо повлияло на звук.

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

К тридцатилетнему юбилею своего первого культового комбоусилителя компания «Маршалл» выпустила транзисторную педаль, повторяющую его звучание. А сегодня я соберу свой экземпляр этой педали.
Читать дальше →

Готовимся к вопросам по вёрстке на интервью Frontend-разработчика: свойство display

Level of difficultyMedium
Reading time7 min
Views17K


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


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


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


Сегодня я дам ответ на следующий вопрос: «Зачем нужно использовать свойство display

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

Советские игровые автоматы — ностальгический гейминг с запахом резины. Часть 2: «Городки» и электронные тиры

Level of difficultyEasy
Reading time5 min
Views8.8K

Советские игровые автоматы стали порождением сближения СССР и Запада в начале 70-х годов, при брежневско-никсоновской разрядке. Советский Минкульт выкупил большую часть игровых автоматов, которые появились в Москве на международной выставке «Аттракцион-71», и уже в 1974 году в серию пошёл самый знаменитый советский игровой автомат «Морской бой». О том, как он появился на свет, и какую роль в этом сыграли японские и американские разработки, мы поговорили в прошлой части. А теперь вспомним другие игровые автоматы СССР — менее культовые, но также дарившие множество ярких впечатлений до появления в нашей стране массовых компьютерных игр.
Читать дальше →

Множество масок Persona 5

Level of difficultyEasy
Reading time12 min
Views4.6K
image

С выходом Persona 3 Reload, ремейка игры, которая коренным образом изменила облик серии и сделала её одной из самых важных японских RPG-франшиз в истории, шумиха вокруг пятой части поутихла. Появившись на западе в 2017 году, следом за родной Японией, игра захватила умы геймеров по всему миру, имея нестандартные для жанра сеттинг, темы и художественное оформление.

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

Первое пришествие айтишниц: почему в 50-х годах в программировании женщин было больше, чем в нулевые?

Level of difficultyEasy
Reading time12 min
Views12K

В наши дни середины 2020-х женщинами в IT трудного кого-то удивить. Шутки насчёт девушек-программисток рубежа нулевых и десятых годов уже стали анахронизмом — но ещё не так давно компьютерная среда считалась делом суровых бородатых мужиков-гиков, а любая тян глубоко в компьютерной теме воспринималась в качестве удивительной аномалии. Казалось бы, в ещё более старые времена всё в сфере IT было ещё более однозначно. Ан нет: на заре компьютерной эпохи, в США 60-х годов, многие вакансии в сфере цифровых технологий считались едва ли не типично женскими, на уровне машинисток или телеграфисток. Как это случилось, и почему затем компьютеры на несколько десятилетий превратились в мужское царство?
Читать дальше →

Эффект Ганна

Level of difficultyMedium
Reading time8 min
Views13K
Картинка Benzoix, Freepik

Среди физических эффектов особняком стоит один весьма интересный феномен, который получил название эффекта Ганна, по имени английского физика Джона Ганна, открывшего его в 1963 году…

Суть его заключается в том, что если к однородному образцу из специального материала с имеющимися электрическими контактами приложить электрическое поле, величина которого превышает некоторое пороговое значение (эффект наблюдался первооткрывателем на кристаллах арсенида галлия и фосфида индия; для первого напряжённость электрического поля должна составлять 3 кВ/см, а для второго — 6 кВ/см), то во внешней электрической цепи начинают наблюдаться колебания тока. Причём было обнаружено, что период этих колебаний примерно равен времени полёта электронов от катода к аноду, а частота колебаний была достаточно большой и находилась в области СВЧ-диапазона: $Т_{0}\approx L/u_{g}$, где: $L$ — длина экземпляра; $u_{g}$ — скорость дрейфа электронов.
Читать дальше →

Взлом космоса — теперь и на STANDOFF 12

Level of difficultyMedium
Reading time3 min
Views2.1K


В ноябре в рамках конференции Moscow Hacking Week прошла ещё одна кибербитва STANDOFF — мероприятие проводится уже 12-й раз. Однако STANDOFF 12 запомнился не только присвоением звания пятикратного чемпиона команде Codeby, но и новыми отраслями — в разработке одной из них мы приняли непосредственное участие. И если вы следите за нашими новостями, то сможете без проблем ответить, что это была за отрасль… Правильно, космос!

Соревнование было поистине масштабным: 15 команд 4 дня нон-стопом взламывали все из представленных областей (не досталось только сборочной инфраструктуре Positive Technologies, за взлом наивысшего уровня которой организаторы пообещали 5 миллионов рублей). Мы также проводили собственные отборочные испытания, давшие возможность победителям отправиться покорять Государство F в составе команды bRedTeam.
Читать дальше →

Разработчик-универсал под видом специалиста

Level of difficultyEasy
Reading time5 min
Views17K

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

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

Инструментальный усилитель для микрофона

Level of difficultyMedium
Reading time8 min
Views9.1K


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

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

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

Не стоит недооценивать HTML

Level of difficultyEasy
Reading time6 min
Views24K

«HTML – это просто», «Разрабатывать фронтенд проще, чем бэкенд», «После реализации бэкенда обновление UI не должно составлять труда», – за время работы в сфере веб-разработки вокруг меня то и дело звучали эти и другие аналогичные утверждения.

И очень часто они вызывали у меня грусть.

Дело в том, что бо́льшую часть времени я проводила за написанием фронтенда, включая работу с HTML, CSS и JavaScript (по факту в основном TypeScript). Когда кто-нибудь говорит мне о «простоте» моей работы, я начинаю думать, что мои навыки не представляют высокой ценности, и меня может легко заменить любой разработчик…

В статье же я решила описать свои размышления, которые рождались в течение последних двух лет во время работы с людьми из разных команд с разным опытом в HTML-разработке и фронтенд-технологиях в целом. Здесь я озвучу несколько основных своих вопросов «Почему?», сопроводив их возможными ответами.
Читать дальше →

Создание PDF размером с Германию

Level of difficultyEasy
Reading time7 min
Views27K

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

Подобное утверждение появилось на просторах интернета ещё в 2007 году. Этот твит является характерным примером постов с аналогичным заявлением, в которых оно преподносится как твёрдый факт без каких-либо подтверждающих свидетельств или объяснений. То есть мы должны просто принять, что один PDF может покрыть лишь около половины площади Германии, и нам никак не объясняют, почему его магический предел составляет 381 километр.

Тут мне стало интересно – а создавал ли кто-нибудь такой большой PDF? Насколько это сложно? А можно ли сделать документ ещё больше?

Несколько лет назад я из праздного любопытства немного поигралась с PostScript, предшественником PDF, и это оказалось очень увлекательным! Ранее мне не доводилось изучать внутреннее устройство PDF, так что здесь у меня возник для этого хороший повод.

Приступим!
Читать дальше →

Как изучить Haskell всего за 15 лет

Level of difficultyMedium
Reading time9 min
Views15K

Haskell — это язык программирования, изобретённый в 20-м веке шотландскими логиками в качестве пранка (вероятно). Примерно пятнадцать лет назад я начал изучать Haskell по причинам, которые уже и не упомню. Сегодня я наконец написал полезную программу на Haskell и уверен, что смогу сделать это снова, если мне когда-нибудь понадобится ещё одна компьютерная программа.

Я не знаю, как изучал функциональное программирование в целом и Haskell в частности. В 2006-м я следил за проектами why the lucky stiff и читал передовой тамблелог Леа Нойкирхен Anarchaia, и какой-то из этих источников познакомил меня с миром за пределами ООП. В декабре 2006 года Леа опубликовала на Anarchaia ссылку на Pandoc, и тогда я впервые узнал о своём любимом ПО и языке, на котором оно было написано.
Читать дальше →

К 30-летнему юбилею DOOM: как два садиста, психопат и мормон создали одну из величайших игр в истории? Часть 7

Level of difficultyEasy
Reading time7 min
Views18K

Итак, в прошлой части мы наконец добрались до того славного момента, когда Wolfenstein 3D был выпущен и стал суперхитом лета 1992 года. Компания единомышленников не стала почивать на лаврах и пачках долларов, полученных после выхода игры про массовой экстерминатус нацистов — и задумалась о создании нового 3D-шутера. Именно с этого момента начинается история разработки собственно великого и ужасного Doom.

Все части цикла статей о создании DOOM:
Читать дальше →

Разобраться раз и навсегда: Task.WhenAll или Parallel.ForEachAsync в C#

Level of difficultyMedium
Reading time6 min
Views27K


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

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

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

Прокачиваем вёрстку ARIA-атрибутами. Атрибут role

Level of difficultyMedium
Reading time8 min
Views7.4K

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


Я не буду описывать всё. Атрибут слишком сложный для одной статьи. Остановлюсь на моментах, которые вы можете использовать сразу. Продвинутые техники оставим на другой случай.


Давайте начнём!

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

Каково это, создавать язык программирования сегодня?

Level of difficultyMedium
Reading time8 min
Views18K

«Эта книга – классика. Относитесь к ней бережно».

Такую фразу произнёс архитектор из нашей команды, передавая мне The Dragon Book. Разработкой компиляторов я увлёкся где-то 15 лет назад ещё на заре своей карьеры. Как-то раз, читая эту книгу поздно вечером, я заснул, небрежно уронив её на пол. Надеюсь, владелец не заметил небольшую вмятину на обложке после того, как я ему её вернул.

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

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity