Pull to refresh
51
0
Alexander Russkiy @Kolonist

Разработчик

Send message

Медленные и/или ресурсоёмкие задачи в коде: отложенные задания, очереди, задачи с ручной обработкой

Reading time2 min
Views4.3K
Публикую по просьбе eugenioz.

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

Общим подходом здесь является создание очередей выполнение и отложенных заданий. Основные примеры: пересылка/верификация данных у сторонних сайтов; передача данных от реселлерской панели на основной сайт; передача заданий, которые не могут быть выполнены автоматически, на ручную обработку.

В качестве средства распределения задач предлагаю вашему вниманию PHP-класс Tasks.

Код класса
Читать дальше →
Total votes 30: ↑17 and ↓13+4
Comments96

Chrome App. Создание приложения для chrome (пример)

Reading time2 min
Views10K
Как все прекрасно помнят, на прошедшей IO, Google анонсировал свой Web Store. А для заполнения его представил т.н. web-приложения.
Сегодня речь пойдёт о том, как создать простенькое приложение и подготовится к открытию Web Store.
Для примера будем создавать приложение из ряда Hello World, а именно — калькулятор.
image

Читать дальше →
Total votes 100: ↑91 and ↓9+82
Comments52

Сброс пароля, редактирование реестра Windows из Ubuntu

Reading time2 min
Views38K
В связи с вирусами в винде и невозможностью запусить regedit, понадобилась возможность редактировать реестр извне. Нашел, пока, единственную утилиту в линуксе chntpw, которая изначально разрабатывалась для сброса паролей, а потом приобрела функцию редактирования реестра.
Читать дальше →
Total votes 92: ↑78 and ↓14+64
Comments39

Сниффер витой пары из Wi-Fi роутера

Reading time2 min
Views89K
image

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

Читать дальше →
Total votes 188: ↑172 and ↓16+156
Comments122

Качественная фотография гаджета в домашних условиях

Reading time1 min
Views6.2K
image
На Хабре уже публиковались интересные советы по этой теме. Я хотел бы предложить еще один способ, который позволит вам делать практически рекламные фотографии небольших объектов.

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

Читать дальше →
Total votes 210: ↑188 and ↓22+166
Comments96

Кроссбраузерные HTML инклуды \(^_^)/

Reading time7 min
Views6.5K
Пусть у нас есть простенький хтмльчик index1.htm

<!DOCTYPE html><br><html><br>    <head><br>        <title>Xbrowser HTML includes</title><br>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><br>    </head><br>    <body><br>        <h1>First file</h1><br>    </body><br></html>

Как известно, хтмл поддерживает инклуды только через iframe/object, но с ними не очень удобно работать из яваскрипта.

Можно, конечно, прописать в каждую подключаемую страницу скрипт типа такого

new function(){<br>    var frame= window.frameElement<br>    if( !frame ) return<br>    var parent= frame.parentNode<br>    var body= document.getElementsByTagName( 'body' )[0]<br>    var child;<br>    while( child= body.firstChild ) parent.insertBefore( child, frame )<br>    parent.removeChild( frame )<br>}

Он переносит своё содержимое в родительский документ и удаляет фрейм. Но в случае отключённоо яваскрипта мы получим окошко ифрейма не подстраивающееся под размер содержимого.
А дальше - жёсткое порево
Total votes 66: ↑52 and ↓14+38
Comments132

Перехват вызовов API-функций

Reading time11 min
Views73K
— Папа, я бежал за троллейбусом и сэкономил пять копеек!
— Сынок, бежал бы за такси — сэкономил бы пять рублей!


Сегодня я хочу рассказать вам, как сэкономить 10 тысяч долларов. А заодно, что гораздо менее интересно – научить перехватывать вызовы Win32 API функций, и не только. Хотя, в первую очередь – конечно, именно их.
Читать дальше →
Total votes 92: ↑88 and ↓4+84
Comments72

HTML 5 в Internet Explorer

Reading time3 min
Views57K
image

Вкратце: как заставить новые теги из HTML 5 работать в Internet Explorer.

Любой веб-разработчик смотря на HTML 5 плачет от счастья, которое наконец-то пришло в наш дом. Для большинства функций (такие как WebGL, многопоточность и веб-сокеты) придётся ждать поддержки от браузеров (а в самых правильных эти возможности уже есть), но новые удобные теги мы можем использовать уже сейчас.

Однако Internet Explorer (даже последней, 8-ой версии) и тут сумел споткнуться — новые теги вне HTML 4 он просто не замечает — на них нельзя повесить стили.

В IE проблем даже две — отдельно нужно включать поддержку HTML 5 тегов в обычном документе, и отдельно в содержимом, которое добавляется динамически (например, через AJAX).
Читать дальше →
Total votes 107: ↑88 and ↓19+69
Comments66

Javascript виджет авторизации OpenID

Reading time3 min
Views7K
Где то полгода назад я сильно увлекся OpenID и всем что с ним связанно. Моим главным занятием в это время стало — неспешное чтение спецификаций, форумов, блогов и хабрапостов OpenID тематики.

Все знания, которые мной были получены за это время, я «материализовал» в проекте компании, в которой собственно я работаю.

Изучая спецификацию OpenID и прочих его расширениях (SREG, AX) и надстройках, мне пришла идея разработать JavaScript виджет со своим API-прослойкой, в помощь другим разработчикам нежелающим «коротать» дни и ночи изучая спеки различных способов авторизации и их расширений.

Собственно об этом далее.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments70

Социальная инженерия: «Дорожное яблоко»

Reading time4 min
Views22K
image
2 года назад сделал следующую публикацию:
<----------------->
Провел интереснейший эксперимент, хочу поделиться опытом, что бы люди учились на чужих ошибках. Эксперимент из области легендарной «Социальной Инженерии», метод под названием «Дорожное яблоко».

Этот метод атаки представляет собой адаптацию троянского коня, и состоит в использовании
физических носителей. Злоумышленник может подбросить инфицированный CD, или флэш, в месте, где носитель может быть легко найден (туалет, лифт, парковка). Носитель подделывается под официальный, и сопровождается подписью, призванной вызвать любопытство.
Пример: Злоумышленник может подбросить CD, снабжённый корпоративным логотипом, и ссылкой на официальный сайт компании цели, и снабдить его надписью "Заработная плата руководящего состава Q1 2007". Диск может быть оставлен на полу лифта, или в вестибюле. Сотрудник по незнанию может подобрать диск, и вставить его в компьютер, чтобы удовлетворить своё любопытство, или просто добрый самаритянин отнесёт диск в компанию.


Источник цитаты: www.wiki.inattack.ru/wiki/Социальная_инженерия
Читать дальше →
Total votes 123: ↑84 and ↓39+45
Comments65

Настройка Wifi в Linux при помощи Adhoc на примере Ubuntu

Reading time2 min
Views49K
Эта тема уже не раз поднималась, но хорошей и легкой инструкции я так и не нашел.
Данная статья расчитана на новичков в мире Linux поэтому тут используются наиболее легкие методы настройки.
Читать дальше →
Total votes 62: ↑46 and ↓16+30
Comments47

Простейшая генерация odt файла из существующего

Reading time9 min
Views11K
Как-то раз передо мной стояла задача реализовать генерацию договоров для клиентов с нашего корпоративного сайта.
Сначала задача была решена просто ужасно — был заготовлен html шаблон договора, а пользователю выдавалась конвертация шаблона в pdf. Само собой это выливалось в кучу неудобств, в том числе, если требовалось что-то поменять в договоре.

Следующим решением было генерация odt документа. Это позволило редактировать документ нашим менеджерам независимо от сайта и программистов.
Полностью генерировать с нуля смысла нет. Почему бы не поработать с уже имеющимся файлом (отредактированным в OpenOffice) и просто заменить в нем необходимые элементы?

Этим мы с вами и займемся.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments23

Редирект после POST запроса

Reading time2 min
Views47K
Каждый веб-разработчик знает, что после POST сабмита формы желательно сделать редирект, чтобы предотвратить повторную отправку данных, когда пользователь захочет обновить страницу. В основном это критически необходимая операция, так как данные формы могут сохраняться в базе данных или участвовать в платёжной транзакции. И тогда данные не только продублируются, но и спишутся лишние деньги.

Но речь не о деньгах, а о правильном редиректе…
Читать дальше →
Total votes 102: ↑86 and ↓16+70
Comments79

Безопасная авторизация с передачей хешированного пароля

Reading time4 min
Views30K
При разработке одного проекта, появилась задача осуществить защиту в случае просмотра трафика, и просмотра исходника (могут узнать хеш пароля) злоумышленниками. Имея доступ ко всем данным, никто не должен авторизоваться на сервере, не зная исходный пароль. Варианты подмены IP адреса, получение пароля непосредственно в момент ввода (keylog), или брутфорс исключаем, это уже не забота веб сайта.

Пароль по сети передаваться не будет, поэтому используется хеширование прямо в браузере, для этого использую небольшую библиотеку JavaScript SHA-1. Почему SHA-1, а не, допустим, MD5? Считается, что SHA-1 немного надежнее, да и сама JavaScript библиотека меньше, чем аналогичная (на том же сайте) для MD5.
Читать дальше →
Total votes 39: ↑21 and ↓18+3
Comments66
12 ...
30

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle
C#
Multiple thread
Object-oriented design
Software development
SQL
ASP.Net
PostgreSQL
Linux
MongoDB