Category: юмор

cartoon

NestedTypes 2.0 RC: прямая поддержка агрегации и ОО в JS

Че-та сюда написать забыл.

Есть набор весьма неприятных проблем, которые возникают в JS в случае, если слой данных SPA действительно сложен. Знаете, например, как на раз делается memory leak в JavaScript? Для мемори лика в языке с GC нам нужны две вещи. Синглтон, и подписка на события. И иногда, утечки добиться настолько легко, что это выглядит как фокус. Я объясню на примере BackboneJS.

Пусть у нас есть глобальная коллекция-синглон каких-то объектов - неважно каких, скажем, users. И где-то на одной из страничек нашего SPA мы выбираем юзеров из списка, и выбранные элементы лежат в другой коллекции. Временной. Которая живет столько же, сколько живет страница (пусть у нас SPA состоит из разных "страниц", которые он переключает меняя рауты).

Ну все, у вас уже утечка памяти. Откуда она берется? Коллекция в Бэкбон подписывается на событие change от своих элементов. Подписка на событие на самом деле означает, что объект, который источник события, держит обратную ссылку на получателя. Чтобы его уведомлять.

Так вот, ваши users лежат в синглтоне, и держат ссылку на каждую из коллекций, в которых они лежат. А это означает, что каждая такая коллекция, в которой лежит хоть один юзер из users, не будет подобрана GC.

Ну конечно, если при смене страницы, которая ее создала (в случае SPA это не настоящее закрытие страницы, а лишь видимость, с точки зрения браузера страница одна), не удалить из всех этих коллекций все элементы, лежащие в синглоне. То есть, если у вас нет деструктора - у вас утечка памяти. И не важно, что у нас GC. Добро пожаловать в увлекательный мир, в котором живут программисты на С++.

Бэкбон - это был просто пример. Механизм этой проблемы таков, что ему все равно, бэкбон у вас или не бэкбон.

Так вот. Не знаю, как вы, но не хочу обратно в увлекательный мир С++, частью которого я уже был примерно 6 лет. Поэтому, NestedTypes 2.0 RC, который мы в Volicon/Verizon сейчас готовим к выпуску, и который сейчас лежит в основе наших приложений для мониторинга потоковых видео-трансляций, управляет памятью полностью автоматически. При условии, что вы отличаете агрегацию от ассоциации, и напишете об этом в декларации атрибута модели.

А вот о том, что такое агрегация в ОО - вот вам статья. С веселыми картинками и доступными примерами.

Статья с веселыми картинками

cartoon

(no subject)

К сожалению, сегодня совсем не веселая картинка. Я бы предпочёл про пм-ов рисовать.

cartoon

Как звучит модем

Из жж-сообщества ru_etymology:

В: Откуда происходит слово "ау"? Например, если кто-то в лесу потерялся: аууууу... )

О: раньше у древних славян было принято кричать "ТД-Д-Д, Т-Щ-ЦЦЦ-ХХХ, ФФФ-ХХССС-ШШШ". Но потом умные люди сказали, что не слышно не фига на большом расстоянии

из обсуждения на РСДН (http://rsdn.ru/forum/message/3093600.1.aspx):
Pyromancer:
Интересно какой процент прочитавших не понял что это модем

ononim:
Нифига не модем. Модем это...
ПиИииИииИии...Т-Щ-ЦЦЦ-ХХХиИииИииИии...Т-Щ-ЦЦЦ-ХХХФФФ-ХХССС-ШШШшшшШшшшШШ

А если rockwell с rockwell то ваще:
ПиИииИииИии...урлыурлыУРЛУРЛЫ.. ПиИииИииИии...Т-Щ-ЦЦЦ-ХХХиИииИииИии...Т-Щ-ЦЦЦ-ХХХФФФ-ХХССС-ШШШшшшШшшшШШ
cartoon

Хорошая новость для менеджеров

Слушая один из подкастов Software Engineering Radio (http://www.se-radio.net/), а именно - "Architecture and Business" Люка Хомана (http://www.se-radio.net/podcast/2007-08/episode-64-luke-hohmann-architecture-and-business), пришел в совершеннейший восторг от одного из советов Люка.

Он говорит, и правильно говорит, что на прямые вопросы касательно требований и потребности представители фокус-групп или заказчика ответить часто не могут. Ну да. Отмечаю про себя. Все так. Видимо механизм тот же, думаю я, как если неожиданно попросить человека рассказать смешной анекдот. У многих в голове образется звенящая пустота, и наступает тупняк, при котором человек забывает сразу все анекдоты и истории, кроме совсем дебильных.

- Однако, - продолжает Люк, - как вы думаете, что произойдет, если вы в ответ скажете ему еще больший дебильняк - в рамках вашего предположения, что ему нужно?
- То есть как это, вы рекомендуете говорить ему чушь? - изумляется ведущий. И я вместе с ним.
- Ну да. Мозг человека устроен так, что он защищает себя от непонятных и бредовых вещей. Нопример, мозг может сказать - брр - какой балшыт, бред полнейший! И одна из возможных реакций - мозг переработает балшыт в нечто полезное.
- Э-э. Как так?
- В ответ на вашу чушь клиент может сказать вам, что вы говорите чушь, и ему на самом деле надо совсем не это. И - сказать вам, что ему НА САМОМ ДЕЛЕ надо. Чушь - она часто стимулирует мыслительные процессы, направляя их в конструктивное русло.
- Вы предлагаете это использовать? - ведущий в восторге. И я вместе с ним.
- Да, конечно! Современные психологические исследования чуши показывают, что люди часто на нее реагируют именно так. Ну, то есть конечно гарантий у вас никаких нет, но, такое происходит часто, и это вполне можно использовать в качестве игрового элемента.

Подкаст я слушал в полуха, на самом деле, и диалог реконструирую. Суть была примерно такая. Я вспомнил примерно пяток случаев из своей практики, когда чушь говоримая мне стимулировала мои мыслительные процессы, и я быстро выдавал правильные решения в рамках реакции на чушь, и обратные ситуации, когда я говорил чушь подчиненным, и они, будучи возмущенными масштабом чуши, также на ходу изобретали правильные решения. Собственно, я интуитивно научился этому приему у Кийта Ворфолка, замечательного менеджера, под руководством которого мне удалось поработать в одном безнадежном проектев роли инженера. Но осознание пришло при прослушивании подкаста.

Метод, однако, работает! :) Собственно, хорошая новость состоит в том (нивабиду, дорогие мои коллеги-менеджеры), что по моим наблюдениям у большинства из нас, менеджеров, с несением чуши никаких проблем нет, что, безусловно, отлично стимулирует мыслительные процессы инженеров в нашей индустрии и в целом должно влиять на нее очень положительно :). А я то думал, как - ну как, как компаниям с паршивым менеджментом удается (иногда) делать хорошие продукты? Так вот оно в чем дело оказывается! :)

Так держать, уважаемые коллеги! Возьмем на себя повышенные обязательства, и поднимем производительность труда вверенных нам подразделений на качественно новый уровень! :)

А вообще, если говорить о чуши начистоту, то ее очень часто несут практически все - по нескольку раз на дню. Если отбросить шутки в сторону, то ничего самого по себе плохого в несении чуши, например, по техническим вопросам для менеджера, нет. В этом, как видите, может быть и польза, но только в том случае, если менеджер ПОНИМАЕТ, что выдумывать технически правильные решения - не его работа, и готов выслушать правильные решения в ответ :). Гораздо хуже другие сценарии.
1) Менеджер не отдает себе отчета, что он может нести чушь - и потому придает ей слишком много значения. Ай-ай, как плохо получится тогда;
2) Он молчит, и боится сказать чушь. Это все равно не поможет - ведь он не знает наверняка, чушь он скажет в следующий раз или нет. Постоянно нести чушь очень тяжело на самом деле, и неотъемлемое свойство чуши состоит в том, что говорящий считает ее разумными мыслями. Посему, это приведет просто к разрыву коммуникации, и все.
3) Он сказал чушь, а подчиненные взяли под козырек, и воплотили ее в жизнь. Это самая страшная месть подчиненных, которая может возникнуть как реакция на пункт 1.

Короче говоря, грамотно нести чушь - целое исскуство, которому надо учится и учится.
;)
cartoon

Собеседование

Вместо эпиграфа (разговор в курилке):
Гапертон: Да, как-же купить квартиру-то. Надо радикально больше зарабатывать. Пора становиться начальником.
Сочувствующие: Ага. А еще можно клад найти.
................................................................
Ходил тут на собеседование, на работу устраиваться. Цирк, блять.

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

* Как вы оцениваете свою готовность принимать самостоятельные решения?
Ну, это было легко. "Очень готов."
* Что по вашему такое "личностный успех"?
Пришлось дать далбаебам словарное определение.
* Что по вашему первично, деньги, или идея? Почему?
Это, признацца, заставило меня задуматься на минуту. "Деньги." "Деньги к деньгам липнут."
...
* Кем вы видите себя через 10 лет?
* Какова ваша сокровенная мечта?
Да, прямо так и написали. "Сокровенная". Какие попало мечты их не интересуют.
* Чем вы готовы пожертвовать для осуществления вашей сокровенной мечты?
"Ну все, блять!" - думаю, "хватит".
- Скажите, - не выдерживаю я, - а на все вопросы надо отвечать?
- Конечно на все. Это же анкета!
- Понимаете, у меня проблемы с формулировками в ответах на некоторые ваши вопросы.
- Ну а с какими пунктами проблема?
- Да вот, например, про сокровенную мечту.
- Ну что вы, мы же не собираемся выяснять ваши интимные подробности и желания, нет конечно.
- А что же тогда вы _хотите_ выяснить?
- Ну, некоторые пишут, что, например, хочу купить машину, или съездить за границу. - пожимает плечами.
"Ахтунг, бля! Опасность!" - подумал я.
- Вот незадача, - говорю, - машина у меня уже есть, и за границей я уже бывал! И вообще, разве сокровенная мечта не должна быть чем-то возвышенным, недостижимым?
- Ну, или, там, открыть свой бизнес! - начинает немного злиться на меня, какой я все-таки тупой.
Чтобы не усугублять ситуацию, я сдержал улыбку и решил сменить тактику.
- И что, вы рассчитываете на честные ответы?
- Ну конечно, иначе зачем включать эти вопросы в анкету?
- Ну хорошо.

Мечта: "Найти клад."
Готов пожертвовать: "Небольшим количеством времени и денег."

- Готово, - говорю. Парень очень серьезно отнесся к моей анкете, и к моей сокровенной мечте. Покивал головой, и серьезно так говорит:
- А что, очень хорошая у вас мечта! Вот например один хер (не расслышал, кого именно из известных он в пример привел) всю жизнь прожил с такой мечтой...
"И ничего!" - заканчиваю про себя.

Этот тест на атрофию чувства юмора я провалил, и на работу меня не взяли. Да и хуй с ним. Вообще, у нас на работе надо завести правило - выделять сотрудникам специальное время, чтобы ходили на собеседования в другие конторы. Ахуительно падымает лаяльность. Глядишь, и работу менять передумают, и в курилке всякую хуйню про компанию нести перестанут, и так будет о чем попиздеть.

P.S.: В курилке мне предложили новую сокровенную мечту: мировое господство.