На Хабре уже несколько раз всплывала тема Акинатора, в том числе и с тегом не знаю как оно работает. Я на него наткнулся недавно и, разумеется, был восхищен. Затем, как вероятно и многим другим, мне в голову пришла мысль: «А как же это работает?» Ответа на этот вопрос я нигде не нашел, а потому задался целью написать аналогичную по функциональности программу, разобравшись по ходу дела что к чему.
Nc_Soft @Nc_Softread-only
Пользователь
mod_rewrite — просто о сложном
4 мин
65KЧто это такое?
mod_rewrite — это модуль для веб-сервера Apache, предназначенный для преобразования URL-ов. Модуль использует в своей работе правила, которые могут быть описаны как в конфигурации сервера (httpd.conf), так и в файлах .htaccess непосредственно в файловой структуре Вашего сайта. Правила описываются в виде регулярных выражений PCRE
Hello world
Простейший пример. Допустим, Вы захотели, чтобы никто не знал, что Ваш сайт написан на PHP и решили замаскировать расширения файлов. Можно, конечно, внести соответствующую директиву в конфигурацию Apache и тогда все файлы с расширением ".msl" («My Super Language») будут обрабатываться интерпретатором PHP. Но можно поступить проще:
создаем в корне нашего сайта файл .htaccess со следующим содержимым
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)\.msl$ $1.php [QSA,L]
Первая директива включает механизм mod_rewrite в текущей папке и во всех ее подпапках. Вторая указывает модулю mod_rewrite, что текущая папка в файловой системе соответствует корню сайта. Третья — непосредственно правило преобразования URL.
Прочесть его можно так:
Если сразу после начала строки ("^") идет произвольное количество любых символов ( "(.*)" ), причем мы хотим запомнить, что именно это за символы, окружая их скобками, затем идет точка ("\.") (экранируем точку, потому что одиночная точка — это просто любой символ), затем символы «msl» и на этом строка заканчивается ("$"), то заменим исходный URL на следующий: возьмем первую запомненную подстроку в скобках из правила, прибавим к ней ".php", добавим все дополнительные параметры адреса, которые могли быть "[QSA]" и на этом закончим, не будем применять дальнейшие преобразования, если они есть "[L]"
Все, теперь Вы можете смело менять все ссылки, заканчивающиеся на ".php" на ".msl" и писать в своем блоге, что изобрели новый скриптовый язык. Apache, встретив ссылку на «index.msl» с помощью mod_rewrite на лету преобразует ее в «index.php» и вызовет нужный скрипт.
А что еще умеет mod_rewrite?
+21
Подключение Paypal
7 мин
6.2KВобщем поставили передо мной на работе задачу организовать прием платежей в наш проект через Paypal. От меня требовалось дать все необходимые данные для настройки аккаунта (сам аккаунт настраивался другим человеком), ну и, собственно, написать скрипт, который и будет принимать данные от paypal-а и начислять деньги юзерам.
Ничего толкового по этой теме на хабре я не нашел. Пришлось разбираться со всем самому. Ниже – результаты этих разбирательств:)
Ничего толкового по этой теме на хабре я не нашел. Пришлось разбираться со всем самому. Ниже – результаты этих разбирательств:)
+33
Маленький планировщик на php с технологией ajax
1 мин
1.3KНедавно нашел в сети скрипт простого но очень удобного TODO-шника, скрипт работает на php+ajax как с MySQL так и без него.
Актуальная версия на текущий момент — myTinyTodo v1.3.2
Возможности
Поддержка нескольких списков
Заметки к задачам
Тэги, облако тегов.
Срок выполнения задачи
Приритеты задачи (-1, 0, +1, +2)
Сортировка задач перетаскиванием, по приоритету, по дате исполнения
Поиск
Защита паролем
Smart syntax для быстрого добавления задачи (пример: /+1/ Задача /Теги/)
Адаптированные стили для печати и мобильных устройств
Демка — http://www.mytinytodo.net/demo/
Подробнее на сайте автора — www.mytinytodo.net/
Актуальная версия на текущий момент — myTinyTodo v1.3.2
Возможности
Поддержка нескольких списков
Заметки к задачам
Тэги, облако тегов.
Срок выполнения задачи
Приритеты задачи (-1, 0, +1, +2)
Сортировка задач перетаскиванием, по приоритету, по дате исполнения
Поиск
Защита паролем
Smart syntax для быстрого добавления задачи (пример: /+1/ Задача /Теги/)
Адаптированные стили для печати и мобильных устройств
Демка — http://www.mytinytodo.net/demo/
Подробнее на сайте автора — www.mytinytodo.net/
+11
Рисуем интерактивные графики с помощью Flot php и mysql
5 мин
4.2KРаботая долгое время с разными системами мониторинга я очень полюбил строить всякого рода графики. Некоторое время меня выручал rrdtool, но всегда хотелось получить большую интерактивность, ради чего даже прикрутил к нему веб мордочку на php. Но однажды наткнувшись на графики от flot не смог пройти мимо. То о чем давно я давно мечтал — зум графиков без задержек на обновление страницы, всплывающие подсказки — все было тут.
Сразу предупрежу, что мой уровень в javascript ~ 0, и где-то 0,5 в php, так что target группа моего дальнейшего рассказа скорее админы, которые так же как и я блуждали в инете за поиском готового решения flot+mysql, потому как сам я такого в просторах сети не нашел.
+7
Способы разграничения доступов к файлам при помощи php+mysql+apache
5 мин
4.1KЗадача по разграничению доступа к файлам, которые хранятся на диске довольно редка, но она может возникнуть при написании: online-магазина, который торгует файлами или файлового сервера вроде rapidshare.de. В данной статье я рассмотрю 3-и способа разграничения доступа при помощи php, mysql и специальных модулей веб сервера apache.
+5
Использование нейронной сети Хопфилда для решения простейшей задачи
9 мин
12K В настоящее время достаточно интересной областью программирования является использование нейронных сетей. Не смотря на всю перспективность этой идеи, большинство реализаций которые я встречал были связаны с различным анализом статистических выборок и предсказанием возможного значения какого-либо параметра.
Разговоры об искусственном интеллекте и громоздких экспертных системах — это конечно все хорошо, но как всю эту теорию приблизить к жизни, к нашим приклодным задачам?
Разговоры об искусственном интеллекте и громоздких экспертных системах — это конечно все хорошо, но как всю эту теорию приблизить к жизни, к нашим приклодным задачам?
+46
С чем едят UserAgent
5 мин
7.7KДля начала, конечно, стоило рассказать зачем едят этот самый «пользовательский агент». Ну или, вообще, начать с того что же это за агент такой. (Кстати, никто не знает какой-нибудь славянско-православный перевод этого термина?)Но рассчитывая, что хабра юзер либо уже знает и использует useragent либо ему это не нужно, я бы не хотел останавливаться на предисловиях. И так, мой совет — употребляйте useragent с регулярными выражениями!
+28
Интернет-радио
3 мин
4.3Kпоследние несколько лет постоянно, часов по 10-16 в день, слушаю интернет-радио и вот небольшой список очень хороших, на мой взгляд, станций, которые постоянно развиваются и совершенствуются, выбирал те, которые меньше всего надоедают и их можно слушать очень долго:
+30
+5
Социальная инженерия и социальные хакеры
2 мин
5.9KИздательство: БХВ-Петербург, 2007 г.
Автор: Максим Кузнецов, Игорь Симдянов
Мягкая обложка, 358 стр.
ISBN: 5-94157-929-2
Книга на ozon.ru, books.ru
Все кто когда-то интересовался теорией и практикой взлома (неважно чего) прекрасно знают, самый уязвимый фактор в любой системе — это человек. Если вам интересно как «взломать» человека или просто заставить его действовать в ваших интересах, то эта книга для вас.
+21
Online сервисы по перебору паролей
2 мин
117KСуществует много причин использования таких сервисов, чаще всего или элементарная забывчивость или хакинг.
В свое время мне понадобилось перебрать пару хешей, поискал в интернете и на форумах, нашел кучу сервисов для этого, которыми хочу поделится.
В свое время мне понадобилось перебрать пару хешей, поискал в интернете и на форумах, нашел кучу сервисов для этого, которыми хочу поделится.
+20
Как обойти каптчу в Яндекс.Диск
2 мин
2.6KИтак, все мы знаем, что на яндексе можно хранить файлы до 5 гигабайт, но при загрузке он требует ввести каптчу или установить Яндекс.Бар. Так как Яндекс.Бар я не использую, то решил проверить, а собственно каким таким гениальным способом проверяет Яндекс этот самый пресловутый плагин?
Для этого эксперимента все-таки пришлось его установить на Firefox и используя плагин FireBug начать тестирование…
Для этого эксперимента все-таки пришлось его установить на Firefox и используя плагин FireBug начать тестирование…
+20
cgwallpapers.com
1 мин
894Осталось несколько дней платной подписки на данном ресурсе. Возможно здесь есть те, кто давно хотят заиметь для себя парочку обоин оттуда, но жаба душит отдавать 15 баксов за членство. Так вот, готов скинуть интересующие вас обои. Просто напишите имя автора, разрешение и какие именно его обои вам нужны, например: «Christian Hecker, 1680х1050, 1, 4 и 6.» (начинайте считать обои с правой части нижней строчки)
Вперед за халявой!
upd: выкладываю архив со всеми запрошенными в теме обоями. Качайте(habrapack.zip)
Вперед за халявой!
upd: выкладываю архив со всеми запрошенными в теме обоями. Качайте(habrapack.zip)
+18
Мудрость толпы и социальные сети
7 мин
11KПеревод
«Мудрость толпы» («МТ») — одно из важнейших понятий веба на сегодня, возможно, самое важное для социальных СМИ, но это и одно из наименее понятных явлений. Когда Джеймс Шуровьески написал книгу «Мудрость толпы» в 2004 году, он исследовал фондовый рынок и другие классические примеры социальной психологии, но среда «веб 2.0» тогда только начинала формироваться. Настало время найти применение его идеям относительно социальных сетей, там где они и смогут полностью раскрыться.
Теория МТ не означает, что люди становятся умнее в группах, совсем нет. Любой, кто видел разъяренную толпу, это подтвердит. Но коллектив, в которым присутствуют правильная постановка задачи и правильные внутренние связи, может стать мудрее. При этих условиях группа людей более мудра, чем любой её единственный участник.
Стандартный пример (на хабре уже проводилось в прошлом году 3 аналогичных испытания 1, 2 и 3): предположим, что у вас есть коробка с монетами. Спросите несколько сотен человек, сколько монет внутри. Когда вы подведете итоги опроса, возможно, что все предположения будут неправильными. Но если найти среднее арифметическое всех ответов, то результат будет достаточно близок к правильному.
Сеть, с ее низким барьером для входа и размытыми социальными границами, является уникальной средой для исследования тонкостей коллективного разума. В сети можно найти множество примеров: результаты поиска google, торренты, хабратопики на главной странице (в статье приведен другой пример). В каждом примере за результатами стоит усредненное мнение большой группы людей.
Нужно знать всего несколько вещей, чтобы коллективный разум начал работать.
Теория МТ не означает, что люди становятся умнее в группах, совсем нет. Любой, кто видел разъяренную толпу, это подтвердит. Но коллектив, в которым присутствуют правильная постановка задачи и правильные внутренние связи, может стать мудрее. При этих условиях группа людей более мудра, чем любой её единственный участник.
Стандартный пример (на хабре уже проводилось в прошлом году 3 аналогичных испытания 1, 2 и 3): предположим, что у вас есть коробка с монетами. Спросите несколько сотен человек, сколько монет внутри. Когда вы подведете итоги опроса, возможно, что все предположения будут неправильными. Но если найти среднее арифметическое всех ответов, то результат будет достаточно близок к правильному.
Сеть, с ее низким барьером для входа и размытыми социальными границами, является уникальной средой для исследования тонкостей коллективного разума. В сети можно найти множество примеров: результаты поиска google, торренты, хабратопики на главной странице (в статье приведен другой пример). В каждом примере за результатами стоит усредненное мнение большой группы людей.
Нужно знать всего несколько вещей, чтобы коллективный разум начал работать.
+4
Автоматизация скриншотинга, делаем сами
2 мин
1.5KВ этом наборе букв я расскажу про создание сервиса скриншотинга у себя на удаленном Linux-сервере.
+10
Собственный youtube
3 мин
3.1KВ Сети развелось довольно много видеохостингов типа youtube. Вот и одному провинциальному провайдеру захотелось у себя сделать такую вещь. С какой-то стороны — правильно, ибо почти у всех провайдеров в небольших городах толстые внутренние каналы (10-100-1000 мегабит) и тонкие внешние (5-10-20 мегабит), так что надо стремиться к тому, чтобы внутри было как можно больше популярных ресурсов — хотя бы для оптимизации загрузки внешнего канала, если не для привлечения клиентов.
Задача поставлена, сумма оговорена — надо делать. Вариант «писать свое» отметается сразу — долго, нудно, да и программистом я себя не считаю. Хотя, если хочется, то никто не мешает: проигрывание клипов — JW Player, загрузка файлов — на любимом языке реализуется без вопросов, перекодирование видео — зависит от выбранной платформы (mencoder есть где угодно). Но я не люблю изобретать велосипеды, а предпочитаю использовать готовые решения, так что пошел в гугл. Поиск принес несколько вариантов, как бесплатных, так и платных (от 10 евро и выше), но для начала решил попробовать самый популярный из бесплатных вариантов — phpmotion.
Задача поставлена, сумма оговорена — надо делать. Вариант «писать свое» отметается сразу — долго, нудно, да и программистом я себя не считаю. Хотя, если хочется, то никто не мешает: проигрывание клипов — JW Player, загрузка файлов — на любимом языке реализуется без вопросов, перекодирование видео — зависит от выбранной платформы (mencoder есть где угодно). Но я не люблю изобретать велосипеды, а предпочитаю использовать готовые решения, так что пошел в гугл. Поиск принес несколько вариантов, как бесплатных, так и платных (от 10 евро и выше), но для начала решил попробовать самый популярный из бесплатных вариантов — phpmotion.
+10
Музыка: сетевые залежи
6 мин
1.8KПроцесс над Pirate Bay и его результаты — это повод задуматься о других способах получения контента. Если говорить о музыке, то самый простой способ — покупать ее в iTunes. Этот способ обладает существенным недостатком — он естественным образом ограничивает потребление музыки. Необходимость платить за каждый трек ведет к раздумьям о том, так ли он нужен. Существуют и другие варианты, которые не ведут к таким ограничениям. Это либо сервисы, где музыку можно слушать и качать бесплатно, либо сервисы с подпиской, где вносится единовременная плата, не зависящая от количества прослушанных композиций. Даже если это экономически не совсем выгодно, отсутствует элемент психологического давления: вы знаете, что прослушав еще один трек вы не заплатите лишних денег — и в этом смысле вы свободны, хотя и вынуждены платить за эту свободу деньги. В последнее время количество сервисов что первого, что второго типа стало возрастать. Ниже представлен краткий обзор нескольких таких сервисов, сделанный по материалам заметок автора и его коллег в издании «Руформатор»
+42
Транзакции InnoDB
4 мин
4.5KInnoDB это транзакционный, реляционный движок работающий на основе MySQL сервера. Начиная с 2001 года он поставляется в стандартной сборке, а с версии 5.1 может устанавливаться в качестве плагина (без необходимости перекомпилировать ядро сервера). Синтаксис очень простой.
Про определение
Определение транзакционности и реляционности значат во-первых значат полноценную связанность таблиц через FK и как следствие — целостность данных при удалении рядов. С MyIsam как известно приходилось вручную удалять связанные данные в нескольких таблицах, в InnoDB — каскадное удаление одним запросом. Во-вторых поскольку для БД немыслимы параллельные версии данных как в SVN и некому эти версии объединять в одну ветку, но при этом необходима параллельная работа нескольких процессов (пользователей) с одними данными, то в качестве решения становится транзакции.
Очередь из запросов-автомобилей теперь пополняется атомарной транзакцией-автобусом. Естественно это плохо, поскольку чем длиней и дольше выполняется транзакция тем больше параллельных процессов будут ждать его. Для ускорения работы создаются остановки — типы и уровни блокировки данных. Для InnoDB по умолчанию это блокирование на уровне строки (по PK), тогда как в MyIsam атомарная операция блокирует всю таблицу.
START TRANSACTION;
...
COMMIT; -- или же ROLLBACK; если что-то пошло в логике не так
Про определение
Определение транзакционности и реляционности значат во-первых значат полноценную связанность таблиц через FK и как следствие — целостность данных при удалении рядов. С MyIsam как известно приходилось вручную удалять связанные данные в нескольких таблицах, в InnoDB — каскадное удаление одним запросом. Во-вторых поскольку для БД немыслимы параллельные версии данных как в SVN и некому эти версии объединять в одну ветку, но при этом необходима параллельная работа нескольких процессов (пользователей) с одними данными, то в качестве решения становится транзакции.
Очередь из запросов-автомобилей теперь пополняется атомарной транзакцией-автобусом. Естественно это плохо, поскольку чем длиней и дольше выполняется транзакция тем больше параллельных процессов будут ждать его. Для ускорения работы создаются остановки — типы и уровни блокировки данных. Для InnoDB по умолчанию это блокирование на уровне строки (по PK), тогда как в MyIsam атомарная операция блокирует всю таблицу.
+11
В попытках придумать себе что-то эксклюзивное на футболку
1 мин
2.1KСидел, думал-думал, и вот что придумал:
Не подскажете, можно ли вот такой блюр напечатать на ткани, как на самом ярком сегменте прелоадера?
UPD: по заявкам трудящихся — narod.ru/disk/7507722000/t-shirt_preloader.PSD.html (не смотрите, что маленькое, там вектор и шрифты, так что тянется).
UPD 2: https://www.yousendit.com/download/UmNMZm1YTWN0NitGa1E9PQ (для тех, у кого не качается с народа).
Не подскажете, можно ли вот такой блюр напечатать на ткани, как на самом ярком сегменте прелоадера?
UPD: по заявкам трудящихся — narod.ru/disk/7507722000/t-shirt_preloader.PSD.html (не смотрите, что маленькое, там вектор и шрифты, так что тянется).
UPD 2: https://www.yousendit.com/download/UmNMZm1YTWN0NitGa1E9PQ (для тех, у кого не качается с народа).
+145
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность