Search
Write a publication
Pull to refresh
1
0

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

Send message

Почему вам не нужен sshd в Docker-контейнере

Reading time6 min
Views41K
Когда люди запускают своей первый Docker-контейнер, они часто спрашивают: «А как мне попасть внуть контейнера?» и ответ «в лоб» на этот вопрос, конечно: «Так запустите в нём SSH-сервер и приконнектитесь!». Цель этого топика — показать, что на самом деле вам не нужен sshd внутри вашего контейнера (ну, конечно, кроме случая, когда ваш контейнер собственно и предназначен для инкапсуляции SSH-сервера).

Запустить SSH-сервер — заманчивая идея, поскольку это даёт быстрый и простой доступ «внутрь» контейнера. Все умеют пользоваться SSH-клиентами, мы делаем это каждый день, мы знакомы с доступами по паролям и по ключам, перенаправлением портов, ну и вообще доступ по SSH — хорошо знакомая вещь, точно будет работать.

Но давайте подумаем ещё.
Читать дальше →

Centrifuge — я больше не буду обновлять страницу перед отправкой комментария

Reading time10 min
Views26K
Прошло некоторое время с тех пор, как я писал про Центрифугу в предыдущий раз. Произошло множество изменений за этот период. Многое из того, что было описано в ранних статьях (1, 2) кануло в лету, но суть и идея проекта остались прежними — это сервер рассылки real-time сообщений пользователям, подключенным из веб-браузера. Когда на вашем сайте возникает событие, о котором вам нужно моментально сообщить некоторым вашим пользователям, вы постите это событие в Центрифугу, а она, в свою очередь, отправляет его всем заинтересованным пользователям, подписанным на нужный канал. В самом простом виде это показано на схеме:



Проект написан на Python с использованием асинхронного веб-сервера Tornado. Использовать можно даже если бекенд вашего сайта написан не на Python. Хотелось бы рассказать о том, что Центрифуга представляет собой на данный момент.
Читать дальше →

MaidSafe — распределённая система хранения и обработки данных

Reading time8 min
Views24K

MaidSafe – интересная распределённая система передачи и хранения данных. Мне понравилась эта идея и я захотел поделиться с общественностью. Компания MaidSafe зарегистрирована в Шотландии, и разрабатывает свой проект при поддержке спонсоров.

Обзор платформы


MaidSafe состоит из двух главных компонентов – сеть и клиентские приложения. Сеть находится в разработке, и планируется к выходу к концу 2014 года (уже доступны исходники для компиляции на github. Также готовятся к выпуску приложения, которые на примере покажут использование SAFE API и позволят всем создавать свои собственные приложения.
Читать дальше →

На пути к Rust 1.0

Reading time6 min
Views17K
Эта статья — перевод первого поста в официальном блоге языка программирования Rust, разрабатываемого Mozilla. Первая стабильная версия Rust совсем не за горами (предварительный прогноз — конец этого/начало следующего года), и авторы языка собираются опубликовать несколько вводных статей о том, что же такое особенное Rust предлагает.

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




Rust 1.0 уже в пути! Мы определились со списком фич и плотно заняты их реализацией. Наш план — выпустить бета-версию 1.0 в конце года. Если всё будет в порядке, то релиз 1.0 состоится вскоре после беты. Будущие версии в ветке 1.x будут обратно совместимыми, то есть существующий код будет ими компилироваться без изменений (естественно, за исключением багов в компиляторе).

Естественно, релиз 1.0 не означает только лишь стабилизацию («ваш код продожит компилироваться»); для нас он значит, что язык стал таким, каким мы хотим его видеть. Если ещё точнее, что он минимален. На данный момент язык выстроен вокруг простых базовых концепций, которые мы называем владением (ownership) и заимствованием (borrowing) (подробнее о них далее). Применяя эти концепции, всё остальное мы смогли вынести в библиотеки. Это очень здорово, потому что вы сами сможете написать аналогичные библиотеки. Из-за этого мы уверены, что Rust не только достигнет своих первоначальных целей, но и пойдёт дальше, применяясь в таких задачах, какие мы даже себе не представляли.

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

Загружаемся в Vim или Vim c PID 1

Reading time3 min
Views13K
Boot to Vim (окно загрузки)

Это ответ на отличную статью от Pascal Bourguignon, в которой он рассказывает о том, как запустить Emacs с PID 1.

Как мы все знаем, никто не использует Emacs.

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

На самом деле, шутки в сторону. Я считаю, что это отличная статья, и после прочтения мне захотелось посмотреть, смогу ли я сделать что-то похожее с Vim. Не в пользовательском режиме Linux, но в действительности создав ISO для загрузки. Можно сказать, «загрузиться в Vim», если вам так хочется.
Читать дальше →

Превращаем Sublime Text 2 в Notepad++

Reading time19 min
Views197K


Сейчас огромную популярность набирает текстовой редактор Sublime Text 2. Я же в давние времена перешел на Notepad++ и много лет им активно пользовался, радуясь и восхищаясь. И когда стали появляться слухи, что Sublime теснит Notepad++, то решил проверить и попробовать на него перейти. Но, к сожалению, обнаружил, что много фишек, которым мне так нравился Notepad++ (не все идут в исходных настройках) я не вижу, несмотря на обилие новых других интересных возможностей. И было решено попробовать настроить Sublime так, чтобы им можно было пользоваться также, как и Notepad++ (с плагинами), имея попутно возможности Sublime Text 2, коих нет в первом редакторе. И да, Sublime Text 2 настраивался в Windows 7.
Читать дальше →

Готовое решение доступного видеоплеера на HTML5

Reading time3 min
Views52K
Видеоконтент уже прочно вошёл в мир Интернета и без него уже трудно представить глобальную сеть. Тем не менее, технологии встраивания видео в гипертекстовые документы за прошедшее время прошли определённую эволюцию: от RealPlayer к QuickTime и Flash, а в настоящий момент до встроенной поддержки видео в HTML5. Тем не менее, всё это время различные реализации видеоплееров страдали как от проблем кроссплатформенности и кроссбраузерности, так и от низкого или вообще нулевого уровня accessibility. И если способы борьбы с первой группой проблем в целом понятны и существуют в форме готовых решений, то вот проблемы доступности для подавляющего большинства web-разработчиков и без того, как правило, сложны для понимания, а в отношении видео совсем оставались загадкой. Однако, к счастью, появилось готовое решение и второй проблемы, так что все желающие смогут обеспечить своим пользователям полностью доступный видеоплеер и без глубоких компетенций в web accessibility.
Читать дальше →

Учим старую собаку новым трюкам или как я научился любить str.format и отказался от %

Reading time7 min
Views63K
Предлагаю вниманию читателей хабры и поклонникам python перевод довольно объемной статьи о форматировании строк. Сказка будет правдивой и намек в ней будет на то, что консерваторам стоит иногда рассматривать что-то новое, даже если привычка упорно сопротивляется.

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

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

Анализ рендеринга через Skia Debugger: как можно найти самые дорогие для отрисовки элементы

Reading time4 min
Views23K
Доброго дня, недавно я решал проблему притормаживания скролла на страницах Почты Mail.Ru. Особенно эта проблема была заметна на retina-дисплеях. После простого анализа я пришел к выводу, что одна из основных проблем — это медленная отрисовка страницы.

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

Как и многие подобные проблемы оптимизации, данную проблему можно решить множеством способов. Я взялся за оптимизацию рендеринга, так как на нее затрачивалось значительное количество времени. Тем самым, я достаточно быстро смог бы получить прирост производительности и, соответственно, улучшить плавность скролла, ускорив отрисовку.


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

Чем грозит движок бизнес-процессов программисту на примере Apache Activiti

Reading time12 min
Views29K
Словосочетание «бизнес-процессы» давно и прочно будоражат мозг всем бизнес-людям и тем, кто с оными сталкивается. В среде заинтересованных считается, что работа по бизнес-процессам — это «стильно, модно, молодежно». Правда, нет никакой гарантии увидеть четкое понимание того, что же это за зверь в глазах собеседника, даже если он и есть настоящий бизнес-человек. А теперь предлагаю представить, какое болото на эту тему квакало в голове среднестатистического разработчика (на примере автора), когда выяснилось, что следующий продукт будет работать по этим самым бизнес-процессам…

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

CSS GuideLines, часть 1. Синтаксис и форматирование

Reading time8 min
Views44K


Введение


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

ESP8266: Революция в мире интернета вещей

Reading time4 min
Views342K


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

Но жизнь идет. Технологии стремительно развиваются. Термин «Интернет вещей» все чаще на слуху. Многим производителям микросхем, большим и не очень, наконец-то стало актуальным решить извечную проблему интеграции Wi-Fi в небольшие и недорогие устройства. Чтобы иметь возможность подключить их напрямую в инфраструктуру, уже имеющуюся почти в каждом жилище. Чтобы отъесть как можно больший кусок грядущего нового рынка подключаемых к сети простых устройств.

В 2014 году сразу несколько производителей объявили о выпуске соответствующих наборов микросхем. Сегодня речь пойдет о чипе ESP8266 китайской компании Espressif. Модулями UART-WIFI на базе этого чипа уже наводнен весь Китай и стоят они всего от $4,5 (с бесплатной международной доставкой).
Читать дальше →

Смелый стайлгайд по AngularJS для командной разработки [1/2]

Reading time5 min
Views39K
После прочтения Google's AngularJS Guidelines у меня создалось впечатление о его незавершённости, а ещё в нём часто намекали на профит от использования библиотеки Closure. Ещё они заявили, «Мы не думаем, что эти рекомендации одинаково хорошо применимы для всех проектов, использующих AngularJS. Мы будем рады видеть инициативу от сообщества за более общий стайлгайд, применимый как для небольших так и крупных проектов».

Отталкиваясь от личного опыта работы с Angular, нескольких выступлений, а также имеющемуся опыту командной разработки, представляю Вашему вниманию этот смелый стайлгайд по синтаксису, написанию кода и структуре приложений на AngularJS.
Читать дальше →

Управляем сервоприводами из OpenWRT без Arduino

Reading time7 min
Views40K

Краткий пост о том как можно избежать лишних элементов в системе с сервоприводами и использовать железо по максимуму


Предыстория


Я весьма давно и плотно болен Linux, OpenWRT, сетевыми и беспроводными технологиями, безопасностью, а теперь еще и стал потихоньку заражаться роботостроением и умными домами. Все это очень круто, особенно когда есть столько готовых шаблонов, свободного и открытого исходного кода, а временами можно совсем перейти на сторону зла и быстренько накидать логику в Scratch.
Но потом просыпается интерес уже не просто поморгать светодиодами, вау-эффект проходит и необходимо решать прикладные задачи. Вроде и тут следовало бы восхититься обилием готового, но дьявол как всегда в деталях. Одно дело — управлять логикой ЕСТЬ/НЕТ, это позволяет легко включать или отключать свет, можно даже датчик качества воздуха (MQ-135) подцепить и включать вытяжку при необходимости. Все это круто, но на дворе 21 век, космические корабли бороздят большой театр и душа просит чего-то по-круче. Взор мой пал на управление сервоприводами. Почему бы и нет? Тема весьма широкая, ведь они присутствуют во многих механизмах, от роботов до простых открывалок-закрывалок. Плюсом так же является и то что в летательных аппаратах двигатели управляются аналогично и это расширяет диапазон использования просто в разы.

Заинтересовавшихся приглашаю под кат

Те кто уже давно знаком с темой и хочет перейти сразу к сути — смело проматывайте до раздела "Пошаговая инструкция".
Читать дальше →

Загрузка скетчей в Arduino через Bluetooth

Reading time4 min
Views105K
Программируя Arduino, иногда желательно обойтись без физического соединения через USB к компьютеру, например:

  • Силовые цепи — коммутирование 220В. Одна ошибка в соединении и прощай USB-контроллер любимого ситемного блока.
  • Радиочастотные цепи — много наводок по питанию.
  • Собранные и где-то закрепленные устройства, которые желательно перепрошивать, но неудобно к ним подлезать.

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

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

Настройка Jenkins для django проекта с нуля

Reading time3 min
Views55K
Всем привет.

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

В конце концов на ее поддержку стала уходить ощутимая часть рабочего времени, которая давно свела к нулю все преимущества простоты разработки такой системы, и было решено установить нормальный сервер Continuous Integration.

В качестве новой системы был выбран Jenkins, о его установке и настройке для django-проекта и пойдет речь в этой статье. Кто заинтересовался, добро пожаловать под кат.
Читать дальше →

Тестирование проектов Django

Reading time5 min
Views58K
В предыдущем посте мы бегло рассмотрели некоторые приемы тестирования кода на питоне. Все это применимо также и к Django-проектам, безусловно, но есть достаточное количество подводных камней и просто интересных штук, о которых я попробую рассказать.

Краткое содержание поста:
  1. тестирование веб-сайтов — это сложно и непонятно
  2. юнит-тесты в django
  3. тестовая БД и как с ней бороться
  4. smoke testing
  5. покрытие кода (code coverage)
Читать дальше →

Некоторые особенности Django, о которых хорошо знать заранее

Reading time5 min
Views14K
Django

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

И всё же в какой-то момент понимаешь, что в документации есть не всё. И тут варианты решения задач появляются разные — можно открыть исходники Django, можно посмотреть, что пишут по этому поводу на Stackoverflow и в других местах (часто очень помогают списки рассылки, а также официальный Trac), но ещё лучше — всё это вместе.

Давайте рассмотрим всего несколько примеров того, что может понадобиться в повседневной работе, но чего (пока что) не прочтёшь в официальной документации. Впрочем, если вы считаете, что нужно добавить ещё что-то — пишите, может быть, это действительно так.
Читать дальше →

5 макетов лендингов от VWO

Reading time3 min
Views15K
Примечание от нас:

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

Под катом пять макетов, немного общей информации о том, что должно быть в каждом лендинге и маленький опрос.

Немного об источнике.

Visual Website Optimizer – компания, которая занимается анализом и оптимизацией сайтов. Основным направлением деятельности является A/B тестирование, в ходе которого осуществляется комплексный анализ различных сторон процесса конвертации и всех факторов, которые на него влияют. Компания имеет огромный опыт и приличную клиентскую базу, в которой замечены Microsoft, Logitec и даже российский ресурс Ichance.

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

Картинки кликабельны, открываются в текущей вкладке
Читать дальше →

Разработка своей системы биллинга на Django

Reading time4 min
Views36K
При разработке большинства сервисов возникает потребность во внутреннем биллинге для аккаунтов сервиса. Так и в нашем сервисе возникла такая задача. Готовые пакеты для её решения мы так и не смогли найти, в итоге пришлось разрабатывать систему биллинга с нуля.
В статье хочу рассказать о нашем опыте и подводных камнях, с которыми пришлось столкнуться во время разработки.

Задачи

Задачи, которые нам предстояло решить были типичны для любой системы денежного учета: прием платежей, лог транзакций, оплата и повторяющиеся платежи (подписка).
Читать дальше →

Information

Rating
10,496-th
Location
Туймазы, Башкортостан(Башкирия), Россия
Registered
Activity