Как стать автором
Поиск
Написать публикацию
Обновить
135
0
Алексей @alexkbs

Инженер-программист

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

VPN за 60 секунд

Время на прочтение2 мин
Количество просмотров70K
Если Вы предпочитаете простые и красивые решения, или Вам нравится всё, что попадает под категорию It Just Works, то эта статья для Вас. Для запуска шифрованного подключения достаточно иметь на своем компьютере SSH-клиент, установить sshuttle (об этом чуть позже) и приобрести VPS с любым тарифным планом в интересующей Вас стране. На удалённой VPS-машине в большинстве случаев абсолютно ничего настраивать не нужно (достаточно, чтобы были установлены пакеты python и сервер SSH).


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

Опыт работы со взломанным сервером

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


Хочу поделиться своим опытом начинающего системного администратора. Так уж случилось, что мой первый блин комом — это было предложение заняться инфраструктурой в одной маленькой компании. Ситуация сложная. Никакой автоматизации, все вручную и по принципу: работает — не трогай, а если не работает и никто не заметил, то считай, что работает. Предыдущий сотрудник не оставил почти никакой документации. Вот доступ к серверам, кофемашина — там, вроде всё…
Читать дальше →

Об относительной яркости, или насколько живучим бывает легаси

Время на прочтение6 мин
Количество просмотров42K
Я уверен, что многим программистам знакома формула:

Y = 0.299 R + 0.587 G + 0.114 B

А уж тот, кто плотно работал с графикой, знает эти цифры буквально наизусть — как в былые времена эникейщики запоминали серийники Windows. Иногда коэффициенты округляют до второго знака, иногда уточняют до четвертого, но каноническая форма именно такая.

Вычисляет она относительную яркость цвета (relative luminance или в некоторых контекстах luma; не путать с lightness и brightness) и широко применяется для преобразования цветного RGB-изображения в Grayscale и связанных с этим задач.

Формула растиражирована и процитирована в тысячах статей, форумных обсуждений и ответов на StackOverflow… Но дело в том, что единственно-правильное её место — на свалке истории. Использовать её нельзя. Однако же используют.

Но почему нельзя? И откуда же взялись именно такие коэффициенты?
Мини-экскурс в историю

233 орешка для Золушки: отбираем цвета для «идеальной» палитры

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


В процессе разработки игры в текстовом режиме, мне пришлось нарисовать больше сотни анимационных ASCII спрайтов. После релиза игра получила неожиданно хорошие отзывы и было принято решение делать продолжение. Рисуя спрайты для первой части и перепробовав с десяток вариантов выбора цвета и несколько десятков различных палитр, я понял, что нужен свой, «идеальный» набор цветов на все времена. За сотни и сотни часов рисования, сложились следующие критерии идеальности палитры:

  • Краткость: небольшое количество цветов в палитре. Весь набор цветов можно охватить одним взглядом.
  • Полнота: цвета палитры должны равномерно и достаточно плотно заполнять цветовое пространство.
  • Дискретность: цвета палитры должны отличаться друг от друга на глаз.
  • Группировка: цвета должны быть удобно сгруппированы для быстрого нахождения нужного.

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

Легко ли положить корову на бок?

Время на прочтение4 мин
Количество просмотров36K
Сразу возникает резонный вопрос — зачем класть корову на бок, если этот зверь и так устойчиво держится на ногах и хорошо в этом положении себя чувствует? Ответ дают ветеринары. Бич современного животноводства — болезни копыт крупно-рогатого скота, которые возникают из-за стойлового содержания. Коровам не хватает моциона, поэтому начинаются болезни копыт, которые грозят тяжелыми последствиями. Обрабатывать и лечить копыта удобнее с использованием специального устройства, которое позволяет положить корову на бок и провести все необходимые хирургические манипуляции. Но как это сделать, если вес хорошей коровы полтонны и более, а особого желания лежать на боку у коровы нет? Без оригинальных идей не обошлось, поэтому кому интересно — прошу под кат.
Читать дальше →

Как японский фермер при помощи глубокого обучения и TensorFlow огурцы сортировал

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


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

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

N+5 полезных книг

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


Привет! Это пятый с 2010 года список полезных книг. Набралась всего дюжина за два года. Смотрите, что можно скачать в дорогу или просто почитать, когда будет время, и делитесь, пожалуйста, в комментариях своими (я буду поднимать их в пост). В этой подборке довольно много социнжиниринга, точнее, тем около него. Поехали.

Конструкции, или почему не ломаются вещи, Дж. Гордон
Прекрасная, хоть и очень длинная штука, которая рассказывает про сопромат простыми словами и почти для детей. Но на уровне жёсткого хардкора. По своей полезности для осознания физики вокруг может сравниться с не менее прекрасной современной «Квантовая вселенная. Как устроено то, что мы не можем увидеть» Брайана Кокса и Джеффа Форшоу. Рекомендую обе. Будет, что почитать в дороге, если вдруг почувствуете, что играть на планшете надоело. И о чём подумать, когда выяснится, что вся та фигня, которую вам давали на уроках химии, физики и прочего в школе и университете вдруг начинает выстраиваться в стройную теорию.

Evil by Design, Крис Ноддер
Один из лучших подходов к проектированию чего-то хорошего — это спроектировать сначала самое ужасное из возможного. Пользователь обычно не скажет, как сделать ему хорошо, но точно знает, как бывает плохо. Например, юзер не говорит «я хочу, когда нажимаю на ссылку напоминания пароля, там в поле уже была введена почта», зато вполне способен сказать: «слушай, меня дико бесит, когда логинишься, тебе показывают новую страницу про то, что пароль не подошёл, и, чтобы его восстановить, надо ещё один долбанный раз вводить почту». Вся книга Криса состоит из таких «тёмных» шаблонов, когда какие-то гады намеренно вводят вас в заблуждение. Он там очень переживает за этику, поэтому вступления лучше пропустить. Единственная в этом обзоре книга на английском, но довольно простом.
Читать дальше →

Простые графики с помощью D3.js

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

Gualtiero Boffi | Dreamstime.com


D3.js (или просто D3) — это JavaScript-библиотека для обработки и визуализации данных с невероятно огромными возможностями. Я, когда впервые узнал про нее, наверное, потратил не менее двух часов, просто просматривая примеры визуализации данных, созданных на D3. И конечно, когда мне самому понадобилось строить графики для небольшого внутреннего сайта на нашем предприятии, первым делом вспомнил про D3 и с мыслью, что “сейчас я всех удивлю крутейшей визуализацией”, взялся изучать исходники примеров…

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

Как программист машину покупал

Время на прочтение9 мин
Количество просмотров122K
Недавно я озадачился поиском б.у. автомобиля, взамен только что проданного, и, как это обычно бывает, на эту роль претендовали несколько конкурентов.

Как известно, для покупки авто на территории РФ существует несколько крупных авторитетных сайтов (auto.ru, drom.ru, avito.ru), поиску на которых я и отдал предпочтение. Моим требованиям отвечали сотни, а для некоторых моделей и тысячи, автомобилей, с перечисленных выше сайтов. Помимо того, что искать на нескольких ресурсах неудобно, так еще, прежде чем ехать смотреть авто “вживую”, я хотел бы отобрать выгодные (цена которых относительно рынка занижена) предложения по априорной информации которую предоставляет каждый из ресурсов. Я, конечно, очень хотел решить несколько переопределенных систем алгебраических уравнений (возможно и нелинейных) высокой размерности вручную, но пересилил себя, и решил этот процесс автоматизировать.
image
Читать дальше →

Разработка класса для работы с цепями Маркова

Время на прочтение5 мин
Количество просмотров25K
Сегодня я хотел бы поведать вам о написании класса для упрощения работы с цепями Маркова.

Прошу под кат.
Читать дальше →

Как выглядит беспорядок или были ли у фашистов самонаводящиеся ракеты

Время на прочтение7 мин
Количество просмотров154K
13 июня 1944 года, через неделю после вторжения союзников в Нормандию, громкий жужжащий звук прогремел в небе избитого боями Лондона. Источником звука было недавно разработанное немецкое орудие войны: воздушная бомба V-1. Будучи предшественником крылатых ракет, V-1 была самоходной бомбой, управляемой с помощью гироскопов, питалась она от простого пульсирующего воздушно-реактивного двигателя, который поглощал воздух и воспламенял топливо 50 раз в секунду. Такая высокая частота пульсации давала бомбе характерный звук, зарабатывая ей прозвище «жужжащая бомба» (в оригинале – «buzz bomb» – прим. перев.).
Читать дальше →

[ В закладки ] Алгоритмы и структуры данных в ядре Linux, Chromium и не только

Время на прочтение9 мин
Количество просмотров86K
Многие студенты, впервые сталкиваясь с описанием какой-нибудь хитроумной штуки, вроде алгоритма Кнута – Морриса – Пратта или красно-чёрных деревьев, тут же задаются вопросами: «К чему такие сложности? И это, кроме авторов учебников, кому-нибудь нужно?». Лучший способ доказать пользу алгоритмов – это примеры из жизни. Причём, в идеале – конкретные примеры применения широко известных алгоритмов в современных, повсеместно используемых, программных продуктах.



Посмотрим, что можно обнаружить в коде ядра Linux, браузера Chromium и ещё в некоторых проектах.
Читать дальше →

Как ботаники заведения автоматизируют

Время на прочтение8 мин
Количество просмотров27K
image

Привет, Хабр. Прошло почти 2 года после моего последнего поста. Очень рад, что он оказался для многих полезным. За эти 2 года мы сделали очень многое. И мне хотелось бы поделиться опытом и своими впечатлениями.

С 20 заведений-клиентов из одной страны мы выросли почти до 4 000 из 12 стран. Наша команда выросла в 5 раз. Открыли офис в Москве и Варшаве. Выпустили приложение, помимо iOs и Web, еще на Android и Windows. Значительно увеличили функционал. Перевели Poster на 5 языков. За последний квартал приняли участие в 3-х международных выставках. Тесно дружим с такими компаниями как Epson, Microsoft, Intel. За нами пристально следят несколько крупных инвесторов. Европейская компания предложила нам поглощение.

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

Вы все еще храните 404backup.zip на сервере? Я на 200ДА

Время на прочтение2 мин
Количество просмотров42K
Сумеречными зимними вечерами под песнь вьюги, укутавшись в овечий плед с бокальчиком «яблочной самогонки», я люблю почитывать логи на сервере. Авторизация по ключам упрощает сие, так что если в публичное помещение меня и не пустят, то сервер всегда рад приютить, старый чертяга.

В мире много чего происходит, у кого счастливое 200, кто-то недоуменно смотрит на 301, кто-то царапает похабщину на 403.

Но самый ценных мех — это исследователи. Это те, кто открывает новый для себя мир на основе своих знаний путем проб и 404.
Читать дальше →

Основные законы создания команд разработчиков

Время на прочтение9 мин
Количество просмотров72K
В EDISON часто обращаются инженеры, желающие добавить сотрудников в команду. Хочется «по-быстрому склепать задачку», воспользовавшись десятком дополнительных разработчиков. Работает ли подобный подход? К сожалению, не всегда. В программировании, как в физике, есть законы.


Собрать толковую команду — настоящее искусство
Читать дальше →

Nginx + Lua + Redis. Эффективно обрабатываем сессию и отдаем данные

Время на прочтение6 мин
Количество просмотров38K
image
Предположим, у вас есть данные, которые вы хотите кэшировать и отдавать, не используя тяжелые языки, как php, при этом проверяя, что пользователь аутентифицирован и имеет право на доступ к данным. Сегодня я расскажу, как, используя связку nginx lua redis, выполнить эту задачу, снять нагрузку с сервера и увеличить скорость отдачи информации сервером в десятки раз.
Читать дальше →

Чек-лист из 68 пунктов для продвижения сайта в ТОП10 Яндекса

Время на прочтение5 мин
Количество просмотров146K
Чтобы Яндекс показал Ваш сайт в числе первых, нужно чтобы он максимально полно отвечал на запрос пользователя. И это будет уже половина успеха. Оставшаяся половина это удобство, техническая составляющая сайта и его простота. Ниже я привел чек-лист из 68 пунктов, который был разработан специально для системы управления задачами PTYSH, совместно с компанией DFAKTOR. А теперь я делюсь им с Вами. Кропотливое выполнение каждого пункта из данного чек-листа позволит вывести практически любой сайт на самый верх поисковой выдачи. Но придется как следует поработать. Начнем с самого малого.


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

Пять ловушек для начинающего свифтера

Время на прочтение5 мин
Количество просмотров39K
Всем привет! Я — начинающий свифтер, то есть изучаю Swift без опыта ObjC. Недавно мы с компаньонами начали проект, требующий приложение под iOS. А еще у нас есть idée fixe: с нами непременно должен работать студент из Физтеха, а приложение должно быть написано на языке Swift. И вот, пока мы ищем физтеховцев и знакомимся с ними, я решил не терять время и параллельно начать своими силами пилить проект на Swift. Так я впервые открыл XCode.

Вдруг обнаружилось много знакомых, которые точно так же не имея опыта мобильной разработки, стали осваивать ее именно посредством Swift, а не ObjC. Кто-то из них подтолкнул меня поделиться опытом на Хабре.

Итак, вот топ пять «ловушек», своевременное понимание которых точно бы сэкономило мне время.
Читать дальше →

Badoo PHP Code Formatter. Теперь в open source!

Время на прочтение13 мин
Количество просмотров28K
Несколько лет назад компания Badoo начала значительно расти по числу сотрудников, с 20 до 100 и более. Это потребовало серьезной перестройки многих процессов, касающихся разработки. Одна из проблем, с которой мы столкнулись, — как заставить всех разработчиков следовать единому стандарту кодирования, чтобы весь наш код выглядел единообразно и был легко поддерживаемым?

Для решения этой задачи мы решили внедрить инструмент для форматирования кода, который умел бы следующее:

  1. выводить сообщения о несоответствии стандарту форматирования в виде списка, не трогая сам файл;
  2. автоматически исправлять все найденные проблемы с форматированием;
  3. уметь форматировать только часть файла (нам не нужно переформатировать репозиторий сразу целиком, чтобы не потерять историю).

Мы рассматривали два проекта, которые можно было бы взять за основу для написания такого инструмента — PHP Beautifier и PHP Code Sniffer. Первый умел форматировать код, но не умел печатать диагностику, а второй — наоборот, умел печатать диагностику, но не умел форматировать файлы. К сожалению, оба этих проекта, по нашей оценке, были не слишком пригодны для того, чтобы добавить в них недостающую нам функциональность, поэтому была написана новая утилита — phpcf (PHP Code Formatter). Уже в течение двух лет она работает как git pre-receive hook, настроенный на отклонение (!) изменений, которые не оформлены по нашему стандарту кодирования.

Наконец настало время открыть исходные тексты нашей утилиты для широкой публики: github.com/badoo/phpcf
Читать дальше →

Типы личности по MBTI: влияние на восприятие рекламы

Время на прочтение5 мин
Количество просмотров43K
Привет Хабр! Анализируя пользовательские данные для нужд маркетинга и рекламы, мы решили исследовать влияние типа личности пользователя на то, как он реагирует на рекламное объявление. За основу решили взять, пожалуй, самую популярную типологию линостей MBTI (Myers-Briggs Type Indicator), известную еще с середины 20-го века. Многие крупные западные компании используют тесты MBTI при найме или при формировании команды для работы над проектами.

Но нас интересует, конечно, не готовность пользователя к командной работе, а влияние его типа личности на желание кликнуть по баннеру. Поэтому вопрос, который мы исследовали звучит так: «Могут ли типы личности влиять на CTR в рекламных кампаниях?»

В этой статье я расскажу о том как мы это делали.


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

Информация

В рейтинге
Не участвует
Откуда
Кобе, Хиого, Япония
Дата рождения
Зарегистрирован
Активность