22 дек. 2009 г.

4 монеты в ряд

На столе лежат шесть монет (как на изображении).

Как необходимо переместить только одну монету, так, чтобы на любом отрезке, образованном монетами было ровно четыре монеты.
внимание! комментарии содержат ответ.

3 дек. 2009 г.

JVisualVM: DeadLock detection

По работе забулшитил deadlock, собственно у меня было подозрение, что он возможен... да и просмотреть стоило бы хорошо ещё раз, но всё же он вылез чуть раньше на unit test'ах, чем я нашёл его в результате code review.

Для демонстрации поиска deadlock используем классическую ситуацию с переводом средств с одного счёта на другой

19 нояб. 2009 г.

Нарекаю тебя карасём

Колонизаторы и миссионеры Южной Америки встретили в 16 веке зверька капибару — грызуна, ведущего полуводный образ жизни. Они попросили Папу Римского объявить капибару рыбой, чтобы её мясо можно было есть во время постов, на что тот любезно дал своё согласие.

Музей фактов

мой знакомый рассказывал примерно схожую историю, свидетелем которой он стал сам. его отец работал в нашей дип.миссии в Италии (если не ошибаюсь) - и бывают у них какие-то мероприятия, банкеты, куда приглашается много народа - и все дип. работники с семьями. Тогда знакомому было лет 16-18, так, что он прекрасно помнит всё в подробностях. И среди прочих гостей был и католический аббат. И вот они с отцом наблюдает картину - как аббат ест свинину в пост - подходят к нему
- аббат как же так, это же свинина, а сейчас ведь пост
а дело в том, что аббаты могут нарекать - т.е давать имя, и вот аббат не долго думая крестит кусок свинины
- нарекаю тебя... карасём
... и продолжил её есть

12 нояб. 2009 г.

Yo! Go!

Вы уже заботали новый язык от гугла Go! ?

Тогда ботайте новый язык от yahoo - Yo!
People English is gettin’ dumber, yo. We needs programming language yo people can understand, can yo diggit?

11 нояб. 2009 г.

Женатый Джек любит Анну

Женатый Джек любит Анну, которая влюблена в холостого Джорджа.

Верно ли, что есть состоящий в браке человек, который любит того, кто в браке не состоит?

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

внимание! комментарии содержат ответ.

19 окт. 2009 г.

Machinarium


Machinarium, нарисованный руками удивительного Jakub Dvorsky квест, рассказывает историю маленького робота, выброшенного на свалку за пределы города, населенного такими же механическими человечками. Нам предложат решить массу сюжетных головоломок, чтобы помочь подопечному вернуться назад, победить братство «Темных шляп» и спасти роболюбимую.

Так же, на сайте доступно демо, позволяющее оценить игру, графику и проникнуться атмосферой.

30 сент. 2009 г.

Задачка: Битый пиксель

На электронном табло отображается верное математическое равенство. Но один пиксел табло неисправен.



Какой?
© braingames.ru

внимание! комментарии содержат ответ.

9 сент. 2009 г.

Apache Ivy - The agile dependency manager

Apache Ivy - шустрый и гибкий инструмент разрешения зависимостей (java) библиотек.
Среди преимуществ:
  • полная интеграция с Apache Ant - что не удивительно, т.к. ivy развивается в рамках этого проекта
  • IvyDe - plugin для eclipse
  • ivyidea - plugin для jetBrains Idea

6 сент. 2009 г.

Задачка: Ту-154М, КВС и туалет

Самолет Ту-154М летит на эшелоне 10600 м. Все спокойно, двигатели гудят размеренно, позади уже 3 часа полета из 6ти. Вдруг, командиру захотелось срочно в туалет. Попросил второго пилота контролировать самолет и отлучился на 10 минут. Вернулся.

вопрос: на сколько облегчился самолет?

источник

27 авг. 2009 г.

Задачка: цепочка из семи звеньев

Туристу необходимо остановится в отеле на семь дней. У него есть золотая цепочка из семи звеньев и он договорился с владельцем отеля о плате - каждый день по одному звену цепочки.
НО! если тот сделает минимальное количество распилов цепочки.


внимание! комментарии содержат ответ.

26 авг. 2009 г.

Арифметическая задачка или тест на блондинку

Допустим Я у тебя взял 100 руб.
Пошел в магазин и потерял их по дороге!
Встретил друга.
Занял у него 50 руб.
Купил 2 шоколадки по 10 руб.
У меня осталось 30 руб.
Я их отдал те.
И остался должен 70 руб.
И другу 50 руб.
Итого 120 руб.
Плюс у меня 2 шоколадки по 10 руб.
Итого 140 руб.
ГДЕ 10 РУБЛЕЙ???!!!
just for fun

17 июл. 2009 г.

Задачка: Роботы-парашютисты

На одномерную бесконечную ленту десантируют роботов. Лента поделена на ячейки. Требуется запрограммировать роботов так, чтобы они однажды собрались все вместе (в одной ячейке).

7 июл. 2009 г.

Java: `Странное` поведение инициализации final свойств класса

Давеча рассматривая давно избитую проблему с вызовом переопределённого виртуального метода из конструктора наткнулся на странное поведение, которое меня озадачило.

26 июн. 2009 г.

SQL: Quick start

Скорее это памятка самому себе, ибо как только перестаёшь постоянно иметь дело с sql, так тут же начинаешь его забывать.

20 июн. 2009 г.

Java: Synthetic method

Не смотря на то, что вложенные классы могут обращаться к private свойствам и методам класса, который их содержит - подобное обращение происходит не на прямую, а через так называемый синтетический метод, создаваемый компилятором.
Пример демонстрирующий данное положение:
public class A {
private int i;
public int k;

private class B { 
public B() {
int sum = i + k;
}
}
}

18 июн. 2009 г.

Linux: ALSA и тихий микрофон

Долго мучился с тем, что меня практически не слышно в skype, ekiga и т.п. Если долго мучаться... ~/.asoundrc
pcm.loudmic {
type asym
capture.pcm {
type softvol
slave.pcm "hw:0,0"
control {
name "Mic Boost"
card 0
}
max_dB 30.0 # от 0.0 db до 50 db
}
}

Пробуем записать
 $ arecord -D loudmic -f S16_LE -c2 -r48000 record.wav
и слушаем
 $ aplay record.wav
Убедившись, что всё работает как нужно - выбираем в skype записывающее устройство loudmic.

14 июн. 2009 г.

12 июн. 2009 г.

Ассоциативный массив: Hash-таблица

Одной из часто используемых реализаций ассоциативного массива является hash-таблица.
Важной особенностью является сложность выполнения операций добавления, удаления и поиска - O(1) - другими словами, сложность алгоритма не зависит от количества элементов в массиве - хоть 10 элементов, хоть 10 млн.

11 июн. 2009 г.

Задачка: русская рулетка

Давайте сыграем в русскую рулетку. Вы привязаны к стулу и не можете встать. Вот револьвер. Вот его барабан - в нем шесть гнезд для патронов, и они все пусты. Смотрите: у меня два патрона. Вы обратили внимание, что я их вставил в соседние гнезда барабана? Теперь я ставлю барабан на место и вращаю его. Я подношу револьвер к вашему виску и нажимаю на спусковой крючок. Щелк! Вы еще живы. Вам повезло! Сейчас, до того как мы начнем обсуждать присланное вами резюме, я собираюсь еще раз нажать на крючок. Что вы предпочитаете: чтобы я снова провернул барабан или чтобы просто нажал на спусковой крючок?

10 июн. 2009 г.

Java:: Shift vs Multiply

Читая Effective Java 2nd edition обнаружил любопытную заметку:
The advantage of using a prime is less clear, but it is traditional. A nice property of 31 is that the multiplication can be replaced by a shift and a subtraction for better performance:
31*i==(i<<5)-i. Modern VMs do this sort of optimization automatically.

Задачка: непарное число в массиве

Есть массив целых чисел, в котором каждое число встречается дважды, кроме одного.
Не создавая дополнительных структур определить это число за линейное время.

Задачка: Хитрый мальчик задумал 3 числа

Маленький мальчик задумал три числа x, y и zN.
Можно задать дважды вопрос вида: чему равно значение
a * x + b * y + c * z = ?
где a, b и cN
Какие нужно задать вопросы мальчику, чтобы узнать задуманные им числа ?

Задача: средняя зп

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

27 мая 2009 г.

Gentoo:: My 1st ebuild in gentoo portage tree

Сравнительно недавно таки появился под GNU/Linux Chromium - WebKit броузер, на котором построен Google Chrome.

Gentoo оверлей THE содержит ebuild для сборки Chromium из исходников, однако ребята из проекта Chromium сами выкладывают бинарные сборки.

Моя же радость заключается в том, что написанный мною ebuild для установки бинарной сборки Google Chromium таки попал в основное дерево портежей Gentoo: www-client/chromium-bin .

16 апр. 2009 г.

Java: Классический dead lock

Классический dead lock (Java Concurrency In Practice, p.10.1):
When a thread holds a lock forever, other threads attempting to acquire that lock will block forever waiting. When thread A holds lock L and tries to acquire lock M, but at the same time thread B holds M and tries to acquire L, both threads will wait forever. This situation is the simplest case of deadlock (or deadly embrace), where multiple threads wait forever due to a cyclic locking dependency. (Think of the threads as the nodes of a directed graph whose edges represent the relation "Thread A is waiting for a resource held by thread B". If this graph is cyclical, there is a deadlock.)

Пример иллюстрирующий пробему:
Есть сущность типа счёт, необходимо реализовать сервис типа переводчика денег с одного счёта на другой.

Для определённости стоит уточнить, что счетов с системе очень много (скажем, несколько миллионов) и порядка несколько тысяч операций в секунду (всё многопоточно).

18 мар. 2009 г.

Gentoo: Numpty Physics, my 1st ebuild

Я использую Gentoo GNU/Linux постоянно и дома, и на работе с очень давних пор - поэтому как-то гложила меня мысль, что стоит что-то хорошее делать для такого хорошего дистрибутива - ведь как известно в Gentoo делятся на тех, кто делает ebuild'ы и на тех, кто их ждёт.

15 мар. 2009 г.

Picasa for Linux

С одной стороны официальный FAQ Picasa for Linux говорит, что крайняя стабильная версия Picasa for Linux 2.7.

С другой стороны, с официальной страницы Picasa for Linux можно взять Picasa 3 for Linux (beta) v.3.0.0.57.4402.0 beta

И в конце концов, Google не скрывает, что Picasa for Linux перенесена при помощи Wine - для этого гугловоды интенсивно патчат wine - и доступная версия под Windows это никакая не beta, а вполне себе нормальная v.3.1.0.70.7300.0.

2 мар. 2009 г.

Python: двухмерный массив

Если теория подтверждается экспериментом - это хорошо,
если не подтверждается - это интересно.

Потребовалось красиво создать boolean двухмерный массив, например 3 * 3, на python:
[[False]*3]*3
Коллега подсказал, что возможны

25 февр. 2009 г.

Задачка для шестиклассников

Привет от Павла Куракина:
задачка для шестиклассников :
1 / ( 1 * 2 ) + 1 / ( 2 * 3 ) + 1 / ( 3 * 4 ) + ... + 1 / ( 99 * 100 ) = ?

Задачка про наблюдательного оленя

По просьбе народа публикую задачку подкинутую мне Павлом Куракиным:

Физика 8 класс, под ред. С. В. Громова.
Задача №.109:
В озеро упала ветка. Пробегавший мимо олень успел заметить, что волна, созданная падением ветки, дошла до берега за 10 с, причем расстояние между соседними гребнями волн было равно 10 см и за 2 с было 4 всплеска о берег. Помогите оленю определить, как далеко от берега упала ветка.

24 февр. 2009 г.

Сборка WebKit под GNU/Linux

WebKit logo WebKit в представлении не нуждается.

На основе WebKit это конечно же Safari под MacOsX и Google Chrome под Windows, а также несколько поделок-свистелок типа Arora - как пример WebKit с Qt front-end'ом и Midori - WebKit c Gtk+ front-end'ом - о них и пойдёт речь, дабы собрать поиграться в эти игрушки под пингвином.

22 февр. 2009 г.

Arora 0.5

Вместе с появлением Qt 4.5rc1, кроме всех прочих улучшений обновлён работающий на Qt WebKit броузер Arora до версии 0.5 (говорить о Arora без обновления Qt не имеет смысла - т.к Arora полностью опирается на webkit движок qt).

24 янв. 2009 г.

C++: явное и неявное создание объектов

Для эффективной работы C++ стоит хорошо понимать когда и при каких условиях создаётся объект: создание объекта (указателя на объект) через new, явное создание стековой переменной и неявное создание объекта, например при вызове метода с передачей параметра по значению и т.п.
Что касается передачи по значению для примитивов типа int (и им подобные) и возвращение по указателю тонкостей нет, в то время как передачу параметра по значению для сложных типов и передачу параметра по ссылке, следует хорошо понимать.

20 янв. 2009 г.

DynDNS

Часто ISP предоставляют своим пользователям реальные, но динамические ip адреса. Как правило, можно за дополнительную плату приобрести статический ip адрес, но и лень, и неохота, и нет особой как бы нужды. Но иногда всё же хочется иметь доступ к своей домашней машине откуда нибудь извне не заморачиваясь о постоянно меняющемся ip.
Для подобных задач есть сервис DynDNS.com, в котором можно зарегистрироваться и получить доменное имя третьего уровня в доменах типа homedns.org, selfip.net и т.п.

19 янв. 2009 г.

C++: reinterpret_cast и как вызвать private метод

Для начала стоит ознакомиться с const_cast, static_cast, dynamic_cast и reinterpret_cast.

В качестве одного из способов применения рассмотрим один очень не серьёзный, с точки зрения проектирования и использования, пример: обращение к private свойствам / методам некоторого класса.

12 янв. 2009 г.

С++: сужение области видимости метода

Область видимости метода в наследнике может быть сужена в C++. После многолетнего java опыта мне кажется это дикостью, да и кроме того - никто не запрещает фактически вызывать такие методы откуда угодно.