Смотрите, вообщем, и учитесь - не надо нагибать ВСЕХ юзеров, надо нагибать отдельных.
Антивирусы блокируют все вирусы, имеющиеся в базе, сразу - быстрым перебором вариаций создается такой мутант, который уже не подходит ни под одну сигнатуру
Microsoft посещает все https ссылки, отправленные в Skype - вуаля, любой может спалить данный факт и проверить.
А вот если бы атаки делались прицельно - никто бы ничего не нашел еще лет 5-10, как нам успешно показали Stuxnet, Red October и т.д. и т.п.
Короче, как писал Шнайер, мы живем в интересный период - камеры уже здесь, но их пока еще видно. Пока.
Антивирусы блокируют все вирусы, имеющиеся в базе, сразу - быстрым перебором вариаций создается такой мутант, который уже не подходит ни под одну сигнатуру
Microsoft посещает все https ссылки, отправленные в Skype - вуаля, любой может спалить данный факт и проверить.
А вот если бы атаки делались прицельно - никто бы ничего не нашел еще лет 5-10, как нам успешно показали Stuxnet, Red October и т.д. и т.п.
Короче, как писал Шнайер, мы живем в интересный период - камеры уже здесь, но их пока еще видно. Пока.
хорошие моменты дотнета
May. 9th, 2013 02:54 amписал коммент к дискуссии тут - http://thedeemon.livejournal.com/64155.html
подумал, что оно достойно отдельного поста.
TL; DR: прототипы полезно писать на чем-больше-языков-тем-лучше, после чего мержить всё в кучу на каком-то mature рантайме (CLR, BEAM, JVM, V8), неважно, руками этот код написан или сгенерирован. и поддерживать уже там.
1. в дотнете много батареек "из коробки", которые заметно лучше, чем в других платформах, друг с другом интегрированы (поскольку у мсфт тупо есть ресурсы на полировку мелочей)
2. там очень просто абьюзить родной JIT и делать быстрый портабельный между всеми (!) поддерживаемыми Микрософтом и Моно платформами кодоген, работающий на той же скорости, что и compile-time (опять же, из-за наличия батареек )
3. и тулзы хороши (один concurrency visualizer чего стоит)
4. система типов по сравнению с хаскелем крайне бедна. но к ней достаточно удобно достраивать костыли (code contracts, pex и прочее), работающие частично в рантайме, частично в компайлтайме, на практике этого хватает.
5. много кто судит по дотнету по 2.0, но с тех пор очень много косяков планомерно исправляются.
заметьте, про язык я ничего не говорю. я говорю про платформу. а уж какой дефолтный язык дали - такой есть. кодогены пишутся на раз-два.
короче, если хочется прыгать выше головы - помогает п.2
но очень уж широкий круг задач покрывается п.1, и с каждым релизом, как ни странно, растет.
я люблю строить велосипеды и юзать экзотические языки, но мелочи при этом - они вылазят. и их нетривиальное количество. поэтому дотнет дает (лично мне) *предсказуемость* темпов разработки. что не мешает регулярно пытаться сделать из него Эрланг-машину, например :)
подумал, что оно достойно отдельного поста.
TL; DR: прототипы полезно писать на чем-больше-языков-тем-лучше, после чего мержить всё в кучу на каком-то mature рантайме (CLR, BEAM, JVM, V8), неважно, руками этот код написан или сгенерирован. и поддерживать уже там.
1. в дотнете много батареек "из коробки", которые заметно лучше, чем в других платформах, друг с другом интегрированы (поскольку у мсфт тупо есть ресурсы на полировку мелочей)
2. там очень просто абьюзить родной JIT и делать быстрый портабельный между всеми (!) поддерживаемыми Микрософтом и Моно платформами кодоген, работающий на той же скорости, что и compile-time (опять же, из-за наличия батареек )
3. и тулзы хороши (один concurrency visualizer чего стоит)
4. система типов по сравнению с хаскелем крайне бедна. но к ней достаточно удобно достраивать костыли (code contracts, pex и прочее), работающие частично в рантайме, частично в компайлтайме, на практике этого хватает.
5. много кто судит по дотнету по 2.0, но с тех пор очень много косяков планомерно исправляются.
заметьте, про язык я ничего не говорю. я говорю про платформу. а уж какой дефолтный язык дали - такой есть. кодогены пишутся на раз-два.
короче, если хочется прыгать выше головы - помогает п.2
но очень уж широкий круг задач покрывается п.1, и с каждым релизом, как ни странно, растет.
я люблю строить велосипеды и юзать экзотические языки, но мелочи при этом - они вылазят. и их нетривиальное количество. поэтому дотнет дает (лично мне) *предсказуемость* темпов разработки. что не мешает регулярно пытаться сделать из него Эрланг-машину, например :)
Мир тормозного марионеточного трэша
Jan. 19th, 2013 06:12 amКхе.
В далеком 2002 я играл в Half-Life, читал gamedev.ru, надеялся на закон Мура, и что много-много оперативки даст возможность делать супер-пупер виртуальные миры.
Но нет.
Первой подоспела жопа с бранчингом. Ведь чем более мир супер-пупер feature-rich - тем больше в нем бранчинга. А это значит - прощай конвейеризация, прощай векторизация.
Второй подоспела жопа с мобильниками. Performance per watt растет медленно. Батареи растут медленно. И закон Мура ни тех, ни других, в общем-то не касается.
Третьим был филрейт (он же полоса пропускания памяти). Хотя все кто видел меня IRL, знают, что я фанат high-resolution экранов, но, увы, они все требуют гонять дичайшие количества данных просто для того чтобы нарисовать прямоугольник, например. А филрейт растет медленнее, чем вычислительная мощность.
Итого, там, где в какой-то момент были красивые спецэффекты, даже промелькнула надежда на реалистичный расчет освещения - теперь тупые статичные текстуры, потому что теперь часто нельзя позволить себе нарисовать даже 2-3 слоя частиц поверх фона сцены.
Ну и четвертое - это latency, которая, сюрприз, не уменьшается вообще. Только увеличивается. Удаленные терминалы, беспроводные мышки, тачскрины, которые тупят, пока не распознают жест, экраны, которые Х раз буферизуют картинку (шифрование, ресайз, цветокоррекция), 3G вместо Ethernet, etc etc.
Ну что делать разработчикам и дизайнерам? Адаптируются.
В итоге, если в Quake 3 и Half-Life 1 за час можно было адскими спинномозговыми рефлексами на CRT, выкрученном на 120 Гц за час нарубить 100, а то и все 500 фрагов, то Mass Effect я проходил на высокой сложности на тачпаде, успевая параллельно писать лекцию...
И это мы еще говорим о шутерах.
Но поскольку, как видно выше, симуляцию сейчас делать невыгодно - рост графики шел за счет роста количества арта. И бюджетов.
В итоге естественным образом родились две ниши - стилизованные инди игрушки, которые нет-нет да выстрелят, и социалки. Вылизанные, психологически отполированные казинофермы.
А симуляторов как не было, так и нет. И совершенно непонятно, будут ли...
Отдельным островком в игрострое и гуи-строе порадовал кинетический скроллинг, который заставил хоть чуть-чуть задуматься о латенси снова. Но, увы, это исключение.
Да, стриминг игрушек идея интересная, в том смысле, что можно централизовать все вычисления, и латенси по крайней мере будет у всех одинаковая, а симуляция будет относительно простой. Только вот пока что, похоже, не окупается эта идея. Трафика много, электричества много, железа много, а подписчиков мало.
Ну и augmented reality ближайшие несколько лет будет жить только баннерами и надписями, там сразу на все грабли наступаем - и латенси, и арт, и батареи.
А что вы думаете? Дождемся мы навороченных и реалистичных симуляторов, где под капотом будет честная физика и честный AI, или нет?
В далеком 2002 я играл в Half-Life, читал gamedev.ru, надеялся на закон Мура, и что много-много оперативки даст возможность делать супер-пупер виртуальные миры.
Но нет.
Первой подоспела жопа с бранчингом. Ведь чем более мир супер-пупер feature-rich - тем больше в нем бранчинга. А это значит - прощай конвейеризация, прощай векторизация.
Второй подоспела жопа с мобильниками. Performance per watt растет медленно. Батареи растут медленно. И закон Мура ни тех, ни других, в общем-то не касается.
Третьим был филрейт (он же полоса пропускания памяти). Хотя все кто видел меня IRL, знают, что я фанат high-resolution экранов, но, увы, они все требуют гонять дичайшие количества данных просто для того чтобы нарисовать прямоугольник, например. А филрейт растет медленнее, чем вычислительная мощность.
Итого, там, где в какой-то момент были красивые спецэффекты, даже промелькнула надежда на реалистичный расчет освещения - теперь тупые статичные текстуры, потому что теперь часто нельзя позволить себе нарисовать даже 2-3 слоя частиц поверх фона сцены.
Ну и четвертое - это latency, которая, сюрприз, не уменьшается вообще. Только увеличивается. Удаленные терминалы, беспроводные мышки, тачскрины, которые тупят, пока не распознают жест, экраны, которые Х раз буферизуют картинку (шифрование, ресайз, цветокоррекция), 3G вместо Ethernet, etc etc.
Ну что делать разработчикам и дизайнерам? Адаптируются.
В итоге, если в Quake 3 и Half-Life 1 за час можно было адскими спинномозговыми рефлексами на CRT, выкрученном на 120 Гц за час нарубить 100, а то и все 500 фрагов, то Mass Effect я проходил на высокой сложности на тачпаде, успевая параллельно писать лекцию...
И это мы еще говорим о шутерах.
Но поскольку, как видно выше, симуляцию сейчас делать невыгодно - рост графики шел за счет роста количества арта. И бюджетов.
В итоге естественным образом родились две ниши - стилизованные инди игрушки, которые нет-нет да выстрелят, и социалки. Вылизанные, психологически отполированные казинофермы.
А симуляторов как не было, так и нет. И совершенно непонятно, будут ли...
Отдельным островком в игрострое и гуи-строе порадовал кинетический скроллинг, который заставил хоть чуть-чуть задуматься о латенси снова. Но, увы, это исключение.
Да, стриминг игрушек идея интересная, в том смысле, что можно централизовать все вычисления, и латенси по крайней мере будет у всех одинаковая, а симуляция будет относительно простой. Только вот пока что, похоже, не окупается эта идея. Трафика много, электричества много, железа много, а подписчиков мало.
Ну и augmented reality ближайшие несколько лет будет жить только баннерами и надписями, там сразу на все грабли наступаем - и латенси, и арт, и батареи.
А что вы думаете? Дождемся мы навороченных и реалистичных симуляторов, где под капотом будет честная физика и честный AI, или нет?
топор-driven девелопмент
Jan. 10th, 2013 12:22 pmя просто оставлю это здесь -
http://code.google.com/p/android/issues/detail?id=42265
что самое удивительное, все еще находятся люди, которые пытаются убедить меня в том, что Андроид - это лучшая мобильная ОС :)
(там дело мутное, может окажется что линух вообще этому багу тоже подвержен, а на андроиде он просто больше всех проявляется, но не похоже)
> It's worth noting that Linux is one of very few OSes that have a blocking RNG device
http://forum.xda-developers.com/showthread.php?t=1987032
а когда людям дают человеческий асинхронный апи - они ОПЯТЬ строят из него говнокод
> За пол-дня были сделаны свои реализации PointF, RectangleF, XmlDocument, System.IO.File и пр., которые по синтаксису такие же, как в .Net 2.0-4.0, но внутри используют уже реалии Windows Store. Для работы с ресурсами таки пришлось смириться с костылями для «осинхронивания асинхронов»:
http://habrahabr.ru/post/163773/
залетевший дятел таки разрушит цивилизацию, да
http://code.google.com/p/android/issues/detail?id=42265
что самое удивительное, все еще находятся люди, которые пытаются убедить меня в том, что Андроид - это лучшая мобильная ОС :)
(там дело мутное, может окажется что линух вообще этому багу тоже подвержен, а на андроиде он просто больше всех проявляется, но не похоже)
> It's worth noting that Linux is one of very few OSes that have a blocking RNG device
http://forum.xda-developers.com/showthread.php?t=1987032
а когда людям дают человеческий асинхронный апи - они ОПЯТЬ строят из него говнокод
> За пол-дня были сделаны свои реализации PointF, RectangleF, XmlDocument, System.IO.File и пр., которые по синтаксису такие же, как в .Net 2.0-4.0, но внутри используют уже реалии Windows Store. Для работы с ресурсами таки пришлось смириться с костылями для «осинхронивания асинхронов»:
http://habrahabr.ru/post/163773/
залетевший дятел таки разрушит цивилизацию, да