В этом посте я расскажу сразу про три небольшие, но очень полезные утилитки. Помимо общей фирмы производителя их объединяет одно стремление — навести порядок в вашей системе.
Недавно, мне пришло письмо с просьбой решить задачу.
Даны строки:
Солнце светит ярко
Ярко светит солнце
Светит солнце
Солнце светит
12345
Как видно, некоторые из строк получены путем переставления слов в других. Задача — убрать неявных злобных клонов.
Сегодня поговорим о довольно сложной и интересной области программирования — об обработке текста. Так как работа в web — это почти всегда работа с текстом, то эта статья может оказаться вам полезной.
Дело в том, что для компьютера задачи, связанные с текстом, очень сложны. Он создан, чтобы работать с числами, а не с буквами. А понимать смысл слов программы пока еще не научились (на сколько мне известно). Тем не менее, работать с текстами нужно постоянно. И часто встречаются задачки, которые не составляют труда для человека, но могут оказаться довольно сложными для автоматического решения.
Ответтье на вопрос: похожи ли строки "Машка" и "Миша"? На самом деле, для компьютера не важно что вы ответите. Для него весь мир — числа. Поэтому ему не важно похожи ли эти строки. Для него интереснее НА СКОЛЬКО эти строки похожи или не похожи. А вот с этим вопросом не каждый человек сходу справится.
Сегодня я расскажу у метрике Левенштейна, которая позволяет вычислять "расстояние" от одной строки до другой.
С некоторых пор я сильно заинтересовался бесплатным софтом. В связи с этим, я перерыл пол интернета в поисках всякого разного полезно-бесплатного. И конечно, я наткнулся на замечательный блог "Бесплатная альтернатива". Благодаря этому блогу, я узнал о некоторых программах, которые использую теперь каждый день.
Этот блог мне настолько понравился, что я написал туда гостевой пост, посвященный программе Dog Waffle. Позднее, я захотел написать еще один обзор, но к сожалению, автор блога не смог разместить его у себя сейчас. Однако, я очень хочу, чтобы об этой программе узнало как можно больше людей, потому что программа действительно достойна внимания художников.
Хочу так же, заметить, что эта статья даст жизнь новому тегу "софт", потому что я планирую теперь писать еще и о нем. А сейчас, представляю вам ArtRage.
Сегодня расскажу занимательную историю, над которой думал довольно долго. Прям детективная задачка. Я детективов не писал, поэтому буду рассказывать последовательность событий и свои размышления.
Началось все в конце ноября 2007 года. Я просматривал статистику посещений своего блога. И мое внимание привлек посетитель, который пришел ко мне со страницы http://seozavr.net. Меня заинтересовало, откуда на таком именитом сайте ссылка на мой блог, да еще с главной страницы. Прийдя туда, я убедился в том, что ссылки нет.
У php-шников есть удобная функция last_insert_id(), которая возвращает id записи, которая была последней вставлена текущим соединением.
В перл можно использовать поле объекта соединения с БД
$dbh->{mysql_insertid};
Вместе с Ajax в интернет ворвалась асинхронность. Веб-мастреа посходили с ума и начали делать асинхронным все, что только можно. Так появились разные модификации Ajax, например Ajaj(JSON), Ajah(html). Но иногда требуется асинхронно подключить к странице новый файл JavaScript.
Действительно, это даст некоторый выигрыш. Допустим, в этом файле сосредоточены функции для работы с формой комментариев. Пишем простой обработчик нажатия по элементу form комментария. После клика, обработчик лезет на сервер и подгружает нужные фунции JavaScript. При этом, посетитель, не пожелавший комментировать страницу, будет избавлен от необходимости тратить лишний траффик на загрузку скриптов комментирования.
Можно, конечно, подгружать JS традиционным аяксом и полученный текст "оживлять" eval-ом, но это долго (из-за последнего) и некрасиво. Я предлагаю более простой, но не менее эффективный метод.