Как стать автором
Обновить
14
0
Alexander @saaivs

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

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

Я делаю свой квадрокоптер. Часть 1. Уравнения динамики

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

Оглавление


1. Уравнения динамики

Введение




Давным-давно я написал следующий комментарий: Всё.
После такой новости сажусь делать свой квадрокоптер. А то вон все делают, а я нет.
Не, ну а что.
Всегда хотел, чтобы у меня была какая-нибудь летающая штука. Были 2 вертолета радиоуправляемых. Но кончилось это плохо.
Я решил делать свой квадрокоптер. Как это кончится — посмотрим. Я не буду использовать какие-либо готовые полетные контроллеры, все запрограммирую самостоятельно. И постараюсь этот процесс описать в цикле статей. Сейчас представляю вашему вниманию первую часть. В ней будет бегло показано то, какие уравнения динамики скрываются внутри квадрокоптера.
Итак, поехали.

Немного уравнений и еще меньше текста
Всего голосов 121: ↑110 и ↓11+99
Комментарии133

HTML 5 Notifications API

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

Привет, Хабр. В этой статье я расскажу о HTML Notification API.

Какие возможности предоставляет Notification API


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

Поддержка в браузерах


  • Safari 6
  • Chrome 27
  • Firefox 22

Opera 15 beta не работает с Notifications API, несмотря на наличие конструктора Notification.
На мобильных платформах технология не работает.
В движке webkit есть старая нотация в виде webkitNotifications.

Как это работает


Цикл работы следующий:
  1. Получить разрешение на отправку;
  2. Правило фиксируется для сайта;
  3. Отправить уведомление.

Читать дальше →
Всего голосов 85: ↑82 и ↓3+79
Комментарии66

Защищаем персональные данные по новому приказу ФСТЭК. Больше ответов или вопросов?

Время на прочтение7 мин
Количество просмотров76K
15 мая 2013 года Минюст наконец-то зарегистрировал приказ ФСТЭК № 21 от 18 февраля 2013 «Об утверждении Состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных».

Почему же «долгожданный»? Да потому, что с момента выхода постановления Правительства РФ № 1119 (1 ноября 2012 года) любые вопросы по технической защите персональных данных оказались в неопределенно-подвешенном состоянии. Получилось так: новым постановлением отменены старые классы информационных систем персональных данных (ИСПДн) и введено понятие «Уровни защищенности ИСПДн», но как и чем защищаться в каждом конкретном случае как раз и должен был нам рассказать новый приказ ФСТЭК, который мы ждали «каких-то» полгода.

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

В этой статье я постараюсь простым языком проанализировать новый документ ФСТЭК России, взвесить его плюсы и минусы, а также постараться ответить на вопрос «что же теперь делать операторам персональных данных?».

Читать дальше →
Всего голосов 22: ↑18 и ↓4+14
Комментарии16

Database Mail: Почтовые рассылки прямо из Microsoft SQL Server

Время на прочтение7 мин
Количество просмотров74K
Многие знают, что начиная с версии 2005 в SQL Server существует встроенная возможность посылать электронные письма, которую администраторы баз данных часто используют для отправки срочных оповещений, например, при сбое задач, выполняемых по расписанию. Однако лишь немногим известно, что посылать письма в SQL Server можно прямо из SQL-запросов, функций и хранимых процедур. И если вы один раз уже настроили почту в SQL Server, то на отправку письма у вас уйдет всего минута, а целую рассылку можно организовать за 15-20 минут. Называется эта система Database Mail (DBMail), и сегодня я хотел бы поделиться опытом ее использования.
Читать дальше →
Всего голосов 18: ↑11 и ↓7+4
Комментарии31

jsFind. Выборка данных из массива объектов

Время на прочтение4 мин
Количество просмотров16K
Задача: Язык javascript. Имеется большой массив объектов. Нужно выбрать из массива некоторые объекты, в зависимости от значений свойств этих объектов.

Внимание! Всё нижеследующее возможно дикий баян и скорее всего стрёмный велосипед. Приведённый код опытным программистам отрубает пальцы, а неопытных разрывает в клочья.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии35

Резервное копирование и восстановление в PostgreSQL

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

Предположим что у нас есть postgresql в режиме потоковой репликации. master-сервер и hot-standby готовый заменить погибшего товарища. При плохом развитии событий, нам остается только создать trigger-файл и переключить наши приложения на работу с новым мастером. Однако, возможны ситуации когда вполне законные изменения были сделаны криво написанной миграцией и попали как на мастер, так и на подчиненный сервер. Например, были удалены/изменены данные в части таблиц или же таблицы были вовсе удалены. С точки зрения базы данных все нормально, а с точки зрения бизнеса — катастрофа. В таком случае провозглашение горячего hot-standby в мастера, процедура явно бесполезная…
Для предостережения такой ситуации есть, как минимум, два варианта…
А? О чем это он тут?!?
Всего голосов 25: ↑23 и ↓2+21
Комментарии13

Приручаем Ustream.tv для HD видеотрансляции на собственном сайте без показа рекламы

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


Предлагаю мой опыт организации живой HD видеотрансляции на сайте, который может быть интересен Вам благодаря следующим особенностям:

  • нулевые финансовые затраты и отсутствие рекламы
  • устойчивость к наплывам посетителей
  • видео высокой четкости

или хотя бы потому, что в нем есть немного хака. Если описанные особенности кажутся Вам, как минимум, взаимоисключающими — тогда прошу под кат!
Читать дальше →
Всего голосов 26: ↑19 и ↓7+12
Комментарии10

Лёгкий сайт или как посадить браузер на диету

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

А что если объединить профессионалов, работавших над крупными web проектами, чтобы создать исчерпывающее руководство по оптимизации front-end разработки?
И получить в результате не скучную инструкцию, а что то поинтереснее? А если позвать Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike Taylor (Opera), Renato Mangini (Google), и Sérgio Lopes (Caelum) чтобы собрать лучшие практики?

Именно это мы и сделали! Мы научим вас создавать быстрые сайты.

Zeno Rocha, руководитель проекта.


Читать дальше →
Всего голосов 193: ↑179 и ↓14+165
Комментарии80

Секционирование и «живые снимки» данных в PostgreSQL

Время на прочтение19 мин
Количество просмотров9.3K
Хотя тема секционирования уже поднималась ранее, я хочу к ней вернуться, чтобы рассказать о своем опыте решения этой задачи, возникшей в связи с необходимостью аналитической обработкой больших объемов данных. Помимо секционирования, я рассмотрю предельно упрощенную реализацию «снимков» агрегированных запросов, автоматически обновляемых при изменении исходных данных..
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии16

Git FTP на примере в Windows

Время на прочтение1 мин
Количество просмотров12K
Данный пост для тех, кто уже освоил немного GIT, и хочет чтобы его жизнь стала ещё проще, а производительность выше! Т.е. делать push сразу на FTP сервер, к которому отсутствует доступ SSH.

Для работы с консолью я использовал Git Bash.

Я разделил пост на несколько этапов:
  1. Установка Git-Ftp
  2. Проверка установленного Git-Ftp
  3. Настройка репозитория
  4. Использование, загрузка на FTP сервер
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии1

Изменение кодировки git репозитория

Время на прочтение3 мин
Количество просмотров12K
Привет. В силу специфики, на работе используется Linux с KOI8-R, все коммиты в git репозиторий осуществлялись в локальной кодировке. Через некоторое время было принято решение перекодировать репозиторий в UTF-8. В этой статье я хочу обсудить технологию изменения кодировки существующего git репозитория, а заодно и исправления некоторых ошибок допущенных в определенных коммитах.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

Захват видео с камеры и передача его по сети

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

Предисловие


Не так давно, возникла необходимость захвата видео с web камеры и передавать его по сети используя .Net.
Так как с подобной задачей я столкнулся впервые, то первым делом начал искать информацию по этому вопросу.
Как выяснилось, что в чистом .Net нет поддержки работы с web камерами. Перебрав несколько различных библиотек, свой выбор остановил на Aforge.net.

Aforge.net — это фреймворк для решения целого ряда задач, из которого нам понадобится библиотеки AForge.Video.

Захват изображения


Для захвата видео с устройства видео ввода существует класс AForge.Video.DirectShow.VideoCaptureDevice. Ему необходимо задать моникер устройства с которого будет происходить захват. Так же необходимо задать обработчик события NewFrame. Это событие возникает каждый раз, когда с устройства будет получен новый кадр, который и передается в обработчик в виде объекта Bitmap, где его уже можно обработать:
private void VideoSourceNewFrame(object sender, AForge.Video.NewFrameEventArgs eventArgs)
{
    var img = (Image) eventArgs.Frame;
    using (var ms=new MemoryStream())
    {
        img.Save(ms,ImageFormat.Jpeg);
       //Сохраняем изображение в массив байт, для последующего формирования mjpeg
        _bufImage = ms.ToArray();
    }
}

Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии8

Захабренный договор на разработку сайта, дизайна, софта. Версия 1.1

Время на прочтение18 мин
Количество просмотров245K
На сайте немало постов о том, какие условия нужно включать в договор на создание сайтов и программ (краткий список ниже), но нет договора в формате, который можно взять за основу для составления своего договора. Мы изучили условия из постов (спасибо авторам), подумали над ними, переработали и учли в предлагаемой на ваш суд форме договора. Так что договор пока можно считать частично «захабренным».


Договор авторского заказа
Всего голосов 158: ↑147 и ↓11+136
Комментарии124

Автопрефиксер — окончательное решение проблемы префиксов в CSS

Время на прочтение4 мин
Количество просмотров57K
Автопрефиксер — утилита нового поколения для добавления префиксов к экспериментальным свойствам из CSS 3. Она берёт с Can I Use последние данные о префиксах и популярности браузеров, читает ваш файл стилей, находит свойства и значения, которым действительно нужны префиксы и добавляет их.

Вы просто пишите обычный CSS:
a {
    transition: transform 1s
}


Автопрефиксер сам заменит нужные (и только нужные) свойства и значения (обратите внимание на -webkit-transform):
a {
  -webkit-transition: -webkit-transform 1s;
  -o-transition: -o-transform 1s;
  transition: -ms-transform 1s;
  transition: transform 1s
}


Эта утилита работает во время выкладки сайта на сервера (и на машине программиста во время разработки), так что не заметна для клиентов и не требует какой-то поддержки от браузеров.

Проблема


К сожалению текущие инструменты плохо решают задачу:
  • Писать вереницы свойств руками — очевидно плохое решение. Такой код невозможно читать, легко забыть поправить остальные свойства при редактировании.
  • В Sass и LESS вам нужно самому следить за актуальностью префиксов и копировать примеси из проекта в проект. К тому же примеси могут решить проблему только у свойств, а не у значений (например, calc()).
  • Compass или Bourbon уже лучше, там список примесей хранится централизовано и его легче держать актуальным (но практика показывает, что обычно в примеси добавляют все префиксы не следя за актуальностью). Проблема значений всё так же не решена.
  • Самая главная проблема Sass и LESS, что вам всё равно нужно постоянно думать «из CSS 3 это свойство или нет?» — и в зависимости от этого использовать примесь или нет. Эту проблему немного решил Stylus — у него синтаксис примесей не отличается от обычных свойств, так что префиксы добавляются невидимо. Впрочем, проблема актуальности и значений всё равно остались.
  • Есть ещё скрипты добавления префиксов прямо в браузере, например Prefix Free, но лучше всего обрабатывать стили на этапе разработки и выкладки, а не повторять обработку каждый раз в браузере клиентов.

Понятно, что языки препроцессоров не позволяют решить проблему полностью, нужен был фундаментально новый инструмент.
Читать дальше →
Всего голосов 72: ↑64 и ↓8+56
Комментарии81

Переносим функциональность bash в cmd.exe

Время на прочтение2 мин
Количество просмотров115K
Мне, как и многим из вас, работать с bash и стандартными утилитами Linux гораздо удобнее и приятнее, чем с cmd.exe. Однако, к сожалению, порой обстоятельства складываются так, что операционную систему выбирать не приходится. Например, в моём случае корпоративным стандартом является Windows 7. К счастью есть способ сделать жизнь линуксоида в командной строке Windows комфортнее, о нём и пойдет речь ниже.

Читать дальше →
Всего голосов 94: ↑83 и ↓11+72
Комментарии103

Нужна ли кастомизация для bootstrap?

Время на прочтение1 мин
Количество просмотров23K
imageВ своих проектах часто использую bootstrap. Он великолепен. И для того чтобы сделать его еще более универсальным у меня появилась мысль сделать сервис для его кастомизации. Прежде я конечно поискал аналоги и был приятно удивлен обилием ресурсов использующих bootstrap. Есть и сборники готовых тем. Нашел сервис который позволяет серьезно изменить внешность bootstrap'а. Но он немного перегружен деталями и для создания удобного варианта темы у меня должны быть заготовлены готовые цветовые палитры. Прикольно, но не очень юзабельно как по мне. Вот и решил я состряпать свой сервис с удобным и простым интерфейсом, который отдавал бы пользователю архив последней версии bootstrap с сохраненной цветовой схемой.
Читать дальше →
Всего голосов 48: ↑34 и ↓14+20
Комментарии49

Знакомимся с PayPal API

Время на прочтение13 мин
Количество просмотров87K
На данный момент, PayPal — это самая популярная платформа электронных платежей. Именно то, насколько легко можно открыть счет и начать получать на него средства, по сравнению с традиционными способами получения платежей, и является причиной #1 его запредельной популярности. Второй причиной, многие со мной согласятся, является мощный API, предоставляемый PayPal. В этом топике я по порядку разложу все способы и трюки, связанные с работой PayPal API, чтобы вы избежали проблем с его интеграцией.
Читать дальше →
Всего голосов 190: ↑182 и ↓8+174
Комментарии51

Впечатления от работы с Play! Framework 2.1 + Java

Время на прочтение13 мин
Количество просмотров62K
Шла четвёртая неделя тяжёлых боёв с Play! Framework 2.1 + Java. Победа неумолимо приближалась, но до полной капитуляции было далеко.
После обнадёживающих новостей про развитие Play! 2.1, например в LinkedIn, было решено попробовать его в одном новом проекте. Испытать его, так сказать, в деле. Что из этого получилось? Я бы сказал, что это была небольшая война между мной и Play! 2.1. Почему? Подробности под катом, а для нетерпеливых:

Краткий вывод

Для штурма надо было брать секретное оружие под кодовым названием Scala. Если встать лицом к лицу с Play! Framework 2.1 и крикнуть со всей силы: «Ты есть Scala-фреймворк!», то он испугается такой прямоты и скромно откроет свои двери в мир больших возможностей.
«Не знаете Scala?» — «Используйте Play 1.2».
«Хорошо разбираетесь в Scala?» — «Обязательно попробуйте Play 2.1. Но всё равно запаситесь терпением».

Подробные сводки с фронтов
Всего голосов 39: ↑36 и ↓3+33
Комментарии40

Высокопроизводительный NIO-сервер на Netty

Время на прочтение9 мин
Количество просмотров129K
Преамбула

Здравствуйте. Я являюсь главным разработчиком крупнейшего в СНГ сервера Minecraft (не буду рекламировать, кому надо, те знают). Уже почти год мы пишем свою реализацию сервера, рассчитанную на больше чем 40 человек (мы хотим видеть цифру в 500 хотя бы). Пока всё было удачно, но последнее время система начала упираться в то, что из-за не самой удачной реализации сети (1 поток на ввод, 1 на вывод + 1 на обработку), при 300 игроках онлайн работает более 980 потоков (+ системные), что в сочетании с производительностью дефолтного io Явы даёт огромное падение производительности, и уже при 100 игроках сервер в основном занимается тем, что пишет/читает в/из сети.

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

Здесь я постараюсь расписать серверную часть работы с сетью через Netty, может быть это кому-то будет полезно.
Читать дальше →
Всего голосов 76: ↑75 и ↓1+74
Комментарии64

Встречаем Veracity — новую распределенную систему контроля версий

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

Здравствуй, мой любознательный %username%!

Несколько месяцев назад я случайно наткнулся на еще одну перспективную систему управления версий — Veracity, о которой и хотел бы сегодня рассказать, чтобы тебе было что поковырять на выходных. Несмотря на то, что разработка Veracity идет уже больше года, на Хабре ее имя было лишь пару раз вскользь упомянуто в комментариях. Под катом тебя ждет краткое описание Veracity и ссылки, где можно получить более подробную информацию о ней.
Хочу!
Всего голосов 69: ↑63 и ↓6+57
Комментарии70
12 ...
15

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность