Search
Write a publication
Pull to refresh
0
@Vprokread⁠-⁠only

User

Send message

Вы опасно некомпетентны в криптографии

Reading time7 min
Views142K
От переводчика: Хоть посыл статьи Najaf Ali, переведённой ниже, и носит слегка рекламный оттенок («оставьте криптографию нам, экспертам»), но описанные в ней примеры показались мне довольно интересными и заслуживающими внимания.
Кроме того, никогда не будет лишним повторить прописную истину: не придумывайте свою крипто-защиту. И эта статья отлично иллюстрирует почему.

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

Самолёт, HD FPV, линк 600 км по 4G

Reading time2 min
Views56K
В продолжение к вчерашнему топику про машинку.

На машинке отлично покатались, но аппетит приходит во время езды — захотелось полетать. Само собой, над Питером, управляя из Москвы. Да простит меня Хабр, но самолёт — намного круче чем машинка, так что заслуживает отдельного топика.

У realizator как раз имеется самолёт Bixler, специально для экспериментов. Самолётик уже бывалый, успешно пережил немало морковок. Для тех кто не в теме — морковка это такая фигура высшего пилотажа, когда самолёт втыкается носом в землю.



Вот мы и подумали что ещё одна морковка погоды не сделает. Реализатор установил на Бикслер (который, кстати, имеет кличку «Кащей», ибо бессмертный) тот же самый комплект, который на машине стоял. Добавили один канал (для самолёта минимум три канала PWM требуется). Я у себя дома вместо курковой автомобильной аппы подключил самолётную аппаратуру управления (народную Турнигу — Turnigy 9x). Тот же самый сервер команд, та же рулилка виндовая — всё без изменений.

Реализатор поехал на полянку на окраине Питера, поездил рядышком — телеметрия с борта показала что сигнал Йоты намного слабее чем на Дворцовой площади был, но он есть и видео более-менее идёт.
Читать дальше →

Машинка в Питере — оператор в Москве

Reading time4 min
Views36K

Длинное вступление





В прошлом топике мы тестировали HD FPV с нашей любимой Виртурилкой в качестве источника видео. Тогда испытания показали что всё отлично, вид от первого лица при управлении моделями вполне реальное дело. Главное — был бы нормальный канал связи. Пока HDMI вход для Виртурилки в процессе производства (кстати, уже есть первый тестовый образец, но драйвер ещё не готов), решили поискать ещё варианты организации канала связи. В комментах много юмора было на тему 4G, вот мы и подумали — а почему бы и нет?

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

Использование Percona XtraBackup в повседневной жизни

Reading time5 min
Views60K
Высокая распространенность баз данных MySQL приводит к её использованию в разнообразных проектах, в том числе, которые требуют безостановочной работы и минимального времени восстановления. Стандартные инструменты, такие как mysqldump неудобен для использования баз данных размер, которых измеряется десятками гигабайт. К сожалению mysqldump вызывает блокировку таблиц, и операция снятия дампа или восстановления базы может занимать далеко не один час, а порой и 5-10 часов.

Благо, к нам на помощь приходит Percona XtraBackup.

image

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

Система учета IP-адресов

Reading time3 min
Views54K
Система учета IP-адресов

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

Заставьте сайт работать на сенсорных устройствах

Reading time8 min
Views69K


Сенсорные экраны на мобильных телефонах, планшетах, ноутбуках и настольных компьютерах открыли веб-разработчикам целый ряд новых взаимодействий. В переведенном руководстве Патрик Локи рассматривает основы работы с сенсорными событиями в JavaScript. Все рассматриваемые далее примеры есть в архиве.

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

Бекап баз данных – есть ли он?

Reading time15 min
Views32K
image

Нет смысла говорить о том, насколько это актуальный вопрос. Сегодня мы расскажем, как у нас организовано резервное копирование баз данных mysql.
И одно их самых важных – это проверка, а сделался ли бекап? А успешно ли прошел дамп? А были ли ошибки? А знаю ли я о них?

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

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

Тестирование в Яндексе. Сам себе web-service over SSH, или как сделать заглушку для целого сервиса

Reading time10 min
Views23K
Вы практикующий маг менеджер. Или боевой разработчик. Или профессиональный тестировщик. А может быть, просто человек, которому небезразличны разработка и использование систем, включающих в себя клиент-серверные компоненты. Уверен, вы даже знаете, что порт это не только место, куда приходят корабли, а «ssh» это не только звук, издаваемый змеёй. И вы в курсе, что сервисы, расположенные на одной или нескольких машинах, активно между собой общаются. Чаще всего по протоколу HTTP. И от версии к версии формат этого общения нужно контролировать.



Думаю, каждый из вас при очередном релизе задавался вопросами: «Точно ли мы отсылаем верный запрос?» или «Точно ли мы передали все необходимые параметры этому сервису?». Всем должно быть известно и о существовании негативных сценариев развития событий наравне с позитивными. Это знание должно активно порождать вопросы из серии «Что если..?». Что если сервис станет обрабатывать соединения с задержкой в 2 часа? Что если сервис ответит абракадабру вместо данных в формате json?

О таких вещах нередко забывается в процессе разработки. Из-за сложности проверки проблем подобного рода, маловероятности таких ситуаций и еще по тысяче других причин. А ведь странная ошибка или падение приложения в ответственный момент могут навсегда отпугнуть пользователя, и он больше не вернётся к вашему продукту. Мы в Яндексе постоянно держим подобные вопросы в голове и стремимся максимально оптимизировать процесс тестирования, используя полезные идеи. О том, как мы сделали такие проверки легкими, наглядными, автоматическими и пойдет речь в этой статье.
Читать дальше →

Как сверстать тему для WordPress

Reading time24 min
Views594K

Введение


В предыдущих статьях мы рассмотрели принципы верстки на чистом CSS и с помощью Bootstrap. Сегодняшней статьей мы начинаем рассматривать особенности верстки под популярные CMS. И начнем с WordPress, как самой популярной из них. Будем считать, что WordPress у вас уже установлен и перейдем непосредственно к созданию шаблона, в качестве которого у нас по-прежнему будет выступать Corporate Blue от студии Pcklaboratory. Если вы не знаете как установить WordPress, то инструкцию можно найти здесь. В данном руководстве мы не будем подробно описывать CSS стили и HTML код – это было сделано уже в предыдущих статьях. Вместо этого рассмотрим детально особенности создания темы именно под WordPress.
Читать дальше →

Обнаружена уязвимость функционала «remember me» в Laravel

Reading time2 min
Views17K

Некоторое время назад был опубликован пост с подробным описанием уязвимости функционала «remember me» в фреймворке Laravel. Она позволяла имперсонировать любого пользователя путем создания поддельного кука логина. Разработчики тогда сказали что дыру закрыли. Но более подробный взгляд показывает что гидре отрубали лишь одну голову. Даже если вы не используете данный фреймворк вам все равно будет полезно узнать как не надо имплементировать такой функционал у себя на сайте.

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

Типичные ошибки API платежных систем

Reading time2 min
Views36K
imageЕсли вы собираетесь написать n-ную платежную систему, рекомендую ознакомиться с типичными ошибками в реализации API, которые я собрал в процессе написания модулей для своего проекта.

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

Искусство управления IT-проектами, 2-е изд

Reading time4 min
Views26K
Издательство Питер решило вспомнить о хорошей, но забытой книге Скотта Беркуна «Искусство управления IT-проектами, 2-е изд.»

image

Вот, что говорит сам автор о своей книге:


«С годами созидательного труда и сопоставления своего личного опыта с опытом других менеджеров, программистов и проектировщиков, я неплохо освоил искусство управления проектами, которое включает в себя подходы к руководству командами, работу над идеями, организацию работы над проектами, выдерживание рабочего графика, улаживание конфликтных ситуаций и достижение конкретных результатов даже перед лицом серьезных испытаний и неблагоприятно складывающейся обстановки. Несмотря на широкое толкование названия этой книги, большую часть своего рабочего опыта я приобрел в технической области, работая, в частности, в корпорации Microsoft. Я проработал в этой корпорации с 1994 по 2003 год, возглавляя команды специалистов, работающих над такими проектами, как Internet Explorer, Microsoft Windows и MSN. Несколько лет я проработал в группе совершенствования разработок корпорации Microsoft, отвечая за обучение и консультации команд в рамках всей компании, и довольно часто получал приглашения выступить с докладами на публичных конференциях, в корпорациях и университетах. Большинство советов, уроков и историй, приводимых в этой книге, являются плодами этого опыта работы. Хотя у меня за плечами богатое прошлое разработчика программного обеспечения и веб-приложений, при работе над книгой я расширил область исследований, обратившись к источникам и технологиям, выходящим за рамки разработки и управления. В книге содержится много полезных сведений для людей, принадлежащих миру бизнеса. Я убежден, что трудности в организации, руководстве, разработке и производстве имеют много общего, независимо от области деятельности. В процессе изготовления тостеров, строительства небоскребов, производства автомобилей, создания веб-сайтов и программных продуктов во многом приходится сталкиваться с одними и теми же трудностями, и эта книга написана в первую очередь о том, как эти трудности преодолеть.В отличие от некоторых других книг о руководстве проектов».

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

Бесплатная электронная книга на русском языке “Знакомство с Windows Azure для ИТ-специалистов”

Reading time2 min
Views16K


Уважаемые коллеги, ИТ-профессионалы! Мы с радостью представляем вам электронную книгу Знакомство с Windows Azure для ИТ-специалистов (.pdf), которая поможет вам получить информацию об облачной платформе Windows Azure и размещении в облаке инфраструктуры предприятия. Книга специально была переведена на русский язык и доступна для загрузки совершенно бесплатно.

Загрузить книгу можно с нашего портала http://AzureHub.ru (.pdf)

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

Эта книга будет интересна и новичкам, которые еще не работали в Windows Azure, и опытным пользователям, которые уже внедрили эту платформу в своей компании.
Читать дальше →

Наш чек-лист для форм на сайтах

Reading time6 min
Views88K
Это вторая часть наших чек-листов. В первой мы подробно разобрали требования к фильтрам. В отличие от фильтров, требования к пользовательским формам более универсальны. Однако нам потребовалось несколько жарких дискуссий, чтобы выработать более-менее единый формат. Видео с HolyWarModeOn рассказывает о типовых ошибках юзабилити в проектах. Сразу под роликом ищите подробный чек-лист для форм на сайте.



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

Взламываем D-Link DSP-W215 Smart Plug. Снова и опять

Reading time3 min
Views9.8K
Вот мы снова и опять.
image

В последнем эксплоите к DSP-W215 я говорил, чтобы функция get_input_entries не падала, нужно использовать имя «storage_path» в POST-запросе. Так нужно было сделать из-за того, что есть еще одно переполнение буфера, на этот раз в функции get_input_entries, которую вызывает get_input_entries, если имя пост параметра отлично от «storage_path» или «path»:
image

В функцию replace_special_char передается один аргумент — указатель на обрабатываемое POST-значение:
image
Читать дальше →

Межличностная грыжа или Что общего у климата в коллективе и проблем с позвоночником

Reading time16 min
Views12K
Всё в нашей жизни подчинено общей логике, функционирует по одним законам, следует одинаковым правилам. Эту истину пару недель назад поведал мне мой первый начальник, ныне мой хороший друг. Привёл простой пример из личного опыта, сравнив структуру армии со структурой любого предприятия. Конкретно под сравнение попала такая категория как команда и её размеры, оптимальные для эффективного управления. Не без оснований он, мой товарищ, заявил, что управлять группой больше 8 человек крайне сложно, если не невозможно. И провёл аналогию с самой маленькой армейской единицей. Смотрю Википедию: и правда, в звене 3-8 человек.

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

PHP-расширение dom_varimport: быстрое преобразования вложенных массивов в DOMDocument

Reading time3 min
Views7.8K
Некоторые проекты используют XSLT в качестве основного «движка» шаблонов. Помимо известных недостатков XSLT (например, его многословности, относительной медлительности и т.д.) у него есть и преимущества: «стандартность» языка, его идеология отсутствия «побочных эффектов» и pattern matching, возможность при необходимости вызывать методы helper-классов из шаблонов (через exslt-расширение). Какое-то время назад я выкладывал библиотеку ShortXSLT, позволяющую вместо громоздких <xsl:value-of select="/root/abc"/> и <xsl:choose>...</xsl:choose> писать просто {/root/abc} и {if...}...{elseif}...{/if} без потери производительности, так что проблема многословности отчасти решается.

Но сейчас речь не о преимуществах и недостатках XSLT (я уверен, и противники, и сторонники этой технологии найдутся в изобилии). Я бы хотел описать один прием, который удобно применять в существующих проектах с XSLT-шаблонами, и привести ссылку на библиотеку, реализующую данный прием с хорошей производительностью.

Передаем данные в XSLT, минуя генерацию текстового представления XML

Представьте, что у нас есть контроллер, генерирующий некоторый вложенный PHP-список объектов для отображения на странице. Он должен этот массив преобразовать в XML, который потом пойдет на вход XSLT-шаблону. Хорошо бы, чтобы данное преобразование из структур PHP в XML выполнялось не вручную в каждом контроллере, а был некоторый промежуточный слой абстракции, который умеет применять XSLT-шаблон прямо к PHP-данным, минуя текстовое XML-представление. Так мы уменьшим вероятность ошибок, да и письмо сократится. Мы сможем работать с XSLT-шаблонами напрямую, минуя XML-представление данных.

Некоторое время назад я написал на Си PHP-расширение dom_varimport (также выложено на GitHub). Оно содержит одноименную функцию, на вход которой подается объект DOMDocument и PHP-массив любой вложенности. Функция заполняет переданный ей DOMDocument XML-представлением входного массива, и делает она это очень быстро — примерно в 20 раз быстрее, чем делал бы код, написанный на чистом PHP. Большой документ размером около 1 МБ с тысячами вложенных свойств и объектов формируется примерно за 1-2 миллисекунды.

Например, вызов:
Читать дальше →

Перевод legacy-проекта на Dependency Injection. Путь Ситха

Reading time8 min
Views14K
Внесу и свой вклад в тренд темного программирования.
Многим из вас знакома дилемма: использовать ли DI в своем проекте или нет.
Поводы перехода на DI:
  • создание развитой системы авто-тестов
  • повторное использование кода в различном окружении, в том числе в различных проектах
  • использование 3rd-party библиотек, построенных на DI
  • изучение DI
Доводы не использовать DI:
  • усложнение понимания кода (поначалу)
  • необходимость конфигурирования контекста
  • изучение DI

Допустим, у нас есть большой рабочий проект, принято решение: переводить на DI. Разработчики чувствуют свой потенциал, уровень мидихлориан в крови зашкаливает.

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

Если проект большой и в нем много разработчиков, одним коммитом вряд ли удастся сделать такой рефакторинг. Поэтому мы используем несколько плохих практик, упростив переход, а затем от них избавимся.
С чего начать?

Исполнение SSH-команд на сотнях серверов с помощью Go

Reading time5 min
Views36K

О чём статья


В этой статье мы с вами напишем простенькую программу на Go (в 100 строк), которая может исполнять команды через протокол SSH на сотнях серверов, делая это достаточно эффективно. Программа будет реализована с помощью go.crypto/ssh — реализации SSH протокола авторами Go.

Более «продвинутая» версия программы, написанной в этой статье, доступна на гитхабе под названием GoSSHa (Go SSH agent).
Читать дальше →

Маркетинг головного мозга. Делаем карту сайта через SWOT-анализ, маркетинговое послание и УТП

Reading time9 min
Views28K

Маркетинга нет...



                                                    Артемий Лебедев
                                                    $115. О маркетинге
                                                    11 июля 2005

                                                               Маркетинга не существует.

                                                    http://www.artlebedev.ru/kovodstvo/sections/115/


Парадокс. С каждым днем мы в нашей компании все более погружаемся в интернет-маркетинг. И тем не менее я согласен с Лебедевым в тезисе из эпиграфа. Нету там ничего твердого и основательного. Во что погружаемся — непонятно. Немного психологии, немного аналитики, немного веб-технологий — такой жиденький супчик. На голову вылить — в волосах не застрянет. На толковое образование не тянет. Если человек говорит “я по образованию маркетолог”, сразу возникает ощущение платного вуза из подворотни и неуместных понтов. А в письмах предсказуемо не хватает запятых, зато много псевдо-деловых фраз типа “пантон доллара”, “надо брифовать” и “сбрасывайте ваши варианты, мы будем смотреть с руководством”.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity