• «Roslyn — еще очень сырая технология» — интервью с Сергеем Шкредовым, руководителем .NET-направления в JetBrains

      Привет, это снова Без слайдов. Я Алексей Федоров, и на этот раз в гостях у меня побывал Сергей Шкредов, руководитель всего .NET-направления в компании JetBrains.



      С Сергеем мы говорили:
      • о последних релизах ReSharer;
      • о новой схеме подписок и лицензий;
      • про непростые отношения с Microsoft;
      • о рантайме и развитии языка;
      • о том, как поменял ситуацию выход Roslyn;
      • о работе с фидбеком пользователей для улучшения продукта;
      • о планах развития других продуктов .NET стека;
      • о важности внутриотраслевого общения и обмена опытом;
      • про разработку продуктов для С++;
      • немного о ReSharper C++, на который должны подсесть даже разработчики Microsoft;
      • О том, как пользователи почувствуют изменения;
      • Как ReSharper будет развиваться дальше.


      Вот видео



      Под катом — текстовый вариант интервью.

      Читать интервью...
    • Новогодняя проверка .NET Core Libraries (CoreFX)

        Около года назад Microsoft выложила в открытый доступ исходный код таких проектов, как CoreCLR и CoreFX. Последний проект до недавнего времени не был нам интересен, потому что написан на языке C#, а не C++. Но с выходом новой версии PVS-Studio 6.00, поддерживающей проекты и на языке программирования C#, я решил вернуться к CoreFX и написать статью.

        Введение


        .NET Core это модульная реализация библиотек и среды выполнения, которая включает подмножество .NET Framework. .NET Core состоит из набора библиотек, называемых «CoreFX» и небольшой оптимизированной рабочей среды «CoreCLR».

        .NET Core распространяется с открытым исходным кодом, который доступен на GitHub:
        Это крупные продукты от Microsoft, содержащие качественный исходный код, но подозрительные участки кода всё равно можно найти.

        О проверке CoreCLR можно прочитать в статье "PVS-Studio: 25 подозрительных фрагментов кода из CoreCLR".

        Проект CoreFX, о котором подойдёт речь в статье, проверялся с помощью статического анализатора PVS-Studio 6.00, который теперь поддерживает и C#!
        Читать дальше →
        • +21
        • 9,8k
        • 9
      • Полный перевод Unix-коанов на русский язык



          Представляю на ваш суд ещё один перевод коанов о Мастере Фу на русский язык. В данный сборник вошли все коаны, на данный момент опубликованные на сайте Эрика Реймонда. Надо сказать, что сам Эрик личность весьма неординарная, но упоминания в данной статье стоящая. Помимо холиваров в списках рассылки всевозможных проектов за его авторством также несколько серьёзных трудов о Unix — в том числе и о сообществе, без которого экосистема современных открытых проектов не была бы возможной (полный список книг). Идея перевести коаны в очередной раз пришла мне в голову во время чтения одного из таких трудов, а именно «The Art of Unix Programming», поскольку многое из скрытого смысла коанов становится ясно только после прочтения очередной главы оттуда.

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

          Итак
        • Видео с летней школы по маркетингу софтверных продуктов в JetBrains

            Многие из вас уже знают о недавней летней школе по маркетингу софтверных продуктов, проведенной компанией JetBrains в Санкт-Петербурге с 28 июля по 5 августа. Это был для нас эксперимент, поэтому изначально мы не были уверены в том, что получится записать и опубликовать видео (как технически, так и идейно — было непонятно, насколько формат будет подходить для видео). Уже в ходе школы стало понятно, что записи этих уютных летних встреч принесут много полезных знаний тем, у кого не получилось поучаствовать лично, поэтому мы рады опубликовать видеозаписи.



            В этом посте мы публикуем видеозаписи встреч летней школы, а также рассказываем о том, что там происходило. Кроме того, советуем пост от paullarionov, написанный вскоре после завершения школы и содержащий впечатления о проекте со стороны участника, а также ссылки на все презентации и домашние задания.
            Читать дальше →
            • +12
            • 7,2k
            • 5
          • Как происходит рендеринг кадра в GTA V

            • Перевод
            Серия игр Grand Theft Auto прошла долгий путь с момента своего первого релиза в 1997 году. Примерно 2 года назад Rockstar выпустила GTA V. Просто невероятный успех: за 24 часа игру купило 11 миллионов пользователей, побито 7 мировых рекордов подряд. Опробовав новинку на PS3, я был весьма впечатлен как общей картинкой, так и, собственно, техническими характеристиками игры.

            Ничто так не портит впечатление от процесса, как экран загрузки, но в GTA V вы можете играть часами, преодолевая бескрайние сотни километров без перебоев. Учитывая передачу солидного потока информации и свойства PS3 (256 Mb оперативной памяти и видеокарта на 256 Mb), я и вовсе удивился, как меня не выбросило из игры на 20-ой минуте. Вот где чудеса техники.

            В этой статье я расскажу о проведенном анализе кадра в версии для ПК в среде DirectX 11, которая съедает пару гигов как оперативки, так и графического процессора. Несмотря на то, что мой обзор идет со ссылкой на ПК, я уверен, что большинство пунктов применимо к PS4 и в определенной степени к PS3.

            Анализ кадра


            Итак, рассмотрим следующий кадр: Майкл на фоне любимого Rapid GT, на заднем плане прекрасный Лос-Сантос.

            image

            Осторожно! Трафик!
            Читать дальше →
          • Winium: теперь для Windows Phone


              Для автоматизации тестирования под Windows Phone и Windows нет удобных и открытых инструментов, которые можно легко адаптировать под свои нужды. Те, что есть, закрыты, ограничены и предлагают свой подход, отличающийся от общепринятых стандартов вроде Selenium WebDriver.

              Мой коллега skyline-gleb недавно писал на Хабре, как мы разработали свой selenium-like инструмент автоматизации функционального тестирования desktop-приложений под Windows. Параллельно мы разрабатывали аналогичный инструмент, только под мобильные платформы от Microsoft.

              О том, почему взялись его писать, какую пользу получили от использования единой платформы для автоматизации тестирования под все мобильные платформы и как внедрить это на вашем проекте, читайте в этой статье.
              Читать дальше →
              • +19
              • 8,2k
              • 9
            • Видео докладов от SPB .NET Community



                C июня этого года мы начали проводить митапы SPB .NET Community в Санкт-Петербурге и за это время у нас скопилось немало видео, которым я и хочу поделиться. Кому интересно посмотреть доклады про новшества в Visual Studio 2015, безопасность платформы ASP .NET, детали разработки многозадачных приложений и про взаимодействие с unmanaged миром из C#, прошу под кат.
                Читать дальше →
                • +10
                • 11,5k
                • 2
              • О том, как рисовать кривые графики в стиле XKCD

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


                  Читать дальше →
                • HackerSIM: разбор полетов



                    В последнее время на Хабре и Гиктаймс появилось много статей (1, 2, 3, 4, 5, 6, 7) о SIM-карте, наделенной невиданными и неслыханными возможностями, что вызвало озабоченность и заинтересованность в различных кругах. Появилось множество скепсиса и споров, а затем различных теорий, порой потрясающих своей фантастичностью. Попробуем приоткрыть завесу тайны с технической стороны. Естественно, эти тесты не были бы возможны без данной SIM-карты, которую нам любезно предоставил MagisterLudi.

                    Для тех, кто не хочет читать много букв, — резюмирую: принудительного шифрования нет, защиты от комплексов перехвата нет, подключения к второй по уровню сигнала БС нет, подмена номера есть, подмена голоса есть, биллинг есть, сокрытия IMSI нет, сокрытия местоположения нет.

                    Начнем по порядку.
                    Читать дальше →
                  • Видеозахват на все случаи жизни

                      Привет, Geektimes. Сегодня поговорим о достаточно простой теме, которая, всё же, иногда создаёт некоторые проблемы как программного, так и аппаратного характера. Речь идёт о записи видео с экрана…



                      Существует довольно много способов, от бесплатных и простых до платных и мудрёных. От таких где можно не вставать со стула до таких, когда надо купить оборудования на пол килобакса. У каждого есть плюсы и минусы и об этом сегодня и поговорим.
                      Читать дальше →
                    • Основы многопоточности в .NET Framework



                        Многопоточность — одна из самых сложных тем в программировании, с ней постоянно возникает масса проблем. Без четкого понимания внутренних механизмов будет очень трудно предсказать результат работы приложения, использующего несколько потоков. Мы не будем здесь дублировать массу теоретической информации, которой очень много в сети и умных книгах. Вместо этого сконцентрируемся на конкретных и наиболее важных проблемах, на которые нужно обращать особое внимание и обязательно помнить о них в процессе разработки.
                        Читать дальше →
                      • Видеозаписи и обзор конференции LVEE-2014

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



                          Под катом максимально сжатое описание и ссылки на видео и допматериалы (тезисы, слайды, контакты докладчиков), т.е. не бойтесь заходить, даже если у вас GPRS.

                          Читать дальше →
                          • +18
                          • 4,2k
                          • 2
                        • Курсы этичного хакинга и тестирования на проникновение: обновленная программа

                            Если вы увлекаетесь информационной безопасностью и хотите усовершенствовать свои навыки в короткое время, то содержание статьи, скорее всего, покажется вам достаточно интересным. Статья носит обзорный характер обновленных программ обучения в области практической ИБ от PENTESTIT.

                            Разрабатывая уникальные по своему формату и методике обучения курсы: «Zero Security: A» и «Корпоративные лаборатории», мы стараемся сделать курсы не только эффективными, но и удобными. Основное отличие программ обучения заключается в том, что первая рассчитана на базовую подготовку в области этичного хакинга, а вторая — на профессиональную подготовку не только этичного хакинга, но и построения эффективных систем ИБ. В любом случае, даже опытные специалисты, посетившие первую программу, открывают для себя что-то новое, не говоря уже о «Корпоративных лабораториях», включающих материал, по уровню сравнимый с докладами на профессиональных хакерских конференциях. Кроме этого, каждый набор пополняется новым материалом, что позволяет передать специалистам, проходящим обучения, наиболее актуальную на момент обучения информацию.

                            Уникальность программ обучения заключается в симбиозе формата обучения (полностью дистанционное, не требующее отрыва от работы и учебы), качества материала и специализированных ресурсов, на которых производится обучение.


                            Читать дальше →
                            • +21
                            • 17,3k
                            • 6
                          • Лучшие доклады .NEXT 2014 Moscow (видео внутри). Часть 1: Места с 6 по 10

                              Обратный отсчет перед очередной конференцией .NEXT давно запущен. Пришло время рассказать о тех докладах, которые были на декабрьской конференцией в Москве. Причем рассказывать будем сразу о лучших из них, чтобы не тратить ваше время. Методика выбора лучших описана подробно в предыдущем посте.



                              Сегодня я расскажу о местах во второй половине первой десятки. Как всегда, в обратном порядке.
                              Читать дальше →
                              • +19
                              • 17,3k
                              • 2
                            • Сравнение сервисов приема интернет-платежей для ИП

                                Ранее я опубликовал две статьи (1, 2) о способах приема платежей на сайте. В предыдущих статьях было одно условие — подключение к платежным системам производилось как физическое лицо. Теперь я решил выйти из сумрака делать все максимально честно, и хочу рассказать о способах подключения к платежным системам в качестве ИП и легального вывода заработанного на расчетный счет в банке.

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

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

                                Итак, герои сегодняшнего обзора: WebMoney, Яндекс.Касса, PayPal, Единая Касса (Wallet One), RBKMoney, PayMaster, РобоКасса, QIWI
                                Читать дальше →
                              • Детальный анализ Хабрахабра с помощью языка Wolfram Language (Mathematica)


                                  Скачать пост в виде документа Mathematica, который содержит весь код использованный в статье, вместе с дополнительными файлами, можно здесь (архив, ~147 МБ).

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

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

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

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

                                  Оглавление


                                  Импорт списка хабов
                                  Импорт ссылок на все статьи Хабрахабра
                                  Импорт всех статей Хабрахабра
                                  Функции извлечения конкретнных данных из символьного XML представления поста
                                  Создание базы данных постов Хабрахабра с помощью Dataset
                                  Результаты обработки данных
                                  Краткий анализ хабов
                                  Граф связей хабов на Хабрахабре
                                  Количество статей в зависимости от времени
                                  Количество изображений (видео), используемых в постах в зависимости от времени
                                  Облака ключевых слов Хабрахабра и отдельных хабов
                                  Сайты, на которые ссылаются в статьях на Хабрахабре
                                  Коды, которые приводят в статьях на Хабрахабре
                                  Частота встречи слов
                                  Рейтинг и числа просмотров постов, а также вероятность достижения их определенных значений
                                  Зависимость рейтинга и числа просмотров поста от времени публикации
                                  Зависимость рейтинга поста от его объема
                                  Заключение
                                  Читать дальше →
                                • CLRium #2. Большой семинар по .NET в Питере

                                    Вы успеваете отслеживать все свежее, что происходит в мире .NET в последнее время? Выход своей мини-IDE под Linux и MAC OS? Забор исходников от referencesource в проект Mono 4? Более ранний релиз C# 6 под mono, чем под .NET в Windows? Даже гуру .NET не успевают все узнать, чего уж говорить про разработчиков, у которых помимо работы есть множество семейных проблем? Как раз чтобы решить все проблемы такого рода, придуманы конференции и семинары. И в особенности — семинары, где в отличии от конференций упор сделан — на код и практику.

                                    В Москве семинар собрал 380 разработчиков всех уровней познания платформы .NET, на котором были не только граждане РФ, но также присутствовали гости из Штатов, Германии, Чехии, Украины и Белоруссии.

                                    Приглашаем на семинар по платформе .NET в Санкт-Петербурге, который пройдет уже совсем скоро — 29-30 мая. Подробности:
                                    Читать дальше →
                                    • +11
                                    • 3,2k
                                    • 6
                                  • Релиз Mono 4.0 с импортом кода из referencesource.microsoft.com и corefx


                                      — Сделали поддержку C# 6 по-умолчанию
                                      — Потюнили в плане улучшения производительности GC и рантайм
                                      — Ускорили операции с float на 30-40%
                                      — Добавили поддержку PowerPC64 LE
                                      — И, самое главное импортировали очень большой кусок BCL из .NET Framework.
                                      Список импортированного кода
                                    • Храним 300 миллионов объектов в CLR процессе

                                        Камень преткновения — GC


                                        Все managed языки такие как Java или C# имеют один существенный недостаток — безусловное автоматическое управление паматью. Казалось бы, именно это и является преимуществом managed языков. Помните, как мы барахтались с dandling-указателями, не понимая, куда утекают драгоценные 10KB в час, заставляя рестартать наш любимый сервер раз в сутки? Конечно, Java и C# (и иже с ними) на первый взгляд разруливают ситуацию в 99% случаев.

                                        Так-то оно так, только вот есть одна проблемка: как быть с большим кол-вом объектов, ведь в том же .Net никакой магии нет. CLR должен сканировать огромный set объектов и их взаимных ссылок. Это проблема частично решается путём введения поколений. Исходя из того, что большинство объектов живёт недолго, мы высвобождаем их быстрее и поэтому не надо каждый раз ходить по всем объектам хипа.

                                        Но проблема всё равно есть в тех случаях, когда объекты должны жить долго. Например, кэш. В нём должны находиться миллионы объектов. Особенно, учитывая возрастание объемов оперативки на типичном современном серваке. Получается, что в кэше потенциально можно хранить сотни миллионов бизнес-объектов (например, Person с дюжиной полей) на машине с 64GB памяти.

                                        Однако на практике это сделать не удаётся. Как только мы добавляем первые 10 миллионов объектов и они “устаревают” из первого поколения во второе, то очередной полный GC-scan “завешивает” процесс на 8-12 секунд, причём эта пауза неизбежна, т.е. мы уже находимся в режиме background server GC и это только время “stop-the-world”. Это приводит к тому, что серверная апликуха просто “умирает” на 10 секунд. Более того, предсказать момент “клинической смерти” практически невозможно.
                                        Что же делать? Не хранить много объектов долго?

                                        Зачем


                                        Но мне НУЖНО хранить очень много объектов долго в конкретной задаче. Вот например, я храню network из 200 миллионов улиц и их взаимосвязей. После загрузки из flat файла моё приложение должно просчитать коэффициенты вероятностей. Это занимает время. Поэтому я это делаю сразу по мере загрузки данных с диска в память. После этого мне нужно иметь object-graph, который уже прекалькулирован и готов “к труду и обороне”. Короче, мне нужно хранить резидентно около 48GB данных в течении нескольких недель при этом отвечаю на сотни запросов в секунду.

                                        Вот другая задача. Кэширование социальных данных, которых скапливаются сотни миллионов за 2-3 недели, а обслуживать необходимо десятки тысяч read-запросов в секунду.
                                        Читать дальше →