Search
Write a publication
Pull to refresh
2
0
Александр @alexantr

Разработчик

Send message

Где таится история космоса

Reading time7 min
Views104K
Надеюсь все знают про НПО им. С.А. Лавочкина – предприятие которое с 1965 года реализует все межпланетные миссии СССР и России. По крайней мере, наверняка все слышали об их продукции: «Луна-3», «Луна-9», «Луна-16», «Луноход», «Марс-3», «Марс-5», «Венера-7», «Венера-13», «Вега», «Фобос-Грунт», «Радиоастрон», «Электро-Л»… Как всякое предприятие космической отрасли оно находится под режимом секретности, и даже в музей можно попасть только по предварительной заявке и в составе групповой экскурсии.

Всего месяц назад я с удивлением узнал, что в НПОЛ, помимо музея, еще есть загадочное место под ироничным названием «Ангар 18».



В отличие от американского аналога, он скрывает не инопланетные корабли, а земные. Но богатство коллекции, собранной на незначительной площади, уверенно может конкурировать с ныне разгромленным павильоном «Космос» на ВДНХ. Увидев такое космическое изобилие, я поначалу был просто ошеломлен. Потом узнал, что Луноход – это ходовая модель; «Венера-7» — технологический макет, проходивший термовакуумные испытания перед полетом в 1970 году; и почти все модели содержат элементы, которые создавались для реальных аппаратов, успехами которых я вдохновлялся еще в детстве. Короче, состояние шока отпустило далеко не сразу. Но обо всем по порядку.
Читать дальше →

Как сверстать веб-страницу. Часть 1

Reading time13 min
Views1.3M
Уважаемый читатель, этой статьей я открываю цикл статей, посвященных вёрстке.
В первой части будет описано, как это сделать с помощью стандартных средств на чистом HTML и CSS. В последующих частях рассмотрим как сделать тоже самое, но с помощью современных фреймворков и CMS.

Часть 1. Верстка стандартными средствами


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

Итак, давайте приступим. В качестве нашего подопытного мы возьмем бесплатный psd шаблон Corporate Blue от студии Pcklaboratory.
Читать дальше →

Крошечная змейка на JavaScript (30 строк кода)

Reading time2 min
Views112K
Прочитав статью про excel в 30 строк, я загорелся глупой идеей — написать что-нибудь на 30 строк. Не долго думая остановился на змейке.

Особенности:
  • 30 строк необычного JavaScript (задача была уместить в 30 строк, так что код похлеще чем на ночных хакатонах)
  • Использованные библиотеки: отсутствуют



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

Функции в PHP 5.6 — что нового?

Reading time10 min
Views60K

Слева направо: Rasmus, Build 5.4, Version 5.5, Relise 5.6

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

  • Новый синтаксис для функций с переменным числом аргументов и радостный отход в историю мороки с func_get_args():
    function fn($reqParam, $optParam = null, ...$params) { }
    

  • Опускаем указание значений для необязательных аргументов:
    function create_query($where, $order_by, $join_type = '', $execute = false, $report_errors = false) { }
    create_query('deleted=0', 'name', default, default, /*report_errors*/ true);
    

  • Импорт функций из пространства имён:
    use function foo\bar\baz;
    baz();
    

  • Исключения вместо набивших оскомину фатальных ошибок:
    <?php
    function call_method($obj) {
        $obj->method();
    }
    
    call_method(null); // oops!
    
    try {
        call_method(null); // oops!
    } catch (EngineException $e) {
        echo "Cool Exception: {$e->getMessage()}\n";
    }
    

  • Добавление модификатора deprecated:
    deprecated function myOldFunction() { }
    

  • Вызов методов и доступ к свойствам создаваемого объекта:
    new foo()->xyz;
    new baz()->bar(); 
    

Большинство из приведенных предложений пока находятся на стадии обсуждения. Но среди них уже есть утверждённые и даже реализованные.

Также искушённого читателя ждёт эксклюзив: изучая чужие умные мысли, я и сам решился написать собственный RFC. Сейчас вы не увидите его в списке предложений, так как на данный момент он находится на самом начальном этапе — на рассылке internals@lists.php.net.

А начну обзор с RFC, который уже реализован и гарантированно попадает в релиз 5.6.

Синтаксис для функций с переменным числом аргументов

Реализовано в PHP 5.6, Принято 36 голосами против 1

И сразу в бой: рассмотрим код, который показывает как переменный аргумент ...$params будет заполняться в зависимости от количества переданных аргументов:
function fn($reqParam, $optParam = null, ...$params) {
    var_dump($reqParam, $optParam, $params);
}
 
fn(1);             // 1, null, []
fn(1, 2);          // 1, 2, []
fn(1, 2, 3);       // 1, 2, [3]
fn(1, 2, 3, 4);    // 1, 2, [3, 4]
fn(1, 2, 3, 4, 5); // 1, 2, [3, 4, 5]

$params будет пустым массивом, если число переданных аргументов меньше, чем число объявленных. Все последующие аргументы будут добавлены в массив $params (с сохранением порядка). Индексы в массиве $params заполняются от 0 и по возрастанию.
Читать дальше →

Скриншоты без десктопа на HTML5

Reading time4 min
Views28K
Практически каждый день я пользуюсь почтой Gmail, но вот недавно заметил, что если сделать скриншот экрана (www.take-a-screenshot.org), то простым нажатием Ctrl + V этот скриншот можно скопировать прямо в текст письма Gmail. Это работает везде, но естественно кроме IE. Заинтересовавшись вопросом как это происходит нагуглил следующий пост на Stackoverflow. Под сильным впечатлением от возможностей HTML5 clipboardData решил сделать простенький портал, где без всяких Desktop приложений любой юзер может загрузить скриншот просто скопировав его.
Под катом исходники с объяснением и примерами

Гик порн 3: Как «открыть» микросхему и что у неё внутри? Советские Z80, TTL логика, FPGA Altera Cyclone I и другие

Reading time4 min
Views76K
Продолжаем ковырять внутренности микросхем. Для тех кто пропустил первые 2 серии — вот раз, вот два.

К553УД1А — один из первых советских интегральных операционных усилителей.
Этот экземпляр был произведен в марте 1978.
Читать дальше →

Продуктивное использование PHPStorm

Reading time7 min
Views328K
В процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.

Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
Что ж там такое?

Линейная алгебра для разработчиков игр

Reading time19 min
Views796K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →

Делаем свой персональный Skype, пошаговая инструкция создания WebRTC приложения

Reading time4 min
Views139K
WebRTC

WebRTC позволяет реализовать real-time аудио/видео связь через браузер (firefox и chrome).

В этом топике я расскажу как реализовать простейшее WebRTC приложение.
Читать дальше →

Деобфускация бэкдора без единого буквенно-цифрового символа

Reading time5 min
Views32K
Месяц назад я увидел интересный пост про PHP-шелл без единого буквенно-цифрового символа и сильно захотел понять, что же он делает. Кому интересно — под кат!
Читать дальше →

Фракталы в простых числах

Reading time3 min
Views156K


Я обнаружил этот фрактал, когда разглядывал интерференцию волн на поверхности речки. Волна движется к берегу, отражается и накладывается сама на себя. Есть ли порядок в тех узорах, которые создаются волнами? Попробуем найти его. Рассмотрим не всю волну, а только вектор ее движения. «Берега» сделаем гладкими, для простоты эксперимента.

Эксперимент можно провести на обычном листке в клеточку из школьной тетради.
Читать дальше →

Единственный способ

Reading time4 min
Views71K
Ральф вошел в помещение ангара №1 в 8:30 утра, как делал это ежедневно уже несколько лет. Его взгляд сразу же устремился к центру зала, где на постаменте, окруженный множеством приборов и паутиной кабелей, находился смысл его работы. Собственно говоря, не только его — миллионов людей по всему миру. Первый инопланетный корабль. Полтора десятилетия назад он совершил аварийную посадку и был частично поврежден, оставив, однако, весьма много материала для изучения. Настоящим чудом стало то, что политики и учёные после этого события не переругались, а смогли организовать эффективное изучение свалившегося с небес подарка. На реверс-инжиниринг корабля были брошены лучшие умы планеты. Ральф, возглавляющий группу изучения приборов связи, стоял в ангаре и в который раз любовался стремительной, похожей на стрелу в полёте, формой корабля. Он вспоминал всё, что случилось за последние годы.
Читать дальше →

Псевдографика в консоли Unix/Linux. Немного больше User Friendly чем вы могли себе позволить

Reading time14 min
Views33K
Привет! Бывает, хочется забыть о «скучной» консоли, разбавить ее хоть капелькой интерактива, особенно если часто приходиться делать одни и теже операции и тем более если вы пишите для облегчения своей участи скрипты. Итак, псевдографика. За мной читатель, я покажу тебе такую консоль!
Читать дальше →

Исследуем производительность JOIN в MySQL

Reading time4 min
Views38K
Я думаю, ни для кого не секрет, что JOIN считается достаточно дорогой операцией, и многих начинающих программистов (которые юзают MySQL) любят запугивать, что JOIN — это плохо, и лучше всего обойтись без них, если есть возможность.

Давайте исследуем этот вопрос более подробно и посмотрим, действительно ли JOIN — это плохо, и когда вообще стоит задумываться об этом.
Читать дальше →

Атака на отказ в обслуживании методом slow HTTP POST

Reading time5 min
Views42K
Доброго времени суток, уважаемые хабровчане!
Я хочу рассказать вам об относительно новом и интересном, на мой взгляд, механизме атаки на отказ в обслуживании — Slow HTTP POST.
Поиск показал отсутствие на хабре информации по теме, что несколько удивило меня, и я решил восполнить это досадное упущение. Тема не нова, но, как показали мои небольшие исследования, более чем актуальна. Забегая вперед, скажу, что полученные мной результаты позволяют говорить о существовании широко доступной технологии, позволяющей с одного компьютера с небольшим каналом «укладывать» небольшие и средние сайты, а при использовании нескольких машин с повсеместно распространенным сейчас скоростным доступом в Интернет причинить немало проблем и более серьезным проектам. Всех заинтересовавшихся покорнейше прошу пожаловать под хабракат.
Читать дальше →

Мультфильм на осциЛЛографе

Reading time1 min
Views117K
Потрясающая работа, проделанная умельцем.



Пока автор делал этот шедевр, он:
— получил кучу знаний по оптике и лазерам
— научился работать с ПЛИС (оно же FPGA)
— использовать USB2.0 на полной скорости (поток точек и тайминги идут по usb в плис)
— познакомился с Qt
— научился писать драйвера под Linux

Впечатляет.

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

Reading time17 min
Views313K

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

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

Как две недели?!

Reading time2 min
Views106K
Как это вам надо две недели на эту задачу? Что, правда? Вот на эту элементарную формочку с тремя полями и двумя кнопками? Две недели? Да вы надо мной издеваетесь, наверное! Давайте разбираться.

Что? Нужна ли валидация данных при вводе? Ну, конечно, нужна! И вообще, вот это поле лучше разбить на два, так понятнее. А вот в это добавить маску. А вот это — заменить на выпадающий список. Где брать варианты для этого списка? В базе на сервере, конечно. Как это их там нет? А, ну да, это же в другом проекте они у нас были… Ну, значит надо добавить. Взять там и добавить сюда. Сейчас я дам вам контакт разработчика того проекта — обсудите с ним. Он, правда, у нас уже не работает, но я думаю, вполне можно спросить что и как — он расскажет, скорее всего.

Мы всё обсудили? Нет? Что ещё?
Читать дальше →
12 ...
12

Information

Rating
Does not participate
Location
Гродно, Гродненская обл., Беларусь
Date of birth
Registered
Activity