You are viewing [info]the__listener's journal

Лига защиты интеллектуальных меньшинств [entries|archive|friends|userinfo]
Stanislav Golovin

[ website | MegaRulez - Делай то, что не могут другие ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

"Лямбда! Я назову ее Лямбда!" [Nov. 2nd, 2011|06:21 am]
Попробовал вчера новомодную фишку C++0x - лямбда выражения. Результат меня впечатлил (но как-то не так).

Впрочем, по порядку. Есть у меня пул объектов (очень маленький, очень простенький, но требования к скорости там весьма существенные). В нем есть метод forEach:
    __forceinline void forEach (void (*_func)(T *)) {
        BYTE * p = m_pObjects;
        BYTE * pf = m_pFlags;
        for (int i = m_dwSize; i > 0; i--, p += S, pf++)
            if (!((*pf)&0x80)) 
                _func (reinterpret_cast<T*>(p));
    }


Есть маленький метод вида:
static __inline void doSomethingCB (SomeObject * p) { p->someVirtualMethod (NULL); }
static void doSomethingWithAll () {
    g_pObjectPool->forEach (doSomethingCB);
}


Заменяю содержимое doSomethingWithAll на
g_pObjectPool->forEach ([] (SomeObject * p) { p->someVirtualMethod (NULL); });


правлю объявление forEach
__forceinline void forEach (std::function<void (T *)> _func) {


компилю, и, внезапно обнаруживаю, что модуль вырос на два килобайта. Удивляюсь, включаю ассемблерный листинг. Разница в размере листинга - 70К.

Залезаю в код и вижу совсем ужасающую картину. Маленький скромный doSomethingWithAll из ~30 команд увеличился до ~70. В нем образовался не только конструктор std::function, но и EH-frame. Сам по себе std::function - с кучей виртуальных методов. И, как окончательный шедевр победы читабельности над здравым смыслом - лямбда не инлайнится. (и вместо одного единственного vmtcall в теле цикла, я получаю два, плюс вызов функции по указателю).

Я помню, еще в прошлом тысячелетии, аналогичную картину с template. Любое использование шаблонов, приводило к чудовищному раздуванию кода. Прошло какие-то десять лет, и шаблоны не только существенно упрощают жизнь, но и уменьшают и ускоряют код. Возможно, с лямбдой будет аналогично, но, по крайней мере, в VC2010 ее можно использовать только если скорость и размер кода не имеют никакого значения.

Возможно, если заменить std::function каким-нибудь своим велосипедом (без виртуальных методов), все будет симпатичнее. Но дело не только в этом. По понятным причинам, я сейчас регулярно просматриваю вакансии в категории "программист C++", и везде в требованиях стоит STL, а в половине случаев, и Boost. Написание замен стандартных классов, общественное мнение категорически не приветствует. Стоит ли удивляться, что аппаратные требования так растут?
link1 comment|post comment

Перефразируя Страуструпа. [Sep. 27th, 2011|09:19 am]
Когда появился Bing, я хотел, чтобы в нем можно было искать, как в гугле.
Моя мечта сбылась - я не могу найти полезного в гугле.
link3 comments|post comment

как бы, обновка [Sep. 15th, 2011|12:12 am]
Со всей этой суматохой последних недель, я совершенно забыл похвастаться обновкой.

Месяц назад, сдох мой старенький hp8710w. Поскольку жить без компа как-то не очень, после недолгих раздумий, был закуплен hp envy 17.



Собственно, выбор был невелик: либо он, либо Dell XPS L702x. L702x получше, но к нему в Москве не было 6-cell аккумуляторов, а с 9-cell, он не влезает в рюкзак. Все остальное, аналогичное по удобству - вдвое дороже.

В целом, я доволен. Минусы, конечно, есть. (Да, клавиатура неплохая, но я привык к более удобной. Да, экран хорош, как по яркости, так и по цветопередаче, но глянцевый 1920x1080, после матового 1920x1200). Но, в целом, очень приятно. Легкий (3.1кг), разница в 400 граммов со старым ноутом ощущается. Два винта, металлический корпус, все необходимые порты (USB3, eSATA, Display Port + HDMI + VGA). Пять часов на батарейке в режиме легкого серфинга.

Еще пара картинок )
link4 comments|post comment

(no subject) [Sep. 3rd, 2011|12:48 pm]
Высказался. Выспался. Отпустило (почти).
linkpost comment

В свободном падении [Sep. 3rd, 2011|05:33 am]
Заснуть я не могу, поэтому пытаюсь разобраться в состоянии. Итак, что же происходит.


  1. Я уже сформулировал это для себя довольно давно, но сейчас оно особенно заметно. Работа для меня - это точка опоры. База, относительно которой строится все остальное. Отсюда весь набор ощущений падения: тошнота, легкое головокружение, паника. Прошлый раз, все это было гораздо менее выражено, и было списано на переезд в другой город.

  2. Рабочая неделя в 91 час. 54.17% процента жизни. Этот кусок оторван и исчез, его больше не существует. Ощущать, что от тебя осталось меньше половины, мягко говоря, неприятно.

  3. Разрушение личной социальной сети. 3/4 постоянных личных (т.е. оффлайновых) контактов потеряно. Опять же, вспоминая прошлый аналогичный случай, бессонница - это отсюда



Что можно сказать по этому поводу: "Не повторяйте моих ошибок".
Соблюдайте нормы, рекомендованные КЗоТ и ни в коем случае, не срастайтесь с работой. Даже если вам очень нравится то, что вы делаете. Если же это произошло - стоит заранее прикинуть способ выхода.

PS. Написал - чуточку отпустило. Попробую заснуть.
link7 comments|post comment

(no subject) [Sep. 2nd, 2011|03:22 pm]
Итак, я второй день официально безработный.

Ощущения весьма странные.
link8 comments|post comment

Скажи нет 32-битности [Jul. 15th, 2011|01:46 am]
В рамках двухчасовки ненависти к чистому C собрал putty-0.61 до 64 бита. Полноценным поротом это назвать нельзя, т.к., по хорошему, нужно переделать несколько мест, где эмулируется 64-битная математика через 32-битную.

Заодно почистил все предупреждения (местами криво, но оно и с ними работало бы точно так же).

http://dl.dropbox.com/u/1237855/putty64_20110715.rar - почищенные исходники и проекты под VS2010
http://dl.dropbox.com/u/1237855/putty64_exe_20110715.rar - exe-шники (если кто не боится доверять свои консоли непонятно кем собранным бинарникам).

На сем, двухчасовку ненависти к чистому C обявляю закрытой.
link5 comments|post comment

Job - по-английски работа... [Nov. 18th, 2010|01:55 pm]
[Tags|]

Работа - не walk, работа - work
link2 comments|post comment

(no subject) [Mar. 29th, 2010|04:23 pm]
Рабочая модель мира должна быть черно-белой.
Цвета и полутона допустимы только в тестовых версиях.
linkpost comment

Теплое, ламповое... [Dec. 28th, 2009|02:16 pm]
Мысль в связи с повсеместным переходом от CCFL к LED подсветке:

значит ли это, что раньше была теплая ламповая картинка, а сейчас бездушная светодиодная?
link1 comment|post comment

Киберпанка по-прежнему нет. [Jul. 20th, 2009|08:48 pm]
Два с половиной года назад, был написан этот текст
Надо сказать, что очень хреново чувствовать себя пророком, когда мрачные пророчества сбываются.

Кто тут хотел Trusted Computing под линухом? Все хотели? (А если не хотели - чего же молчали?) Ну-с, получите и распишитесь.

On July 17, 2009, Amazon.com withdrew certain Kindle titles, including Animal Farm and Nineteen Eighty-Four by George Orwell, from sale, refunded the cost to those who had purchased them, and remotely deleted these titles from purchasers' devices after discovering that the publisher lacked rights to publish the titles in question.[49] Notes and annotations for the books made by users on their devices were also deleted.[50] The move prompted outcry and comparisons to Nineteen Eighty-Four itself.

Взято с http://en.wikipedia.org/wiki/Amazon_Kindle , оригинально я наткнулся эту новость на engadget.
Линуксовые сайты, по непонятным причинам, молчат.

Воникает вопрос: а что же делает оплот свободы слова и программного обеспечения FSF? Вывешивает цитаты из "Права читать"? Гневно требует запретить использование GPL-ных продуктов в противосвободных целях? Хотя бы просто отмечает это вопиющий факт?
А вот и не угадали. FSF занимается тем, что пытается предсказать способы, с помощью которых можно поиметь пользующихся mono при помощи патентов на C#.
link74 comments|post comment

110 лет московскому трамваю [Jun. 13th, 2009|06:43 pm]
[Tags|, ]
[mood |awakeawake]

Вчера на Чистых Прудах проводился парад трамваев. Я не поленился, и добрел до туда с фотоаппаратом.

Отмазка (disclaimer): фотографировать я не умею, поэтому пытался брать количеством, в надежде, что получится хотя бы несколько приличных снимков.
346 фотографии


Метод Тома Сойера или "чем мы не кони"
linkpost comment

(no subject) [Feb. 5th, 2009|03:14 pm]
[Tags|]
[mood |hyperhyper]

Покопался немного в исходниках нового far-а...

Ощутил всю прелесть старых трех требований к коду:

1) код должен быть хорошо спроектирован
2) код должен быть читабельным
3) код должен работать

Именно в таком порядке и никак иначе.

PS. http://bugs.farmanager.com/view.php?id=727
link1 comment|post comment

Почти на злобу дня [Dec. 14th, 2008|05:12 pm]


Ну, а до такого, надеюсь, не дойдет )
linkpost comment

Я плакал.... [Jul. 15th, 2008|09:51 pm]
[Tags|, , ]
[mood |hyperhyper]

link7 comments|post comment

Задумчивое... [Jul. 15th, 2008|12:28 am]
Сони всё?
linkpost comment

Linux. Опять. Мать его. [May. 14th, 2008|01:04 am]
[mood |disappointeddisappointed]

И все-таки, что делать с людьми, которые ставят линукс добровольно?
(Сажать на кол - слишком гуманно)
link82 comments|post comment

Очередь [Apr. 30th, 2008|04:46 pm]
[mood |satisfiedsatisfied]
[music |Painbastard - Lebe Deinen Traum]

Вчера в полной мере оценил, что такое массовая истерия, помноженная на жажду халявы.

Вчера, в восемь вечера, должна была состояться "премьера" GTA IV. Туда-то я и поехал.

Смутные опасения посетили меня еще в тот момент, когда, еще на входе в магазин, я поймал кусок диалога:
- .. что там?
- не знаю, геймпарк какой-то.

После недолгого блуждания по этажам, слева показалась знакомая синяя вывеска. А что это под ней? Люди?. Слева. Прямо. Справа. И это все очередь?! И правда очередь; по одной стороне, вокруг эскалатора и по другой.
Всего набралось человек 150-200. Группками от одного до пяти человек. От 15 и до 45. Стоят и жизнерадостно ждут.

На мгновение, я погувствовал соблазн повернуться и прийти завтра, но следующая мысль меня позабавила: "А когда я последний раз стоял в очереди? Тем более, в такой".

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

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

Найденная фотка очереди. Снимал кто-то метрах в десяти впереди меня. http://funkyimg.com/u/254/196/29-04-08_2005.jpg
"Результаты": http://www.photocenter.ru/foto-images/z2/r0-YCpYt3QgWQR1n73r.jpg
link1 comment|post comment

34 [Apr. 25th, 2008|11:01 pm]
Ну что ж, благополучно избежал :-)
link3 comments|post comment

Апгрейд - игра, в которой не бывает победителей [Mar. 1st, 2008|07:51 pm]
[Tags|, ]
[mood |workingworking]
[music |Rammstein - Feuer Und Wasser]

Прошлые выходные были потрачены на аппаратные перестановки.
Впрочем, обо всем по порядку...

много букв и немного фотографий )
link9 comments|post comment

Вот как надо [Jan. 27th, 2008|03:41 pm]
Однажды с одним из суперкомпьютеров Cray случилась проблема. Слетел загрузчик. Инженеры позвонили в техподдержку Cray Computer Corporation.
- У нас проблема, на нашем Cray-1 слетел загрузчик.
- Ситуация нештатная - мы в первый раз сталкиваемся с такой проблемой. Подожите пожалуйста на линии, я посмотрю, что можно сделать.
...
- Это очень старая модель, и мы не можем сейчас найти загрузчика, чтобы прислать его Вам. Пожалуйста, не волнуйтесь, я вас сейчас соединю с мистером Креем.
- А как он поможет, ведь...
- Он поможет.
...
- Сеймур Крэй слушает.
- Здравствуйте мистер Крэй, у нас потерялся загрузчик, и в техподдержке сказали, что у вас не осталось его кода...
- Пишите.
- Что?
- Берите ручку и пишите. A0 BF 10 05 ...
Крэй диктовал 4 килобайта загрузчика по памяти.

Взято отсюда. Там есть еще.
link3 comments|post comment

"You notice some lag when moving the cursor around" [Jan. 17th, 2008|12:14 pm]
На notebookreview выложили большой обзор OLPC.
http://www.notebookreview.com/default.asp?newsID=4199

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

"In the speed sector the OLPC really falls flat on its face. Boot time from a fully powered-off state is 1 minute and 35 seconds" - это на Geode/433MHz/256M

Самой страшной идеологической диверсией будет, если кто-нибудь взгромоздит на это чудо win98.
link22 comments|post comment

Ultimate Offer [Jan. 17th, 2008|11:44 am]
[Tags|]

Пришло мне, недели полторы назад, письмо от микрософта.
В вольном переложении, в нем было следующее: "Уважаемый бета-тестер, мы ценим ваш труд по бета-тестированию, так что, в честь годовщины выхода висты, если вы до 15 января купите Windows Vista Ultimate, мы вам пришлем еще один серийник". Ну, виндами-то я все равно собирался закупиться, так что решил попробовать...

Самое удивительное, что позавчера они действительно его прислали.
Так я разжился двумя виндами, по цене одних :-)
link5 comments|post comment

однострочное [Jan. 8th, 2008|04:29 pm]
[mood |coldcold]

find / -name base -exec chown -R us {} \;
link6 comments|post comment

USAVICH [Dec. 26th, 2007|07:32 pm]
Prison Break по японски.
Кто еще не видел - очень рекомендую


Ссылки на ТыТрубке:
Серии 1-5
Серии 6-10
Серии 11-15
Серии 16-20
Серии 21-23
Серия 24

25 и 26 пока еще не вышли.

На самом http://usavich.tv есть в лучшем качестве, но только 1-7 и 14.
link9 comments|post comment

Детская книжка [Dec. 10th, 2007|11:00 am]
Жесть
link3 comments|post comment

(no subject) [Nov. 14th, 2007|10:55 pm]
Проделжение темы из комментов отсюда: http://ayamani-rei.livejournal.com/100198.htm

Поднимая проблему глобальнее, проблема не в консолях, проблема в головах.
По числодробилке, что '360, что PS3 не слабее среднего игрового компа (примерно C2D/2,6..3/0GHz+X2900).
Специфичные места - контроллер и память.

Joypad vs. keyboard+mouse - неоднозначное сравнение. Единственное место, где клавиатура+мышь выигрывают безоговорочно - это традиционные шутеры. Традиционные - в том плане, что автоприцела нет и не предусматривается. (Здесь можно высказаться, что автоприцел - это чит и потакание казуалам. В общем случае - это не так, просто автоприцел должен компенсироваться особенностями геймплея - т.е., нужно думать, а не рисовать очередной набор карт и моделей).

С памятью же, у консолей все плохо. 512M совмещенной памяти '360 - это мало. По сравнению с 2048+512 упомянутого среднего игрового компа - безумно мало. Поэтому, игростроение превращается в поиск компромиссов: либо сейчас показывается красивая картинка, ценой упрощения игровой модели, либо обсчитываем больше, пожертвовав текстурами. На PS3 с ее жестким делением 256+256 все совсем плохо, потому как, компромиссы невозможны.

В итоге, если делается PC-only игра, нужно учитывать не то, что числодробилки может быть больше (в этом случае, 90% целевой аудитории просто не сможет это запустить), а то, что памяти - много.
Отсюда направление: детализация, детализация и еще раз тщательность и детализация, что коренным образом противоречит тенденциям игровой индустрии.

Если делается консоль-ориентированная игра - направление другое: оригинальность, необычность и собственно игровой процесс. Это ближе к тенденциям (по крайней мере, им не противоречит), поэтому у консольного гейминга какое-нибудь светлое будущее возможно, а у PC-gaming - крайне сомнительно (нет, летать оно конечно будет, но низенько-низенько).

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

Шутеры - это лицо современного гейминга. Подавляющее большинство играющих, ничего больше не видит. Просто по причине того, что не хватает времени, мозгов, способностей и многих других вещей, которыми "стандартный геймер"™ обделен. Именно поэтому шутеры еще делаются и будут продолжать делаться, пока их не вытеснят MMO(RP)G.

Подводя итоги вышесказанному, активное пропихивание консольных шутеров, несмотря на их (не)удобоваримость - это, с одной стороны, способ продвижения консолей в массы, как явления способствующего выживанию gamedev, как отрасли, с другой - оправдание возможности и дальше клепать высокобюджетную халтуру при минимальных затратах.

PS. А '360-ку, если все будет нормально, я буду брать с зарплаты. Под Mass Effect.
link30 comments|post comment

Подарки к празднику [Sep. 13th, 2007|07:18 pm]
[mood |ecstaticecstatic]

Сегодняшние новости просто радуют:

Во-первых, ATIAMD открыла (и уже выложила) часть спецификаций на свои видеочипы, и обещала выложить остальное.

Во-вторых, уже начались продажи Windows Home Server. (Правда, когда он еще до нас доползет)

В-третьих, открыты исходники QNX Neutrino. Брать здесь

Это просто праздник.
link2 comments|post comment

Интерфейсное в три часа ночи [Aug. 18th, 2007|02:44 am]
[Tags|]
[mood |workingworking]

От кнопки/ссылки "Создание пользователя" явно веет какой-то здоровой порнографией...
link10 comments|post comment

VS-481 [Jul. 30th, 2007|04:18 am]
[Tags|, ]

Все-таки, мелкие чудеса иногда происходят.
Пошел я в субботу закупиться кое-каким железом. Прохожу, и вдруг внезапно останавливаюсь. Смотрю, протираю очки, смотрю снова.
- Скажите, а у вас, случаем, в ценнике ошибок нет?
- (посмотрев по базе) Нет, все точно, будете брать?

Так я стал обладателем ATEN VS-481 за смешную сумму в 1060р.

Вообще, я давно облизывался на эту железку, но, с одной стороны, в ней есть переключение только видео (ну, и аудио, если все подключенные железки это позволяют - у меня пока таких нет ни одной), с другой - цена в $130 превращала данный прибор в устройство сомнительной практической ценности. За $40 - я не колебался ни минуты (вообще-то, один HDMI-кабель из комплекта, в розницу стоит дороже).

HDMI на отдельно взятом столе )

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

Кстати, выяснилось забавное. Все громкие слова на коробке о полной поддержке HDCP, картинки со щитом на фоне цифр (интересно, что должен означать меч на таком же фоне?) и т.д., на практике означают одно: кроме собственно сигнальных линков, железка переключает еще и DDC (низкоскоростной двухпроводной канал, существующий уже больше 10 лет, и который, вообще-то, все равно нужно коммутировать). Впрочем, людям, которым на полном серьезе объясняют, что позолоченный TOSLINK-овский разъем обеспечивает лучшее качество звука, можно втюхать и не такое (для тех, кто не видит подвоха: TOSLINK - это, вообще-то, оптика).

если в руки взять бумагу, ручку, ножницы и клей... )
linkpost comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]