Планирую писать не только о программировании, но и о прочих, иногда не совсем совместимых вещах. Например, о музыке, которую я тоже очень люблю )
пятница, 31 декабря 2010 г.
С Новым 2011 Годом!
Друзья.
Скоро наступает Новый 2011 год. Для меня всегда празднование Нового Года было
особенным событием. Есть в нем, на мой взгляд, нечто сказочно-волшебное. Пожелаю вам в Новом году крепкого здоровья, душевного и материального благополучия, встреч с умными и интересными людьми. Чтобы Новый год дарил вам одни только положительные эмоции. С наступающим Новым 2011 годом!
пятница, 5 ноября 2010 г.
Haskell Platform 2010.2.0.0 и Cabal под Windows XP
Давеча столкнулся с интересной проблемой обновления пакетов в Haskell Platform 2010.2.0.0 (от июля 2010 года) под Windows XP. Изучал пример, в котором для перекодировки символов использовался модуль Encoding. Из коробки данный модель не входит в состав библиотек, поставляемых c Haskell Platform 2010.2.0.0.
Качать пакеты можно с http://hackage.haskell.org - хранилища различных пакетов модулей для хаскеля. Можно пробовать либо устанавливать пакеты вручную, либо использовать идущий вместе с хаскелем Cabal - средство для автоматической установки пакетов. Конечно, более интересным показался второй вариант. Тут же наткнулся на первые грабли.
вторник, 2 ноября 2010 г.
Размер среды окружения при запуске DOS задач в Windows XP
Общеизвестно, что при запуске DOS-приложений размер окружения (Environment) ограничивается по-дефолту вполне определенной величиной (в XP, например, это значение равно 256 байт, если я правильно понял ). Как это проявляется ? Ну, вот, например, у вас есть переменные среды, в том числе и PATH, которые заданы средствами Windows (Мой Компьютер => Свойства => Дополнительно => Переменные Среды). При запуске DOS-приложений стартует виртуальная машина DOS-задач NTVDM, которая запускает command.com, получающий из всего пула переменных среды блок размером в 256 байт. То есть, если PATH у вас был длинный (а такое часто случается при установке приложений в папку Program Files, которые добавляют в переменную PATH пути к своим бинарниками или либам), то для DOS-задачи он будет урезан.
суббота, 2 октября 2010 г.
Firefox 4 и русская локаль
перебрасывает, почему-то, на молдавский домен google.md с латинской графикой.
Видимо, по-дефолту поиск идет на домене google.com, который уже в зависимости от страны или настроек пользователя перебрасывает последнего на локальный домен.
Пока решил это включением галки "предлагается на русском языке" на странице google.md (видимо, гугль садит какую-то куку), но как-то это не по-людски. Хотелось бы урегулировать проблему раз и навсегда. Полазил по настройкам Firefox'а в about:config. Нашел 2 параметра, которые отвечают за локаль:
1. Строчный параметр "general.useragent.locale"
Вроде бы, устанавливает локаль в юзерагенте браузера. Пробовал менять дефолтное "en-US" на "ru-RU" - без особого успеха.
2. Булевый параметр "intl.locale.matchOS". В случае True (по-дефолту выставлен в False) заменяет вышестоящий параметр тем, что выставлено в локали OS (если я правильно понял). Изменение его на "True" также результатов не дало.
Сталкивался ли кто с таким ? Интересно, как можно решить ?
вторник, 14 сентября 2010 г.
Решение задачи о поиске двух недублирующихся элементов в потоке
Итак, напомню условие задачи. Есть большой входной поток целых чисел, про который известно, что в нем все числа дублируются кроме двух. Найти эти 2 числа за константное количество проходов с использованием константного количества памяти.
четверг, 2 сентября 2010 г.
Задача о поиске недублирующихся элементов в потоке
Первоначально пришла в голову идея использовать какой-то хэш-массив, в котором ключами будут значения элементов входного потока, а значениями - число вхождений того или иного элемента в поток. Сложность в том, что заранее неизвестно, в каком диапазоне числа входного потока. Если предположить, что размер int'а 32 бита, то в хэше возможно 2^32 элементов, что, в общем, достаточно круто )
Но затем неожиданно меня посетила неплохая идея: а что, если воспользоваться операцией XOR, для которой характерны следующие правила: A XOR A = 0 и 0 XOR A = A.
Тогда просто проксорив все элементы входного потока, мы получим на выходе значение недублирующегося элемента, ибо
A XOR B XOR A XOR C XOR B = C
То есть, для решения задачи нужен всего 1 проход по всем элементам и одна переменная, аккумулирующая результат, что, согласитесь, неплохо.
А теперь внимание. Как можно решить задачу, если в потоке не один недублирующийся элемента, а два ? Мне пока что-то ничего в голову не приходит.
вторник, 10 августа 2010 г.
Почему нас так не любят за рубежом ? )
Май инглиш из вэри бэд, но всё равно попробовал ради шутки посмотреть, что получится. Ниже привожу логи 2-ух моих непродолжительных бесед с 2-мя разными представителями дальнего, как я понимаю, зарубежья.
четверг, 29 июля 2010 г.
Задача о картине, веревке и гвоздях
Для случая, когда гвоздь всего один, задача решается элементарно.
Будем разбираться, как её решить для 2-ух и более гвоздей. Рассмотрим ситуацию с 2-мя гвоздями. Обозначим их A и B. Введем операции (+) и (-), когда веревка обматывает гвоздь по часовой и, соответственно, против часовой стрелки. Таким образом, A + B означает, что гвозди A и B обмотаны веревкой по часовой стрелке 1 раз (по отдельности или вместе - в данном случае это не играет особой роли).
Также понятно, что A + (-A) = 0, так как мы оборачиваем гвоздь А по часовой стрелке, и тут же снимаем с него веревку против часовой стрелки. Итоговое значение 0 означает, что картину с веревкой ничего не удерживает, и они гарантированно упадут.
Удаление гвоздя будем отмечать заменой соответствующей буквы на число 0 (гвоздь перестает играть роль в процессе удержания картины). Таким образом, для того, чтобы условие задачи выполнялось, необходимо получить такую формулу, когда замена какой-либо одной (любой) буквы, обозначающей гвоздь, приводит всю формулу к нулевому значению.
суббота, 24 июля 2010 г.
Фильм "Рядовой Александр Матросов"
начались какие-то подвижки в сторону открытия ранее неизвестных фактов из его биографии (оказывается, что и настоящее имя героя не Александр Матросов, и родился он совсем не в Днепропетровске, и подробности самого подвига весьма туманны).
Но с другой стороны - а так ли это важно на самом деле ? Главное - человек отдал самое дорогое, что у него есть - жизнь - за свободу Родины, за то, чтобы мы с вами могли сегодня жить...
Так что поклонимся героям Великой Отечественной войны. Всем - и тем, имена которых известны, и тем, чьи останки до сих пор лежат не найденными в земле.
Вечная Слава героям.
пятница, 23 июля 2010 г.
Утилита для очистки ключевых слов KCleaner
На днях написал на C++ небольшую утилиту KCleaner (от Keys Cleaner) в помощь веб-мастерам и SEO-шникам. Она позволяет чистить базы кеев по спискам стоп-слов. Утилита консольная, работает в среде OS Windows (гарантированно проверял работу в Windows XP SP2).
Главный упор при её написании я делал на возможность обработки больших массивов данных с сохранением высокой скорости работы. Так, например, для обработки базы ключевиков объемом ~500 000 ключевых слов при файле стоп-слов объемом ~50 000 слов моей утилите требуется около 7-8 секунд на железе Sempron 2500 1.4GHz + 512MB RAM.
понедельник, 19 июля 2010 г.
Рассказ Густава Майринка "Звон в ушах"
Еще раз убедился, что даже в небольшом по размеру литературном произведении можно передать очень много всего. А этот рассказ, на мой взгляд, стоит иных многостраничных романов и повестей. В общем, рекомендую к прочтению. Ну и, так как размер рассказа очень мал, привожу ниже целиком этот сгусток мастерства Автора:
воскресенье, 18 июля 2010 г.
Монетизация блогов
это воспользоваться услугами специальных Интернет - сервисов, каковым, например, является сервис Блогун.
Преимущество его использования заключается, как минимум, в том, что все функции по монетизации он берет на себя, а блоггеру остается лишь заниматься своим любимым делом - просто писать интересные посты. Разумеется, выступая в качестве посредника, какую-то часть возможной прибыли Блогун будет брать себе, но всё это меркнет на фоне тех удобств, которые предоставляет сервис. Кто еще не сталкивался с ним, может попробовать зарегистрироваться в этой системе. (Регистрация, кстати, очень простая и занимает буквально одну-две минуты.)
Эх, люблю я море... )
Море, почему-то, очень люблю (сам не знаю, откуда такая страсть :)) Украинская Затока от нас достаточно близко, поэтому стараюсь ездить туда по мере возможности. В этот раз поездка прошла на удивление легко (на таможнях практически не стояли), да и в Затоке погода была отличная . Только в последний день было пасмурно, но когда немного обгоришь на Солнце, такая погода даже к лучшему :) В общем, удалось чуть отдохнуть, накупаться и назагораться. Сейчас вот смотрел фотографии, там сделанные.... и снова на море захотелось )) А ждать еще почти год, до следующего отпуска, как минимум )) Мда.... Ну всё, надо заканчивать просмотр, а то весь слюной изойду ))))
пятница, 30 апреля 2010 г.
Задача об удалении элемента массива с получением максимального произведения оставшихся элементов
===
Имеется непустой массив целых чисел. Необходимо удалить из него один элемент таким образом, чтобы произведение всех оставшихся элементов было максимальным.
===
Задачка показалась любопытной.
четверг, 15 апреля 2010 г.
Сессии и register_globals в PHP, или как я пытался получить инвайт на Habrahabr.ru
воскресенье, 14 февраля 2010 г.
Добавляем счетчики от Google Analytics и LiveInternet.ru на блог, базирующийся на Blogspot.com
пятница, 12 февраля 2010 г.
Обработка выдачи wordstat.yandex.ru при помощи небольшого скрипта на Ruby
====
Ключевая фраза1 23434
Ключевая +фраза2 5435
...
====