Search
Write a publication
Pull to refresh
2
0
Максим Юрьевич Никифоров @mention

User

Send message

Photoshop vs. Fireworks: сжатие

Reading time2 min
Views5.3K
Удивительно, но основываясь на результатах моего недавнего исследования существует немало пользователей Fireworks. Лично я им никогда не пользовался. Обычно, я использую Photoshop при ежедневной работе. Но, знаете ли вы, что Fireworks лучше, чем в Photoshop сжимает изображения? Я не программист, я не могу объяснить, почему Fireworks  сжимает лучше. Но я могу доказать это, показав серию экспериментов, которые я провел.
Читать дальше →

nginx — строим свой letitbit

Reading time2 min
Views5.2K
Появилось желание сделать сервис подобный letitbit.net в отдельно взятой стране на окраине Европы.
Требовалось:
  • позволять загружать/отдавать большие файлы;
  • не позволять перепубликовывать прямые ссылки на файлы;
  • ограничивать количество одновременно скачиваемых файлов.

Для реализации выбрали NGINX в связке с PHP через fastcgi.
В NGINX добавили:
  1. великолепный Nginx upload module, который позволяет избежать многократное копирование загруженного файла на пути NGINX-PHP. К тому же, при небольшой доработке, возможна загрузка сразу в нужную папку, что позволяет использовать простое переименование вместо копирования в PHP
  2. нужную заплатку к модулю secure_link, позволяющую делать безопасные ссылки действительными ограниченное время

PHP взяли самый обычный и запустили через spawn-fcgi.
Поставили сервачок, напихали туда штук 12 терабайтных дисков.
Программист написал PHP код, а Марис Рускулис придумал следующий трюк с rewrite для NGINX, позволяющий избежать обращение к PHP при скачивании файла.
В результате, конфигурация NGINX выглядела примерно так:
http {
limit_zone regular $zonekey 10m;
limit_zone premium $zonekey 10m;
server {
root /www/oursiteishere;
location / { try_files $uri @files; }
location ~ \.php$ { try_files $uri @files; fastcgi_stuff_here; }
location @files { rewrite ^(.*)$ /index.php?$1 last; }
location /storage/ { root /storages/; internal; }
# Location for regular users
location ~ /download/.+/(.+)/0/.+/.*/(.+)$ {
set $fname $2;
set $username $1;
set $zonekey "$binary_remote_addr $username";
limit_conn regular 1;
limit_rate '100k';
secure_link_secret megasecret;
secure_link_ttl on;
if ($secure_link = "") { return 403; }
add_header Content-Disposition "attachment; filename*=UTF-8''$fname";
rewrite ^/download/([a-f0-9]+)/([\.~0-9a-zA-Z_]+)/([01])/([0-9]+)/(.+)/.+$ /storage/$4/$5 break;
}
# Location for premium users
# Location for upload using upload module
}
}

Замечательной вещью в данном конфиге является тот факт, что при скачивании файла по сгенерированной защищённой от подмены временной ссылке (проверку осуществляет secure_link) не вызывается PHP с последующим X-Accel-Redirect.
Возможно, данное решение накладывает ограничение на присутствие логики перед непосредственной отдачей файла, но тем не менее, на мой взгляд, является довольно оригинальным трюком, позволяющим немного сэкономить на fastcgi.

Пишем Comet-чат

Reading time20 min
Views16K
Хочу поделиться своим опытом создания простого Comet-чата. Периодически читал про эту технологию, и сейчас решил попробовать сделать что-либо сам. Получился небольшой чат, интерфейс которого я старался сделать похожим на интерфейс irc-клиента mIRC. Так как подобную вещь пишу первый раз, просьба прокомментировать возможные ошибки в программе и статье и описать более оптимальные пути решения задач. Посмотреть на работающий чат можно здесь: http://94.127.68.84:6884/
Читать дальше →

Шифр Аль-Кайды взломали

Reading time2 min
Views2.2K
Британская спецслужба МИ5 инициировала утечку в прессе информации об успешном взломе секретного шифра террористической организации Аль-Кайда. Для работы над этой задачей в штаб-квартире в Менвит-Хилл (Menwith Hill) на севере Англии была организована специальная команда взломщиков из специалистов МИ5 и АНБ. Расшифровка заняла шесть месяцев.

С помощью этого кода арестованные в Великобритании лидеры Аль-Кайды обменивались сообщениями друг с другом, а также управляли сетью агентов.

Шифр был основан на замене букв по таблице, известной авторам. Как сообщатся, в качестве таблицы террористы использовали известные им наизусть религиозные трактаты, а в посланиях использовали слова на как минимум на двадцати различных диалектах Афганистана, Ирана, Пакистана, Йемена и Судана.
Читать дальше →

Eestartup

Reading time2 min
Views693
В течение двух лет мы плотно общались с десятками стартап команд, как российскими так и иностранными, и рядом инвесторов из России, изучили зарубежные блоги, такие как techcrunch.com и mashable.com. Как результат, мы выявили две глобальные проблемы:

1. Русские стартапы не знают как продвигаться за рубежом или просто не имеют возможности, так как их создатели не живут в Кремниевой Долине, рядом с журналистами из топовых блогов. Получить иностранные инвестиции тяжело, потому что связь с западными инвесторами осуществляется только через некоторые инвестиционные фонды в России, ряд инвест событий в США и Европе, а также через поездки заграницу.

2. Иностранные журналисты и инвесторы, не знают, какие у нас вообще есть интернет проекты, они не в курсе, что происходит на интернет рынке в России, Украине и Беларуси, где ежегодно запускаются десятки новых продуктов.

Проблема коммуникации налицо. Имиджа России, Украины и Беларуси, как стран, где бурлят стартап страсти как таковой отсутствует.

Мы решили поменять такой порядок вещей в силу наших возможностей и создали проект eestartup.com, East Europe Startup, то есть стартапы из восточной Европы.
Читать дальше →

10 недорогих способов повысить лояльность работников в стартапе

Reading time2 min
Views13K
Стартапы и небольшие компании зачастую не могут предложить звездные зарплаты своим работникам, но есть другие способы сделать жизнь сотрудников более приятной. Большинство этих методов бесплатны или обойдутся вам в копейки.
workathome

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

Текст любой ценой: PPT

Reading time3 min
Views5.1K
Некоторое время назад мы с вами обсуждали получение чистого текста из различных форматов данных: будь то PDF или DOC. В одном из обсуждений был высказано предположение, что при парсинге презентаций PowerPoint я заработаю геморрой или другую страшную болезнь мягкой точки. Что ж, волей судеб мне пришлось доставать текст и из этого «сладенького» формата. Скажу честно, геморрой заработать не удалось, а вот класс для парсинга презентаций вышел.
Читать дальше →

Новый сервис коллективного перевода

Reading time2 min
Views1.9K
Здесь многие знают сервис коллективного перевода "Нотабеноид". Мы пользовались им для перевода одного из своих проектов, но скоро поняли, что это не совсем то, что нам нужно. Во-первых, хотелось онлайнового видео, во-вторых — большей заточенности на конкретную тематику, чтобы объединять вокруг своей идеи заинтересованных людей. Так появился наш проект ChinaFilm.tv.

Что же нового появилось?

Выбор системы управления задачами, часть 2

Reading time9 min
Views113K
Обзор и сравнение предложенных хабралюдьми систем

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

Вторая часть длинная (да еще и со скриншотами), если тема не интересна — лучше и не начинить читать :)

Мы опробовали в нашей команде некоторые предложенные системы управления задачами, и я отчитываюсь о результатах. Может кому-то будет интересно и полезно, а может кто-то посоветует систему лучше всех остальных (только прошу написать хотя бы несколько слов, о том почему и чем предлагаемая система интересна).
Читать дальше →

классический TCP сервер

Reading time4 min
Views46K
мой первый TCP Сервер был создан пару лет назад. Основой создания послужила книга Р.Стивенсона «Unix — Профессиональное программирование.» Есть несколько подходов к созданию TCP-серверов. В данном посте хочется рассказать про классический TCP сервер.

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

Волшебный выключатель

Reading time2 min
Views19K
Эпидемии гриппа посвящается.

Грязный выключатель в общественных местах, да и дома — жуткий рассадник всяческих микробов. В слое из кожных выделений они чувствуют себя очень и очень хорошо. Эту проблему можно решить легко и просто — сделать бесконтактный выключатель, касаться которого не нужно. Благо техника дошла что реализовать такой не сложно.

Free Image Hosting at www.ImageShack.us

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

Обзор дополнений к популярным CMS для организации сервиса-микроблоггинга

Reading time2 min
Views1.9K
image

В недавнем обзоре я описал лучшие standalone-решения для организации микроблоггинга. Сейчас же мы посмотрим, что нам предлагают на этот счет популярные CMS :-)

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

Linux в Екатеринбурге: кино для своих

Reading time1 min
Views705
29 ноября (воскресенье) 2009, группа пользователей GNU/Linux Екатеринбурга представит видеопоказ для тех, кто «в теме». Документальный фильм «Revolution OS» будет демонстрироваться в течение двух часов в здании «Фильмофонда» по адресу Екатеринбург, Блюхера 4. Количество билетов ограничено, их можно купить различными способами на сайте E-LUG.Ru: http://tickets.e-lug.ru. Стоимость билета составляет 96 рублей.

Фильм «Revolution OS» вышел в 2002 году и рассказывает двадцатилетнюю историю Linux, GNU и самого движения свободного ПО. Роли самих себя исполняли Линус Торвальдс, Ричард Столлман, Брюс Перенс и Эрик Реймонд – основатели OSI (Open Source Initiative).

Контактная информация:
Телефон: +7 909 016 72 83 (Никита)
Сайт: www.e-lug.ru / forum.e-lug.ru

Верстка повторяющихся блоков

Reading time3 min
Views14K
Довольно часто при верстке сайта возникает необходимость размещать блоки одинаковой ширины, но разной высоты в контейнере с переменной шириной (читай резиновом). Плюс на этот список может применяться фильтр, который JS-ом скрывает или показывает элементы списка, при этом он не должен разрушать «строки», верстку, или образовывать дыры, поэтому решения на таблицах не катят сразу. Простейший пример — каталог товаров:


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

Точное время: измеряем, применяем

Reading time12 min
Views40K
   Цель данной статьи – изложить, полученный в ходе работы над проблемой материал о способах максимально точного измерения времени и использования на практике этих способов, а также рассмотреть варианты управления чем-либо программным с максимально достижимой точностью.

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

   Наша задача – найти лучший метод точного измерения малых временных интервалов (желаемая точность – 10^-6 секунды), определить наиболее эффективный способ программирования задержек в исполнении кода, с такой же точностью.

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

Архитектура системы приема электронных платежей на сайте

Reading time6 min
Views13K
Для многих проектов наступает момент, когда хочется, чтобы сайт приносил прибыль.
И не только в виде оплаты рекламных баннеров или контекстной рекламы, но и в виде денежек от своих посетителей.

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

Такое ограничение сразу приводит к вычеркиванию из списка методов оплаты заполнение квитанции в Сбербанке. Да, это тоже метод, но метод небыстрый. Особенно, если на дворе поздний вечер, пользователь расслабился за бутылкой пива чашкой чая. Какой Сбербанк, тёпленьким его брать, тёпленьким!

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

IT аутсорсинг: по ту сторону баррикад

Reading time12 min
Views34K
image
Топик навеян рассуждениями xldsakamrhahn Системный администратор или аутсорсинг? о качестве обслуживания аутсорсинговыми ИТ компаниями. Этой статьей хотелось бы показать насколько IT аутсорсинг для малых и средних предприятий является тяжелым и сложномасштабируемым бизнесом. На сегодняшний день технологии стали намного более сложными и капризными чем раньше, и с каждым годом ситуация усложняется еще больше, старые технологии заменяются все более новыми, знания и опыт специалиста без их постоянного обновления и слежения за тенденциями быстро теряют актуальность и становятся ненужными. Это вам не телевизоры чинить, в IT сфере устройства на порядки более совершенные и сложные.

Затраты у большинства клиентов на IT обслуживание приравниваются к затратам, например, за коммунальные услуги, т.е. чем дешевле обойдется — тем лучше, тем больше прибыль и не секрет, что малый бизнес как никакой другой считает каждую копейку. Однако не стоит ставить цену услуг основным критерием для принятия решений о сотрудничестве с аутсорсинговой компанией и прочтя этот опус до конца вы поймете почему. Также в конце статьи ИТ компании небольшого размера (до 10 человек) ждет вкусный бонус.
заглянуть по ту сторону баррикад

Организация on-line платежей на сайте. Для тех, кто никогда этим не занимался, но боится, что придётся

Reading time2 min
Views4.2K
Я хочу поделиться простым взглядом на сложные вещи.
Отлично помню своё первое столкновение с on-line платежами. Тогда меня такая задача морально напрягала: мало того что на мне ответственность за чьи-то деньги, так я ещё и не понимаю даже обычной банковской системы, что уж говорить о виртуальной.
Хорошо, если бы мне тогда кто то сказал...

Я вижу вас насквозь, а вы при этом наивно полагаете, что находитесь в полной безопасности

Reading time5 min
Views8.2K
Кевин Митник в одном из своих интервью журналистам, сказал, что самое слабое звено в системе безопасности — это человек. Именно благодаря навыкам социальной инженерии, ему удалось стать одним из известнейших хакеров современности. Если вы считаете, что Кевин, как показывают в фильмах про хакеров, сидел в темной комнате с кучей мониторов с циферками и взламывал всех и вся оттуда, никогда эту комнату не покидая, то вы глубоко заблуждаетесь.

Ладно. Задайте себе вопрос — что уже интернет знает о Вас? Скорее всего, интернет о вас знает уже все, а что, как говорится, seen can not be unseen в глобальной сети. Теперь второй вопрос — как этим могут воспользоваться злоумышленники.

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

У вас есть блог? Твиттер? Страничка во вконтакте или фейсбуке? Вы активный пользователь форумов? Тогда мы идем к вам…

Я перечитал свой же текст и мне стало страшно. Серьезно.
Читать дальше →

Создаём страницы-«заглушки» для своих сайтов

Reading time7 min
Views109K
Страницы-«заглушки»Если вы купили домен, а сайт ещё не запустили, то решить, что делать с ним — это довольно непростая задачка. Оставить начальную страницу вашего регистратора или стандартную страницу хостинга? Оба варианта выглядят, по меньшей мере, непрофессионально. Особенно, если вы собираетесь попиарить свой новый проект, рассказать о нём. В то же время, вы не хотите тратить слишком много времени для создания временной страницы, т.к. вам нужно работать над самим проектом.

Лучший выход из ситуации — создать простую страницу-«заглушку», которая будет рассказывать посетителям, что здесь, в конечном счёте, появится. Хорошая страница-«заглушка» может быть двух вариантов: информационная страничка, которая просто расскажет, что здесь будет после запуска; или страница, которая предлагает посетителям подписаться на уведомления или оставить запрос на бета (или альфа) тестирование. Ниже вы увидите несколько отличных примеров обоих типов, следуя которым, вы сможете создать свою такую страницу-«заглушку». Разумеется, среди них вы не увидите обычных страниц «В разработке» (с надоевшим дизайном), которых целая куча в сети.
А теперь подробнее и с примерами...

Information

Rating
Does not participate
Location
Сургут, Тюменская обл. и Ханты-Мансийский АО, Россия
Date of birth
Registered
Activity