Как стать автором
Обновить
22
1.2

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

Отправить сообщение

Красота замыканий

Время на прочтение14 мин
Количество просмотров24K

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

Большинство статей о замыканиях написаны с точки зрения функциональных языков, поскольку именно они, как правило, могут похвастаться лучшей поддержкой замыканий. Однако именно поэтому я счел полезным написать статью о том, как они проявляются в более традиционных объектно-ориентированных языках. Скорее всего, если вы пишете на функциональном языке, вы уже знаете о них все, что вам нужно. В этой статье речь пойдет о C# (версии 1, 2 и 3) и Java (до версии 7).

Читать далее
Всего голосов 15: ↑11 и ↓4+7
Комментарии44

Ускоряем программу для 50-летнего процессора на 180000%

Уровень сложностиСложный
Время на прочтение36 мин
Количество просмотров45K

В прошлом году я написал программу, вычисляющую 255 цифр числа π на самом первом микропроцессоре от Intel - 4004. В той статье я упоминал рекорд ENIAC'a - 2035 цифр [^1], но побить его не смог. Настало время закрыть гештальт. В этот раз возьмём одного из преемников от Intel - 4040.

Читать далее
Всего голосов 289: ↑287 и ↓2+285
Комментарии41

«Окей, бумер» — как шутеры в ретро-стилистике потеряли самобытность

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров11K

В последние лет 5 стали популярны «бумер-шутеры». Шутливое название по мотивам мемов про так называемых бумеров и зумеров относит нас к олдскульным шутерам от первого лица. И хоть жанр на пике популярности, а отдельные его представители крайне восхваляются игроками и прессой, у меня есть альтернативное мнение насчёт таких игр: не все они так хороши, как о них говорят.
Читать дальше →
Всего голосов 57: ↑54 и ↓3+51
Комментарии29

Оцифровка звука FPGA платой MCY316

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.7K
image

Вот уже почти закончился сентябрь. Студенты уже давно вернулись за парты и учатся.
Многие начали изучать цифровую обработку сигналов. А как известно, лучше предмет пощупать один раз своими руками, чем десять раз прочитать о нём в учебнике.

В этой статье я расскажу о захвате звукового сигнала платой FPGA MCY316. Захват сигнала это только первый этап перед обработкой. Получим сигнал и передадим эти данные в ПК. Если всё получится, то в следующих работах добавим в ПЛИС цифровой фильтр
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии6

Assembler для Windows в Visual Studio

Время на прочтение12 мин
Количество просмотров23K

В этой статье я покажу как написать приложение для windows на ассемблере. В качестве IDE будет привычная многим Visual Studio 2019 со своими привычными плюшками - подсветка кода, отладка и привычный просмотр локальных переменных и регистров. Собирать приложение будет MASM, а значит, у нас будут и масмовские плюшки. Это будет полноценное оконное приложение с меню, иконкой, отрисовкой, выводом текста и обработкой мыши с клавиатурой.

Читать далее
Всего голосов 74: ↑74 и ↓0+74
Комментарии86

Простой комплект для изучения сантиметровых радиоволн (СВЧ)

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров14K

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

Читать далее
Всего голосов 125: ↑124 и ↓1+123
Комментарии21

Миссия выполнима: УКВ ЧМ супергетеродин на дискретных компонентах

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров8.4K


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

И если средневолновый транзисторный супергетеродин — вещь обычная, которую многие из нас помнят с детства, а некоторые даже собирали своими руками, то ультракоротковолновые, они же FM-радиоприёмники, чаще строили и продолжают строить на микросхемах. (Если не считать ламповых и транзисторных радиол и многодиапазонных приёмников с УКВ модулем).

Такой УКВ супергетеродин я сегодня соберу. Без микросхем, на 12 транзисторах, 6 из которых задействованы в радиотракте, и ещё 6 в усилителе звуковой частоты. А ещё поговорим о структуре сигнала ЧМ радиостанции и способах его детектирования.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии18

Высокодоступные кластеры PostgreSQL с Patroni: Ваша очередь протестировать сценарии отказов

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров11K

Пару недель назад (перевод статьи от 2021 г.) мы с Джобином (Jobin) сделали небольшую презентацию в рамках Percona Live Online с названием, подобным теме этой статьи: "PostgreSQL HA с Patroni: Сценарии отказов и способы восстановления кластера после них". Мы развернули 3-узловую среду PostgreSQL на имеющемся у нас оборудовании и решили "ломать" ее различными способами: отключали от интернета и электропитания кабели, “убивали” основные процессы, пытаясь насытить процессоры. Всё это происходило при постоянной записи и чтении данных из PostgreSQL. Идея заключалась в том, чтобы посмотреть, как Patroni справится с отказами и будет управлять кластером, продолжая обеспечивать работу. Это была интересная демонстрация!

Читать далее
Всего голосов 16: ↑15 и ↓1+14
Комментарии7

6-шаговая коммутация BLDC моторов

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров15K

В нашем проекте контроллера сервоприводов применяется чип семейства Renesas Synergy S5D9. Чип содержит периферийный блок специально предназначенный для 6-шагового управления. Попробую показать как этот блок применить для управления BLDC мотором и какие грабли разложены на пути.

Читать далее
Всего голосов 28: ↑27 и ↓1+26
Комментарии20

А давайте добывать электричество из соли? А давайте: самодельный пьезокристалл

Время на прочтение7 мин
Количество просмотров12K
Картинка Freepik

В нашей жизни достаточно широко используются элементы на базе пьезоэлектрического эффекта. Без них невозможно представить себе современные мобильные телефоны (микрофоны и динамики), разнообразные тензодатчики (датчики давления) и даже генераторы электричества (например, в зажигалках). Мы же, в свою очередь, зададимся таким странным вопросом: а реально ли создать подобный пьезоэлемент самостоятельно?
Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии9

Межкластерная репликация Apache Kafka между тремя дата-центрами

Время на прочтение10 мин
Количество просмотров15K

Я Роман Ананьев, NoSQL/Kafka-инженер в Авито. В этом материале расскажу, как мы попробовали использовать брокер сообщений Apache Kafka в трёх дата-центрах и что из этого получилось.

Сначала пробегусь по архитектуре Kafka, потому что она играет роль в репликации между кластерами. Затем коснусь самих способов репликации и расскажу о двух инструментах для неё: MirrorMaker и uReplicator. Основная часть статьи — про нашу реализацию Kafka cluster federation и то, как Kafka размазана на несколько дата-центров.

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии7

Расчет импульсного трансформатора для двухтактного преобразователя и согласующих устройств

Время на прочтение12 мин
Количество просмотров36K

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии7

Псориаз: что бывает при слишком быстрой регенерации

Время на прочтение6 мин
Количество просмотров23K

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

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

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

  • Что такое псориаз и как он выглядит (чаще всего смотрится не очень).
  • Что обычно сломано в геноме при этом заболевании.
  • Почему ожирение и курение могут сильно ухудшить ситуацию.
  • Что наносить местно и почему стероиды могут быть опасны.
  • Правильная диета доказано улучшает ситуацию.
  • Люди с псориазом — те немногие, кому загорать полезно.

Disclaimer: часть фото я положу под спойлер, если вдруг кого-то такое может тревожить.
Читать дальше →
Всего голосов 71: ↑61 и ↓10+51
Комментарии40

Железа и баек ностальгии пост

Время на прочтение8 мин
Количество просмотров34K
Ходил я тут как-то по нашему складу, искал одну железку для заказчика. Смотрю, знакомая старая железяка — кэш.

image
Точнее, это ячейка хайэндового дискового массива, представляющая нечто вроде оперативной памяти, но в центре архитектуры Симметрикса

Еще увидели знакомую старую железяку — VNX1. Она интересна не столько гениальной по тем временам архитектурой, сколько тем, как мы однажды разбирали последствия переезда такого массива с этажа на этаж по офису заказчика. Представьте ситуацию: они там четыре года делали проект по госконтракту, который хранился в виде единственной копии на массиве. И решили перевезти железку, не позвав админа, потому что железяка была старая (на три поколения древнее, чем та древность, от которой кеш-плата на фотографии) и сошла с поддержки. Для упрощения переезда решили вынуть все диски, потому что без них стойка получалась легче. Как вы догадываетесь, вопрос только один: что вообще могло в этой истории пойти ТАК?

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

Подстава заключалась только в том, что при втыкании диска в слот горячей замены массив не ворчал на него, а говорил: «О, новый жёсткий диск» и молча его форматировал, и начинал в него что-то писать.

Всего заказчик успел попробовать около 20 рекомбинаций из 200 дисков, из которых девять пришлось на установку новых дисков с данными в слоты горячей замены.
Читать дальше →
Всего голосов 185: ↑185 и ↓0+185
Комментарии89

Запускаем PostgreSQL в Docker: от простого к сложному

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров455K

О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры.

Читать далее
Всего голосов 39: ↑37 и ↓2+35
Комментарии38

Основные инструменты Kubernetes в 2021 году

Время на прочтение21 мин
Количество просмотров25K

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

Читать далее
Всего голосов 40: ↑40 и ↓0+40
Комментарии5

Читаем статьи с Хабра с помощью Slack-бота

Время на прочтение6 мин
Количество просмотров2.9K

Привет, Хабр! Сегодня расскажу, как на хакатоне для студентов SkillFactory я сделал Slack-бота, который оповещает студентов разных курсов о выходе статей на Хабре по интересующей их тематике. На КДПВ вы видите тестирование внедрённого бота; ссылку на его код вы найдёте в конце статьи.

Читать далее
Всего голосов 19: ↑16 и ↓3+13
Комментарии3

Энергонезависимое решение

Время на прочтение10 мин
Количество просмотров121K


Понедельник. Постановка задачи


Девять часов тридцать одна минута утра — я на работе. Вообще-то мы работаем с десяти до семи, но по понедельникам я предпочитаю приходить пораньше — мне нравится наш офис, пока в нём нет людей. Я медленно иду мимо столов — одни завалены распечатками спецификаций и каких-то диаграмм, другие совсем пустые. На одних столах стоят компьютеры, другие пустые. Под некоторыми столами стоит сменная обувь, перед другими нет даже кресла. Да, у нас больше половины столов пустые — это на случай приёма новых сотрудников, или командировки кого-то из других городов и стран. Ведь у нас крупная международная компания с офисами разработки в Омске и Калачинске и головным офисом на Кипре. Мы занимаем четыре этажа в современном офисном центре. Правда, сразу за нашим зданием начинаются руины какого-то авиационного завода, и в день зарплаты мы стараемся там не ходить.
Читать дальше →
Всего голосов 371: ↑359 и ↓12+347
Комментарии149

DBA: прибираем «мертвые души»

Время на прочтение4 мин
Количество просмотров11K

Иногда при выполнении длительных или плохо написанных запросов в PostgreSQL происходят разные неприятные вещи типа внезапного сбоя процесса или краша всего сервера.

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

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

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии3

Самодельный ламповый стереофонический усилитель из доступных деталей

Время на прочтение28 мин
Количество просмотров98K

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

Читать далее
Всего голосов 62: ↑62 и ↓0+62
Комментарии73

Информация

В рейтинге
1 235-й
Зарегистрирован
Активность