Search
Write a publication
Pull to refresh
209
0

User

Send message

Sexy primes, «медленный питон» или как я бился о стену непонимания

Reading time10 min
Views31K
Многие разработчики, особенно принимающие активное участие в проектировании системы, наверняка сталкивались с подобной ситуацией: приходит коллега (разраб, проектлид или продажник не суть важно) с очередной идеей-фикс: давай перепишем все на java, scala и т.д. (любимое подставить).

Вот и мне в очередной раз «спустили» такую идею в немаленьком-таком legacy проекте. Не совсем переписать, не совсем все (ну в перспективе). В общем перейти с питона (а у нас там еще и тикль модульно присутствует) на scala. Речь пока шла о разработке новых модулей и сервисов, т.е. начинать с наименее привязанных к middle-level и front-nearby API's. Как я понял в перспективе возможно совсем.

Человек — не разработчик, типа нач-проекта и немного продажник (для конкретного клиента) в одном лице.

Я не то, чтобы против. И скалу уважаю и по-своему люблю. Обычно я вообще открыт ко всему новому. Так, например, местами кроме тикля и питона у нас появляются сервисы или модули на других языках. Так, например, мы переехали с cvs на svn, а затем на git (а раньше, давно-давно, вообще MS-VSS был). Примеров на самом деле масса, объединяет их один момент — так решили или как минимум одобрили сами разработчики (коллективно ли, или была группа инициаторов — не суть важно). Да и дело в общем в аргументах за и против.

Проблема в том, что иногда для аргументированной дискуссии «Developer vs. Anybody-Else» у последнего не дотягивает уровень знаний «материи» или просто невероятно сложно донести мысль — т.е. как-бы разговор на разных языках. И хорошо если это кто-нибудь типа software architect. Хуже, если имеем «беседу» например с чистым «продажником», огласившим например внезапные «требования» заказчика.

Ну почему никто не предписывает, например, плиточнику — каким шпателем ему работать (типа с зубцами 10мм клея же больше уйдет, давайте может все же 5мм. А то что там полы-стены кривущие никого не волнует). И шуруп теоретически тоже можно «закручивать» молотком, но для этого же есть отвертка, а позже был придуман шуруповёрт. Утрирую конечно, но иногда действительно напоминает такой вот абсурд.

Это я к тому, что инструмент в идеале должен выбирать сам разработчик или иметь в этом как минимум последнее слово — ему с этим инструментом работать или мучиться.

Но что-то я отвлекся. В моей конкретной истории аргументов — за scala, у человека как всегда почти никаких.
Хотя я мог бы долго говорить про вещи, типа наличие разрабов, готовые наработки, отточенную и отлаженную систему и т.д. и т.п. Но зацепился за его «Питон очень медленный». В качестве примера он в меня кинул ссылкой на Interpreting a benchmark in C, Clojure, Python, Ruby, Scala and others — Stack Overflow, которую он даже до конца не прочитал (ибо там почти прямым текстом есть — не так плохо все с питоном).

Имелось ввиду именно вот это (время указано в секундах):
  Sexy primes up to:        10k      20k      30k      100k
  ---------------------------------------------------------
  Python2.7                1.49     5.20    11.00       119     
  Scala2.9.2               0.93     1.41     2.73     20.84
  Scala2.9.2 (optimized)   0.32     0.79     1.46     12.01

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

Как я уменьшил Docker образ на 98.8% при помощи fanotify

Reading time8 min
Views23K
Предлагаю читателям «Хабрахабра» перевод публикации «How I shrunk a Docker image by 98.8% – featuring fanotify».

Несколько недель назад я делал внутренний доклад о Docker. Во время презентации один из админов спросил простой на первый взгляд вопрос: «Есть ли что-то вроде „программы похудения для Docker образов“»?

Для решения этой проблемы вы можете найти несколько вполне адекватных подходов в интернете, вроде удаления директорий кэша, временных файлов, уменьшение разных избыточных пакетов, если не всего образа. Но если подумать, действительно ли нам необходима полностью рабочая Linux система? Какие файлы нам действительно необходимы в отдельно взятом образе? Для Go binary я нашел радикальный и довольно эффективный подход. Он был собран статически, почти без внешних зависимостей. Конечный образ — 6.12 МB.
Читать дальше →

Бытовой локпикинг: как сделать ключ к замку и снять наручники

Reading time3 min
Views23K
Возможно, вы обращали внимание, что для вскрытия кодового замка домофона в подъезде не обязательно выдавать себя за почтальона или искать инженерные пароли — достаточно нажать три наиболее отполированные кнопки. В корпоративной среде ситуация похожа: компании расходуют немалые средства на информационную безопасность, но серверный шкаф с корпоративными тайнами запирают копеечным замком, который можно взломать скрепкой.



На PHDays уже дважды выступали «крестные отцы» локпикинга и физической безопасности из организации TOOOL (The Open Organisation Of Lockpickers) — профессиональные медвежатники в белых шляпах и лучшие специалисты в мире по недостаткам различных типов замков. Их стол с отмычками и замками традиционно был одним из самых популярных на форуме и любой из участников имел возможность попробовать себя в роли взломщика.
Читать дальше →

Основы Kubernetes

Reading time13 min
Views931K
В этой публикации я хотел рассказать об интересной, но незаслуженно мало описанной на Хабре, системе управления контейнерами Kubernetes.

image

Что такое Kubernetes?


Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
Читать дальше →

Оптимизация картинок для Google PageSpeed

Reading time2 min
Views93K
Нет предела совершенству, и Google PageSpeed тому доказательство. С его помощью меньше чем за минуту можно получить подробный отчет о производительности Web страницы. В подавляющем большинстве случаев PageSpeed подскажет, что нужно оптимизировать графику. Это наиболее частая проблема и наиболее весомая.



Например, даже на стартовой странице Google Developers графику можно сжать на 71%. Чем меньше весят фотки – тем быстрее грузится сайт. Меньше картинки — меньше трафика — все работает быстрее. Посетители тратят меньше времени – все довольны.

В этом материале подобраны основные инструменты для оптимизации графики.
Читать дальше →

Используем высокие разрешения на неподдерживающих их видеокартах

Reading time6 min
Views136K
Засматриваетесь на 4K UHD-мониторы, но ваш лаптоп не поддерживает высокие разрешения? Купили монитор и миритесь с частотой обновления в 30Гц? Повремените с апгрейдом.

TL;DR: 3840×2160@43 Гц, 3200×1800@60 Гц, 2560×1440@86 Гц на Intel HD 3000 Sandy Bridge; 3840×2160@52 Гц на Intel Iris 5100 Haswell.

Предыстория


Давным-давно, когда все мониторы были большими и кинескопными, компьютеры использовали фиксированные разрешения и тайминги для вывода изображения на экран. Тайминги были описаны в стандарте Display Monitor Timings (DMT), и не существовало универсального метода расчета таймингов для использования нестандартного разрешения. Мониторы отправляли компьютеру информацию о себе через специальный протокол Extended display identification data (EDID), который содержал DMT-таблицу с поддерживаемыми режимами. Шло время, мониторам стало не хватать разрешений из DMT. В 1999 году VESA представляет Generalized Timing Formula (GTF) — универсальный способ расчета таймингов для любого разрешения (с определенной точностью). Всего через 3 года, в 2002 году, его заменил стандарт Coordinated Video Timings (CVT), в котором описывается способ чуть более точного рассчитывания таймингов.

Оба стандарта были созданы с учетом особенностей хода луча в электро-лучевой трубке, вводились специальные задержки для того, чтобы магнитное поле успело измениться. Жидкокристаллические мониторы, напротив, таких задержек не требуют, поэтому для них был разработан стандарт CVT Reduced Blanking (CVT-R или CVT-RB), который является копией CVT без задержек для CRT, что позволило значительно снизить требуемую пропускную способность интерфейса. В 2013 году вышло обновление CVT-R c индексом v2, но, к сожалению, открытого описания стандарта в интернете нет, а сама VESA продает его за $350.

История


Наконец-то настала эра высокой плотности пикселей и на ПК. На протяжении последних нескольких лет, нас встречал театр абсурда, когда на мобильные устройства ставят пятидюймовые матрицы с разрешением 1920×1080, полки магазинов уставлены большими 4K-телевизорами (хоть на них и смотрят с расстояния 2-4 метров), а мониторы как были, так и оставались с пикселями с кулак. Подавляющее большинство говорит, что Full HD выглядит «достаточно хорошо» и на 27" мониторе, забывая, что предыдущее «достаточно хорошо» чрезвычайно быстро ушло после выхода iPad с Retina. Вероятнее всего, такая стагнация произошла из-за плохой поддержки высокой плотности пикселей в Windows, которая более-менее устаканилась только к выходу Windows 8.1.
Читать дальше →

Как выглядит резюме выпускника технического университета на позицию инженера в SpaceX

Reading time1 min
Views24K
Бенджамин Клейн совсем недавно закончил Технологический институт Джорджии со степенью бакалавра наук по машиностроению с наивысшим возможным баллом успешности (4.0 GPA). Во время обучения он успел зарекомендовать себя в области, которая довольно далеко лежит от космических исследований. Бенджамин получил патент на устройство для взятия крови из пальца для анализа уровня глюкозы у людей, страдающих сахарным диабетом. Поэтому предложение рекрутеров SpaceX оказалось для него, вероятно, неожиданным.
Узнать подробности

Защита личных данных на Android-телефоне

Reading time26 min
Views119K
Мобильных компьютеров уже давно больше, чем стационарных. И наших личных данных на них так же значительно больше, чем на стационарных. При этом текущий дизайн OS мобильных устройств создаёт впечатление, что одна из их основных задач — как можно сильнее упростить доступ третьим лицам (в основном — корпорациям и государству, но и мелким разработчикам мобильных приложений тоже обламывается от этого пирога) к вашим личным данным.

Частичная открытость Android немного улучшает ситуацию, но полноценного решения проблемы утечки приватных данных пока не существует. Основная проблема в том, что пока на устройстве используются блобы нет никаких гарантий, что в них нет закладок (вроде обнаруженных в прошивках Samsung Galaxy). Аналогичная проблема с проприетарными приложениями без открытых исходников (вроде всего пакета GApps, начиная с самого Google Play Маркет). По сути всё как раз наоборот — крайне высока вероятность, что закладки там есть. Нередко их даже не пытаются скрывать, выдавая за удобные «фичи» для синхронизации и/или бэкапа ваших данных, обеспечивания вас полезной рекламой, и «защиту» от вредоносного софта или на случай утери устройства. Один из самых надёжных способов защиты своих данных описан в статье Mission Impossible: Hardening Android for Security and Privacy, но там речь не о телефоне, а о планшете, причём с поддержкой только WiFi (мобильных чипов без блобов по-моему вообще пока ещё нет, для мобильного инета вместе с этим планшетом предлагается использовать отдельный 3G-модем, блобы в котором никому не навредят т.к. на этом модеме личных данных просто нет), и, на всякий случай, физически отрезанным микрофоном. Но, несмотря на невозможность полноценно защитить личные данные на телефоне, я считаю что стоит сделать максимум возможного: прикрыть столько каналов утечек, сколько получится — ведь мало кто может позволить себе не использовать мобильный телефон или не держать на нём личные данные (хотя бы контакты и историю звонков).

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

Играем мускулами. Методы и средства взлома баз данных MySQL

Reading time10 min
Views73K


MySQL — одна из самых распространенных СУБД. Ее можно встретить повсюду, но наиболее часто она используется многочисленными сайтами. Именно поэтому безопасность базы данных — очень важный вопрос, ибо если злоумышленник получил доступ к базе, то есть большая вероятность, что он скомпрометирует не только ресурс, но и всю локальную сеть. Поэтому я решил собрать всю полезную инфу по взлому и постэксплуатации MySQL, все трюки и приемы, которые используются при проведении пентестов, чтобы ты смог проверить свою СУБД. 0day-техник тут не будет: кто-то еще раз повторит теорию, а кто-то почерпнет что-то новое. Итак, поехали!
Читать дальше →

Осознанные сновидения, фаза быстрого сна и маска Remee — можно ли управлять своими снами

Reading time12 min
Views48K
На ночь глядя я познакомлю вас с историей изучения осознанных сновидений, расскажу о ключевых фигурах в науке, которые стояли у истоков открытия быстрой фазы сна, или REM, а также коротко поделюсь своим опытом «осознанных снов» с маской Remee

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


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

Что на самом деле происходит, когда пользователь вбивает в браузер адрес google.com

Reading time19 min
Views444K


Эта статья является попыткой ответа на старый вопрос для собеседований: «Что же случается, когда вы печатаете в адресной строке google.com и нажимаете Enter?» Мы попробуем разобраться в этом максимально подробно, не пропуская ни одной детали.

Примечание: публикация основана на содержании репозитория What happens when...

Представленный контент изобилует большим количеством терминов, в переводе некоторых из них могут присутствовать различные неточности. Если вы обнаружите какую-то ошибку в нашем переводе — напишите личным сообщением, и мы всё исправим.

Мы перенесли перевод в репозиторий GitHub и отправили Pull Request автору материала — оставляйте свои правки к тексту, и вместе мы сможем значительно улучшить его.
Читать дальше →

Читаем электронные книги на английском без словарей и переводчиков

Reading time3 min
Views99K
1. Интро. Личное



Я готовлюсь к языковому экзамену IELTS (International English Language Testing System) — пожалуй, самому популярному
тесту на знание английского. Если хочется эмигрировать, найти работу в международной компании — диплом IELTS очень пригодится. Шкала оценок — от 0 (от испытуемого не удалось получить даже внятного мычания) до 9 (экcперт — испытуемый чертовски хорош и может устроиться даже редактором лондонской газеты).

Для учебы, например, в США, нужно не менее 6.5 баллов (бывает и 6, но не часто), для работы — 7 и выше. А для эмиграции, допустим, в Канаду — чем выше оценка, тем лучше. Мой прогнозируемый балл перед сдачей теста — 5.5. Значит, что я могу читать газеты, смотреть кино, вести беседы в знакомых ситуациях, писать ответы на письма. Но для работы в центральном офисе Гугла явно недостаточно.

Что же делать, чтобы подтянуть уровень языка? Конечно же, начать использовать его в своей жизни как можно чаще и больше. Например, читать книги на английском.
Далее

Как сделать доклад на конференции, если вы этого никогда не делали

Reading time4 min
Views33K
image

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

Типичная схема организации выступления


Типичная схема выступления на конференции подразумевает следующие шаги:
  • Принятие решения о выступлении на конференции — примерно за 3 месяца до конференции.
  • Подача темы выступления и краткой аннотации (включая формат и длительность), а также резюме — примерно за 2 месяца до мероприятия.
  • Предоставление готовой презентации, расширенной аннотации, резюме и фотографии — за месяц и ближе к мероприятию.
  • Публикация точной программы — хорошо, если за неделю до мероприятия.
  • Собственно выступление.
  • Кулуарное общение и организация контактов на мероприятии.
  • Фиксация результатов выступления — в течение 3-х дней после мероприятия.

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

Стань повелителем загрузки Linux

Reading time24 min
Views93K
Сначала мы познакомимся с udev и научимся с его помощью исследовать установленные в компьютере устройства прямо во время загрузки: в качестве примера будем автоматически выбирать настройки видеокарт для Xorg. Затем решим задачу работы с одним образом на десятках компьютеров одновременно путём внедрения собственного обработчика в initramfs, а заодно оптимизируем систему для сетевой загрузки. Чтобы дополнительно уменьшить время загрузки и снизить нагрузку на сеть попробуем NFS заменить на NBD, и помочь TFTP с помощью HTTP. В конце вернёмся в начало — к загрузочному серверу, который также переведём в режим «только для чтения».



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

Начало смотрите здесь:
Первоначальная настройка сервера
Подготовка образа для загрузки по сети
Читать дальше →

Как создавалась одна из самых эмоциональных сцен «The Last of Us»

Reading time3 min
Views35K
image
Скриншот из игры

Серьезно нашумевший в 2013 году проект «The Last of Us» по праву считается одной из жемчужин среди игр для PlayStation 3, а после и PlayStation 4. Студия-разработчик Naughty Dog, известная среди игроков благодаря таким франшизам как Crash Bandicoot и Uncharted, всегда очень внимательно подходит к работе, в особенности учитывая то, что уже много лет их главный хлеб — это эксклюзивы для японских консолей. Можно долго спорить о предпочтениях, но большинство геймеров сходятся в одном: The Last of Us получила более сотни призов в номинации «Игра Года» по версиям различных издательств по всему миру не просто так. Одной из самых сильных сторон проекта называлась история, что неудивительно, ведь награду гильдии сценаристов США кому попало не дают. А сцена встречи с жирафами в постапокалиптическом мире, как это не дико звучит, сыграла в описании этой истории и придании ей эмоционального окраса не последнюю роль. Предлагаю Вам познакомиться с воспоминаниями Джона Суини, одного из художников студии Naughty Dog.

Публикация содержит сюжетные спойлеры. Если вы: 1. Геймер, ценящий сюжет. 2. Все еще не играли в The Last of Us. 3. Не смотрели прохождение или трехчасовой игрофильм на YouTube, то вам стоит воздержаться от прочтения и познакомиться с историей главных героев самостоятельно.
Читать дальше →

Несколько недорогих способов улучшить свой цифровой быт*

Reading time23 min
Views50K
*слоган одной очень известной торговой онлайн-площадки: Smarter Shopping, Better Living!

Нашалившего ребёнка родители теперь ставят в тот угол, где нет WiFi — из эфира одной популярной радиостанции

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

DISCLAIMER: автор выражает благодарность советской спичечной промышленности за эталон 5см (плюс-минус 1мм по ГОСТ 1820-2001), но никак не аффилирован с торговой маркой «Балабановские Спички»; все появления означенной марки в кадрах непреднамеренны.
Чтобы поднять читателю настроение, автор придумал каждому изделию шуточное название и perk на манер популярной компьютерной игры Fallout, специально для Geektimes.

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

Итак, сколько плохих кабелей micro USB вы выбросили за последние пару лет? Лично я уже штук пять. А как понять качество кабеля, если заряд идёт, видимых повреждений нет, да и разъёмчик хорошо сидит? Как комфортнее электрифицировать гаджеты в автомобиле, в самолёте, в лесной глуши и на горной вершине?
Читать дальше →

Установка, настройка и использование сканера безопасности Antidoto

Reading time4 min
Views9.3K
Ранее я писал о двух известных сканерах безопасности общего плана rkhunter и CentOS
На “Хабре” так же есть описание организации работы сканера для вебхостинга — maldet. Теперь хотелось бы рассмотреть реализацию приложения для эвристического обнаружения уязвимостей, вирусов и ботнетов для OpenVZ ОС Linux — Antidoto.


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

Плохо документированные особенности Linux

Reading time8 min
Views67K
Привздохнув, произнесла:
«Как же долго я спала!»
image Когда-то, впервые встретив Unix, я был очарован логической стройностью и завершенностью системы. Несколько лет после этого я яростно изучал устройство ядра и системные вызовы, читая все что удавалось достать. Понемногу мое увлечение сошло на нет, нашлись более насущные дела и вот, начиная с какого-то времени, я стал обнаруживать то одну то другую фичу про которые я раньше не знал. Процесс естественный, однако слишком часто такие казусы обьединяет одно — отсутствие авторитетного источника документации. Часто ответ находится в виде третьего сверху комментария на stackoverflow, часто приходится сводить вместе два-три источника чтобы получить ответ на именно тот вопрос который задавал. Я хочу привести здесь небольшую коллекцию таких плохо документированных особенностей. Ни одна из них не нова, некоторые даже очень не новы, но на каждую я убил в свое время несколько часов и часто до сих пор не знаю систематического описания.

Все примеры относятся к Linux, хотя многие из них справедливы для других *nix систем, я просто взял за основу самую активно развивающуюся ОС, к тому же ту, которая у меня перед глазами и где я могу быстро проверить предлагаемый код.

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

Защита устройств от неправильной подачи полярности питания

Reading time3 min
Views224K
image
При проектировании промышленных приборов, к которым предъявляются повышенные требования по надёжности, я не раз сталкивался с проблемой защиты устройства от неправильной полярности подключения питания. Даже опытные монтажники порой умудряются перепутать плюс с минусом. Наверно ещё более остро подобные проблемы стоят в ходе экспериментов начинающих электронщиков. В данной статье рассмотрим простейшие решения проблемы — как традиционные так и редко применяемые на практике методы защиты.
Читать дальше →

Information

Rating
Does not participate
Location
Isabella, Basilicata - Potenza, Танзания
Date of birth
Registered
Activity