Home
Стас Агарков's Journal
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Стас Агарков's LiveJournal:

    [ << Previous 20 ]
    Sunday, December 22nd, 2019
    12:14 am
    Цитаты
    Прекрасно, что мы встретились с парадоксом. Теперь можно надеяться на продвижение вперёд. © Нильс Бор
    Если в первый момент идея не кажется абсурдной, она безнадёжна. © Альберт Эйнштейн
    Мелочи не играют решающей роли. Они решают всё. © Харви Маккей
    Настоящий друг будет с тобой, когда ты не прав, когда ты прав — любой будет с тобой. © Марк Твен
    Гений — это 1 процент вдохновения и 99 процентов труда. © Томас Эдисон
    Friday, December 6th, 2019
    7:53 pm
    Интересные ссылки на полезные ресурсы

    Иконки


    50 бесплатных наборов иконок
    Архив бесплатных иконок для сайтов
    Сайт бесплатных иконок
    Каталог иконок
    Два набора пиксельных иконок для вэба
    IconArchive
    Бесплатные иконки

    jQuery


    40 плагинов к jQuery
    Несколько jQuery плагинов
    jQuery for Designers
    35 свежих и полезных jQuery плагинов
    Подборка плагинов к jQuery
    Автодополнение в jQuery

    Фото, клипарты


    Фото, клипарты, картины в большом разрешении
    Фото, клипарты, картины в большом разрешении
    Бесплатные фотобанки

    Python


    Компиляция mod_python для Python 2.6
    i18n в Python
    Создание бинарных исполняемых файлов из Python
    Руководство по интроспекции на Python

    Блоги


    Блог webmascon.com
    SoftwareManiacs.org
    Записки о софтверном бизнесе
    Алёна C++ — программирование для прагматиков

    Другое



    Все прошивки для телефонов Samsung
    Визуализаторы для отладки в Visual Studio
    Алгоритм Шинглов — поиск нечетких дубликатов текста
    Полезные советы по настройке контейнера Tomcat
    Интернет-помощник МТС для Белгородской области
    Рассказ «День компьютерной независимости»
    Среда разработки nVidia
    Интернет-радио своими руками
    Плюсы и минусы лицензий открытого ПО
    Инструкции и другие полезные темы по модемам Acorp
    Говнокод.ру
    Создание инсталлятора с помощью WiX
    Проверка глазомера
    Установка и настройка SVN, Apache, Trac для Windows
    Генерация приватных ключей и публичных сертификатов PKCS#12
    Программа тренировок «Сто отжиманий»
    Динамический DNS
    Сервис для рисования интерфейсов
    Авторизация с помощью клиентских SSL сертификатов
    Быстрый старт для написания апплетов Gnome
    Полезный фреймворк для JavaScript
    Синтаксическая подсветка кода он-лайн
    TinyCA — GUI для управления небольшим центром сертификации
    Копипаст специальных символов Unicode
    Список Javascript библиотек для рисования графиков и диаграмм

    Статьи


    Законы накопления хлама
    Thursday, January 24th, 2019
    8:00 pm
    Фильмы, которые я посмотрел
    Матрица
    Город ангелов
    Небо над Берлином
    Форрест Гамп
    Адмиралъ
    Однажды в Америке
    Пролетая над гнездом кукушки
    Однажды на диком западе
    Казино «Рояль»
    500 дней лета
    Убить пересмешника
    Касабланка
    Молчание ягнят
    Спасти рядового Райана
    Бойцовский клуб
    Город Бога
    Дьявол носит Prada
    Мистер и миссис Смит
    Криминальное чтиво
    Завтрак у Тиффани
    Список Шиндлера
    Славные парни
    Алиса в стране Чудес
    Прирождённые убийцы
    Sunday, March 14th, 2010
    6:00 pm
    О MongoDB
    Сегодня экспериментировал с MongoDB.

    Скачал, запустил как службу Windows, скачал jar-ник для подключения из Java, все работает.

    Решил протестить на больших массивах данных.
    Сделал бин общим размером 332 байта примерно.

    Запустил цикл добавления такого бина 10 млн раз.
    Система зависла, когда база (суммарный размер всех файлов) достигла размера 2 Гб.
    Смотрю в консоль: количество записей не увеличивается, а процессор занят как и прежде, процентов на 60. Я думал зависла база, но через 15 минут она «успешно» возвратила управление моему коду на Java.

    Прочитал в документации, что для ускорения работы MongoDB использует memory-mapped файлы, таким образом для 32-битной ОС размер базы не может быть больше 2 Гб.

    Тогда я добавил 3 млн записей, которые поместились в 2 Гб.
    И решил протестировать выборку.
    Для начала я затер весь дисковый кеш операционной системы.
    Сделал выборку по одному полю с критерием вида «a > 10 and a < 20», которая возвратила 140 тысяч записей.

    Cамо получение коллекции методом getCollection занимает примерно 20 микросекунд.

    Метод find занял 0 мс, затем я вызвал метод count, который возвращает количество записей в коллекции, его выполнение заняло 12,6 с, затем я просуммировал одно поле всех объектов полученной коллекции, чтобы удостовериться, что реальные объекты прочитались из базы. Суммирование заняло 5,4 с.

    Затем я повторил операцию. Так как база уже была в кеше ОС, то время заметно уменьшилось. find, как обычно занял 0 мс, count занял 3,0 с, а суммирование — 5,4 с.

    Затем я добавил такой же интервальный критерий для второго поля бина так, что получалась коллекция из 28 тысяч записей.
    Метод find, как обычно, занял 0 мс, count при чистом кеше ОС выполнялся 14 с, а повторно — 3 с. А суммирование в обоих случаях заняло 3,5 с.

    Затем я решил сделать выборку одного объекта по неключевому полю. Одним из полей бина я записал GUID. Получение одного элемента методом findOne по значению этого поля при чистом кеше занимает 12,5 мс, а при повторном получении — 2,5 мс.
    Saturday, March 13th, 2010
    12:21 am
    О CamelCase
    Сегодня я понял, почему стиль CamelCase так называется. Почему-то понял это, когда CamelCase-ом назвали крайний случай — стиль написания блондинок, например «BlOnDiNkA». В этот момент я перевел на русский слово Camel и представил горбы верблюда.
    Интересно, какое максимальное количество горбов бывает у верблюда? ;)
    Tuesday, January 12th, 2010
    9:46 pm
    Лопаты и языки программирования
    Haskell и Схема — это сферические лопаты в вакууме. Они внутренне совершенны и стройны, но ими довольно трудно копать. Разве что вакуум.

    Common Lisp — это лопата, с кривоватой ручкой и слегка ржавым ножом, но пригодная для копания. Испытываешь легкую досаду от неуклюжестей, но работаешь.

    C++ — это такой предмет, на рукояти с одной стороны — лопата, с другой — грабли. Можно делать все, что угодно, но либо отрезаешь себе что-нибудь лопатой, или протыкаешь граблями.

    Python — это пластмассовая лопата. Очень красивая и удобная, но копать ей можно что-то мягкое и легкое; иначе не выдерживает и ломается.

    Java — это лопата с прорезями, или грабли с широкими зубьями. При помощи нее можно как плохо копать, так и плохо грести.

    Perl — это не лопата. Это мотыга. Можно очень хорошо копать, если очень хорошо умеешь, иначе ничего не выходит.

    C — это лопата без ручки. Либо трахаешься по локоть в грязи, либо приделываешь к ней ручку, после чего получается просто самодельный лисп.

    © Давид Толпин
    9:38 pm
    Притча Эдсгера Дейкстры (Edsger W. Dijkstra)
    В незапамятные времена была организована железнодорожная компания. Один из ее руководителей (вероятно, коммерческий директор) обнаружил, что можно сэкономить много денег, если снабжать туалетом не каждый железнодорожный вагон, а лишь половину из них. Так и решено было
    сделать.

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

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

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

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

    Теперь, когда все туалеты находились на равных расстояниях, компания была уверена в успехе, однако пассажиры продолжали беспокоиться: хотя до ближайшего туалета было не больше одного вагона, но не было ясно, с какой стороны он находится. Чтобы решить и эту проблему, внутри вагонов были нарисованы стрелки с надписью "ТУАЛЕТ", сделавшие необходимым правильно ориентировать и вагоны без туалетов. Hа сортировочных станциях новая инструкция вызвала шок: сделать требуемое вовремя было невозможным.

    В критический момент кто-то, чье имя сейчас невозможно установить, заметил следующее. Если мы сцепим вагон с туалетом и без оного так, чтобы туалет был посередине, и никогда их не будем расцеплять, то сортировочная станция будет иметь дело вместо N ориентированных объектов с N/2 объектами, которые можно во всех отношениях и со всех точек зрения считать симметричными. Это наблюдение решило проблему ценой двух уступок. Во-первых, поезда могли теперь состоять лишь из четного числа вагонов — недостающие вагоны могли быть оплачены за счет экономии от сокращения числа туалетов, и, во-вторых, туалеты были расположены на чуть-чуть неравных расстояниях. Hо кого беспокоит лишний метр?

    Хотя во времена, к которым относится наша история, человечество не знало ЭВМ, неизвестный, нашедший это решение, был первым в мире компетентным программистом.
    9:29 pm
    Первая книга за много лет
    Прочитал на новогодних каникулах книгу «Вы, наверное, шутите, мистер Фейнман!»
    Отличная книга, я вам скажу!
    Sunday, December 6th, 2009
    7:43 pm
    Починил модем
    Был у меня однажды модем Acorp W422G. Работал исправно почти полтора года, а потом сломался. И случайно я нашел в интернете статью о том, как починить ADSL-модем.
    И я починил! И многие люди, судя по комментариям, починили свои модемы. Большое спасибо, автору!
    Tuesday, November 3rd, 2009
    3:26 am
    Ubuntu 9.10
    Установил Ubuntu 9.10.

    плюсы:
  • увидела 3,9 Гб оперативной памяти из 4 Гб;
  • импортировала настройки из существующего аккаунта пользователя Windows;
  • звук работает.

  • минусы:
  • в метках NTFS дисков вопросики (????) вместо русских символов;
  • в skype нельзя было выбрать в качестве источника звука веб-камеру, пока не удалил pulseaudio.
  • Saturday, October 31st, 2009
    3:15 pm
    Об армии
    Отслужив в армии, я стал считать, что каждый мужчина должен отслужить в армии :)
    Tuesday, October 6th, 2009
    12:53 am
    Чистка репозитория Subversion
    Вчера закоммитил в свой домашний репозиторий большой и ненужный проект. Так как репозиторий домашний, то там и раньше появлялись каталоги типа test, test2 и т.п.
    Сегодня, наконец, научился чистить репозитории svn :)
    Сделал так:
    svnadmin dump G:\SvnRepository > genius.full
    type genius.full | svndumpfilter exclude --drop-empty-revs --renumber-revs test test2 > genius.clear

    Удалил каталог со старым репозиторием, но сохранил каталог hooks и conf.
    И сделал так:
    svnadmin create G:\SvnRepository
    type genius.clear | svnadmin load G:\SvnRepository

    Восстановил на место каталоги hooks и conf.

    Всё!

    Так как у меня Windows, то использую type вместо cat, G:\SvnRepository — каталог с собственно репозиторием, genius.full — это имя дампа исходного репозитория, genius.clear — имя очищенного дампа репозитория.

    На время операции svnserve можно и остановить...

    P.S. Спасибо djdfy!
    Sunday, September 20th, 2009
    7:50 pm
    Qt и WinAPI
    Понравилась мне фича Gnome, когда текст копируется в буфер сразу после его выделения, а вставляется по щелчку на колесико мыши, и решил я вчера сделать такое же в Windows.
    Чере пару часов сделал работающий прототип на основе хука на мышь. Вот «ядро» функции хука:
            switch (wParam)
            {
                    case WM_LBUTTONUP:
                            PostMessage(m->hwnd, WM_COPY, 0, 0);
                            break;
                    case WM_MBUTTONUP:
                            PostMessage(m->hwnd, WM_PASTE, 0, 0);
                            break;
            }
            return CallNextHookEx(NULL,code,wParam,lParam);
    

    Всё бы хорошо, если бы не странное зависание Opera 9.64, которое пропадало при завершении моей утилиты. Когда я заменил вызов PostMessage на SendNotifyMessage, то Opera зависать перестала, но и на передаваемые ей сообщений не реагировала.
    Позже я выяснил, что проблема не в Opera, а в Qt, потому что другое Qt3-based приложение Modern Forex зависает так же, как и Opera, и также не реагирует на посылаемые ему сообщения.
    Opera 10.10 имеет такую же проблему.

    Баг к Qt3?
    Sunday, September 13th, 2009
    8:33 pm
    Память OCZ
    Купил недавно память DDR2 OCZ 9600 Reaper, 2 штуки по 1 Гб в комплекте, KIT тобишь. Вставил ее в мать Gigabyte EP45-UD3LR, которая держит FSB 1333, а память даже 1600. Запускаю Everest и делаю тест памяти: 6000 Мб/сек! Где 9600? Нету... CPU-Z вообще говорит, что у меня память 5300. Я пытался поставить напряжение памяти в BIOS в 2,0 и даже 2,1 вместо стандартных 1,8, но это не помогло. Пытался поставить коэффициент умножения в значение 4.00B, при котором частота должна была стать 1333, но система через 3 секунды после запуска перезапускалась. Пришлось обнулять BIOS.
    Кто может мне помочь? Хочу частоту 1200 памяти и 9600 Мб/сек в Everest.
    3:06 am
    Феникс
    Так как свой сайт я не скоро обустрою для ведения блога, а писать в стиле broadcast иногда хочется, то я вернусь сюда.
    Saturday, March 15th, 2008
    5:35 pm
    О программистах
    Сегодня знакомая девушка 17-ти лет спросила на кого я учусь. Я ответил, что на программиста. Она попросила рассказать, какие полезные программы я написал. Я рассказал. После этого у нас случился такой диалог:

    Она: Честно, я не понимаю предназначения твоей профессии.
    Я (сильно удивившись): МЫ ПРОГРАММИСТЫ. Делаем программы, с помощью которых ты смотришь почту, сайты, говоришь по аське, рисуешь на компе, пишешь тексты и пр.
    Она: зачем вас таК много?


    (Задумчиво) Что-то в этом есть...
    Friday, March 14th, 2008
    5:30 pm
    О законах
    Любые законы, придуманные людьми, я не уважал, не уважаю и уважать не буду. Ничего хорошего в стремлении исполнять закон я не вижу. Законы нужно исполнять только тогда, когда это выгодно.
    Friday, March 7th, 2008
    10:31 pm
    Starcraft жив!
    Ура! Starcraft больше не требует CD при запуске!!! В официальном патче 1.15.2 требование вставить диск убрано! Прошла эпоха NOCD для Starcraft!
    Wednesday, February 6th, 2008
    1:56 pm
    SendSMS
    Прошлым летом написал программу SendSMS, предназначенную для отправки SMS через Интернет. А сейчас решил распиарить по всему инету.

    Отправляет SMS на телефоны (+7) с кодом 903, 905, 906, 909, 960, 961, 962, 963, 812, 861, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 495, 985, 988, 987, 926, 921, 920, 922, 927, 902, 908, 950,
    а также на украинские (+380) номера с кодом 67, 68, 96, 97, 98.

    P.S. Для отправки на 67, 68, 96, 97, 98, а также 920 необходима OCR-распознавалка MS Office из состава Microsoft Office Document Imaging.

    Скачать SendSMS
    Скачать исходники SendSMS
    Tuesday, February 5th, 2008
    12:18 am
    Jabber2LJ
    Попробуем написать сообщение в мой ЖЖ через Jabber-протокол QIP Infium, используя Jabber-аккаунт ЖЖ, с помощью бота LJ Bot (Frank).
[ << Previous 20 ]
Сайт Стаса Агаркова   About LiveJournal.com

Advertisement