Pull to refresh
99
0
Дима Семьюшкин @Devgru

Веб-разработчик

Send message

Transport Tycoons

Reading time2 min
Views8.4K
Достаточно большое количество людей помнят или знают такую, в свое время, культовую игру, как Transport Tycoon и не менее популярное продолжение Transport Tycoon Deluxe от MicroProse Software. А если кто-то не знает эти две игры, то, думаю, эта статья будет им интересно, если им нравятся всякого рода менеджеры.

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

Морфологический поиск

Reading time3 min
Views7.6K
Точный поиск, реализуемый в базах данных это очень хорошо, когда дело касается точных фраз. Но что делать, когда среди документов есть Киевская карта но нету Карты Киева? В дело включаются языковые фильтры.Во-первых уже на лексическом уровне становится сложно оперировать с монолитным блоком текста что-бы учитывать всевозможные перестановки слов и расстояния между ними. Во-вторых, чем глубже копать в язык, тем ясней становится то, что семантический web — невероятно сложная планка для автоматических анализаторов и генераторов каких-то образов и моделей, что уж говорить про то что-бы написать RDF вручную.Морфология изучает изменение формы объектов в разных областях науки (ботанике например). Поэтому есть два пути — либо
учитывать все формы при поиске, либо вырезать корень слова и искать
только по нему. Последний способ называется stemming, отличается
быстротой, простотой и не нуждается в словарях. Именно его используют Битрикс и MS Sharepoint, Sphinx. Проблемы возникают со словами где корень изменчив (бег-бежать, расти-прирост, лев-львица). Я не буду рассказывать про стемминг, посмотрите как это реализовано php с русской морфологией. Меня больше интересуют словари. Национальный корпус русского языка приводит примерно какие характеристики могут иметься у любого слова. Теперь мы плавно подходим к пониманию того что нам необходима современная морфологическая база слов (RMU, AOT), прототип для семантической сети.

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

Алгоритм «газетной» вёрстки web-страницы

Reading time3 min
Views1.1K
Сей пост специально пишу в личный блог, дабы не засорять общие.

На работе встала задачка: есть энное количество статей, возможно, с картинками, и просто картинок, и эту кучку добра надо автоматически заверстать на веб-страницу в формате газеты — т.е., в несколько колонок, одну статью в одну колонку, другую — в три, но по высоте меньше. И ещё все картинки вписать в колонки, чтобы смотрелось точь-в-точь как разворот газеты.
Мне почему-то не хочется верить, что я первый, кто столкнулся с такой задачей. Это не отменяет того, что я уже примерно представляю себе алгоритм ;) Но тем не менее, хотелось бы услышать тех, кто уже сталкивался с такой задачей. Или просто тех, кому задача показалась интересной. Да кого, угодно, на самом деле =)

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

Subversion: чеклист по правильным коммитам

Reading time5 min
Views4.3K
Предполагаем, что читатель: а) работает в коллективе; и б) осознал необходимость правильной работы с системами контроля версий или хотя бы поставлен перед необходимостью использовать таковую.

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

Грубо разделим фазы разработки проекта на три — дебют, миттельшпиль и эндшпиль.

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

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

Наконец, в эндшпиль система переходит непосредственно перед релизом и сразу после. Для веб-приложений постоянно добавляются новые относительно небольшие возможности, а крупные изменения сначала тестируются на ветках. Для более традиционных приложений наоборот, создаётся ветка для maintenance релизов, а разработка следующей большой версии продолжается на стволе.

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

PHP Test

Reading time1 min
Views565
В одно из предыдущих топиков в комментах увидел интересную задачка-тест:

if ($x==1) echo «1»;
if ($x==2) echo «2»;
if ($x==3) echo «3»;
в каком случае на экране я увижу «123»

Ответ тривиален (true)

Задача интересная, но я предлагаю ее модифицировать для php5 программистов. Она не такая красивая, зато более полезна для оценки знаний…

//@todo: put code here
echo "\n",$x[0] === 0? 'yes':'no';
echo "\n",$x[0] === 1? 'yes':'no';
echo "\n",$x[0] === 2? 'yes':'no';
echo "\n",$x[0] === 3? 'yes':'no';

Вывод

yes
yes
yes
yes

«Now it's time for an Imperator, the VIMperator»

Reading time1 min
Views587
Наткнулся сегодня на любопытнейший эддон для Firefox, который по достоинству оценят все влюбленные в культовый текстовый редактор Vim.

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

Vim, как Вы знаете, вещь все-таки интимная, а vim-подход к интерфейсу в случае с Vimperator так фантастически ставит на место мозги, проникая в самые потаенные уголки извилин, что в какой-то момент ощущение эйфории от реакции ЭВМ на Ваши действия зашкаливает!

В следующий раз, когда увижу падающую с неба звезду, стоит попросить о vim-эддоне, интегрирующемся в окно FF вместо элементов textarea…

Бесплатный словарь Dicto

Reading time2 min
Views7.9K
Мне, как человеку, плохо знающему английский язык, часто нужна помощь словарей, поэтому я всегда старался, чтобы у меня был установлен какой-нибудь словарь. Совсем недавно им был Lingvo, но были причины, по которым я хотел сменить его, а именно:
Словарь просил денег, конечно можно было его отучить от этого, но мне хотелось чего-то законного. Достаточно медленный холодный запуск, да и расход памяти в режиме ожидания мне не нравились. Поэтому я хоть и не активно, но искал замену. До тех пор, пока не наткнулся на Dicto.
Читать дальше →

Красивая навигация

Reading time1 min
Views692
Есть одна дизайн студия, с непонятным названием The Design Canopy, у них очень интересно оформлена навигация. Сейчас мы постараемся написать такую-же с помощью css.

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

<a href="#"><span>Section One</span>Semantics</a>
<a href="#"><span>Section Two</span>Semantics</a>
<a href="#"><span>Section Three</span>Semantics</a>
<a href="#"><span>Section Four</span>Semantics</a>


Первым делом нужно определить ширину и падинг ссылки дабы воссоздать удобную кликабельную зону и, конечно-же, красивый — приятный глазу — фон. Определение span'a как блок, поможет нам избежать всяких ненужных <br />'ов. Вот так выглядит конечный результат:

a {
text-transform: uppercase;
font-size: 2.5em;
font-weight: bold;
letter-spacing: -1px;
color: red;
display: block;
padding: 0.5em;
float: left;
width: 8em;
text-decoration: none;
line-height: 0.5em;
}
a span {
color: #666;
display: block;
font-size: 50%;
letter-spacing: 0;
margin-bottom: 0.3em;
}
a:hover {
background-color: #fffea4;
}


[Пример]

Верстальщики — фанатики.

Reading time2 min
Views790
У Вас ведь все похоже происходит, так?

Для начала, подготовим рабочее место. Большой стол, на который можно положить руки, чтобы было удобно, монитор от 19' и выше, чтобы можно было тестировать страницы под разные разрешения. Мягкое кресло, чашка зеленого чая без сахара и вперед… Запускаем компьютер, на рабочем столе видим иконки наших любимых браузеров IE 6, IE 7, Opera и Mozilla Firefox. Они нам как дети родные, все разные, со своими капризами, но всеравно самые любимые и всегда рядом с нами.
Читать дальше →

Забирайте своё себе

Reading time2 min
Views1.6K
Однажды Будда проходил со своими учениками мимо деревни, в которой жили противники буддистов. Жители деревни выскочили из домов, окружили Будду и учеников, и начали их оскорблять. Ученики тоже начали распаляться и готовы были дать отпор, однако присутствие Будды действовало успокаивающе. Но слова Будды привели в замешательство и жителей деревни, и учеников.
Читать дальше →

Дата-центры поплывут в апреле

Reading time1 min
Views1.2K
Молодая калифорнийская компания IDS анонсировала (pdf, 375 Кб) скорое появление в порте Сан-Франциско, а вслед за ним и в других крупных портах по всему миру кораблей-дата-центров. Внешне неотличимые от обычных сухогрузов (и по происхождению ими и являющиеся), судна будут под завязку нагружены современными мощными серверами.
Будущий облик плавучих дата-центров IDS
Читать дальше →

Печать из браузера

Reading time4 min
Views8.8K
Web наступает. Все больше и больше обычных настольных приложений переезжает в Internet. Уже никого не удивить онлайновым текстовым или графическим редактором. А уж различные многопользовательские комплексы, базы данных, системы отчетности — тут раздолье для веб-технологий. Например, еще несколько лет назад было бы вполне нормально сделать систему регистрации и учета клиентов скажем стоматологической поликлиники или библиотеки в Delphi, добавить базу данных и сетевую часть. Но сейчас такое решение окажется неразумным: гораздо проще, удобнее, а значит и эффективнее использовать все то, что предоставляет нам Web, даже если приложением будут пользоваться только внутри локальной сети. Кроме того, такое решение кроссплатформенное, что актуально в связи с наметившейся тенденцией перехода к свободным ОС. Все что нужно на клиентских компьютерах — наличие браузера, никаких установок, настроек и прочего.

Но у решения все делать в web есть недостаток (даже не один, но я сейчас не буду перечислять все): неудобство при печати отчетов, бланков документов и прочих печатных страниц. Это связано с тем, что веб-страницы рассчитываются прежде всего для отображения на экране монитора и не подтачиваются для печати, что нередко ведет к расползанию печатной страницы. К счастью это все временные трудности и их можно обойти. Можно, например, генерировать отчеты в pdf или doc. Но я считаю это не слишком удобным: пользователю надо устанавливать программы, работающие с этими форматами, каждый раз выкачивать с сервера сгенерированный файл, печатать из сторонней программы, а не браузера. Поэтому стоит приложить усилия к созданию страниц, правильно выводящихся на печать прямо из браузера.
Читать дальше →

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

Reading time2 min
Views1K
Я приношу свои извинения, если публикую уже не раз читанное, также не могу найти автора, но рассказ совершенно не мой

– Первый, – сказал командующий верхним крылом резервного фронта. – Первый спутник…

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

Влияние цвета на отдачу с рекламы

Reading time1 min
Views2.4K
Влияет ли цвет контекстовой рекламы на CTR(click through rate) и если да, то насколько? Примерно год назад я проводил эксперимент и пожертвовал отдачей с рекламы в течении двух недель, чтобы разобраться в этом.

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

Did You Know 2.0

Reading time1 min
Views678

Посмотреть на YouTube

Презентация Did You Know/Shift Happens созданая Karl Fisch и ребятами из XPLANE одна из тех, которые заставляют сидеть перед монитором и смотреть не отрываясь. 8 минут общеизвестных фактов завёрнутых в великолепную визуализацию срывают крышу даже американской домохозяйке.
Прямо сейчас на наших глазах происходит революция, которую мало кто замечает. В будущем об этом будут писать в учебниках истории.
Лично я когда устаю от бесконечных разговоров про web 2.0 и социальные сети и монетизацию, просто включаю этот ролик и снова перехожу на светлую сторону силы. :))

Технология надежной и удобной аутентификация для web

Reading time2 min
Views834

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

В чем именно неэффективность каждого из существующих способов?
  • Простой пароль: удобно, но есть несколько угроз, и самая главная даже не столько несанкционированное ознакомление с ним, сколько то, что примерно одна и та же комбинация логин/пароль может быть использована для множества разнообразных сервисов, часть из которых может быть недостаточно защищена.
    Одноразовые пароли: безопасно и относительно удобно (но, все-таки, добавляется лишнее устройство), но довольно дорого.
    Сертификаты цифровой подписи: безопасно, но очень неудобно (проблемы с кросс-платформенной поддержкой токенов), а также дорого.
    Использование второго канала связи для подтверждения (обычно, мобильного телефона): относительно безопасно, относительно удобно, относительно масштабируемо (пока...).
    OpenID: безопасно, но на данный момент труднодоступно из-за того, что у 99% людей нет доверенного веб-сервера.


    Однако, сейчас уже можно замахнуться на глобальную систему аутентификации, если использовать сочетание ставших уже реальностью 3 феноменов:
    • IPv6;
      OpenID;
      стабильное интернет подключение с мобильного телефона/коммуникатора.

      Вот она:
Читать дальше →

Information

Rating
8,797-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity