Pull to refresh
79
0
А​​​​ндрей Поляков @polyakov_andrey

web разработчик

Send message

Charles: незаменимый тул в арсенале QA-инженера

Reading time5 min
Views221K

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

Чтобы редактировать выдачу сервера и воспроизводить сложные тестовые сценарии в QA Redmadrobot, мы используем Charles.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments15

(Не)безопасный frontend

Reading time13 min
Views60K

Интро


Не так давно я выступал на конференции FrontendConf 2015 (РИТ++) с темой данной статьи. И при подготовке доклада начал искать информацию, а кто вообще выступал на данную тему и что есть в Сети на данный момент.

Оказалось, что информации совсем немного, более-менее можно было бы отметить доклад mikewest.org/2013/09/frontend-security-frontendconf-2013 от Mike West из компании Google, но какой-то «непентестерский» взгляд и уж совсем мало материала. И www.slideshare.net/eoftedal/web-application-security-in-front-end где тема раскрыта более детально, но выступление 2011 года. А за 4 года технологии и атаки на месте не стояли.

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

О чем вообще разговор?


А действительно, о чем тут вообще можно разговаривать? Говоря про взломы и безопасность невольно приходят в голову тезисы — слили базу, получили доступ к выполнению команд ОС на сервере, прочитали чужую переписку. Но это все — server side код. А что ж может «нагородить» фронтэндер? Главная опасность, конечно же, в обходе атакующим SOP — Same Origin Policy, главной политики безопасности браузеров, которая регулирует работу в разных Origin. Но не только, давайте разбираться.

Читать дальше →
Total votes 64: ↑63 and ↓1+62
Comments4

Как перевести сайт целиком на постоянный HTTPS для всех

Reading time6 min
Views44K

Шифруем всё подряд


Эра незашифрованного веба проходит, и это хорошо. В этой инструкции мы предполагаем, что на вашем сервере работает веб-сервер Nginx. И теперь мы сделаем так, чтобы все посетители сайта пользовались исключительно протоколом HTTPS. Кроме этого мы включим HSTS – это «HTTP Strict Transport Security», когда сайт не только поддерживает HTTPS, но и настаивает на его использовании.

Для этого есть множество способов, но я опишу метод под названием «HTTPS termination». Иначе говоря, мы поставим перед веб-сервером обратный прокси, который и будет обеспечивать HTTPS. Это получается проще и гибче, чем настраивать HTTPS только при помощи возможностей веб-сервера. Возможно, вам покажется контринтуитивным, что добавление ещё одного приложения в стек упростит вашу жизнь – но это действительно так.

Уточним, что данный рецепт подходит для серверов на базе Linux, на которых установлен Nginx.

То, что будет работать прежде всех остальных приложений в стопке – это HAProxy. Это в первую очередь приложение для балансировки – он умеет распределять приходящие запросы между разными физическими серверами. Много высоконагруженных сайтов используют его в этом качестве (тот же reddit), но в последней версии у него появилась возможность выполнять SSL termination. Он умеет устанавливать HTTPS-соединения от имени сервера.

Поэтому мы поставим HAProxy, скормим ему наши сертификаты SSL/TLS, поручим перенапрявлять все HTTP запросы на HTTPS, и покажем ему уже сам веб-сервер в качестве бэкенда.
Читать дальше →
Total votes 63: ↑49 and ↓14+35
Comments38

В 1924 Гансу Бергеру удалось зафиксировать при помощи гальванометра на бумаге в виде кривой электрические сигналы от поверхности головы, в 1929 он же опубликовал первую работу с описанием экспериментов с ЭЭГ (электроэнцефалограмма) человека.

Читать далее
Total votes 55: ↑41 and ↓14+27
Comments35

Angular Light + Object.observe

Reading time2 min
Views13K
Angular Light — это самостоятельный клиентский MV(C/VM) фреймворк, который построен на идеях Angular.js и Knockout.js, и похож на упрощенный Angular.js



Вышла версия Angular Light 0.8 которая включает разные улучшения и исправления, основные изменения:

1. Поддержка Object.observe и Array.observe, что может увеличить производительность веб-приложений.
Использование Object.observe — это опциональная фича, так же её можно включать для отдельных Scope (scope деревьев). Браузеры которые не поддерживают Object.observe продолжают работать через dirty-checking, так же нужно знать некоторые нюансы.
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments33

How-to: Автоматизация бухгалтерских задач хостинг-провайдера

Reading time3 min
Views6.4K
image

Мы уже рассказывали об архитектуре внешних систем, формирующих хостинг-инфраструктуру нашего проекта 1cloud, однако в этом материале не раскрыт важный для бизнеса вопрос организации процесса приема платежей и формирования отчетности. Сегодня мы восполним этот пробел.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments1

Конвейер обработки текста в Sphinx

Reading time10 min
Views15K
Обработка текста в поисковом движке выглядит достаточно простой снаружи, однако на самом деле это сложный процесс. При индексации текст документов должен быть обработан стриппером HTML, токенайзером, фильтром стоп-слов, фильтром словоформ и морфологическим процессором. А ещё при этом нужно помнить про исключения (exceptions), слитные (blended) символы, N-граммы и границы предложений. При поиске всё становится ещё сложнее, поскольку помимо всего вышеупомянутого нужно вдобавок обрабатывать синтаксис запроса, который добавляет всевозможные спец. символы (операторы и маски). Сейчас мы расскажем, как всё это работает в Sphinx.

Картина в целом


Упрощённо конвейер обработки текста (в движке версий 2.х) выглядит примерно так:



Выглядит достаточно просто, однако дьявол кроется в деталях. Есть несколько очень разных фильтров (которые применяются в особом порядке); токенайзер занимается ещё чем-то помимо разбиения текста на слова; и наконец под «и т.д.» в блоке морфологии на самом деле находится ещё по меньшей мере три разных варианта.

Поэтому более точной будет следующая картина:



А теперь перейдём к деталям
Total votes 16: ↑16 and ↓0+16
Comments8

Sortable v1.0: Новые возможности

Reading time6 min
Views28K
Привет хабр! В преддверии нового года хочу поделится своей радостью — выходом Sortable v1.0. Ровно год назад я представил на ваш суд мой маленький инструмент для сортировки списка при помощи drag’n’drop. Всё это время я скрупулезно собирал обратную связь, добавлял новые возможности и правил мелкие баги. Под катом я расскажу о новых возможностях, интеграции с AngularJS, Meteor и других нюансах.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments24

PhpStorm в Ubuntu 14 с использованием в Windows 7 через Xming

Reading time3 min
Views9.1K
Возникла задача плавной миграции с рабочей станции под Windows на Ubuntu. Так как выполнение основных действий при помощи компьютера никто не отменял, то миграцию приходится делать кусками, оставляя доступной привычную среду (Windows 7 x64). Так как я являюсь разработчиком, то первым делом нужно переносить IDE (в моем случае — PhpStorm). Целевой машиной для переноса был выбран виртуальный хост hamster, работающий под Ubuntu, на котором тестриуются наши проекты.

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty
$ uname -a
Linux hamster 3.13.0-43-generic #72-Ubuntu SMP Mon Dec 8 1
Читать дальше →
Total votes 17: ↑7 and ↓10-3
Comments25

Как самостоятельно зарегистрировать ООО

Reading time7 min
Views52K
Всем привет! Сегодня мы расскажем о том, как самостоятельно зарегистрировать ООО.

Вопрос о создании своей компании обычно возникает, когда у вас есть идея для стартапа и вы готовы приступить к разработке. Если над проектом вы работаете один, то вам вполне достаточно статуса ИП. Если у вас есть партнёры или вы планируете привлекать инвесторов, то лучше с самого начала зарегистрировать ООО. Это самая распространённая форма для ведения бизнеса и, несмотря на некоторые ограничения, она лучше всего подходит для создания стартапа.

Мы расскажем о каждом этапе самостоятельной регистрации ООО, поделимся советами и ссылками, которые помогут вам справиться с ней максимально просто и быстро.



Инструкция по самостоятельной регистрации ООО от «Я люблю ИП»

Читать дальше →
Total votes 71: ↑56 and ↓15+41
Comments77

Обработка и оформление отчетов в Excel на PHP

Reading time16 min
Views252K

Не редко при разработке некоего проекта, возникает необходимость в формировании отчетной статистики. Если проект разрабатывается на Delphi, C# или к примеру, на С++ и под Windows, то тут проблем нет. Всего лишь необходимо воспользоваться COM объектом. Но дела обстоят иначе, если необходимо сформировать отчет в формате excel на PHP. И чтобы это творение функционировало на UNIX-подобных системах. Но, к счастью, не так все плохо. И библиотек для этого хватает. Я свой выбор остановил на PHPExcel. Я уже пару лет работаю с этой библиотекой, и остаюсь доволен. Поскольку она является кроссплатформенной, то не возникает проблем с переносимостью.


PHPExcel позволяет производить импорт и экспорт данных в excel. Применять различные стили оформления к отчетам. В общем, все на высоте. Даже есть возможность работы с формулами. Только необходимо учитывать, что вся работа (чтение и запись) должна вестись в кодировке utf-8.

Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments28

AngularJS + UI Router: проверка авторизации и прав доступа

Reading time3 min
Views74K
Если ваше приложение предполагает авторизацию пользователей и/или проверку прав доступа, то вам придется либо изобретать велосипед, либо гуглить в поисках подходящего решения. В принципе, я тоже это делал. В итоге я принял приемлемым для себя описанный ниже вариант.

Предпосылки


Информацию об авторизованном пользователе я решил хранить в sessionStorage, копируя её при запуске приложения в $rootScope. Также по рекомендации авторов UI Router я храню в $rootScope значения объекты $state и $stateParam, для удобного доступа. Информацию же о доступе к тому или иному состоянию можно передавать через блок data при описании самого состояния. Поскольку в моем приложении везде закрыт доступ, я решил идти от обратного и добавлять значение noLogin = true для состояний, которые не требуют авторизации, например страницы ввода логина, восстановления пароля или регистрации.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments23

PHPStamp — честная генерация DOCX документов из шаблона

Reading time2 min
Views27K
Это еще одна попытка реализовать стабильный, полноценный шаблонизатор офисных документов, основанных на XML, пользуясь стандартными для PHP средствами DOMDocument и XSL.

Задача состояла именно в генерации шаблона для многократного использования, который не придется править вручную или прибегать к сторонним программам для его доработки.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments15

Маршрутизатор ASUS RT-AC56U. Опыт установки сторонней прошивки TomatoUSB (build by Shibby)

Reading time5 min
Views85K
Хочу рассказать владельцам роутеров RT-AC56U/RT-AC68U о предпосылках и личном опыте перехода на TomatoUSB (Shibby). Вначале будет немного про выбор устройства и субъективные ощущения от использования других прошивок, поэтому, если вам интересно узнать только о TomatoUSB (Shibby), сразу идем вниз.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments36

Действительно мощный и компактный ПК

Reading time2 min
Views197K
Некоторые новинки очень настораживают. Это то открытый ноутбук без клавиатуры и без диска за $1'995 на базе слабого ARM процессора, то «универсальный» и «мощный» ПК Tango размером со смартфон за $350, фактически совершенно бесполезный без второй док-станции, которая стоит как половина этого ПК, в том случае если всё-таки носить вычислительный модуль между работой и домом.

Я давно присматриваюсь заменить свой ноутбук на что-то, причём ноутбуки с момента появления планшета меня как таковые интересовать совершенно перестали.
Хотелось что-то совсем компактное, и я начал копать в сторону форм-фактора nano-ITX и pico-ITX, но ничего достаточно производительного за разумные деньги так и не нашлось.

Зато нашлась вот такая буквально поллитровка, несущая в себе 4е поколение Intel Core, Haswell.



Если по картинке не понятно, то этот ПК всё же чуть меньше, чем уже упоминавшаяся док-станция для Tango (108mm x 115mm x 30mm vs 135mm x 135mm x 27mm).

Поставляется с вмонтированным в материнскую плату процессором. Линейка процессоров:

— Intel® Core™ i7-4500U 1.8 GHz – 3.0GHz (turbo), Intel HD 4400
— Intel® Core™ i5-4200U 1.6 GHz – 2.6GHz (turbo), Intel HD 4400
— Intel® Core™ i3-4010U 1.7 GHz, Intel HD 4400
— Intel® Celeron™ 2955U 1.4 GHz, Intel HD

Существует также и модель на базе AMD A8-5545M 1.7G/2.7GHz.

Продаётся такое чудо как модель для сборки, для полной комплектации которой необходима память (можно вставить до 16ГБ, осторожно, подходит только DDR3 на 1.35В, не 1.5В) и диск mSATA.
Стоимость в зависимости от процессора колеблется на зарубежных сайтах от $250 до $500. Комплект из двух планок памяти общим объёмом 8ГБ можно приобрести приблизительно за $100, примерно столько же обойдётся и mSATA SDD на 128ГБ. WiFi b/g/n и Bluetooth 4.0/3.0 уже на борту, занимают единственный PCIe порт.

Ещё о нескольких моделях той же серии и пара картинок
Total votes 107: ↑102 and ↓5+97
Comments103

Медиаплеер XBMC переименован в Kodi

Reading time1 min
Views32K


Многие знакомы с известным медиаплеером XBMC и пользуются им. Этот медиакомбайн практически всеяден в плане форматов, имеется поддержка большинства настольных и мобильных платформ (Windows, Linux, OSX, Android, iOS, ATV2, Raspberry Pi). Многие считают его одним из лучших медиаплееров.
Программа имеет двенадцатилетнюю историю, за время которой она сменила уже три имени, хотя изменения были скорее косметические. И вот несколько дней назад появилась новость, что плеер сменит название на абсолютно новое, теперь он будет называться Kodi.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments16

Как начать заниматься в спортзале?

Reading time1 min
Views1.3K
imageГость первого выпуска подкаста «Диалоги» — Михаил Коваленко, чемпион Санкт-Петербурга по бодибилдингу, руководитель велнесс-студии «Ажур».
В выпуске:
— Новичок в спорт зале: первый шаг — он трудный самый.
— Тренинг и питание.
— От чего зависит прогресс у новичков?
— Какой оптимальный возраст для занятий?
— Что такое перетренированность?
— Распространенные ошибки новичков.
— Занятия дома vs. занятия в спорт зале
— Друзья в спорт зале — плюсы и минусы.
— Свободные веса vs. тренажеры.
— Как не утонуть в море информации?
— Как выбрать тренера и программу?
— Мифы о занятиях в тренажерном зале.
— Как правильно худеть?
— Кардио-тренировки vs. силовые тренировки.
— Ответы на вопросы слушателей.
Total votes 58: ↑42 and ↓16+26
Comments32

Наше зрение

Reading time4 min
Views6.1K
Я просиживаю практически сутки на пролет за ПК, и за последнии 3 месяца почувствовал как садится зрение… хотя раньше даже и не думал что такое может случится, и я решил задуматься как себя обезопасить от этого, или свести риск потери зрения к минимуму.

1. Что такое глаз?
ну ничего нового мы не узнаем но всё же:

image

Читать дальше →
Total votes 42: ↑26 and ↓16+10
Comments13

Об интеллекте поисковиков

Reading time1 min
Views855
Доллары в квадрате уже достаточно повеселили досточтимую публику.

Однако, есть вещь, которая в гугле (яндексе и т.д.) сильно огорчает, не смотря на все их попытки «понимать», что ищет пользователь. Это отказ воспринимать спецсимволы.

Ведь понятно, что если я ищу «system()» (exit(), open() и т.д.) — это не то же самое, что просто «system», «exit», «open». Если я ищу "[:lower:]" это не то же самое, что «lower» (ладно, регэкспов в поисковиках не будет никогда, но хотя бы просто по заданной строке искать...). Ведь я явно говорю, что хочу найти. Ну просто бери man-страницу и показывай. Статья про system() на opengroup просто обязана быть пришлёпнута первой в результатах поиска… Но нет.
Читать дальше →
Total votes 26: ↑16 and ↓10+6
Comments10

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity