Software Engineer
Пишем DNS proxy на Go
Давно хотел решить проблему с рекламой. Наиболее простым способом сделать это на всех устройствах оказалось поднятие своего DNS сервера с блокированием запросов на получений IP адресов рекламных доменов.
FDA одобрила первую «прямую» генную терапию для лечения генетических заболеваний
Генотерапевтический препарат Luxturna, разработанный в компании Spark Therapeutics, помогает восстановить зрение у пациентов с унаследованной формой слепоты.
gRPC — фреймворк от Google для удалённого вызова процедур
В деле удалённого вызова процедур дела уже давно обстоят в точности как в известном комиксе «14 стандартов» — чего только тут ни напридумано: древние DCOM и Corba, странные SOAP и .NET Remoting, современные REST и AMQP (да, я знаю, что кое-что из этого формально не RPC, для того чтобы обсудить терминологию даже вот специальный топик недавно создали, тем ни менее всё это используется как RPC, а если что-то выглядит, как утка и плавает, как утка — ну, вы в курсе).
И конечно же, в полном соответствии со сценарием комикса, на рынок пришел Google и заявил что вот теперь наконец он создал ещё один, последний и самый правильный стандарт RPC. Google можно понять — продолжать в 21-ом веке гонять петабайты данных по старому и неэффективному HTTP+REST, теряя на каждом байте деньги — просто глупо. В то же время взять чужой стандарт и сказать «мы не смогли придумать ничего лучше» — совершенно не в их стиле.
Поэтому, встречайте, gRPC, что расшифровывается как «gRPC Remote Procedure Calls» — новый фреймворк для удалённого вызова процедур от Google. В этой статье мы поговорим о том, почему же он, в отличии от предыдущих «14 стандартов» всё-таки захватит мир (ну или хотя бы его часть), попробуем собрать билд gRPC под Windows + Visual Studio (и даже не говорите мне, что инструкция не нужна — в официальной документации упущено штук 5 важных шагов, без которых ничего не собирается), а также попробуем написать простенький сервис и клиент, обменивающиеся запросами и ответами.
Как перейти на gRPC, сохранив REST
Многие знакомы с gRPC — открытым RPC-фреймворком от Google, который поддерживает 10 языков и активно используется внутри Google, Netflix, Kubernetes, Docker и многими другими. Если вы пишете микросервисы, gRPC предоставляет массу преимуществ перед традиционным подходом REST+JSON, но на существующих проектах часто переход не так просто осуществить из-за наличия уже использующихся REST-клиентов, которые невозможно обновить за раз. Нередко общаясь на тему gRPC можно услышать "да, мы у нас в компании тоже смотрим на gRPC, но всё никак не попробуем".
Что ж, этой проблеме есть хорошее решение под названием grpc-rest-gateway, которое занимается именно этим — автогенерацией REST-gRPC прокси с поддержкой всех основных преимуществ gRPC плюс поддержка Swagger. В этой статье я покажу на примере как это выглядит и работает, и, надеюсь, это поможет и вам перейти на gRPC, не теряя существующие REST-клиенты.
Идеальная ОС: переосмысление операционных систем для десктопа
«Современные» десктопные ОС раздуты
Возьмём Raspberry Pi. За 35 долларов я могу купить отличный компьютер с четырьмя процессорными ядрами, каждое на частоте более гигагерца. У него также есть 3D-ускоритель, гагабайт оперативки, встроенные WiFi с Bluetooth и Ethernet. За 35 баксов! И всё-таки для многих задач, которые я хочу на нём запустить, Raspberry Pi ничем не лучше компьютера на 66 мегагерц, который был у меня в колледже.
Знакомство с Go — пишем граббер веб страниц с многопоточностью и блудницами
Начинать знакомство с новым языком забавнее всего на жизненном примере, поэтому я, не долго думая, взял первую попавшуюся задачу “из жизни, самой первостепенной важности”:
Есть в интернете сайт http://vpustotu.ru на котором любой желающий может анонимно высказаться о наболевшем. Все высказывания (в дальнейшем буду называть их “цитатами”) сначала попадают в модерацию (аналог “бездны” башорга), где посетители могут оценить полет мысли и проголосовать за цитату в стиле “Ого!” или “Ерунда!”. На странице модерации (http://vpustotu.ru/moderation/) нам показывают случайную цитату, ссылки голосования и ссылку “Еще”, которая ведет на эту же страницу. Пощелкайте, это все очень просто.
И вот возникла задача – срочно, под покровом темноты, загрузить себе полный дамп всех цитат на модерации для дальнейшего секретного исследования. Не будем оценивать житейскую ценность и степень идиотизма задачи, а рассмотрим её с технической точки зрения:
В разделе модерации нет прямых ссылок на определенную цитату, единственный способ получить новую цитату – обновить страницу (или перейти по ссылке “еще”, что одно и тоже). Причем вполне возможны повторы, что легко обнаруживается после пары минут агрессивного кликинга.
Таким образом нужна программа, которая:
- Должна последовательно обновлять и парсить (разбирать) страницу, записывая цитату.
- Должна уметь отбрасывать дубликаты.
Логично, что мы понятия не имеем все ли цитаты загружены, но об этом можно косвенно догадаться по большому количеству повторно полученных цитат подряд. Поэтому дополним:
- Должна останавливаться не только по команде, но и по достижению определенного числа “повторов”, например 500!
- Так как это, скорее всего, займет некоторое время: необходимо уметь продолжить “с места на котором остановились” после закрытия.
- Ну и раз уж все-таки это надолго – пусть делает свое грязное дело в несколько потоков. Хорошо-бы в целых 4 потока (или даже 5!).
- И отчитывается об успехах в консоль каждые, скажем, 10 секунд.
- А все эти параметры пускай принимает из аргументов командной строки!
Ну, вроде все понятно. Пусть программа ведет два файла – с цитатами и с некими хешами этих цитат, чтобы не повторяться, и перечитывает файл в начале каждого запуска. Ну а дальше в цикле разбирает страницу, выдергивая все новые и новые откровения, пока не получит ctrl-c по лбу или же не встретит определенное количество повторов. Задача ясна, план есть – поехали!
DevStack как инструмент
В предыдущих своих записях я упоминал про такие продукты как OpenStack, DevStack и Chef.
В этой статье я начну с DevStack.
Импортозамещение, как и было сказано
Почему мы решили поговорить об этом?
Помните, в начале апреля мы рассказывали вам о том, что OpenStack — важная составляющая часть проекта импортозамещения программного обеспечения? Так вот, мы рады сообщить, что нас услышали. И по результатам экспертизы Минкомсвязи группа компаний (в составе ООО «Параллелз Рисерч», Мирантис ИТ, Jelastic, Acronis, ООО НТЦ «РОСА», Alt Linux) заняла первое место в направлении «Средства управления «облачной» инфраструктурой и виртуализацией» (всего было представлено 6 заявок)
Сложно о простоте Go
Всемирный OpenStack-саммит и другие новости
Вы думаете, что мы просто так отмалчивались все это время, что нас разморило весеннее солнышко? Вовсе нет! Мы выбирали, о чем бы вам поведать. Ведь столько всего происходит, что и писать-то некогда.
Cистема образования в США: Старшая школа 9-12 классы — чему и как учат? Часть 2
В первой части мы обсудили начальное образование в США младшую и среднюю школу.
Данная заметка относится к старшей школе т. е. выпускным классам с 9 по 12, когда ученик формирует свою специализацию и решает, продолжать ли ему дальнейшее обучение и в каком направлении.
Смысл этих статей — поделиться своими наблюдениями об образовательной системы США, исходя из опыта полученного моими детьми, высказать свои соображения.
Разработка веб-приложения на Golang
У некоторых читателей могут возникнуть вопросы о «велосипедостроении» — это всё плоды любопытства и живого интереса при ознакомлении с языком Golang.
Cистема образования в США: Младшая и Средняя школа — чему и как учат? Часть 1
Как то несколько лет назад зашел разговор с сыном шестиклассником о русских дворовых поговорках и задачках.
Для затравки я взял классическую дворовую считалку:
А И Б сидели на трубе
А упала, Б пропала
Кто остался на трубе?
Сын задумался и потом довольно быстро разгадал. Я уязвленный в лучших чувствах российского дворового сленга решил усложнить и попросил перевести на английский. Савва (так зовут сына) не задумываясь выдал следующее:
A N' B were on a tree.
A fell down, so did B.
Who is left on the tree?
Результат несколько меня ошеломил после чего я решил делать эти записки о системе общеобразовательной (очень хорошей школы) в США.
Эволюция сетей — новый стандарт 25/50/100 GbE
Но производительность серверов растет, потоки данных тоже, нагрузка на сеть становится все выше, а значит уже давно назрела необходимость в переходе на большие скорости. Достаточно давно существуют 100G продукты в форматах CFP, CFP2, CFP4, но они неадекватно дороги для применения в серверной инфраструктуре и необходимо было создание приемлемого по стоимости продукта. Для этого был создан 25G Consortium, который вместе с Ethernet Alliance занялся разработкой нового промышленного стандарта, призванного поднять скорости в типовых сетях в 2,5 раза. Там где заканчивается разработка стандарта, в дело вступает 2550100 Alliance, созданный для продвижения продуктов в массы. Об итогах их работы и степени готовности стандарта к массовому нашествию на рынок мы сейчас и поговорим.
Как не работает Интернет — желтые страницы вместо современного инструмента
Не принципиально. Я открою несколько сайтов химчисток, чтобы сравнить их. Если информации на сайте для меня недостаточно, я его закрываю. Если достаточно — могу скинуть ссылку на прайс кому-нибудь: «Вот, смотри, тут дешевле». Не буду же я общаться с несколькими компаниями по телефону, чтобы узнать, какая химчистка мне подходит больше, это займет кучу времени. А еще по телефону мне будут впаривать всякую хрень, а я этого не люблю.
habrahabr.ru/company/krible/blog/258987/#comment_8438313
Мысль давно зрела у меня в голове. Но вот мимо этой статьи с фразами типа «Бизнесу нужно, чтобы клиент вышел на контакт: позвонил или написал.» я пройти не смог. Это стало последней каплей, теперь я озвучу все что думаю.
Итак, как обычно — издалека. Взаимодействие между покупателем и бизнесом (пока говорим про розницу) традиционно строилось по модели офис/ офис продаж/ магазин — покупатель. Открываешь точку — заманиваешь покупателей. Это со стороны бизнеса. Со стороны покупателя: нужно отремонтировать машину, побелить потолок, купить продуктов и новый пылесос? Вперед:
Интернет сегодня — это вот это. И на это грустно глядеть — «срамота ходячая».
Logjam — новая уязвимость в TLS
Уязвимости подвержены веб-браузеры Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari. На текущий момент уязвимость исправлена только в IE, для которого было выпущено обновление MS15-055. В свою очередь, остальные браузеры ожидают обновления, как и пакет свободно распространяемого ПО OpenSSL. Уязвимость актуальна и для OS X, iOS, Android.
IPv6 — это весело, часть 2
IPV6 — это весело. Часть 1
Apple TV получит новую программную и аппаратную начинку
Apple продолжает работать над обновлённой версией своей телевизионной приставки Apple TV.
Nginx и https. Получаем класс А+
Недавно вспомнилось мне, что есть такой сервис — StartSsl, который совершенно бесплатно раздаёт trusted сертификаты владельцам доменов для личного использования. Да и выходные попались свободные. В общем сейчас напишу, как в nginx настроить HTTPS, чтобы при проверке в SSL Labs получить рейтинг А+ и обезопасить себя от последних багов с помощью выпиливания SSL.
Итак, приступим. Будем считать, что у вы уже зарегистрировались на StartSsl, прошли персональную проверку и получили вожделенный сертификат. Для начала опубликую итоговый конфиг, а после этого разберу его.
Information
- Rating
- Does not participate
- Location
- Round Rock, Texas, США
- Date of birth
- Registered
- Activity