Pull to refresh
1
0
Nook Scheel @inook

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

Send message

История создания Ethernet-CAN конвертера

Reading time 6 min
Views 15K
Одним ясным солнечным днем по работе понадобился недорогой преобразователь интерфейсов CAN в Ethernet. Естественно поиски начались с готовых решений, но, как нередко это бывает, в итоге было принято решение о разработке собственного образца. Естественно, энтузиазм автора не смог устоять и ограничиться столь «урезанным» функционалом. Что из этого вышло, каким образом и почему — под катом.

image
Читать дальше →
Total votes 47: ↑43 and ↓4 +39
Comments 36

Приложение в строке меню для macOS

Reading time 10 min
Views 7.8K
Приложения, размещенные в строке меню, уже давно известны пользователям macOS. У некоторых из этих приложений есть «обычная» часть, другие размещены только в строке меню.
В этом руководстве вы напишете приложение, которое показывает во всплывающем окне несколько цитат известных людей. В процессе создания этого приложения вы научитесь:

  • назначать иконку приложения в строке меню
  • делать приложение размещенным только в строке меню
  • добавлять пользовательское меню
  • показывать всплывающее по запросу пользователя окно и прятать его, когда необходимо, используя Event Monitoring

Замечание: это руководство предполагает, что вы знакомы со Swift и macOS.
Поехали!
Total votes 22: ↑22 and ↓0 +22
Comments 2

Ностальгия по Half Life — создаем приставку для радиостанции для получения голоса и звука окончания в стиле комбайнов

Reading time 4 min
Views 26K

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

Были там такие противники как Combines (Combine Soldiers) — измененные захватчиками люди.
Во время игры можно было слышать их переговоры по радио — и я просто мечтал о такой радиостанции, которая бы сделала голос похожим на них и имела такой-же звук окончания радиопередачи.

Спустя много времени я таки решился осуществить свою мечту.
Total votes 82: ↑81 and ↓1 +80
Comments 49

Настройка HA-кластера Kubernetes на «голом железе» с GlusterFS & MetalLB. Часть 2/3

Reading time 12 min
Views 30K


Часть 1/3 тут
Часть 3/3 тут


Привет и с возвращением! Это вторая часть статьи о настройке кластера Kubernetes на «голом железе». Ранее мы настраивали НА-кластер Kubernetes с помощью внешнего etcd, схемы «ведущий-ведущий» и балансировки нагрузки. Ну а теперь пришло время настроить дополнительную среду и утилиты, чтобы сделать кластер полезнее и максимально приближенным к рабочему состоянию.


В этой части статьи мы сосредоточимся на настройке внутреннего балансировщика нагрузки сервисов кластера — это будет MetalLB. Также мы установим и настроим распределенное хранилище файлов между нашими рабочими нодами. Будем использовать GlusterFS для постоянных томов, которые доступны в Kubernetes.
После выполнения всех действий схема нашего кластера будет выглядеть следующим образом:


Читать дальше →
Total votes 32: ↑28 and ↓4 +24
Comments 0

Ускоряем node.js: нативные модули и CUDA

Reading time 11 min
Views 24K
Иногда разработчики различных веб-проектов сталкиваются с необходимостью обработки больших объемов данных или использованием ресурсозатратного алгоритма. Старые инструменты уже не дают необходимой производительности, приходится арендовать/покупать дополнительные вычислительные мощности, что подталкивает к мысли переписать медленные участки кода на C++ или других быстрых языках.

В этой статье я расскажу о том, как можно попробовать ускорить работу Node.JS (который сам по себе считается довольно быстрым). Речь пойдет о нативных расширениях, написанных с помощью C++.
Читать дальше →
Total votes 58: ↑52 and ↓6 +46
Comments 35

Разработка нового статического анализатора: PVS-Studio Java

Reading time 19 min
Views 18K

Picture 3

Статический анализатор PVS-Studio известен в мире C, C++ и C# как инструмент для выявления ошибок и потенциальных уязвимостей. Однако у нас мало клиентов из финансового сектора, так как выяснилось, что сейчас там востребованы Java и IBM RPG(!). Нам же всегда хотелось стать ближе к миру Enterprise, поэтому, после некоторых раздумий, мы приняли решение заняться созданием Java анализатора.
Читать дальше →
Total votes 111: ↑107 and ↓4 +103
Comments 87

Работа с массивами в bash

Reading time 8 min
Views 102K
Программисты регулярно пользуются bash для решения множества задач, сопутствующих разработке ПО. При этом bash-массивы нередко считаются одной из самых непонятных возможностей этой командной оболочки (вероятно, массивы уступают в этом плане лишь регулярным выражениям). Автор материала, перевод которого мы сегодня публикуем, приглашает всех желающих в удивительный мир bash-массивов, которые, если привыкнуть к их необычному синтаксису, могут принести немало пользы.

image
Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Comments 5

Стеганография в IP-пакетах

Reading time 4 min
Views 19K
Однажды, перед защитой очередной лабораторной работы мне задали вопрос: какие поля IP-пакета можно использовать для стегано? Я не знал и лишь пожал плечами. Но вскоре я всё же решил изучить этот вопрос.

Под катом вас ждёт изучение заголовков IP-пакетов, собственная утилита ping на Python и несколько способов передать данные, не привлекая внимания.
Читать дальше →
Total votes 34: ↑31 and ↓3 +28
Comments 12

SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443

Reading time 3 min
Views 117K
image

SSH/HTTPS/OpenVPN/Telegram и всё на одном порту?! Что?!
— Да!
  • Хотите скрыть наличее у вас некоторых сервисов?
  • В публичной wi-fi сети блокируется всё кроме 443 (https) порта?
  • Настроили Telegram Proxy/OpenVPN и не хотите его «светить» ?
  • SSH подключение к своему серверу из стран с цензурой?

На все эти вопросы ответ один — Мультиплексирование SSL/TLS соединений, или SSLH.

В посте мы рассмотрим как в 1 команду спрятать кучу сервисов за 1 портом.
Читать дальше →
Total votes 83: ↑79 and ↓4 +75
Comments 100

Что можно продиагностировать в глазу на сто рублей

Reading time 8 min
Views 33K


Тут Milfgard недавно пост про очки делал, и как-то всплыл в обсуждениях вопрос «А зачем платить за диагностику в клинике, если в любой оптике вам ее сделают за сто рублей. Или вообще бесплатно.» После пятиминутного ступора и пары нервно выпитых чашек кофе пришло осознание того, что многие просто не представляют, из чего состоит полноценное обследование глаз. Короче говоря, сейчас расскажу, как все должно выглядеть, если в клинике есть хорошие врачи и правильное оборудование. Под катом много фотографий, мы постарались показать то, что обычно пациент не видит — непосредственно рабочие интерфейсы приборов, с которыми работает врач. А в конце публикации мы приготовили небольшой приятный бонус.
Читать дальше →
Total votes 38: ↑37 and ↓1 +36
Comments 93

Kubernetes-HA. Разворачиваем отказоустойчивый кластер Kubernetes c 5 мастерами

Reading time 17 min
Views 55K

В данный момент инсталяция по данному мануалу работать не будет. Из за больших изменений API Kubemaster, в данный момент я готовлю новый цикл статей где будут рабочие версии мануалов
Первая из статей habr.com/ru/post/462473


Здравствуйте!

В данной публикации я хотел бы рассказать о кластере Kubernetes с высокой доступностью (HA).

image

Оглавление:

  1. Вступление
  2. Список используемого софта
  3. Список и назначение хостов
  4. Принцип работы и развертывания
  5. Подготовка ОС к развертыванию. Установка docker, kubeadm, kubelet и kubectl
  6. Подготовка конфигурационного скрипта
  7. Создание etcd кластера
  8. Инициализация мастера с помощью kubeadm
  9. Настройка CIDR
  10. Инициализация остальных мастернод
  11. Настройка keepalived и виртуального IP
  12. Добавление рабочих нод в кластер
  13. Установка ingress-nginx
  14. Дополнительно

Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 19

Moscow JS 40 — отчёт, отзывы гостей и видеозаписи

Reading time 2 min
Views 5.5K

Всем привет! Мы не успели оглянуться, как закончились все оффлайн-места на Moscow JS 40, который прошёл в нашем офисе 1 марта. Записаться успели не все желающие. Хорошие новости: уже появились видео и презентации от докладчиков. Под катом — видеозаписи, презентации, ссылки на фотоотчёт и отзывы слушателей.


Участники встречи говорили про мотивацию и трудности создания сервиса скриншотов веб-страниц, обсуждали developer experience и flow, разбирались с AST-парсерами и проводили экскурс в компьютерную лингвистику.


Total votes 28: ↑27 and ↓1 +26
Comments 0

Пунктирные вау-эффекты: о магии простыми словами

Reading time 7 min
Views 37K


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

Перед тем, как перейти к статье, сделаю небольшое отступление. Эта серия статей предназначена для разработчиков (в первую очередь начинающих), которые хотят делать красивые вещи, но совершенно запутались в сложных инструментах. Каждый раз мы затрагиваем какой-то один прием использования того или иного инструмента и смотрим, к созданию какиих эффектов его можно применить. Комментарии о том, что “во времена флеша было лучше” или что “нужно анимации рисовать в AfterEffects” безусловно имеют право на существование, но будут вырваны из контекста и совершенно не помогут начинающим в решении их задачи.
Total votes 60: ↑60 and ↓0 +60
Comments 15

Как я научился напрямую перезагружаться в нужную ОС через UEFI

Reading time 5 min
Views 82K

Добрый вечер, Habrahabr!


Сегодня мы научимся перезагружаться из Linux прямиком в Windows и обратно всего за один (двойной) клик.


image

Читать дальше →
Total votes 65: ↑61 and ↓4 +57
Comments 41

Оптимизация ES2015 Прокси в V8

Reading time 5 min
Views 6K


Это перевод поста из официального блога JS-движка V8. Статья короткая, текста мало, больше похоже на увлекательный рассказ о проблемах, подстерегающих ни о чём не подозревающих сотрудников Google в коде V8. Речь пойдёт об ускорении обработки ES6 Прокси в V8, которое будет доступно в Chrome 62 и Node v9.x, и совсем немного о том, как лучше применять прокси для получения максимальной скорости работы.

Введение


Прокси появились в JavaScript с принятием стандарта ES2015. Они позволяют перехватывать фундаментальные операции объектов и переопределять их поведение. Прокси являются основой таких библиотек, как jsdom или Complink RPC library. В последнее время мы приложили много усилий, чтобы улучшить производительность прокси в V8. Эта статья проливает немного света на общие подходы к улучшению производительности в V8 и для прокси в частности.

Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 1

Тестируем бесшовный WiFi с помощью голосового трафика

Reading time 22 min
Views 12K


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

Но в комментариях к статье были выражены сомнения, ввиду того, что видеопоток мог буферизоваться и бесшовный вай-фай эмулировался за счет подкачки видео еще до перехода от одной точки доступа к другой и это видео, из буфера воспроизводилось после обрыва и восстановления сессии. Отвечая на эти вопросы мы снова нагрузили абсолютно ту же сеть, с теми же точками Edimax, ничего не меняя в их настройках (поднял те же параметры для другого SSID, чтобы не мешать офису со своими тестами по RADIUS серверу, который так же обкатываю для работы в этой сети). Использовали почти что голосовой трафик, который нельзя было заподозрить в буферизации. С удовольствием делимся результатами второй части эксперимента.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 20

Библиотека быстрого поиска путей на графе

Reading time 8 min
Views 35K

Привет, Друзья!


Я написал библиотеку поисков путей на произвольных графах, и хотел бы поделиться ей с вами.


Пример использования на огромном графе:



Поиграться с демо можно здесь


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


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

Читать дальше →
Total votes 114: ↑112 and ↓2 +110
Comments 53

Автопилот своими рукам. Добавляем электронное управление steer-by-wire на обычный автомобиль

Reading time 10 min
Views 23K

Всем привет. Любому автопилоту, очевидно, нужно не только принимать решения по управлению, но и заставлять автомобиль этим решениям подчиняться. Сегодня увидим, как весьма доступными средствами доработать обычный автомобиль полностью электронным рулевым управлением (steer-by-wire). Оказывается, сам авто для разработки не очень и нужен, а большинство функционала можно с комфортом отлаживать дома или в офисе. В главных ролях всем известные компоненты из хобби-магазинов электроники.


Электроника в сборе

И Arduino, конечно, куда же без нее.
Total votes 35: ↑35 and ↓0 +35
Comments 22

Обеспечение сетевой безопасности в кластере Kubernetes

Reading time 12 min
Views 9.5K

Сетевые политики (Network Policies) — это новая функциональность Kubernetes, которая за счет создания брандмауэров позволяет настроить сетевое взаимодействие между группами подов и других узлов сети. В этом руководстве я постараюсь объяснить особенности, не описанные в официальной документации по сетевым политикам Kubernetes.


Функциональность сетевых политик стабилизировалась в Kubernetes 1.7. В этой статье их работа объясняется в теории и на практике. При желании вы можете сразу перейти к репозиторию с примерами kubernetes-networkpolicy-tutorial или к документации.

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

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

Reading time 8 min
Views 56K
image

Уильям Людвиг [William Ludwig] в 2010-м был 64-летним тюремным надзирателем на пенсии, и жил в Бриджтоне, Нью-Джерси, когда он получил почти безнадёжный прогноз в связи с раком. У Ракового центра имени Абрамсона в Пенсильванском университете закончились варианты химиотерапии, и Людвига исключили практически из всех клинических испытаний, поскольку у него было сразу три вида рака – лейкемия, лимфома и сквамозноклеточная карцинома (рак кожи). В данном позднее интервью учёные Карл Джун описал состояние Людвига как «практически мёртвый».

Элисон Лорен [Alison Loren], онколог из Пенсильвании, заботилась о Людвиге пять мучительных лет. Если химиотерапия сразу неэффективна, то каждый новый цикл даёт всё меньше результатов, и, по её словам, она становится всё более токсичной. В случае Людвига токсичные побочные эффекты сводили на нет любой прогресс в борьбе с раковыми клетками.

Химиотерапия подавляла иммунную систему Людвига, поскольку B-лимфоциты, клетки иммунной системы, были именно теми клетками, на которые была нацелена химиотерапия. Они были поражены раком, бесконтрольно распространявшимся в костном мозге. В его правом глазу разыгралась инфекция от старого вируса ветрянки. Рак стал мобильным, или, как говорят врачи, «подвижным», добираясь до самых дальних мест в его теле. Лорен считала, что рак кожи Людвига выглядел так, будто распространился через метастазы от его костей.
Читать дальше →
Total votes 40: ↑38 and ↓2 +36
Comments 131

Information

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