Как стать автором
Обновить
40
0
Кирилл Пименов @kirushik

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

Отправить сообщение

Музыка из Vkontakte в Exaile

Время на прочтение1 мин
Количество просмотров15K
Всем привет!

Вдохновленный недавним топиком про плагин Вконтакте для Амарока, решил написать подобие для своего любимого плеера Exaile.

image

Возможности плагина
Всего голосов 114: ↑94 и ↓20+74
Комментарии126

Некоторые тонкости установки на сайт кнопок «Поделиться» (share) социальных сетей

Время на прочтение5 мин
Количество просмотров205K
Сегодня, в эпоху социальных медиа, принято давать посетителям сайта возможность поделиться с друзьями. Мы делали промо-страницу к Дню Рождения интернет-магазина Allsoft и нам нужно было установить кнопки «Поделиться» от Facebook, Twitter, Одноклассников, Вконтакте и Мой мир.

С первого взгляда показалось — что может быть тут особенного — поставил готовый html/js код и готово? Но тонкости оказались в деталях: что если для одной соц. сети нужно передавать один текст, а для другой — другой? Как правильно передать картинку и описание во все сети? А если несколько разных вариантов текста и картинок на одной странице? Как почистить уже закешированную информацию о ссылке в соц.сети? На все эти вопросы нам пришлось найти ответы, которые и вы сможете узнать из этой статьи.
Читать дальше →
Всего голосов 74: ↑59 и ↓15+44
Комментарии44

Переезд проекта с SVN на Git

Время на прочтение8 мин
Количество просмотров72K
image
Много лет подряд в качестве системы контроля версий для большого количества проектов использовали только SVN. Но наступил момент, когда количество разработчиков на одном из проектов заметно увеличилось, проект уже запущен в работу, и нужно как активно разрабатывать параллельно несколько фич, так и фиксить уже имеющиеся баги в оперативном режиме. Единый trunk в SVN не позволяет этого делать, а организация бранчей в нем же превращает жизнь разработчиков в ад. Поэтому было принято решение о переезде этого проекта с SVN на Git.
Читать дальше о том, как это делается от А до Я
Всего голосов 119: ↑113 и ↓6+107
Комментарии51

HTML5 History API уже сегодня и без ограничений

Время на прочтение6 мин
Количество просмотров63K

Библиотека для работы HTML5 History API


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

На сегодняшний день библиотеку я могу смело назвать, на мой взгляд, полноценно законченной. Конечно же, ошибкам в работе библиотеки думаю, место будет, тестировалась библиотека мною в разных условиях и браузерах, но как вы понимаете, все не уловишь, да что-то упустишь. И так давайте приступим к описанию возможностей и тонкостей библиотеки.
Читать дальше →
Всего голосов 85: ↑84 и ↓1+83
Комментарии49

Бэкап для Gmail

Время на прочтение2 мин
Количество просмотров14K
Состоялся релиз версии 1.0 beta свободной программы GMVault, которая предназначена для бэкапа почтового архива Gmail на локальном диске и восстановления данных в случае сбоя на Gmail. Поддерживается синхронизация по заданному интервалу, криптографическая защита, несколько gmail-аккаунтов.

GMVault — хороший вариант для тех, кто не в полной мере доверяет надёжности облачного хранилища Gmail, но не готов отказаться от удобного веб-интерфейса. Shell/batch-клиент доступен для Linux, Mac OSX и Windows.
Читать дальше →
Всего голосов 47: ↑37 и ↓10+27
Комментарии32

Как правильно сортировать контент на основе оценок пользователей

Время на прочтение5 мин
Количество просмотров92K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


Вы занимаетесь веб программированием. У вас есть пользователи, которые оценивают контент на вашем сайте. Вы хотите разместить высоко оцененный контент наверху, а низко оцененный — внизу. Для этого на основе пользовательских оценок вам нужно вычислить некий «рейтинг».

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

Читать дальше →
Всего голосов 458: ↑423 и ↓35+388
Комментарии134

AVoD ( Аудио и Видео по запросу ) через торренты, новый уровень!

Время на прочтение7 мин
Количество просмотров22K
На сегодняшний день все еще многих пользователей Интернет можно удивить возможностью онлайн проигрывания видео и аудио контента через торренты, без необходимости ожидания загрузки контента.
Безусловно, этим уже не удивишь хабрасообщество, учитывая что еще первые топики освещающие такую возможность появились на хабре более двух лет назад ( к примеру: habrahabr.ru/post/87509, — где не обошли стороной нашу первую пробную поделку, которая уже в той своей реализации превосходила все существующие в мире решения, включая и решение флагмана торрент-клиентов, а именно utorrent со своей новой функцией «stream» ).

Так чем же еще можно удивить хабрасообщество и продвинутых гиков, по истечении двух лет?

Поверьте, есть чем!

Ну а чтобы проверить, милости просим под кат.
Читать дальше →
Всего голосов 38: ↑31 и ↓7+24
Комментарии100

Форд, Тойота и морские свинки

Время на прочтение17 мин
Количество просмотров19K
— Какое отношение имеет морская свинка к морю?
— Примерно такое же, как утконос к проектированию дирижаблей.


Введение.


Я имею обыкновение во время прогулок прокручивать информацию из нескольких источников, сопоставляя куски. Одна из любопытных находок – почти полное соответствие статистических наблюдений Демарко и Листера в «Peopleware» и теоретических выкладок Голдратта в «Критической цепи».

Осенью 2011 я крутил в голове:
[1] «Стоя на плечах гигантов» Эли М. Голдратт © Eliyahu M. Goldratt, 2008
[2] «Производственный менеджмент: управление потоком» Одед Коуэн, Елена Федурко
[3] «История одной доски» (http://cartmendum.livejournal.com/tag/theboard).

Далее хотелось бы написать: «Как вдруг…», — но это будет неправдой. Это случилось не вдруг. Мне понадобилось пару недель, но, в конце концов, в голове сложилась достаточно цельная картинка.

За что именно я зацепился:
  • Таичи Оно (Öno Taiichi) не понимал, почему его система работает.
  • Существует несколько разных типов производственных потоков – V, A, T, I. Каждый тип потока ставит особые задачи.
  • Неудачи внедрения доски Максима Дорофеева в некоторых подразделениях
  • Ряд компаний не смог внедрить систему Тойота, несмотря на все приложенные усилия.
  • Система Тойота и система Форда основывается на одинаковых принципах, но прикладные решения ограничены определенными типами производства.
Читать дальше →
Всего голосов 98: ↑89 и ↓9+80
Комментарии25

Разработка сайта — от первой встречи с заказчиком до сдачи проекта, или как быть фрилансером и выжить

Время на прочтение12 мин
Количество просмотров73K
Привет, Хабр!

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

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

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

Кому интересно — добро пожаловать под кат!
Читать дальше →
Всего голосов 89: ↑78 и ↓11+67
Комментарии64

Упрощённая версия пользовательского соглашения (ToS)

Время на прочтение1 мин
Количество просмотров4.8K
На большинстве сайтов ToS представляет собой длиннющий текст мелким шрифтом, который обычные люди не читают, подписывают не глядя. Вчитывается только редкий профи в поисках конкретных важных пунктов.

Почему сайты размещают столь многословные ToS — понятно. Фактически, это юридический документ, который составляют юристы для юристов, а у тех в профессиональной среде принято использовать именно такой язык, нельзя упрощать формулировки.

Любопытный выход из положения предложил фотосайт 500px.com — их пользовательское соглашение составлено в двух вариантах. В левой колонке оригинальный текст, имеющий юридическую силу. А в правой колонке смысл каждого пункта изложен в двух словах. Кстати, таким же образом изложена и политика приватности 500px. Пожалуй, это хорошая идея.
Читать дальше →
Всего голосов 87: ↑81 и ↓6+75
Комментарии39

+10 к интеллекту

Время на прочтение9 мин
Количество просмотров165K
MM_mindmap_title

Так или иначе, практически каждый из нас использовал в своей жизни технику интеллект–карт или Mind Mapping. Это всего лишь простая радиальная схема, но с правильным подходом ее можно превратить в мощный инструмент аналитики и синтеза информации, который всегда под рукой и достаточно прост в использовании. И что самое интересное, освоение техники настолько естественно для нашего мозга, что занимает всего лишь несколько минут…
Читать дальше →
Всего голосов 90: ↑75 и ↓15+60
Комментарии49

Упражнения по взлому Linux-систем

Время на прочтение2 мин
Количество просмотров16K
Для тех, кто интересуется вопросами безопасности и уязвимостями Linux, создан обучающий проект exploit-exercises.com с подборкой виртуальных Linux-машин, описаниями уязвимостей, документацией и практическими заданиями.

1. Виртуальная машина Nebula
торрент-файл
прямая ссылка

Самые общие уязвимости, связанные с эскалацией привилегий в Linux: это SUID-файлы, разрешения, состояние гонки (race conditions), метапеременные оболочки, уязвимости $PATH, уязвимости скриптовых языков, ошибки компиляции бинарных файлов.
Читать дальше →
Всего голосов 107: ↑102 и ↓5+97
Комментарии19

Обфускация JavaScript

Время на прочтение5 мин
Количество просмотров196K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге Badass JavaScript и решил её дополнить своими находками.

Первый способ


Он всем известен — обфускация минимизаторами такими как JS Packer, JSmin, YUI Compressor, Closure compiler или можно просто пугуглить «JavaScript Obfuscator» и найдется ещё сто штук разных обфускаторов.
Они превращают существующий код
function MyClass(){
    this.foo = function(argument1, argument2){
        var addedArgs = parseInt(argument1)+parseInt(argument2);
        return addedArgs;
    }
    var anonymousInnerFunction = function(){
        // do stuff here!
    }
}

В какой-то такой вид:
function MyClass(){this.foo=function(c,b){var d=parseInt(c)+parseInt(b);return d};var a=function(){}};

Или такой:
var _0xd799=["\x66\x6F\x6F"];function MyClass(){this[_0xd799[0]]=function (_0xefcax2,_0xefcax3){var _0xefcax4=parseInt(_0xefcax2)+parseInt(_0xefcax3);return _0xefcax4;} ;var _0xefcax5=function (){} ;} ;

Или вот такой:
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 0="3 5!";9 2(1){6(1+"\\7"+0)}2("8");',10,10,'a|msg|MsgBox|Hello|var|World|alert|n|OK|function'.split('|'),0,{}))

Но ничего не стоит его восстановить с помощью jsbeautifier.org либо просто убрать eval и получить исходный код, многое потеряем, но смысл кода восстановим. Ну и с первого взгляда мы видим, что перед нами JavaScript.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →
Всего голосов 171: ↑165 и ↓6+159
Комментарии85

Android. Обзор боевых приложений

Время на прочтение2 мин
Количество просмотров321K
Доброго времени суток!

Наряду со статьей "iPhone: MiTM атака из кармана", родилась почти аналогичная статья про Android.

Мы уже знаем, на что способен iPhone. Уступает ли ему Android?

Было рассмотрено около 25 боевых приложений. Хочу предоставить вам результат маленького исследования. Многие приложения даже не запустились, некоторые подвесили телефон намертво, но некоторые даже работали!

Весь софт тестировался на телефоне LG Optimus, с версией Android 2.3.

Итак, краткий обзор боевого софта на Android:

Читать дальше →
Всего голосов 255: ↑238 и ↓17+221
Комментарии49

16 инструментов для создания прототипов

Время на прочтение5 мин
Количество просмотров492K


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

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

16 инструментов со ссылками и их краткое описание
Всего голосов 53: ↑47 и ↓6+41
Комментарии33

Модуль nginx для борьбы с DDoS

Время на прочтение6 мин
Количество просмотров67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →
Всего голосов 142: ↑140 и ↓2+138
Комментарии43

Познание и внутренний опыт пользователя

Время на прочтение5 мин
Количество просмотров8K

Предлагаю вашему вниманию вольный перевод статьи Jordan Julien Cognition & The Intrinsic User Experience

За последние несколько лет было много дискуссий, вокруг того, какой пользовательский опыт может быть разработан. Каким бы ни был UX, пользователь всегда будет иметь возможность пройти по своему, уникальному пути. Все потому, что когнитивное сопротивление является уникальным для каждого пользователя. Создание интуитивно понятного интерфейса является очень важным шагом, но мало кто может точно сказать, что именно делает интерфейс интуитивно понятным. Здесь понятия Когнитивной Нагрузки и Когнитивного Барьера играют большую роль.
Читать дальше →
Всего голосов 41: ↑38 и ↓3+35
Комментарии6

Отслеживание параметров браузера и ОС пользователя как мера предотвращения угона аккаунтов (обновлено)

Время на прочтение3 мин
Количество просмотров14K
Уважаемые Хабровчане! Вчерашний вариант статьи я полагал, что находится в черновиках. И посему отобразился недописанным. Предлагаю полную, дописанную версию

image

Многие он-лайн сервисы стремятся обезопасить аккаунты своих пользователей самыми различными способами. Кто-то отслеживает IP-адрес, сбрасывая кукисы при его изменении (так происходит на Секлабе; вКонтакте просто просит подтвердить последние 4 цифры мобильника). У кого-то сессия живёт ограниченное время, заставляя пользователя авторизоваться снова и снова. У этих способов есть свои достоинства и недостатки. Но какой бы из механизмов не использовался, отслеживание параметров браузера и ОС пользователя придаст дополнительную защиту от угона аккаунтов (как дополнительная защита, но ни в коем случае не основная). И очень странно, что я до сих пор не смог встретить ни одного сервиса, поддерживающего этот механизм защиты.

Задайтесь вопросом: в каких случаях при очередном посещении ресурса у пользователя кукисы будут аналогичны прошлому посещению, но изменятся данные браузера и используемой ОС (которые можно выцепить из User-Agent)? Только в 3-х случаях:

1. Пользователь авторизовался с разных компьютеров (например, дома и на работе) и по некоторым причинам использует разные браузеры.
2. Пользователь авторизовался с 1 компьютера в разных браузерах (этим будут страдать, пожалуй, только веб-разработчики и особо любопытные). Либо те, кто загаживает ОС непонятными фенечками (привет любителям vkSaver)
3. У пользователя угнали сессию.

Детектить предлагается не весь параметр User-Agent, а тип браузера (IE, FF, Chrome, Safari и т.д.) и операционную систему (Windows, Linux, MacOS). Это решит проблемы ложного срабатывания при обновлении ПО на компе пользователя.

Да, User-Agent можно подменять. Но:
1. Довольно часто с этим никто из угонщиков сессии не парится.
2. Подмену User-Agent можно определить (читайте ниже как).

Рассмотрим предлагаемый метод защиты в дополнение к имеющимся. В совокупности с классическими случаями угона сессии.

Читать дальше →
Всего голосов 26: ↑15 и ↓11+4
Комментарии60

Информация

В рейтинге
Не участвует
Откуда
Nürnberg, Bayern, Германия
Зарегистрирован
Активность