Search
Write a publication
Pull to refresh
1
0
shadeR @shadeR

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

Send message

Время жизни сессии

Reading time2 min
Views125K
Приветствую.
Столкнулся с проблемой убийства сессий раньше назначенного им срока. То есть устанавливаю

ini_set('session.gc_maxlifetime', 120960);
ini_set('session.cookie_lifetime', 120960);


А сессия убивается примерно через 30 минут.
Гуглил долго и тщательно. Не нагуглил ничего, что помогло бы.
Стал читать мануал и нашел причину проблемы. Оказалось всё просто до одурения.
Читать дальше →

Стена тегов

Reading time4 min
Views1.3K


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

Букмарклет, подгружающий внешний скрипт

Reading time1 min
Views1.2K
В текущем проекте была задача написания полуавтоматического граббера страниц. Для этого необходимо было делать инъекцию скрипта в текущую страницу. Решил таким букмарклетом:

<a href=«javascript:(function(){var d=document,s;
s=d.createElement('script');
if(typeof s!='object')s=d.standardCreateElement('script');
s.src='http://example.com/js/bookmarklet.js';
s.type='text/javascript';
d.body.appendChild(s);})();»
>Do it!</a>


В более читаемом виде:

(function(){
 var d = document, s;
 s = d.createElement('script');
 if(typeof s != 'object'){
  s = d.standardCreateElement('script');
 }
 s.src = 'http://example.com/js/bookmarklet.js';
 s.type = 'text/javascript';
 d.body.appendChild(s);
})();


Оттестировано в IE6, IE7, FF2, FF3, Opera 9.2, Opera 9.5, Safari.

Автоматическое определение языка произвольного текста на РНР — библиотека PHPLangautodetect

Reading time15 min
Views20K
Знаете, работа с стартапе, который пытается создать что-то новое и уникальное на рынке очень захватывает. И не только открывающимися возможностями, но и часто нетривиальными задачами и вопросами, которые ставятся перед создателями и которые раньше никто не решал. Вот один из таких вопросов как раз вчера появился передо мной: дано нам произвольную строку текста, заведомо известно, что она может быть двух, а в некоторых случаях и трехъязычной, то есть там смешанный текст из нескольких языков. Необходимо прозрачно для пользователя определить язык, на котором написан текст.

На самом деле задача не такая и редкая — подобная функциональность есть и в текстовых редакторах, и в переключателе клавиатуры PuntoSwitcher, да и в системах машинного перевода такой функционал востребован, не говоря уже про системы поиска информации. Кстати, именно в контексте создания специализированного поисковика и классификатора текстов и появилась такая проблема. Необходимо было получить такую возможность в собственной программе на платформе РНР и при этом не задействовать сторонние сервисы — подобная возможность в виде веб-сервиса присутствует в Google Language API (в своём блоге я уже исследовал этот сервис), однако она выполняется удалённо и имеет некоторые существенные для нас ограничения, в частности, процедура опознания языка выполняется с существенной задержкой и асинхронна по своей природе. Кроме этого очень хотелось иметь полный контроль над процессом и иметь возможность его гибко настраивать, чего, увы, нет в сторонних сервисах. Поэтому пришлось подумать и попробовать реализовать собственными силами, результат же представляем вашему вниманию.
Читать дальше →

Звук по сети

Reading time1 min
Views15K
Стоит у меня дома большой комп, используется в основном как телевизор. Кино смотрим на ноутбуке, ибо монитор не сильно больше, а стоит далеко от дивана. Поэтому приходится подключать к ноутбуку либо наушники, либо вторые колонки, либо ползать под стол и вытаскивать из компа шнур. Надоело.

Звуковые серверы в *nix есть давно, arts, esd — классика. Сейчас стандартом заслуженно становиться pulseaudio, в Ubuntu он устанавливается с релиза 8.04, а в Fedora с 8.
Читать дальше →

Презентация вашего стартапа

Reading time6 min
Views3.8K
Вот вы развили свою идею до рабочего прототипа. Вы и ваши со-основатели опытны и уверены в себе. Ваш ангельский инвестор помог открыть вам некоторые двери, дав пару впечатляющих партнёров. Вы только и думаете о том, как бы действительно начать зарабатывать и нанять сотрудников.

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

Так что вы открываете файл презентации вашей речи в Powerpoint.

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

Определение города по IP-адресу

Reading time2 min
Views35K
Такая потребность может возникнуть при геотаргетинге информации, работе картографических сервисов, анализе статистики посещений сайта.

Задача решается следующим образом.

1. Выкачиваем и правильно складываем базы whois.
2. Для каждой подсети определяем город.
3. Пакуем базу в бинарный файл.

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

Планировщик задач на JavaScript

Reading time10 min
Views8.8K
Всем привет.

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

Переменные сессии на яваскрипте без кук

Reading time3 min
Views30K
Мне никогда не нравилась реализация кук в Яваскрипте. Объем ограничен (4х20 Кб на домен), хранить возможно только в строковом типе, синтаксис для установки и получения кук избыточно сложен.

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

Поэтому я написал маленький скрипт, который позволит вам использовать переменные сессии в Яваскрипте без установки кук. Он позволяет хранить до 2 Мб данных, что намного меньше ограничивает в возможностях, чем решение на основе кук.

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

Три способа делать проекты #2

Reading time4 min
Views740
Тезисы выкладывал уже ранее, теперь с пояснениями.

Делать любой проект можно совершенно разным способом. Под проектом можно понимать как бизнес в целом (стартап), так и создание отдельного сайта, рекламного материала, или вообще чего угодно.

Часто много сил и средств тратится тогда, когда проект делается не на том уровне, которые нужен для данного конкретного случая. Часто много сил и времени тратится если заказчик и исполнитель видит исполнение проекта на разных уровнях. Поэтому начав что-либо, стоит задаться вопросом: «как я буду это делать».

Есть несколько моделей:
1. Подготовленный захват территории.
2. Хороший уровень без звезд с неба.
3. Предпринимательский заход.
Читать дальше →

Система мониторинга Hyperic HQ Enterprise Monitoring

Reading time2 min
Views9.2K
Очередной выпуск «вкусностей» из мира открытых проектов, размещённых на сайте SourceForge.net. На этот раз я обратил внимание на солидную и серьёзную разработку, претендующую на корпоративный уровень применения, что, конечно, не лишает её привлекательности и в других сегментах, где требуются схожие возможности.

Речь идёт о системе мониторинга Hyperic HQ, которая предназначена для обеспечения постоянного и полного контроля за всей ИТ-инфраструктурой. Она может применяться и в дата-центрах, и хостинговых компаниях, для слежения за собственными серверами внутри компании, для стартапов где нужна и важна максимальная доступность и оперативное реагирование на возникшие проблемы.
Читать дальше →

Trixbox или open-source VoIP платформа у вас дома

Reading time2 min
Views31K

Приветствуем вас! Все мы пользуемся телефоном, и современные реалии жизни таковы, что даже в этой, наверное, одной из старейших технологических систем связи (не считая телеграфа) наблюдаются как раз наибольшие перемены, как концептуального и структурного плана, так и более приземлённые, технологические. Связано это с проникновением в эту область пакетной передачи данных и цифровых протоколов. Оказалось, что передавать голосовой трафик можно и зачастую выгоднее по существующим каналам связи пи помощи протоколов TCP/IP, UDP и другими средствами, основанными на IP. Количество абонентов крупнейшей среды общения — Skype уже приближается вплотную в 10 миллионам человек (именно тех, кто в любой момент времени в онлайне), а это уже обо многом говорит. Но если вы хотите по каким-то причинам создать свою собственную, частную сеть для общения, вам совершенно не нужно думать о лицензии провайдера телефонии. Вполне подойдёт и открытый бесплатный проект Trixbox.
Читать дальше →

Стартапы, команды и продюсеры

Reading time5 min
Views985
С одной стороны Рунет очень хорош в плане информационного дизайна, о чем раньше написал Ярослав Грешилов.

Но если мы посмотрим на catalogr.ru, то основная масса проектов довольно низка в плане всех моментов реализации. Поэтому, поговорим о причинах, влияющих на хороший результат.

Команды и продюсеры

Начнём со студий, которые практически не делают своих веб 2.0 проектов. Например, в плане ресурсов Студия Лебедева вполне могла бы выпустить проект вроде memori.ru, но выпускает tabak.ru и в качестве собственных открывает оффлайновые магазины. (Еще любопытней, что сервис социальных закладок так и не запустили на Яндексе.) Почему?
Читать дальше →

Оптимизация работы с MySQL

Reading time3 min
Views79K
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →

Идеальное комментирование 2

Reading time6 min
Views1.4K
Так как прошлая заметка об идеальных комментариях вызвала довольно бурную дискуссию, моим всемогущим советом ума и тела было решено написать продолжение, не откладывая в долгий ящик.
Идеальное комментирование наносит ответный удар
На этот раз мы обсудим несколько дополнительных моментов, и способов размещения идеальной формы комментария и непосредственно процесса комментирования.
Читать дальше →

Как сделать RSS иконку любого цвета, используя одну картинку

Reading time1 min
Views4.9K
Как сделать RSS иконку любого цвета, используя одну картинку
В этой статье я расскажу вам как сделать RSS иконку любого цвета, используя всего одну картинку.

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

Делаем свой webfile

Reading time4 min
Views13K
Отчего-то всегда хотел сделать свой сервис для загрузки файлов. Всевозможные slil/zalil не устраивали своей скоростью. ifolder — обилием рекламы. Пользовался не очень популярным (от этого он ни чуть хуже не становился) сервисом up.spbland.ru. Но это как-то не правильно. И тут я решил написать свой сервис. Не буду вдаваться в подробности и рутину, только концепция.
Читать дальше →

Шифруемся по полной

Reading time1 min
Views1.1K
passs

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

Верстка под PDA, часть 2

Reading time3 min
Views2.8K
Уже писал о верстке под PocketPC устройства, на неделе доработал все то, что так смущало и подвел небольшие итоги.

1. Резинка.
Верстка под PDA должна быть резиновой. Без дополнительного ПО эмулировать разное разрешение на PDA устройствах нельзя. Да и никому это особо не нужно =) Чаще всего это 320х240 или 640х480, хотя бывают и нестандартные разрешения. В любом случае сайт должен смотреться во всех разрешениях одинаково, т.к. их разброс не такой и большой, а значит верстка должна быть резиновой.

2. Одна колонка.
Есть исключения, но чаще всего скелет сайта должен быть одноколоночным. Т.е. исходник сайта может быть 2-х, 3-х колоночным, но PDA версия чаще всего превращается в одну колонку, т.к. места и так мало. Чаще всего левая колонка (навигация) превращается в <select>, а правая сползает под основной контент.

3. Авто определение PDA устройства + pda.site.ru домен.
Определить PocketPC не так и сложно. HTTP_USER_AGENT содержит «windows ce» + браузер (mobile ie) добавляет ряд своих заголовков, например HTTP_UA_OS. Соответственно при просмотре site.ru с мобильного устройства должна отображаться оптимизированная верстка. Однако помимо этого необходим и безусловный способ получения PDA верстки, самое простое — поддомен «pda». Это просто удобно + важно для всяких поисковых ботов, да и заранее сообщает, что есть и pda версия сайта…
Читать дальше →

Фрагментарное кэширование в MVC веб-фреймворках

Reading time4 min
Views2.8K
Наверняка большинство программистов, работающих с современными веб-фрейворками, реализующими схему MVC, сталкивалось с таким небольшим затруднением: кэширование фрагмента View.

Хорошие фреймворки предлагают инструменты для полного кэширования страниц, фрагментарного, или кэширования экшенов. Недавно я посмотрел 90 выпуск подкаста Railscasts, посвященный именно фрагментарному кэшированию в Ruby on Rails и уважаемый автор решал проблему, как мне показалось, неоптимально.

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

Information

Rating
Does not participate
Location
Республика Крым, Россия
Date of birth
Registered
Activity