Pull to refresh
17
0

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

Send message

GCTD – Как привести творческие дела в порядок: как уместить тяжелый умственный труд в плотное расписание

Reading time7 min
Views10K
GCTD — Getting Creative Things Done.

Началось это несколько недель назад. Мне нужно было написать исследовательский отчет, предстояла важная, неоднозначная, трудная задача. В первую неделю я повторял себе, что на данный момент это моя наиважнейшая задача и обращался к ней при первой же возможности. Я постоянно чувствовал вину за то, что недостаточно времени уделяю написанию отчета. В одну из ночей в конце недели я заперся в офисе до 9 утра, уже совсем отчаявшись привести дела в порядок. Результат работы оказался практически бесполезным. У меня получилось 15 страниц беспорядочного текста (исследовательский отчет должен быть максимум 3-5 страниц), и охватить предстояло еще многое. Работа была запутанная и «тонула» в прилагательных.
Читать дальше →

SkyDrive в Windows 8

Reading time3 min
Views4.5K
Любопытна разница между Apple и Microsoft: если первая держит в страшном секрете любые подробности относительно своих продуктов, то вторая щедро делится подробностями относительно своих текущих и будущих проектов. Так сегодня президент подразделения Windows Стивен Синофски довольно детально описал будущую модель интеграции облачного сервиса SkyDrive в готовящуюся сейчас и активно ожидаемую Windows 8. По его словам этот вопрос представляется важным для корпорации постольку, поскольку подписчики сервиса, число которых составляет около 17 млн человек, хранят на SkyDrive 10 Птб информации, и это далеко не предел — на серверах почтового сервиса HotMail находится все 100 Птб и поэтому Microsoft вполне готова к масштабированию своих облачных продуктов в весьма широком диапазоне. В течении всего 2012 года — года выхода Windows 8 — Microsoft будет совершенствовать и улучшать возможности SkyDrive для того, чтобы он мог стать «жёстким диском для всего мира» (world’s hard drive).

Первое, о чём рассказал Синофски, довольно ожидаемо — встроенное приложение SkyDrive, как и все встроенные приложения Windows 8, будет обладать Metro-интерфейсом (оно уже содержится в Windows 8 Consumer Preview). Как оно выглядит, показано на скриншотах ниже:
Посмотреть скриншоты и читать дальше

Защита RDP по ГОСТ с помощью Рутокен ЭЦП. Двухуровневый TLS

Reading time4 min
Views28K
image

Протокол RDP является протоколом прикладного уровня и поэтому для его защиты идеально подходит TLS, который работает над транспортным уровнем.

В данном топике с помощью open source приложений OpenSSL и sTunnel мы защитим RDP-соединения по протоколу TLS c поддержкой российских шифрсьютов (GOST2001-GOST89-GOST89), клиентская аутентификация по ГОСТ-вым сертификатам будет проводиться аппаратно на борту USB-токена Рутокен ЭЦП с выработкой ключа согласования по схеме VKO GOST 34-10.2001. При этом ключ аутентификации является неизвлекаемым и его невозможно украсть. Так же Рутокен ЭЦП будет использоваться в качестве аппаратного ДСЧ.

Для случая аутентификации на терминальном сервере об Active Directory по сертификатам RSA мы обернем TLS по RSA в TLS по ГОСТ. Таким образом, мы получим двухуровневый TLS — RSA с клиентской аутентификацией будет идти внутри канала, защищенного ГОСТами.

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

Разбираем HTTP Range по стандарту

Reading time3 min
Views33K
В одном из проектов мне понадобилось разобрать HTTP Range запрос, чтобы добавить поддержку загрузки файлов по частям. В сети полно различных примеров, но я так и не нашел ни одной полной реализации RFC 2616. Один код не учитывал, что диапазонов может быть несколько, другой, что стандарт допускает запросы больше размера документа, третий не различает синтаксически правильный и недостижимый запрос, как рекомендует стандарт. Поэтому я решил написать свою реализацию и поделиться со всеми. Подробности и пример реализации на PHP под катом.
Читать дальше →

Siege — утилита для нагрузочного тестирования веб-серверов

Reading time7 min
Views82K
Надеюсь, что данный материал будет кому-нибудь полезен.

Siege – это утилита для нагрузочного тестирования веб-серверов. Она была создана для того чтоб дать разработчикам возможность проверить ресурсоёмкость своего кода в условиях, максимально приближенных к реальным. Так же Siege может имитировать обращения к сайту сразу нескольких пользователей. Это позволяет держать сервер как бы «под осадой» долгое время. Количество запросов, произведённых при «осаде», рассчитывается из общего количества пользователей и количества их обращений к серверу. Например 20 пользователей, обратившись по 50 раз, создают в общей сложности 1000 запросов. Результат, выводимый программой после тестирования, включает в себя время затраченное на проверку, общее количество переданной информации ( включая заголовки ), среднее время ответа сервера, его пропускную способность и число запросов на которые пришёл ответ с кодом 200. Эти данные формируются и выдаются при каждой проверке. Подробно они описываются ниже. Siege имеет 3 основных модели работы – режим регрессионного тестирования, режим имитации Интернета и режим грубой силы. Программа считывает порцию ссылок из конфигурационного файла и обращается к ним по очереди ( режим регрессионного тестирования ) или случайно ( имитация интернета ). Или же пользователь может указать один единственный адрес к которому будут производиться все обращения – режим грубой силы.

UPD: спасибо за плюсы, перенес в тематический блог.
Читать дальше →

Сенсоры от Yoctopuce — погода дома

Reading time5 min
Views8.9K
Некоторое время назад я занимался поисками датчика давления для одного сайта. Требования были простыми — подключение по USB и минимум паяльника, т.к. опыт использования данного инструмента у меня только в криптоанализе. Оказывается, что в отличие от температуры и влажности, китайцы ещё не освоили этот рынок, и наиболее простой и дешёвый вариант: купить любой барометр, направить на него веб-камеру и анализировать показания.
Несмотря на бредовость данной затеи, она серьёзно рассматривалась, но в конце-концов была отметена по банальной причине — ночью нужна подсветка. Т.е. работать система ночью не будет, а если будет, то потребует дополнительных усилий по настройке.

Из других вариантов, наиболее подходящим была USB Meteo Board от Sparkfun на основе Arduino, или самодельная система на основе того же Arduino или Netduino.

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


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

Срочная инвентаризация. Или хочу всё знать

Reading time7 min
Views220K
Захотелось поделится с хабросообществом парой способов провести инвентаризацию техники быстро и без особых усилий. Сподвигла меня вот эта статья, но как сторонник UNIX-way я расскажу способы сделать всё то же самое и даже больше без необходимости окружать себя гомогенной сетью из одинаковых рабочих станций или привязки к одной технологии.

Что мы хотим?


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

Мысли о скриншотах через JavaScript

Reading time1 min
Views39K
При разработке одного сервиса я столкнулся с необходимостью дать возможность пользователям сообщать об ошибках. Проблема заключалась в том, чтобы пользователь мог сделать скриншот без использования стороннего софта или сервиса.

Сначала эта задача показалась мне невыполнимой, но я нашел html2canvas.
Читать дальше →

Как формат PDF перестал ассоциироваться с бревном

Reading time3 min
Views2.4K
Пролог

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

Действие первое, второе и третье

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

Легкий способ начать тестировать

Reading time4 min
Views50K
Если вы PHP-разработчик, и по разным обстоятельствам тесты для своих приложений не пишете, то эта статья для вас. В ней я постараюсь вкратце показать с чего начать и что делать, чтобы написание тестов приносило вам радость, а вашему приложению стабильность.

Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
Читать дальше →

Оптимизация ORDER BY — о чем многие забывают

Reading time2 min
Views73K
На тему оптимизации MySQL запросов написано очень много, все знают как оптимизировать SELECT, INSERT, что нужно джоинить по ключу и т.д. и т.п.

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

Новинки альфы Opera 12.00 для разработчиков

Reading time4 min
Views20K

Свежая сборка альфы Opera 12.00 принесла с собой столько интересного, что мы решили рассказать об этом подробнее. Ссылки на сборку можно найти в блоге Desktop Team или подождать немного, пока она появится в виде обновления для Opera Next. Что же интересного предлагает эта сборка для разработчиков?

Новые возможности

  • Завершено внедрение XHR2 (XMLHttpRequest2), в частности Upload и Progress Events
  • Теперь Opera поддерживает декларативный заголовок «Do Not Track» для того, чтобы сайты не отслеживали вашу активность, подробнее по-английски: Implementing Do Not Track and the work at W3C
Читать дальше →

Счетчик времени загрузки

Reading time3 min
Views2.2K
Коллеги, други и просто хабралюди. С неделю назад на Web Optimizator был выложен код для счетчика загрузки (немного более подробно об измерении времени загрузки страницы можно прочитать в статьях про анализ скорости загрузки и разгон интернет-магазина).

Теперь каждый (не) высоконагруженный проект может себе позволить посмотреть, какая реальная скорость загрузки его страниц у конечных пользователей.

Время загрузки Web Optimizator
График распределения пользователей webo.in по времени загрузки у них этого сайта

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

ETag спешит на помощь

Reading time2 min
Views42K
Ни для кого не секрет, что в протоколе HTTP, а точнее в той его части, что является ответом с сервера, есть такие замечательные заголовки, как Last-Modified и ETag (Подробнее можно прочитать в спецификации протокола). Призваны они ускорить процесс получения контента с сервера, а точнее избавить клиента от загрузки данных, которые не были изменены с момента предыдущего запроса.

Так вот. Для меня факт существования двух, по-сути одинаковых, механизмов сообщить клиенту изменилось ли содержимое страницы или нет немного настораживал. Немного. Точнее я его не понимал для чего нужен ETag, если мне всегда было достаточно одного Last-Modified и юзкейса для другого я даже и представить не мог (хотя меня этот вопрос, признаться честно, не особо и волновал).
Читать дальше →

JavaScript. Оптимизация: опыт, проверенный временем

Reading time10 min
Views42K

Предисловие


Давно хотел написать. Мысли есть, желание есть, времени нету… Но вот нашлось, так что привет, Хабра.
Здесь я собрал все идеи, которые помогали и помогают в разработке веб-приложений. Для удобства я разбил их на группы:
  1. Память
  2. Оптимизация операций
  3. Выделение критических участков
  4. Циклы и объектные свойства
  5. Немножко о DOM
  6. DocumentFragment как промежуточный буфер
  7. О преобразованиях в объекты
  8. Разбитие кода
  9. События перетаскивания
  10. Другие советы

Сейчас речь не пойдёт ни о каких библиотеках. Я постараюсь передать знания о механизмах самого языка, а не их реализациях в библиотеках.

Память

Хоть это и не должно волновать клиентского программиста, но не забываем, что память всё-таки не бесконечна и когда-нибудь может закончиться, например, когда запущено несколько массивных программ: офис, графический редактор, компиляция большой программы и др. Несмотря на то, что приведенный пример тривиален, у меня действительно такое случилось, хоть и не из-за браузера, но он тоже сыграл свою роль: 1,3 Гб оперативы (отладчик, около 30 вкладок), начались тормоза по перегрузке страниц ОП в файл подкачки.
Чтобы уменьшить расход памяти, я предлагаю несколько способов:
Читать дальше →

Возвращаем в Оперу то, за что мы её так любим (или ещё раз про ускоритель интернета ;)

Reading time1 min
Views5.7K
Я — один из преданных пользователей браузера уже 10 лет. Несмотря на сильную закрытость Оперы (ладно уж расширения, но даже в буфер обмена она копирует не так, как остальные), её движок — настоящий наркотик, который удерживает меня в стане фанатов все эти годы.

Однако в последнее время я замечаю довольно досадную вещь: страницы не показываются на лету, сразу же после начала загрузки, а отображаются с задержкой. Причину я выяснил в ходе одной из дискуссий на Хабре, когда мой оппонент ( egorinsk ) не мог понять, чего это у меня рендеринг страниц, открытых из кеша в Гугле, тормозит (у него всё летало). Оказалось, что у него постоянно отключен javascript!

Порефрешив страницы с включенным и отключенным javascript, я выяснил, что Опера отдаёт просто бешеный приоритет рендерингу с javascript. Логику понять можно: сейчас некоторые сайты вообще являются веб-программами, которые без js не представляют никакого интереса. Однако разработчики Оперы всегда славились тем, что отдавали предпочтение быстроте рендеринга, прорисовке страницы на лету, комфорту пользователя. Ведь с CSS дела обстоят именно так: во время загрузки тех же блогов с CSS-темами, мы сначала видим ugly plain html, который затем одевается в CSS-одёжку.

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

Решение не замедлило появиться!


Мегаспасибо кам. Kalan!

Врубаем параметр opera:config#Extensions|DelayedscriptExecution — и наслаждаемся тем, за шо мы так любим Оперу!

P. S. У некоторых параметр ни в какую не сохраняется при перезагрузке Оперы. Его можно найти и поправить в operaprefs.ini

Yes-Credit.ru — новый сервис для интернет-магазинов

Reading time2 min
Views22K
Сразу к сути. Наша задача была создать систему, позволяющую взять кредит на покупку чего-либо в интернет-магазине, не выходя из дома, максимально упростив этот процесс, как для покупателей, так и для владельцев интернет магазинов. Так появился сервис http://yes-credit.ru и кнопка «Купить в кредит»

Выглядит кнопка так:



На сегодняшний день она установлена примерно в 100 магазинах. Например: apple-credit.ru
Читать дальше →

Улучшаем юзабилити за 5 минут

Reading time4 min
Views7.3K
В этой блогозаписи я намерена поделиться несколькими такими советами по увеличению юзабилити сайта, каждый из которых очень лёгок в реализации. Не все они кросс-браузерны, но всё равно они «глазурь на тортике»: читатель и не заметит, что их нет.

1. Отображайте нажатия кнопок и кнопкоподобных ссылок


Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент <img />), то кнопка не реагирует на нажатие во всех или в некоторых браузерах (зависит от ситуации). Вот какой простой уловкою вы можете дать знать посетителю сайта, что он и впрямь нажал на нечто нажимаемое:

.mybutton:active {
   position: relative;
   top: 1px;
   left: 1px;
}

Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.

Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть если где-то ещё на сайте используется готовый перевёрнутый градиент), или комбинация нескольких из них.

2. Плавные переходы (CSS3 transitions)


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

Защита от ботов, основанная на различии в работе с большими числами в JavaScript и PHP

Reading time8 min
Views19K
Недавно мне пришлось разбираться с защитой от ботов, используемой на нескольких довольно популярных ресурсах.
На первый взгляд защита показалась обычной установкой куки через javascript, справиться с которой — дело 15-ти минут. В самом деле, после небольшого исследования стало понятно где что делается и какие параметры куда передаются, остается только переписать небольшую функцию с javascript на php и дело в шляпе.
Но все оказалось не так просто. И хотя в итоге защита была сломана, на это потребовалось далеко не 15 минут, и сам принцип защиты оказался для меня новым и довольно интересным.

Итак, обо всем по порядку.
Читать дальше →

Псевдослучайно vs. По-настоящему Случайно

Reading time2 min
Views35K
Ниже перевод статьи Бо Аллена отсюда.

Простой наглядный пример

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

Information

Rating
Does not participate
Registered
Activity