Search
Write a publication
Pull to refresh
22
0
Андрей Щетинин @andrewsch

User

Send message

В Google Analytics добавлена функция анализа размера окна браузера пользователя

Reading time1 min
Views5.5K


Не зря говорят, что Google Analytics — один из лучших инструментов для мониторинга и анализа посещаемости сайта. В общем-то, в этом пакете и так достаточно большой объем функций, но на днях разработчики добавили еще одну. Теперь можно проводить анализ соответствия вашего сайта размерам окна браузера посетителей. Эта функция появилась в результате сочетания двух других функций: отслеживания разрешения дисплея посетителей + browser size tool из Google Labs.

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

Защита для NGINX — NAXSI

Reading time3 min
Views39K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


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

Построение минимальных выпуклых оболочек

Reading time7 min
Views143K

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

Yet another cool story about bash prompt

Reading time10 min
Views38K
Я программист. По крайней мере так написано в трудовой книжке. Почти всё своё рабочее время я провожу в консоли и текстовом редакторе. Мне очень нравится bash. Почти год я жил в zsh, прислушавшись к советам своих многочисленных коллег и знакомых, но в итоге я вернулся в bash и ни капельки об этом не жалею.



Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.

Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)

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

Сравнение Windows Azure Table Storage и Amazon DynamoDB

Reading time16 min
Views5.8K
Здравствуйте.
Предлагаю вашему вниманию перевод первой статьи из цикла сравнения сервисов, предоставляемых Windows Azure и Amazon, который пишется достаточно известным в облачных кругах специалистом — Gaurav Mantri.

В этой статье я сравню Windows Azure Table Storage и Amazon DynamoDB – WATS и ADDB соответственно.
Читать дальше →

finalize и Finalizer

Reading time5 min
Views55K
Сегодня немного поэкспериментируем с методом finalize() и уничтожением объектов. Хотя даже начинающие Java-программисты примерно представляют, что finalize() вызывается, когда сборщик мусора решит уничтожить ваш объект, некоторые вещи могут всё-таки оказаться неожиданными. К примеру, зададимся вопросом: что случится с вашим приложением, если метод finalize() работает очень долго?
Читать дальше →

Вышел бесплатный профессиональный видеоредактор Lightworks

Reading time3 min
Views102K
“Бэтмен навсегда”, “Остров проклятых”, “Отступники”, “Король говорит”, “Авиатор”, “Карты, деньги, два ствола”, “Криминальное чтиво” — это далеко не полный список фильмов, смонтированных с помощью Lightworks за его более чем двадцатилетнюю историю. С 1989 года Lightworks сменил несколько владельцев, пока в 2009 его не приобрела компания EditShare — производитель систем хранения видео для ТВ и киностудий. Новые хозяева решили порвать с традицией продавать подобный софт за тысячи долларов, и теперь профессиональная версия Lightworks стоит 60$, а базовая — бесплатна. Причём эта “базовая” версия мало чем отличается от платной и не уступит многим профессиональным версиям других редакторов. Но и это ещё не всё — EditShare собирается в ближайшем будущем выпустить версии для Linux и Mac (именно в таком порядке) и открыть исходники.


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

Три ключевых принципа ПО, которые вы должны понимать

Reading time13 min
Views242K

Разрабатывая приложения, мы постоянно сталкиваемся с новыми подходами, языками и концептами. И постоянно мы мечемся в сомнениях «смогу ли я быть на волне, оставаться конкурентоспособным, учитывая все изменения и тренды?». Давайте задумаемся на мгновение, вспомнив фразу из моего любимого фильма «Касабланка» — в любви законов новых нет — так создан свет.

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

Засеки 25 минут!

Reading time2 min
Views5.3K
Как часто вам бывает нужно просто засечь время? Я думаю, что такая необходимость периодически возникает у всех. Кто-то просто смотрит на часы, кто-то использует специальные программы, кто-то ставит будильник на телефоне.

Но помимо всех этих способов можно ещё сделать вот так:

sleep 25m ; xmessage 'Hey! :)'

Всего две команды, которые довольно легко запоминаются.

Вместо xmessage может быть, разумеется, что угодно ещё. Например:

sleep 8h 30m ; mplayer /home/user/Music/pink_floyd-the_happiest_days_of_our_lives.flac

Впрочем, тут надо учитывать, что команда не будет выполнена, если вы закроете терминал. Если же необходимо, чтобы команда всё-таки выполнилась, то есть несколько способов это сделать.
Читать дальше →

Цитаты о языках программирования

Reading time3 min
Views41K
Что учёные, писатели и программисты думают о популярных языках программирования.

Все языки


«Есть два подхода к программированию. Первый — сделать программу настолько простой, чтобы в ней очевидно не было ошибок. А второй — сделать её настолько сложной, чтобы в ней не было очевидных ошибок.»
Tony Hoare. Профессор, занимался реализацией Алгол 60, сейчас исследователь в Microsoft Research.


Algol 60 (позже повлиявший на C)


«Я не мог устоять перед искушением добавить в язык нулевой указатель (null), просто потому, что его так легко было реализовать. Это привело к бессчётному множеству ошибок, уязвимостей и сбоев, которые нанесли ущерб, наверное, в миллиард долларов за последние сорок лет.»
Tony Hoare.
Читать дальше →

Локализация точки в выпуклом многоугольнике

Reading time4 min
Views47K
Листая страницы хаба «Алгоритмы», наткнулся на топик, посвященный решению задачи локализации точки в многоугольнике: задан многоугольник (замкнутая ломаная линия без самопересечений), требуется определить — находится ли заданная точка A внутри этого многоугольника или нет. В одном из последних комментариев к топику было высказано недоумение, какое отношение такая чисто математическая задача имеет к теории алгоритмов. Имеет-имеет, причем самое непосредственное. Задача локализации является классической задачей вычислительной геометрии (не путать с компьютерной графикой). В качестве разминки предлагается взглянуть на картинку справа, на которой изображен многоугольник типа кривой Пеано (источник [1]), и попытаться ответить на вопрос — красная точка ты видишь суслика? и я не вижу, а он есть! находится внутри или снаружи многоугольника? А ниже мы (исключительно в образовательных целях) рассмотрим простую вариацию данной задачи, когда заданный многоугольник является выпуклым.
Читать дальше →

СЭДы на базе Free and Open Source Software

Reading time8 min
Views110K
В связи с активным развитием программных решений многих насущих проблем в области ИТ-технологий, которые на данный момент широко применяются в различных сферах деятельности, в первую очередь, в таких немаловажных, как производство, малый бизнес, образование и многие другие. Везде из перечисленного используются различные нормативные акты, заявления, договора и прочие бумажные документы.

Сейчас, становится очень модной тенденцией переводить предприятие (учреждение) на Систему Электронного Документооборота. Это не только модно, но, и, практично и удобно.

В связи с этим, появляются компании, которые предоставляют свои программные продукты – СЭДы, которые, порой шокируют своими ценами. Однако, не всё так плохо, т.к. благодаря инициативным и некорыстным людям, на свет появляются бесплатные и открытые продукты. Примерами тому, могут является две отличных, на мой взгляд, СЭД: NauDoc и Alfresco.
Читать дальше →

Разница между bin, sbin, usr/bin, usr/sbin

Reading time3 min
Views60K
30 ноября 2010 года Дэвид Коллиер (David Collier) писал:
Я заметил, что в busybox ссылки разложены по этим четырём директориям.
Есть ли какое-то простое правило, чтобы определить, в какой директории какая из ссылок должна лежать…
К примеру, kill лежит в /bin, а killall — в /usr/bin… Я не вижу никакой логики в таком разделении.

Вы, наверное, знаете, что Кен Томпсон и Дэннис Ритчи создали Unix на PDP-7 в 1969-ом. Так вот, примерно в 1971 они проапгрейдились до PDP-11 с парой дисков RK05 (по 1,5 мегабайта каждый).

Когда операционная система разрослась и перестала помещаться на первом диске (на котором была расположена корневая ФС), они перенесли часть на второй, где располагались домашние директории (поэтому точка монтирования называлась /usr — от слова user). Они продублировали там все необходимые директории ОС (/bin, /sbin, /lib, /tmp ...) и складывали файлы на новый диск, потому что на старом кончилось место. Потом у них появился третий диск, они примонтировали его в директории /home и перенесли туда домашние директории пользователей, чтобы ОС могла занять всё оставшееся место на двух дисках, а это были целых три мегабайта (огого!).
Читать дальше →

Об ИИ в интеллектуальных играх

Reading time7 min
Views33K
Не так давно я увлёкся игрой в сёги. К сожалению, эта чудесная игра практически не известна в России, поэтому пока я не научил играть друзей, мне приходилось играть с программой. Конечно, мне было интересно, как эта программа работает.
Ниже представлен небольшой рассказ о компьютерных алгоритмах, используемых в интеллектуальных играх.
Читать дальше →

Делиться не всегда полезно: оптимизируем работу с кэш-памятью

Reading time7 min
Views40K
Делиться с ближним своим для нас, божьих тварей, это очень характерно, считается добродетелью, и вообще, как утверждает первоисточник, положительно отражается на карме. Однако в мире, созданном архитекторами микропроцессоров, такое поведение не всегда приводит к хорошим результатам, особенно если это касается разделения памяти между потоками.

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

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

Советы по правильной настройке телевизора

Reading time6 min
Views917K
Для начала, что есть «правильная настройка». Если вы хотя бы раз были в магазине электроники, то наверняка замечали, что все выставленные телевизоры показывают по-разному. С чем это связано? Какой из них лучше? Давайте разберемся.

Я думаю, вы согласитесь, что телевизор должен не просто показывать какую-то картинку, но и вносить как можно меньше искажений в исходный контент. Сам контент всегда создается с оглядкой на стандарты и рекомендации индустрии, и главная цель любого телевизора — донести до вас именно то изображение, которое вам хотели показать. Тут важно всё: и оттенок кожи у актера, и цвет неба на закате, и какие детали изображения должны быть видны, а какие спрятаны. Существуют международные стандарты, описывающие каким должно быть изображение на экране вашего телевизора. Все вы, наверняка, встречали аббревиатуры PAL, NTSC, или HDTV, вот за этими буквами и скрываются свойства видеосигнала и различные параметры изображения. С приходом HDTV в нашу жизнь, большая часть стандартов сразу же устарела, и, фактически, наиболее актуальным сейчас является стандарт REC709, который используется в телевидении высокой четкости (HD) и в Blu-Ray видео.
Читать дальше →

Ошибки трансферта технологий №2 / «Ошибки раскрытия»

Reading time6 min
Views1.7K
Оказывая помощь в выводе разработок и бизнесов на внешние зарубежные рынки, приходится постоянно наблюдать одни и те же ошибки, и как следствие — неудачи и потери.
Читать дальше →

Закон Евросоюза о cookies

Reading time2 min
Views32K
cookie lawЗакон Евросоюза о cookies вступил в силу в 2011 году, но ICO (Information Commissioner’s Office) решили, что справедливо будет дать владельцам сайтов один год для выполнения требований закона. Крайним сроком было назначено 26 мая 2012 года. С этой даты сайты, не соответствующие требованиям закона, могут быть оштрафованы на сумму £500 000.
Читать дальше →

MIT и Гарвард вкладывают 60 миллионов долларов в дистанционное обучение

Reading time2 min
Views25K
Массачусетский технологический институт и Гарвардский университет запускают совместный проект дистанционного обучения EdX. Каждый из ВУЗов вложит по 30 миллионов долларов в развитие платформы и создание онлайновых версий своих курсов. В основе проекта лежит инфраструктура MITx, созданная в Массачусетском технологическом.


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

Андрей Бреслав — Язык Kotlin для платформы Java

Reading time1 min
Views13K
Привет, Хабр!

С любезного разрешения сообщества Java-разработчиков JUG.ru мы публикуем видеозапись выступления Андрея Бреслава о новом языке программирования Kotlin для платформы Java, которое состоялось на встрече 26 апреля.
Читать дальше →

Information

Rating
Does not participate
Location
Реховот, Мерказ, Израиль
Date of birth
Registered
Activity