Архив за 04 марта 2015 - 13

Компания Qualcomm привезла на выставку MWC 2015 не только новости о платформе Snapdragon 820. Технология Sense ID 3D Fingerprint, о которой было рассказано, призвана наконец-то воплотить в жизнь идею сканирования отпечатков пальцев посредством всего дисплея мобильного устройства, а не при помощи отдельной клавиши.

В 2002 году, во времена OpenOffice 1.0, в багтрекере была открыта проблема 4914 — «нужен нормальный вид документа». Пользователь просит о том, чтобы OpenOffice Writer ввёл новый режим редактирования, похожий на «Нормальный» режим Microsoft Word, то есть: скрывал верхние и нижние поля страницы.

«Этот вопрос достаточно стар, чтобы бриться» - 1

Спустя тринадцать лет у этого запроса висит 11 дубликатов и 162 комментария. Резолюция: закрыт, открыт заново. За публикацию решения назначена премия от проекта FreedomSponsors в размере $100.Читать полностью »

Каждый C#-разработчик знает, что C#-компилятор переводит исходный код программы в промежуточный язык под названием Intermediate Language (IL). А за превращение IL в последовательность машинных команд чаще всего отвечает Just-In-Time-компилятор (JIT). Да, на сегодняшний день есть NGen, Mono AOT, .NET Native, но JIT-компиляция всё ещё лидирует в мире .NET-приложений. А вот работает этот самый JIT, знают далеко не все. Если брать в расчёт только реализацию .NET от Microsoft, то стоит различать JIT-x86 и JIT-x64. А ещё за дверями стоит RyuJIT который уже совсем скоро займёт почётное место основного JIT-компилятора. А если вы любите старые версии .NET, то полезно знать, что в разных версиях CLR логика работы JIT отличалась. Исходники у нас теперь открыты, вы можете их посмотреть и осознать, насколько же это большая и сложная тема. Сегодня мы не будем пытаться охватить её, а лишь кратко посмотрим на несколько интересных особенностей отдельных версий JIT-компиляторов. Итак, сегодня в номере:

  • Почему короткий метод может не быть заинлайнен и как этого избежать
  • JIT-баги: опасные и беспощадные
  • Кто и как разматывает циклы
  • Чем отличается размотка маленьких и больших циклов

Разные версии JIT в .NET - 1Читать полностью »

Чем больше я пишу на C# 6, тем больше убеждаюсь в том, насколько оператор ?. (null coalescing operator) помогает писать чистый простой и понятный код. Сегодня я покажу 4 ситуации, в которых он может быть очень полезен.

Большая вложенность

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

var location = default(string);
if (vendor != null)
{
    if (vendor.ContactPerson != null)
    {
        if (vendor.ContactPerson.HomeAddress != null)
        {
            location = vendor.ContactPerson.HomeAddress.LineOne;
        }
    }
}

Но теперь у нас есть C# 6, с ним код можно привести на намного более читаемому виду:

var location = vendor?.ContactPerson?.HomeAddress?.LineOne;

Оператор ?. сделает так, что как только в одном из свойств цепочки окажется null, дальнейшее вычисление выражения производится не будет. Посмотрим ещё несколько примеров.Читать полностью »

Есть такой язык программирования, который называется C#. И есть очень много разработчиков, которым он очень нравится. А ещё есть такой язык программирования, который называется JavaScript. Как-то так сложилось, что он нравится далеко не всем C#-разработчикам. А теперь представьте ситуацию: есть заядлый C#-разработчик. Он очень любит C#, все-все проекты на нём пишет. Но судьба распорядилась так, что ему понадобилось написать клиентское веб-приложение. Знаете, такое, чтобы пользователю не нужно было себе ничего скачивать и устанавливать, чтобы он мог просто открыть любой браузер в любой операционной системе на любом устройстве — а приложение уже там. И вот тут у нашего лирического героя возникла проблема: вроде бы JavaScript идеально подходит для этой задачи, но вот писать на нём отчего-то на нём не очень хочется. К счастью, в современном мире существует много языков, которые транслируются в JavaScript (всякие TypeScript, CoffeScript и тысячи других). Но наш разработчик оказался очень упрямым: он упорно не хочет изменять своему любимому C# с «вражескими» технологиями.

К счастью для него, счастливое будущее уже практически наступило. Есть такой проект, который называется DuoCode. Он умеет транслировать C#-код в JavaScript. Пока он в состоянии beta, но у него уже весьма неплохо получается: поддерживаются нововведения C# 6.0, Generic-типы, Reflection, структуры и LINQ, а отлаживать итоговый JavaScript можно на исходном C#. Давайте посмотрим внимательнее, что же представляет из себя продукт.

DuoCode: транслируем C# в JavaScript - 1Читать полностью »

Первое поколение умных часов Pebble стало одним из самых успешных проектов по сбору средств на площадке KickStarter. Да и сами часы являются одними из самых продаваемых на этом рынке, причём, продажи со временем только растут.

Буквально неделю назад компания снова вышла на KickStarter с намерением собрать 500 000 долларов на создание второго поколения часов. До окончания сборов ещё 24 дня, а разработчики уже привлекли более 13 млн долларов.

Читать полностью »

На мероприятии MWC2015 представлены не только мобильные устройства, но и решения, определяющие среду, в которой они работают. Компания VMware, претендующая на звание лидера в сфере виртуализации и облачной инфраструктуры, представила на MWC2015 платформу VMware vCloud for NFV.

Читать полностью »

image

Сегодня компания Valve анонсировала целую серию продуктов и технологий для Steam.

Для разработчиков игр интересен анонс бесплатного игрового движка Source 2, первая версия которого использовалась в таких играх как «Counter-Strike: Source» и «Half-Life 2».
Читать полностью »

image
Сегодня компания Valve анонсировала целую серию продуктов и технологий для Steam.

Одной из основных частей анонса стал бесплатный игровой движок Source 2, первая версия которого использовалась в таких играх как «Counter-Strike: Source» и «Half-Life 2».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js