Home
anton_irinev
anton_irinev
:::.:..:.:::
Back Viewing 0 - 20  
.NET - несколько полезных атрибутов

Несколько полезных атрибутов, которые помогут облегчить нелёгкую жизнь .NET программиста.

Смотреть здесь )

Tags:
ODF vs. OOXML

"ODF has clearly won" (с) Stuart McKee, Microsoft's national technology officer

Где-то месяц назад компания Microsoft анонсировала поддержку формата ODF со следующим сервис-паком Office 2007 (выход намечен на первую половину 2009-го года). Теперь официальный представитель компании публично признал: формат ODF победил. Все радуются, все довольны.

...но что-то мне подсказывает, OOXML никто на помойку выкидывать не собирается. Поддержку ODF же добавят, чтобы компанию не так сильно доставали антимонопольными исками. Хотя факт остаётся фактом. Microsoft упустила хороший момент для разработки своего стандарта и с ODF теперь надо считаться.

Effective Java 2Ed

Нашёл это чудо в электронном виде:



Ещё три недели назад Effective Java образца 2001-го года была самой лучшей книгой о том, как надо программировать на Java. Эту книгу продавали у нас на SunTechDays'08 в Питере, даже не смотря на то, что она написана 7 лет (!) назад. Если набрать фамилию автора в поиске по содержимому файлов папки jdk-1_6_0-src, то легко догадаться почему эту книгу стоило прочесть :)

Теперь у нас есть Effective Java "Revised and Updated for Java SE 6".

Сейчас на amazon'е можно увидеть такую статистику:

Amazon.com Sales Rank:
#603 in Books
#1 in Books > Computers & Internet > Programming > Languages & Tools
#1 in Books > Computers & Internet > Programming > Software Design, Testing & Engineering > Object-Oriented Design
#1 in Books > Computers & Internet > Programming > Java

Tags: ,
Firefox в космосе!


> http://blog.wired.com/gadgets/2008/04/firefox-logo-sp.html

Слева снимок звезды V838-Единорога, сделанный телескопом Хаббл в 2004-м году. Оригинальное фото с Хаббла можно посмотреть здесь.

Tags:
И такое бывает...

Unofficial google shell - командная строка в браузере для доступа к гугловским сервисам :)

Tags:
Inlining of value types (x86)

Начиная с .NET Framework 3.5 SP1 методы value-типов тоже будут инлайниться. Раньше для структур не было предусмотрено практически никаких оптимизаций и везде вставлялись дорогостоящие вызовы функций. На самом деле майкрософтовцы сознательно оставили value-типы за бортом - чтобы не усложнять jitter, как им казалось, не сильно нужной оптимизацией. Но кастомер сказал надо :) На MS Connect'е можно посмотреть описание проблемы, которая в своё время была очень сильно пропиарена в народе.

Ещё одна ссылка для полноты картины - "How are value types implemented in the 32-bit CLR" by Fei Chen.

Обзор Mono

О том, что на сегодняшний день представляет из себя проект Mono. читать здесь )

Tags:
Visual Studio 2005 Error

Для тех, кто всегда мечтал сломать Visual Studio 2005, но не знал как. Попробуйте набрать в студии:

public class A<T> { public class B : A<B> {} }

C# Compiler Errors

Для тех, кто всегда мечтал сломать компилятор C#, но не знал как. Под катом три небольших программы, на которых компилятор шарпа эффектно падает с Internal Compiler Error (проверено на Visual C# 2005 Compiler v8.00.50727.42).

Смотреть здесь )

По мотивам "How to kill C# 2.0 compiler"

Tags:
Mono on the iPhone

В тему предыдущего поста:



Mono on the iPhone
Mono on the iPhone, video

Tags:
MonoDevelop on Mac OS X


+



=


Tags:
ICPC 2008 - World Final

Присоединяюсь к поздравлениям! (если кто-то не в курсе, вчера [info]fedor_tsarev и сотоварищи зажгли в Канаде) Наша кафедра снова абсолютный чемпион мира по программированию :D

Tags:
jit trick

static int[] array = new int[10000];

public static int Foo() { int total = 0; for (int i = 0; i < array.Length; i++) { total |= array[i]; } return total; }

public static int Bar() { int total = 0; int[] bar = array; for (int i = 0; i < bar.Length; i++) { total |= bar[i]; } return total; }


Методы Foo() и Bar() делают одно и то же - проходят по статическому массиву array и возвращают поразрядный OR всех элементов массива. Но есть небольшое отличие. Метод Bar() в самом начале сохраняет референс на массив в локальной переменной.

Так вот, к чему это я... Второй метод работает процентов на 20 быстрее первого (.NET 2.0, x86). Если кому-то захочется проверить, под катом исходник теста. Запускать, естественно, в релизе (из студии - configuration:release, Ctrl-F5, но лучше с консоли с ключами "/optimize+ /debug-") Смотреть здесь )

Проблема в том, что в первом случае jit не удаляет проверку выхода за границу массива, во втором случае эта проверка удаляется (как раз за счёт сохранения референса на стеке). Причём массив обязательно должен быть статическим. Некторые мысли по этому поводу можно найти здесь.

А вообще, есть такая замечательная статья "JIT Optimizations, Inlining, and Interface Method Dispatching (Part 1 of N)" by Sasha Goldshtein. Читается как детективная история, особенно про Interface Method Dispatching :)

Sun Tech Days 2008 - продолжение

Разговаривал вчера с разработчиками jvm. Мне ответили на кучу вопросов про новый сборщик мусора, escape analysis, 7-ю джаву, jit и .net vs. java :) В общем, было интересно, по крайней мере я частично удовлетворил своё любопытство по поводу следующей версии Java (это к вопросу о том, чем меня разочаровал первый день).

Самое интересное - это новый сборщик мусора G1 ("garbage-first"), который претендует на звание soft real-time GC и который должен в будущем стать дефолтным garbage collector'ом в джаве. Как оказалось, ещё в 2004-м году sun'овцы игрались с G1, результаты можно посмотреть здесь. Основная идея нового сборщика мусора - хип делится на регионы по 1Mb, сборка в каждом регионе происходит независимо, по ходу работы программы отслеживаются живые обьекты и собирается статистика о том, сколько мертвых обьектов находится в каждом регионе. Соответственно, чтобы освободить как можно больше памяти и по возможности потратить на это как можно меньше времени, сборка мусора проходит в первую очередь в тех регионах, которые содержат много мертвых обьектов (отсюда и название "garbage-first"). Из наличия статистики по живым обьектам следует, что jvm может примерно оценить время, которое потребуется на сборку мусора в n-ом регионе. А отсюда уже следует, что jvm пожет давать определенные гарантии для soft real-time приложений. В общем, как то так.

Tags: ,
Sun Tech Days 2008

Итак, день сантехника.

Походили с Крашиком по стендам. Подразнил JavaFX-овцев вопросами про JavaFX vs. Silverlight, JavaEE-шники сами напросились на вопрос о наличии слова .NET у себя на стенде. В общем, мне не хватало только большой надписи ".NET" на футболке... ну или "Microsoft" на худой конец :) Вместо технических специалистов на стенде Oracle были замечены только два овоща, которые кроме "Oracle - самая надёжная БД!" и цен ничего умного сказать не смогли. Так что у них был самый большой (читай платиновый спонсор) и самый бесполезный стенд.

Прослушал все доклады в секции Java SE. Самое большое разочарование - в докладе "Новые возможности Java SE 6 и Java SE 7" о готовищихся фичах 7-й джавы Michael Li скромно умолчал (даже больше, о седьмой джаве он вообще ничего не говорил). Хотя, если из названия его презентации выкинуть слова "и Java SE 7", то его доклад - один из лучших. Ещё один неплохой доклад - "Улучшение совместимости разрабатываемых приложений" Михаила Ершова. Да, если бы я был профессиональным java developer'ом, я бы очень сильно впечатлился презентацией "Устранение неполадок в программах на Java" by Chuk Munn-Lee :) Про JavaFX и всё остальное слушал больше ради общего развития.

Tags: ,
C# quine

Quine - программа, печатающая свой исходный код смотреть здесь )

Tags:
Google Summer of Code™ 2008

http://code.google.com/soc/2008/

Оказывается, уже четвертый год подряд (т.е. с самого начала) в качестве ментора в GSoC учавствует "Mono Project", здесь можно посмотреть их задачи на это лето.

Tags:
Minesweeper



Для тех, кто не в теме - в правом верхнем углу показывается количество секунд, прошедших с начала игры. На самом деле это не глюк и даже не встроенный разработчиками чит, всё немного хитрее :)

Читать здесь )

Singularity release!

"The Singularity Research Development Kit (RDK) 1.1 is now available for academic non-commercial use. You can download it from CodePlex, Microsoft's open source project hosting website, here." (c) http://research.microsoft.com/os/singularity/

Для тех, кто в танке, сингулярити - детище Microsoft Research - прототип операционной системы, основной упор в которой сделали на надежности. Всякие долбоёбы ещё любят называть сингулярити осью, написанной на C#. Как далеко это от правды можно почитать хотя бы здесь.

Java Puzzlers

После десяти глав "Java Puzzlers" реально страшно стало писать код на джаве. За каждой строчкой написанного кода мерещится какой-нибудь подвох. Не стоит читать на ночь такие кошмары.

Что совсем не удивительно, в шарпе учли многие тонкие моменты, на которых строятся пазлы Блоха. Под катом несколько примеров из тех, что покороче. Смотреть здесь )

Tags: ,
Back Viewing 0 - 20