Search
Write a publication
Pull to refresh
56
0
Илья @WST

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

Send message

Типичный день под присмотром Алисы

Reading time6 min
Views135K
Недавно вышла новая версия комплекса MajorDoMo, о котором на Хабре была обзорная статья, и я решил, что было бы хорошо показать на живом примере, как оно работает. Возьмём самый обычный будний день и посмотрим, как Умный дом себя вёл в его течении.

Картинка для привлечения внимания

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

Приключения в математическом лесу фрактальных деревьев

Reading time8 min
Views37K


Перевод поста Bernat Espigulé Pons, «Adventures into the Mathematical Forest of Fractal Trees».
Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь.


Без сомнения, золотое сечение и в наше время представляется одним из самых таинственных, волшебных и поразительных чисел, которые известны людям: Prikljuchenija-v-matematicheskom-lesu-fraktalnyh-derevev_1.png. (в языке Wolfram Language и системе Mathematica ему соответствует символ GoldenRatio). Как вы увидите из этого поста, это число действительно имеет множество интересных свойств, которые можно исследовать, причём некоторые из них рассматривались ещё в работах учёных Древней Греции, таких как Пифагор и Евклид, другие в работах итальянского математика Леонардо Пизанского, более известного под прозвищем Фибоначчи, или Иоганном Кеплером — астрономом эпохи Возрождения. Хотя это может прозвучать странно, в этом посте я расскажу вам о новых геометрических объектах, связанных с золотым сечением, которые осветили мне путь, когда я пытался отобразить неизвестную ранее область Математического Леса.
Читать дальше →

Эталонному килограмму исполнилось 125 лет

Reading time2 min
Views57K

Международный прототип без защитного чехла

В сентябре 2014 года исполняется 125 лет с момента появления на свет международного прототипа килограмма. Решение о создании эталона было принято на Генеральной конференции мер и весов 7-9 сентября 1889 года в Париже.
Читать дальше →

Сделай сам! Аэросъёмка с воздушного змея, обучающий ролик KAPing

Reading time2 min
Views82K
Хочешь увидеть свой дом с высоты птичьего полёта? А полетать над лесами и городами? В этом посте я расскажу о любительской аэросъёмке. Покажу, как без особых затрат, заснять фото и видео с воздушного змея.

image

Змей и камера

Змей тут подойдёт любой, лишь бы летал. Я взял самого дешевого, за 7 гривен. А камера желательно не сильно тяжелая. Подойдёт фотоаппарат или мобильник. Мой змей с лёгкостью подымал телефон NOKIA, весом чуть больше 100 грамм, даже в небольшой ветер!

image

Но не всё так просто !

Камера в воздухе сильно расшатывается! Как только я не крепил её к змею, изображение получалось сильно дрожащим, а фотки смазанными. После нескольких пробных запусков я понял, что камеру нужно крепить не к самому змею а к леске. Камера должна быть не ближе чем 30 метров от змея, иначе её будет сильно расшатывать. Тебе наверняка захочется запустить камеру высоко в небо! Поэтому лески лучше купить сразу целый километр. Подойдёт 0,4 или 0,6 рыболовная. А сматывать её лучше на катушку от старой удочки, прикреплённую к шуруповёрту. Во первых она путаться не будет, а во вторых не будет расшатываться леска, как при сматывании руками. Движения получаются плавными, а тряска минимальная. Посмотри мой пробный видео ролик!


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

Автомобильное лекарство на службе компьютерной техники: еще один способ чистить контакты

Reading time4 min
Views72K
Ситуация, знакомая каждому. Вы смотрите любимое кино. На самом интересном месте экран ТВ гаснет. Вместо картинки сообщение: «Проверьте сигнальный кабель», «No signal», «Проверьте питание подключенных устройств» и т.п. Диагностика в таком случае несложная:

  1. несколько раз вынуть-вставить кабель из разъемов на обоих концах;
  2. если не заработало, попробовать другой кабель;
  3. если другой кабель не помогает, попробовать выяснить, на каком конце проблема: подключить телевизор вместо монитора к ПК; подключить монитор от ПК к медиаплееру и т.д.

Если после такого опыта ничего не поменялось, большинство пользователей отправляются в магазин покупать оказавшееся неисправным устройство: телевизор, монитор, медиаплеер и т.д. Есть еще решения «серединка на половинку»: например, вместо HDMI подключить устройство по композиту, DVI, VGA – у кого что имеется. Но все-таки это полумеры: вам не даст покоя мысль, что девайс неисправен, что вот-вот в нем сгорит что-нибудь еще и т.д. Все равно вскоре придется его менять.

А может, не придется?
Читать дальше →

folly::fbvector — улучшенный std::vector от Facebook

Reading time6 min
Views26K
Folly — это открытая С++ библиотека, разрабатываемая Facebook и используемая им во внутренних проектах. С целью оптимизации расходов памяти и процессорных ресурсов библиотека включает собственные реализации некоторых стандартных контейнеров и алгоритмов. Одной из них является folly::fbvector — замена стандартного вектора (std::vector). Реализация от Facebook полностью совместима с оригинальным интерфейсом std::vector, изменения всегда не-негативны, почти всегда измеримы, часто — существенно, а иногда даже грандиозно влияют на производительность и\или расход памяти. Просто включите заголовочный файл folly/FBVector.h и замените std::vector на folly::fbvector для использования его в своём коде.

Пример


folly::fbvector<int> numbers({0, 1, 2, 3});
numbers.reserve(10);
for (int i = 4; i < 10; i++) {
  numbers.push_back(i * 2);
}
assert(numbers[6] == 12);


Мотивация


std::vector — устоявшаяся абстракция, которую многие используют для динамически-аллоцируемых массивов в С++. Также это самый известный и самый часто используемый контейнер. Тем большим сюрпризом оказывается то, что его стандартная реализация оставляет достаточно много возможностей по улучшению эффективности использования вектора. Этот документ объясняет, как реализация folly::fbvector улучшает некоторые аспекты std::vector. Вы можете воспользоваться тестами из folly/test/FBVectorTest.cpp чтобы сравнить производительность std::vector и folly::fbvector.
Читать дальше →

Подарок от VmWare или как заблокировать свой сервер на хостинге

Reading time3 min
Views28K
 jail     Вернувшись в субботу вечером с увеселительной прогулки за грибами, я обнаружил странное состояние ноутбука:
— интернет не работает;
— VPN с сервером установлен и работает.
Отключив VPN, я немедленно получил «письмо счастья» от Hetzner:
Dear Sir or Madam
Your server with the above-mentioned IP address has carried out an attack on another server on the Internet.
This has placed a considerable strain on network resources and, as a result, a segment of our network has been adversely affected.
Your server has therefore been deactivated as a precautionary measure.
A corresponding log history is attached at the end of this email.


    На сайте robot.your-server.de было указано, что был заблокирован только один IP из трех, и основной функционал сервера работает, что немного облегчало задачу.
    Что это? Сервер поломали? Неожиданный эффект моего теста с открытым ресолвером? Мой ноутбук подцепил malware или botnet?
Читать дальше →

Можно ли «сломать» интернет?

Reading time7 min
Views81K
Технологический прогресс за последний век привёл к интересному парадоксу: люди не могут представить своей жизни без того, существование чего не могли себе даже вообразить 30-40 лет назад. В сфере информации когда-то это было радио, следом за ним пришло телевидение, а там и интернет подоспел. Да настолько плотно подоспел, что маленьких детей перестали ставить в угол, им просто отключают интернет. А моя 60-летняя мама регулярно смотрит на планшете прогнозы погоды, новости и видеоролики по уходу за собаками на YouTube.

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



По некоторым данным именно так выглядит карта современного интернета. Изначально сеть задумывалась децентрализованной и гибко маршрутизируемой. В случае разрыва одного соединения данные пойдут в обход, по другим. Глядя на карту, сложно представить, по каким точкам нанести удар, чтобы всё перестало работать. Но давайте всё же немного пофантазируем о том, какие действия, процессы и события, искусственные и природного характера, могли бы серьёзно нарушить работу этого сложного организма (не забывая о том, что не всё из этого такие уж фантазии).
Читать дальше →

«Порт Сингапур»

Reading time5 min
Views31K


Удивительный по своей красоте и неповторимости город-государство Сингапур, вальяжно разместившийся на 58 островах в самом сердце Юго-Восточной Азии, сейчас занимает в мире лидирующие место по многим показателям: ВВП на душу населения, легкости ведения бизнеса, низкому уровню коррупции, персональной безопасности граждан, транзиту товаро- и пассажиропотоков, экономической активности, производству высокотехнологичной продукции. Своего экономического благосостояния государство достигло во многом благодаря своей развитой транзитной инфраструктуре. Сингапур сейчас известен прежде всего как порт — перевалочная база для грузов и пассажиров со всего мира. В свою очередь, неудержимый рост ИТ сектора, который последние десятилетия так будоражит привычный уклад жизни человечества, также не обошел стороной этот воистину сказочный остров о котором далее пойдет речь. Что из себя представляет Сингапур сейчас для мировой телекоммуникационной инфраструктуры и к чему в дальнейшем стремится этот высокотехнологичный регион? Сможет ли в будущем он стать одним из крупнейших «портов» по обработке и дальнейшему транзиту самого ценного груза нового столетия — информации?
Читать дальше →

Выбираем генератор статических сайтов

Reading time8 min
Views77K
облачное хранилище

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

Первая публикация в этом цикле будет посвящено сравнительному анализу генераторов статических сайтов.
Читать дальше →

Грозный пират утонул из-за протекающей капчи

Reading time1 min
Views85K
image

Как вы можете помнить, в октябре 2013 ФБР закрыли Silk Road и нашли его администратора — Росса Уильяма Уильбрихта. Многие строили догадки, как же так могло получиться, как такой серьезный человек мог так просто деанонимизироваться.

Оказалось все чрезвычайно просто: Росс не настроил свой сервер для выхода в обычный интернет через Tor (запросы в интернет шли напрямую), а капча, которая использовалась на странице логина, подгружала данные из интернета, таким образом раскрывая не только факт показа капчи, но и IP-адрес сервера, на котором хостится Silk Road.
Читать дальше →

Редактор CSS Shapes для Chrome

Reading time1 min
Views32K


Спецификации CSS Shapes позволяют красиво оформить обтекание текстом на веб-странице. Средствами CSS можно создать произвольную форму, но это обычно весьма трудоёмкая задача. Новое расширение CSS Shapes Editor для Chrome кардинально облегчает процесс. Это интерактивный редактор CSS Shapes, где контуры указываются простым перетягиванием точек с помощью мыши.
Читать дальше →

Обработка POST запросов AngularJs в Symfony2

Reading time2 min
Views17K
Примечание
Давненько уже читал пост на хабре, о сабже в контексте php, и все руки не доходили на Symfony2 привести это в какой-то красивый вид, а тут в недавнем дайджесте наткнулся на простое решение, которое здесь и представлено.


Использование Symfony2 и AngularJs в связке является хорошей идеей, но есть одна проблема — решение из коробки обладает проблемой в коммуникации. В этом посте будет рассказано о том, как автоматически декодировать JSON-запросы и использовать полученные данные при помощи Request Symfony используя библиотеку symfony-json-request-transformer (на самом деле всего-то один класс).
Мокрая киска под катом

Разработчика игры чуть не арестовали за набросок на доске

Reading time1 min
Views54K

Доска с наброском игры «Глобальная термоядерная война»

Забавный случай произошёл с английским гейм-девелопером Генри Смитом (Henry Smith) из Бристоля. Он сейчас работает над многопользовательским симулятором атомной войны с использованием Google Maps API. Несколько дней назад менеджер жилого дома, где Смит снимает квартиру, посетил его жилище с запланированной проверкой. Вскоре агент по недвижимости перезвонил разработчику и сообщил, что у инспектора возникли определённые опасения в связи с рисунком, который он увидел на доске.

На рисунке изображена схема ядерной атаки на Вашингтон.
Читать дальше →

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

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

Задачи

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

Естественный отбор — враг бота

Reading time1 min
Views68K
Интересный баг только что отловили. Рассказываю.

Имеем сервис с капчами. Чтобы уменьшить время отклика логично генерировать картинки по случайному коду в свободное время в час наименьшей нагрузки. Так и делаем — ставим в крон задачку, делаем 100500 капч (картинка + код в базе) и в течение дня их показываем. На тот случай если прегенерированные капчи все-же закончатся, делаем режим аварийного полета — если отгаданная и, в связи с этим, убираемая из базы капча уменьшает общее число капч до опасного уровня (например, остается меньше 50), то генерируем новую капчу вместо убранной.

Казалось бы, простая и рабочая схема. Так и было до недавнего времени.
Читать дальше →

Прошивка и программирование ATtiny13 при помощи Arduino UPD 17.03.2016

Reading time3 min
Views319K


Всем привет. Уже давно появился способ программировать маленькие, дешёвые, экономичные к питанию и доступные микроконтроллеры ATtiny13A.

Вот собственно всё то что ниже, только в видео формате:



Сегодня расскажу, как я зашиваю Arduino'вские скетчи в ATtiny13A.
Читать дальше →

Путешествие по Стеку. Часть 1

Reading time7 min
Views98K


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

Малоиспользуемые, но от этого не менее прекрасные возможности LESS

Reading time5 min
Views35K
Данный пост навеян коментарием уважаемого хабраюзера SerafimArts о том, что LESS много чего не умеет. Хочется развеять эти крамольные заявления и заодно показать, каким прекрасным может быть LESS, если правильно его готовить.

Примечание: некоторые примеры «из жизни» в данной статье предоставлены для тех людей, кто по каким-то причинам (вплоть до религиозных) не использует Autoprefixer.

Примечание 2: для всего, что написано ниже используется последняя версия LESS, потому что нет вообще ни одной причины её не использовать.



Слияния


Они же объединения, они же мерджи (Merge). Используются, если вам нужно что-нибудь присоединить через пробел или через запятую. Транзишны, трасформы, множественные бэкграунды, тени (простите за русское слово: бокс-шадоуы звучит как-то неласково) ликуют. Лучше всего за меня скажут примеры.
Смотреть примеры

3 новых JavaScript API, которые вам стоит узнать

Reading time4 min
Views28K
Перевод статьи «3 New JavaScript APIs You May Want to Follow», Aurelio De Rosa из портала SitePoint.

Если вы постоянный читатель SitePoint, и возможно, читаете мои заметки, то вы знаете, что я написал множество статей о новых HTML5 и JavaScript API. До сих пор я писал заметки об API, которые вы можете использовать прямо сейчас, в том числе с использованием полифилов.

Сегодня я решил нарушить это правило и описать вам несколько API на ранней стадии разработки. Эти технологии настолько свежи, что 2 из 3 были представлены всего несколько дней назад. Поэтому они пока не могут быть использованы. Однако, если вам интересно, что они позволят сделать, вы можете почитать спецификации и написать, что бы вы хотели в них улучшить.

Давайте же, без лишних церемоний, начнем!
Читать дальше →

Information

Rating
Does not participate
Location
Красногвардейское, Адыгея, Россия
Date of birth
Registered
Activity