суббота, 23 апреля 2011 г.

Очистка std::ostringstream (C++ stdlib)

Для экономии времени я (наверное, как и многие разработчики) привык разбираться с любым API "на лету", т. е. исходя из названий классов/интерфейсов/методов/т.д. Но вот здесь этот метод не сработал, пришлось заглянуть на cplusplus.com.

Итак, нужно очистить ostringstream.

Первое, что приходит на ум:

std::ostringstream out;
out << "foo";
out.clear();
out.str(); // == "foo"

Но нет, нужно так:

std::ostringstream out;
out << "foo";
out.str(std::string());
out.str(); // == ""

Вот теперь все в порядке.

воскресенье, 10 апреля 2011 г.

Acer Aspire One D250: реальная скорость передачи данных по WiFi

Являясь обладателем Acer Aspire One D250-0Bw, мне надоело перебрасывать данные с декстопа на нетбук посредством флешки (в мое оправдание - это бывает достаточно редко). Поэтому было решено наконец-таки приобрести WiFi адаптер для десктопа и организовать домашнюю беспроводную сеть. Все прошло удачно (в Сети достаточно руководств, как настроить WiFi сеть и расшарить Интернет-соединение).

И вот наступило время протестировать сеть под настоящей нагрузкой - перебросить гигабайт 30-40. Ок, начинаем копирование: все хорошо, но скорость 3,2 Мб/сек (или 25,6 Мбит/сек). Хм, странно, ведь скорость подключения 54 Мбит/сек и уровень сигнала отличный! Как оказалось 54 Мбит/сек - это теоретический максимум для 802.11g, реальное среднее значение колеблется около 20 Мбит/сек. Отлично! Выше среднего "из коробки", без доп. настроек!

И зачем я это написал, если подобную информацию легко можно найти в Сети? А вот зачем: скорость получилось увеличить. Панель управления - Система - Оборудование - Диспетчер устройств - Сетевые платы - Сетевой адаптер Broadcom 802.11g - Свойства - Дополнительно. А дальше как на скрине (кликабельно).


В результате скорость возросла до 3,9 Мб/сек (или 31,2 Мбит/сек) - не фонтан конечно, но уже лучше!

суббота, 9 апреля 2011 г.

Жучка или Отчет о поиске 2

С целью повысить удобство пользования Жучкой я решил написать web-версию с использованием Google App Engine в качестве фреймворка.

Нельзя сказать, что разработка отняла слишком много времени, но некоторые вещи потребовали дополнительного внимания. Результат можно посмотреть на search-report.appspot.com.

Консольная версия тоже претерпела улучшения - теперь достаточно только файла с поисковыми фразами.

Интересно, что развернутая на appspot версия дает худшие результаты, чем развернутая локально (больше вероятность того, что приложение будет распознано как робот).

Пример выполнения на localhost (dev_appserver).


Пример выполнения на appspot.


Как видно, Гугл и Яндекс отклонили запросы приложения, развернутого на appspot (хотя так происходит не всегда), что весьма неприятно, но в любом случае можно использовать локальную (консольную или поднять у себя сервер) версию - все же это лучше, чем составлять отчет о поиске вручную :).

пятница, 1 апреля 2011 г.

Extreme Programming Night 2011

Совсем недавно завершился конкурс Extreme Programming Night, в котором удалось достичь скромного, но результата (4 место).





Фото с конкурса можно посмотреть в этом альбоме.

Немного об отборочном этапе: чтобы попасть в финал, необходимо было разработать маленькую игрушку Pathman.

Чуть ниже скриншот и видео моей версии решения.




Релиз для Win32 можно скачать отсюда.
Исходный код в открытом доступе.