Pull to refresh
0
0
Виталий Лебедев @Sarrees

User

Send message

Избранное: ссылки по IT безопасности

Reading time3 min
Views110K




Давно хотел написать этот пост с подборкой полезных ссылок, так как очень часто спрашивают подобное (думаю, у многих, кто в этой (да и в других) сфере). Ссылки разбиты на категории.




Читать дальше →
Total votes 92: ↑86 and ↓6+80
Comments18

Воображение, как у Эсмеральды

Reading time4 min
Views23K
(От переводчика: этот текст появился в блоге одного из разработчиков языка Go в новогоднюю ночь 2012. Текст ничуть не утратил актуальности за два минувших года; более того, вместо Go в тексте вполне мог бы стоять любой другой немейнстримовый язык. Собственно, именно об этом текст и повествует.)

Одна моя знакомая актриса — назовём её Эсмеральдой — как-то сказала, «Я всегда знала, что стану актрисой. Даже представить не могу, чтобы я была кем-то ещё!» Кто-то парировал: «Какая же тогда из тебя актриса?»

Я вспомнил об этой беседе, прочитав отзыв о языке Go: «Даже представить не могу, как можно программировать на языке без дженериков!» Мне так и хотелось парировать: «Какой же тогда из тебя программист?»

Эта заметка не о дженериках — против них я ничего не имею: возможно, однажды они в Go появятся, а возможно, нет. Эта заметка о воображении, или по крайней мере о том, что программисты обычно выдают за воображение: претензии. Один мой друг отметил, что самый распространённый ныне способ проводить свободное время — сотрясать воздух Сети своими жалобами. Для жалобщиков это умиротворяющая разрядка; но адресатов неиссякающего потока жалоб это весьма угнетает. На меня жаловались столько, что теперь мне самому стала нужна разрядка. Что я для этого делаю? правильно, пишу возмущённый пост в свой блог.

Читать дальше →
Total votes 81: ↑68 and ↓13+55
Comments49

Введение в анализ сложности алгоритмов (часть 1)

Reading time10 min
Views380K
От переводчика: данный текст даётся с незначительными сокращениями по причине местами излишней «разжёванности» материала. Автор абсолютно справедливо предупреждает, что отдельные темы покажутся чересчур простыми или общеизвестными. Тем не менее, лично мне этот текст помог упорядочить имеющиеся знания по анализу сложности алгоритмов. Надеюсь, что он будет полезен и кому-то ещё.
Из-за большого объёма оригинальной статьи я разбила её на части, которых в общей сложности будет четыре.
Я (как всегда) буду крайне признательна за любые замечания в личку по улучшению качества перевода.


Введение


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

Тем не менее, знание теории тоже имеет свои преимущества и может оказаться весьма полезным. В этой статье, предназначенной для программистов, которые являются хорошими практиками, но имеют слабое представление о теории, я представлю один из наиболее прагматичных программистских инструментов: нотацию «большое О» и анализ сложности алгоритмов. Как человек, который работал как в области академической науки, так и над созданием коммерческого ПО, я считаю эти инструменты по-настоящему полезными на практике. Надеюсь, что после прочтения этой статьи вы сможете применить их к собственному коду, чтобы сделать его ещё лучше. Также этот пост принесёт с собой понимание таких общих терминов, используемых теоретиками информатики, как «большое О», «асимптотическое поведение», «анализ наиболее неблагоприятного случая» и т.п.
Читать дальше →
Total votes 106: ↑98 and ↓8+90
Comments27

Дерек Сиверс: «Метод интервального повторения — лучший способ изучения языков программирования»

Reading time6 min
Views114K
Краткая справка: в 1998 году Дерек Сиверс основал компанию CD Baby и превратил ее в крупнейшего онлайн-продавца независимой музыки. В 2008-ом вырученные от продажи компании $22 миллиона Дерек передал в благотворительный траст на нужды музыкального образования.
Речи Дерека на TED просмотрели более 5 миллионов раз, а его собственная книга занимала первую строку в чарте книг для предпринимателей на Amazon.
Сам себя Дерек считает «вечным учеником».


Я уже год использую этот метод обучения и могу сказать, что он – самый эффективный из тех, с которыми мне довелось столкнуться за 14 лет изучения программирования.
Читать дальше →
Total votes 74: ↑68 and ↓6+62
Comments45

Google Street View добрался и до Большого адронного коллайдера

Reading time1 min
Views40K
image

Хотите увидеть лабораторию ЦЕРН в Женеве, где установлен Большой адронный коллайдер, изнутри? Тогда вам повезло, потому что Google добавил изображения из помещений ЦЕРН в свой сервис Google Maps.
Читать дальше →
Total votes 53: ↑49 and ↓4+45
Comments32

Биллинг в большом проекте

Reading time8 min
Views48K
Существуют разные способы «монетизировать» проект. Но у них есть одна общая составляющая ― то, как деньги переходят из кошелька пользователя на счет организации. Сегодня мы расскажем о том, как организован прием платежей в Badoo и что можно встретить на рынке платежных шлюзов. Сразу предупреждаем, что в статье вы не найдете конкретных цифр по обороту средств компании, но все остальное будет не менее интересно.

Что такое «биллинг»


Для нас биллинг ― это всё, что связано с получением денег от пользователей: конфигурация цен, страница приема платежей, непосредственно прием и обработка платежей, оказание оплаченных услуг, различные промоакции и, конечно же, мониторинг всего вышеописанного.
Читать дальше →
Total votes 83: ↑78 and ↓5+73
Comments52

Обфускация JavaScript

Reading time5 min
Views195K
В статье собраны всем известные методы и предельно извращенные. Эту статью я решил написать после недавнего прочтения поста в блоге 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.

Все это были цветочки под катом жесткие методы обфускации.
Читать дальше →
Total votes 171: ↑165 and ↓6+159
Comments85

Mailpile собрал $120K на разработку open source криптопочты

Reading time1 min
Views20K
За две недели до окончания срока cбора средств на краудфандинговом сайте Indiegogo разработчики почтового веб-сервера Mailpile собрали необходимые $100 тыс. на его создание, и даже больше: на данный момент собрано $120 631.

Суть проекта заключается в создании почтового open source веб-сервера, которое работает на личных компьютерах пользователей и абсолютно защищено от внешней прослушки с помощью стойкой криптографии c поддержкой OpenPGP. Оно создано для пользователей, которые хотят избавиться от проблем, связанных с использованием Gmail, Hotmail и прочих прослушиваемых сервисов. Людям нужно встроенное шифрование, отсутствие рекламы, скорость работы, собственный хостинг, но при этом они хотят сохранить удобство интерфейса, полнотекстовый поиск, теги, аттачменты и другие привычные функции.

Такая простая концепция вызвала живой отклик у сообщества, и оно довольно быстро профинансировало разработку проекта. Теперь дело за реализацией.
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments23

10 самых популярных видео докладов с 404фест 2012

Reading time4 min
Views29K
image

Как вы знаете, мы тут в своей Самаре каждый год проводим Фестиваль 404, куда приезжают разные люди и делятся опытом. Мы этот процесс записываем на видео и выкладываем совершенно бесплатно на свой канал youtube. Предлагаем подборку самых популярных видео докладов за прошлый год.
Читать дальше →
Total votes 55: ↑47 and ↓8+39
Comments11

Много бесплатных книг по программированию

Reading time7 min
Views345K
Читать дальше →
Total votes 202: ↑192 and ↓10+182
Comments42

Юзабилити: прямо здесь и сейчас

Reading time4 min
Views19K
Юзабилити-специалист нужен всем: большим IT-компаниям и маленьким стартапам. О том, как обычно выстроен процесс работы юзабилиста в больших компаниях, на хабре писалось уже не раз. А тему «как взять и прямо сейчас организовать работу внутри вашей команды» (пусть и небольшой) почему-то все время обходили стороной.

Мы решили заполнить эту брешь. Не смотря на то, что Бухгалтерия.Контур (ранее Эльба) — проект большой компании, мы всегда старались воссоздать внутри команды атмосферу стартапа. Поэтому проблемы и нюансы работы в небольшой команде — понимаем хорошо.
Читать дальше
Total votes 31: ↑25 and ↓6+19
Comments10

Сказ о том, как бы я продвигал сайт или не так страшно SEO как его малюют

Reading time9 min
Views88K

Сначала предметная область


SEO стратегия
Изначально была мысль написать очень подробный мануал, но потом решил остановиться на стратегиях.

Ключи/запросы


Это фразы, которые набираются в поиске, для достижения результата (ответа на вопрос, покупки, получения информации…)
По частотностям
НЧ – низкочастотные (величина вычисляется логарифмически относительно самого большого числа запросов по ВЧ запросу из категории), для простоты пусть будет все что ниже 300 запросов (хотя в каждой группе по разному).
СЧ – среднечастотные (величина вычисляется логарифмически относительно самого большого числа запросов по ВЧ запросу из категории), для простоты пусть это будет все что выше 300 и ниже 2000 запросов (хотя в каждой группе по разному).
ВЧ – максимальное значение количества поисков простого запроса, к примеру «Светильник».
По конкуренции
НК – низкоконкурентные запросы, по которым есть шанс двинуться в топ (мало точных вхождений поисковой фразы, мало главных страниц, низкое количество результатов в поисковой выдаче)
СК – средне конкурентные запросы, по которым есть шанс продвинуться в топ, но есть и конкуренция (весь топ занят или главными или точными вхождениями, но показатели ссылочной массы конкурентов низкие)
ВК – высококонкурентные запросы, по которым необходимо из кожи вон вылезти чтоб продвинуться (и топ весь занят, и ссылочная масса ужасающая) при средних бюджетах ВК топ недостижим, но можно долго работать, чтоб кардинально поменять выдачу (закупка сателлитов, ссылочной массы, грамотное внутренне СЕО).

Семантическое ядро


Предполагает, что будет оптимизироваться каждая страница сайта. Это значит, что страница конечно будет давать ответ на запрос пользователя, но при этом на ней должен быть материал, который включает в себя эти ответы. То есть признаки, по которым ПС сможет выдать именно эту страницу на это запрос…
Пока что это сами запросы пользователей – они же «КЛЮЧИ»
Ключевые фразы подбираются для каждой страницы персонально.
Для главной страницы берутся общие запросы (описывающие общую категорию и выделяющие общую тематику сайта).
Для страницы категории выбираются запросы более узкой тематики, выделяющие отдельную категорию в общей всего сайта.
Для страницы товара/услуги – берутся максимально конкретные запросы, отражающие ее суть и позволяющие максимально точно ее/его идентифицировать.

0 Стратегия: Тариф Беззаботный


Минимум затрат, так как трафик тупо покупается у ПС. Других вариантов нет.

1 Стратегия: На халяву


Низкоконкурентный трафик – занимается ниша, где есть спрос, но нет конкурентов – классический «кто первый встал – того и тапки».
Схема до боли проста – ищем свободные ниши, подбираем НК запросы, пишем материал (даем полезное на запрос пользователя) – попадаем в ТОП, для усиления эффекта можно закупить по парочке ссылок.
Посмотреть нормальные стратегии...
Total votes 152: ↑89 and ↓63+26
Comments56

Использование Drag&Drop в HTML 5

Reading time3 min
Views100K


Долгое время для создания Drag&Drop функционала использовались JavaScript-функции, однако браузеры не всегда корректно могли отображать результат. В HTML 5 есть способ грамотной поддержки Drag&Drop, с небольшим применением JavaScript. В этой статье подробно разобран наглядный пример применения Drag&Drop в HTML 5.

Поддержка браузерами


На сегодняшний день функция Drag&Drop в HTML 5 корректно обрабатывается всеми современными настольными браузерами, (частично даже IE 5.5!), однако мобильные такую возможность не поддерживают. Подробнее данные в таблице caniuse.com.
Читать дальше →
Total votes 48: ↑38 and ↓10+28
Comments11

CoffeeScript и AngularJS

Reading time6 min
Views19K
Перевод статьи Александра Хилла CoffeeScript and AngularJS. Это мой первый перевод и буду рад получить любые замечания и исправления.

AngularJS и CoffeeScript это отличная комбинация, не смотря на то, что CoffeeScript не пользуется большой популярностью в комьюнити AngularJS. В статье будут представлены несколько приемов, которые «облегчат» ваш код на AngularJS.
Читать дальше →
Total votes 37: ↑24 and ↓13+11
Comments6

Как создать новый продукт для рынка электроники. Часть 2

Reading time6 min
Views35K

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

В первой части мы убедились, что планирование и разработка концепции нового устройства требует чертовски много времени, посмотрели на подводные камни на этапе разработки софта и железа. А сейчас предлагаю сфокусироваться на производственных аспектах — тестировании, изготовлении опытных образцов, серийном производстве, поставке и послепродажной поддержке.
Хочу все знать про производство
Total votes 28: ↑27 and ↓1+26
Comments35

Symfony 2: Полезные библиотеки и бандлы

Reading time9 min
Views54K
Уже около полугода для разработки веб-проектов используем Symfony 2. Накопился список полезных библиотек и бандлов, не входящих в состав symfony-standard, но значительно экономящих время и избавляющих от изобретения велосипеда.



Обзор больше теоретический и включает следующие разделы:
  • Админгенераторы
  • Пользователи
  • Импорт/экспорт xls
  • API и OAuth 2.0
  • Меню/навигация
  • Мультимедиа
  • Формы
  • Поиск
  • Пагинация
  • Файловая система
  • HTTP клиент

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

Читать дальше →
Total votes 42: ↑39 and ↓3+36
Comments16

Оптимальная длина и состав пароля

Reading time3 min
Views23K

Введение.



На фоне многочисленных постов о паролях решил провести небольшое исследование.

В настоящее время парольная защита является самым распространённым и, к сожалению, самым ненадёжным методом защиты. Существует много статей на тему «Как составить стойкий пароль», но мне не встречались статьи, где приводятся реальные данные о надёжности паролей.

В исследовании проводится оценка надёжности паролей противостоять атакам грубой силы. Наиболее эффективный метод грубой силы при переборе паролей для хеш-функций является составление радужных таблиц.

Расчёты проводятся для трёх хеш-функций md5, sha1 и sha2 (модификация sha512). В расчёт не берутся данные о коллизиях в данных хеш-функциях, так как с практической точки зрения в реальном подборе пароля они не помогут, да и достойных реализаций в ПО на настоящий время в открытом доступе нет. В исследовании принимают участия пароли длиной 7, 8, 10 и 12 символов трёх различных алфавитов.

Для наглядности результатов приводятся данные о количестве паролей, объёме дискового пространства для хранения радужных таблиц и ориентировочном времени построения радужных таблиц.
Читать дальше →
Total votes 126: ↑94 and ↓32+62
Comments121

MiTM атака на SSH

Reading time2 min
Views44K
В новой версии Intercepter-NG появилась возможность провести полноценную атаку на SSH-2 протокол.

Атакующий получает данные авторизации пользователя и логирует весь сеанс связи, запуск команд и результат их выполнения.
Для этого Intercepter перенаправляет трафик жертвы на свой собственный ssh сервер и в случае успешной авторизации
проксирует соединение до оригинального сервера.
Читать дальше →
Total votes 76: ↑60 and ↓16+44
Comments79

24 совета javascript-разработчику

Reading time9 min
Views85K
От переводчика: Не смотря на то что оригинал данной статьи датирован январем 2009 года, она не потеряла актуальности и теперь. Я надеюсь что даже те, кто используют JavaScript не первый год, почерпнут для себя что-то полезное.

1. Используйте === вместо ==


В JavaScript существует два разных типа операций сравния: === / !== и == / !=. Считается хорошим тоном всегда использовать первую пару для сравнения.
“Если два операнда одного типа и значения, то === вернет true, а !== false”
JavaScript: The Good Parts
Читать дальше →
Total votes 145: ↑92 and ↓53+39
Comments185

Список полезных инструментов для php разработчика

Reading time10 min
Views147K
PHP один из самых широко используемых языков для создания вебсайтов. PHP фреймворки, такие как Zend, CakePHP, CodeIgniter и т.д и open source классы и библиотеки упростили разработку.
Независимо от того, являетесь ли вы опытным разработчиком или новичком, инструменты, которые вы используете, имеют прямое влияние на вашу продуктивность. Здесь собран список действительно полезных утилит и расширений для PHP разработчиков, которые помогут ускорить разработку, и улучшит итоговое качество кода.
Читать дальше →
Total votes 214: ↑200 and ↓14+186
Comments131

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity