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

User

Send message

Определение пола по истории навигации, шаг 2й

Reading time2 min
Views4.5K
Добрый день.
Сперва ссылка: угадываем пол посетителя.

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

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

Если кто-то захочет сделать у себя, то выкладываю наработки: там серверное приложение django, js-файл, дамп собранной базы данных. Лицензия, если где-то не указано, — MIT. Без джанги все тоже легко можно использовать.

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

Философская геометрия. Часть 4, Заключительная. Золотое сечение и корень из пяти

Reading time4 min
Views8.2K
О, Боже, четвертая часть! Это выше моих сил! Спокойствие, у меня заканчиваются таблетки, поэтому это последняя статья, и в ней будут разоблачения. Под катом описание процесса подгонки, ушепритягивания, запутывания и манипуляций.

В предыдущих (1, 2, 3) частях мы видели как разные пропорции использовались в геометрии, античном искусстве и современном промышленном дизайне. У нас осталась нераскрытой тема золотого сечения и еще одного корня — √5. Начнем же.

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

Терпеть не осталось больше мочи, самые распространенные отношения были объявлены священными. Некоторые видели в них проявление божественного вмешательства. Некоторые — самого бога. А раз священные пропорции так часто встречаются, то можно под них подогнать все что хочешь, сделать из этого символ и стращать паству.

Мистификации и приписки из самых благих намерений встречаются в истории постоянно. Например, переписчики классического труда «Церковная история народа Англов» Беды Достопочтенного приделывали к тексту куски, дабы определенные церковные вопросы выглядели более благоприятно. А 25-28 главы VI книги «Записок о галльской войне» Цезаря по всей видимости не такие уж и Цезаря.

Так же и в символике. Надо чтобы люди чувствовали ее глубинный смысл, а сама форма не так важна. Возьми любую картинку, в ней обязательно да что-нибудь отыщется. Чем древнее, тем лучше. Самый древний у нас Египет, поупражняемся на нем.

Вот схема барельефа из гробницы Петосириса, найденной в 1919 году.



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



Выглядит достаточно круто, поэтому нет причин не заявить, что Египтяне знали о золотом сечении и специально все так сделали.

Мистифицировать геометрию легко и просто. Сейчас я покажу вам пару приемов. Загляните под кат.

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

Идеальный NAS — Synology DS209+

Reading time11 min
Views55K
Редко, но бывает такое, что я пишу про идеальные устройства. Ну, или почти идеальные, ведь, как известно, идеал — недостижим. Но некоторые производители настолько стремятся к нему, что писать обзоры таких девайсов – сплошное удовольствие!

image

Сегодня речь пойдет о таком устройстве, как Synology DS209+ — пока это последний из NAS-ов, о котором я напишу. Обзор, трафик.
Читать дальше →

Как оформить своё дело (в Украине)

Reading time7 min
Views11K
В этом посте я написал длинный текст о том как:
  • оформиться в Украине
  • стать физическим лицом-предпринимателем
  • платить единый налог
  • упростить себе жизнь при помощи интернет отчётности

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

Геометрическая философия дизайна

Reading time3 min
Views15K
Разливающийся Нил каждый год затапливает свои берега, а потом обнажает их вновь, оставляя открытой плодороднейшую почву. Каждый год древние египтяне должны были заново измерять свои участки земли и определять их границы. Позже, древние греки описали этот процесс и назвали его геометрией — измерением земли. Геометрия представлялась принципом установления порядка и закона в мире. Бытовая процедура стала наукой.

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




Но знаем ли мы почему возникли именно такие пропорции? Какой смысл в них закрыт? Что видели древние и почему упорно применяли их для создания произведений искусства, особенно, носивших религиозный смысл?



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

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

Под катом я еще немного ее обрисую.

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

Рецепты хорошей типографики

Reading time7 min
Views57K
Судя по результатам голосования, которое я проводил в своём блоге, большинство пользователей никак не типографируют тексты перед публикациями (НЛО не считается). Те, кто работают над текстами, в большинстве своём делают это вручную, поэтому я решил попробовать собрать воедино рецепты экранной типографики, дабы не забывать самому и напомнить другим. Не думаю, что статья будет чем‐то новым для опытных верстальщиков. Новички узнают, профи исправят :)

Содержание

  1. Дефисы, тире, минусы и другие палочки
  2. Кавычки и чёрточки
  3. Скобки
  4. Многоточие
  5. Заголовки, списки

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

Dklab_Cache: тэги в memcached, namespaces, статистика

Reading time6 min
Views4.8K
Memcached community предприняло немало попыток написать «родные» патчи для кода memcached, добавляющие в него поддержку тэгов. Наиболее известный из таких патчей — проект memcached-tag. К сожалению, memcached-tag все еще очень далек от стабильной версии: нетрудно написать скрипт, приводящий к зависанию пропатченного memcached-сервера. Похоже, на момент написания данной статьи не существует ни одного надежного решения проблемы тэгирования на уровне самого memcached-сервера.

Библиотека Dklab_Cache


Dklab_Cache — это (в основном) библиотека поддержки тэгирования ключей для memcached, использующая интерфейсы Zend Framework. Сама библиотека написана на чистом PHP. Вот полный список возможностей библиотеки:
  • Backend_TagEmuWrapper: тэги для memcached и любых других backend-систем кэширования Zend Framework;
  • Backend_NamespaceWrapper: поддержка пространств имен для memcached и др.;
  • Backend_Profiler: подсчет статистики по использованию memcached и др. backend-ов;
  • Frontend_Slot, Frontent_Tag: каркас для высокоуровневого построения систем кэшиирования в сложных проектах.
Собственно, для поддержки тэгов имеется класс TagEmuWrapper. Он представляет собой декоратор («обертку») для backend-классов кэширования Zend Framework. Другими словами, вы можете с его помощью «прозрачно» добавить поддержку тэгов в любую подсистему кэширования Zend Framework. Мы будем рассматривать backend для работы с memcached: Zend_Cache_Backend_Memcached, но, если в вашем проекте используется какой-то другой backend-класс, вы можете подключить тэгирование и к нему без каких-либо особенностей.

TagEmuWrapper реализует стандартный backend-интерфейс Zend_Cache_Backend_Interface, поэтому с точки зрения вызывающей системы он сам является кэш-backend'ом. Вообще, Zend Framework хорош тем, что на уровне интерфейса он поддерживает тэги с самого начала! Например, в методе save() уже имеется параметр, позволяющий снабдить ключ тэгами. Однако ни один из backend-ов в составе Zend Framework тэги не поддерживает: попытка добавить тэг к некоторому ключу вызывает исключение (в частности, для Zend_Cache_Backend_Memcached).

Технические подробности, документацию, а также примеры использования можно посмотреть тут: dklab.ru/lib/Dklab_Cache

Что такое тэги?


Работа с типичной кэширующей системой (в том числе с memcached) заключается в выполнении трех основных операций:
  • save($data, $id, $lifetime): сохранить данные $data в ячейке кэша с ключом $id. Можно указать «время жизни» ключа $lifetime; спустя это время данные в кэше «протухнут» и удалятся.
  • load($id): загрузить данные из ячейки с ключом $id. Если данные недоступны, возвращается false.
  • remove($id): очистить ячейку кэша с ключом $id.
Читать дальше →

Простой поиск на любом сайте с новой версией Ubiquity!

Reading time2 min
Views1.4K


В связи с последним обновлением замечательного экспериментального плагина Ubiquity от Mozilla labs, я решил написать об одной маленькой, но очень удобной фиче, которой пополнился и без того весьма богатый арсенал этой утилиты.

О Ubiquity на Хабре уже писали, так что не буду повторяться и рассказывать о том, для чего может пригодиться и как использовать этот инструмент.

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

Любопытно! И что же?..

Тюнинг nginx

Reading time8 min
Views97K
Статья написана по материалам моего доклада на CodeCamp 2009.

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

У любого проекта всегда есть что оптимизировать: можно почитать советы по оптимизации на webo.in, установить eaccelerator, memcache, проиндексировать поисковые поля в базе данных. Я предполагаю, что все это уже проделано, а сайт по прежнему тормозит.

Пришло время оптимизировать nginx...

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

Notepad++ для верстки HTML/CSS

Reading time1 min
Views33K
Приветствую, коллеги!

Топик «Ускорение верстки — да поможет Notepad++» и статья Вадима Макеева «Zen Coding 2.0. Концепт» подтолкнули меня к давно родившейся в моей голове идее расширения функционала редактора Notepad++, необходимого html/css-верстальщику.

По сути хочется реализовать концепцию «Zen Coding» в данном редакторе, а также еще пару вещей. И все это выпустить отдельной редакцией NP++ с предустановленными плагинами и функционалом, необходимым именно верстальщику, под GPL лизензией.

По пунктам:
  1. внедрить Zen HTML;
  2. внедрить Zen CSS
  3. написать плагин для управления проектом;
  4. написать аналог Function List для упрощения работы с группами классов, идентификаторов, блоков правил;
  5. отключить весь ненужный для верстки функционал.

Есть ли среди вас желающие помочь в написании плагина (возможно C++) для этого редактора?

Если у кого-то есть желание поучаствовать в этом благом деле пишите мне в личку.

Комментарии и коллективные обсуждения всесторонне приветствуются, ведь суть проекта сводится не просто к переносу Zen Coding на NP++, а и тонкая настройка функционала редактора.

Интерактивная обучающая онлайн-игра «Осваиваем нотную грамоту и лады на грифе гитары».

Reading time1 min
Views14K
На прошлой неделе в рамках проекта Гитара.By — Белорусский гитарный сайт, была запущена интерактивная обучающая онлайн-игра, которая призвана помочь начинающим гитаристам в освоении этого замечательного и всеми любимого инструмента.

image



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

Pict.com — новая версия хостинга изображений.

Reading time1 min
Views1.6K
Всем привет!

Сегодня была запущена новая версия бесплатного хостинга изображений Pict.com.
Надеемся, что обновленный Pict.com понравится Хабравчанам.



Итак, вкратце о нововведениях...

Простое сравнение изображений с помощью php

Reading time3 min
Views27K
Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
Читать дальше →

Регулярные выражения — символьные классы, конструкция выбора, метапоследовательности

Reading time3 min
Views16K
В книге Дж. Фридла «Регулярные выражения» есть прекрасная табличка, которую хочу тут привести.
Регулярные выражения открывают широкие возможности для поиска и замены в любом тексте. Используя регулярные выражения можно гибко и просто обрабатывать текстовые документы. Одним из простейших применений регулярных выражений является поиск текста — во многих текстовых редакторах предусмотрена возможность поиска по шаблонам регулярных выражений В regexp существует несколько типов метасимволов выполняющих разные функции, давайте кратко их рассмотрим:
Читать дальше →

Файлы, отображаемые в память

Reading time3 min
Views97K
В этой статье я хотел бы рассказать о такой замечательной штуке, как файлы, отображаемые в память(memory-mapped files, далее — MMF).
Иногда их использование может дать довольно таки существенный прирост производительности по сравнению с обычной буферизированной работой с файлами.
Так что ж это такое?

Разбор опций командной строки в UNIX-подобных системах

Reading time7 min
Views44K

Введение


Одной из важных задач любой программы, будь она консольной или графической является интерпретация аргументов командной строки. Формально аргументами называются все слова в командной строке(в том числе и имя самой команды) разбитые разделителем (как правило, это пробел и табуляция), кавычки же позволяют включать разделители в аргументы.
Аргументы можно подразделить на опции и операнды. Опции изменяют поведение программы или предоставляют ей дополнительную информацию. У опции могут быть свои аргументы, которые являются информацией необходимой только для этой опции.
Продолжим здесь

Ускорение верстки — да поможет Notepad++

Reading time2 min
Views103K
Я уже довольно-таки давно верстаю в Notepad++, пробовал и другие редакторы — не срослось. Основная причина, по которой мне нравился раньше этот редактор — подсветка кода. Видел. что есть много каких-то настроек, но небыло необходимости в них разбираться — ведь и так всё работает прекрасно.

Ситуация изменилась, когда объем работы вырос, и я физически не успевал верстать то, что вроде как должен успевать. Конечно, есть свои html и css заготовки, но копипастить их — сомнительный выигрыш во времени. Работа по FTP через Total Commander тоже не очень то удобна — много лишних телодвижений.

И вот я решил потратить время на настройку своего любимого Notepad++, слышал где-то что гибко он настраивается :)

(Описание скорее для тех разработчиков, которые не в курсе всех прелестей Notepad++, знающие могут дальше не читать).
Подробнее с картинками...

CodeIgniter Debug Toolbar

Reading time1 min
Views4.6K
CodeIgniter Debug Toolbar
Многие видели девелоперский тулбар для фреймворка Kohana (слизанный, в свою очередь, с Symfony), который недавно выкладывали на хабре. Мне он очень понравился — захотелось поиметь такой и для себя.

Немножко поколдовав, получилось нечто похожее…
Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Registered
Activity