• C# WPF аналог Window.ShowDialog() или разбираемся с DispatcherFrame

    Постановка задачи


    В рамках разработки одного приложения потребовалось реализовать такую схему:


    1. Асинхронный метод запрашивает данные
    2. Пользователь вводит данные с клавиатуры
    3. Метод получает результат ввода как результат выполнения функции и продолжает с того же места

    Дополнительные требование: Не создавать дополнительных окон.


    Казалось бы, просто? Как оказалось, действительно просто. Но обо всём по порядку.

    Читать дальше →
  • Электронный микроскоп в гараже

      image

      Позвонил мне как-то друг и говорит: нашёл интересную штуку, нужно привезти к тебе, весит полтонны. Так у меня появилась колонна от сканирующего электронного микроскопа JEOL JSM-50A. Её давно списали из какого-то НИИ и вывезли в металлолом. Электронику потеряли, а вот электронно-оптическую колонну вместе с вакуумной частью удалось спасти.

      До этого момента я не имел дела с подобным научным оборудованием, не говоря уже о том, чтобы уметь им пользоваться и представлять, как оно работает. Чтобы восстановить этот микроскоп хотя бы до состояния «рисуем электронным лучом на люминесцентном экране» потребуется:

      • Понять основы работы электронных микроскопов
      • Разобраться в том, что такое вакуум, какой он бывает
      • Как измеряют вакуум, как его получают
      • Как работают высоковакуумные насосы
      • Минимально разобраться в химии (какие растворители использовать для очистки вакуумной камеры, какое масло использовать для смазки вакуумных деталей)
      • Освоить металлообработку (токарные и фрезерные работы) для изготовления всевозможных переходников и инструментов
      • Разобраться с микроконтроллерами, схемотехникой их подключения

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

      Восстановление микроскопа после как минимум десятка лет — под катом.
      Подробности с фото и видео
    • Подлый трюк. Microsoft переименовала шпионский сервис DiagTrack и снова запустила его у всех пользователей

        Две недели назад вышло большое обновление Threshold 2 для Windows 10. Прошедшего времени достаточно, чтобы досконально разобраться в том, что из себя представляет апдейт. В целом, его приняли положительно: хороших нововведений там явно больше, чем плохих.

        Но всё-таки несколько ложек дёгтя Microsoft приготовила. Во-первых, операционная система зачем-то автоматически удаляет на отдельных компьютерах некоторые установленные программы. Судя по сообщениям на форумах, среди «пострадавших» — CPU-Z, speccy, 8gadgetpack, клиент Cisco VPN, драйверы SATA, SpyBot, RSAT, F5 VPN, HWMonitor и другие. После обновления Windows программы можно без проблем установить обратно.

        Во-вторых, после обновления Windows 10 изменяет некоторые настройки по умолчанию обратно на сервисы Microsoft. Опять же, потом дают возможность вернуть всё обратно.

        Два вышеуказанных бага отловили достаточно быстро. Чего не скажешь о третьем, самом грязном и даже немного подлом баге.
        Читать дальше →
      • Слишком быстрая загрузка Windows 8

          «В Windows 8 есть проблема — она загружается слишком быстро. Настолько быстро, что после включения компьютера не остаётся времени, чтобы нажать F2 или F8», — пишет Крис Кларк (Chris Clark), менеджер команды User Experience в Microsoft.

          В самом деле, в Microsoft проделали большую работу по оптимизации, так что Windows 8 на компьютере с SSD-диском загружается менее чем за 7 секунд, при этом инициализация BIOS и самотестирование POST завершаются в первые 2-3 секунды. Выбор пути загрузки Windows 8 осуществляется в течение <200 миллисекунд — тут ничего не успеешь нажать.
          Читать дальше →
        • После прочтения сжечь

            В прошлом семестре в качестве домашнего задания по курсу информационной безопасности в Технопарке Mail.Ru нам предложили написать сервис одноразовых ссылок. Подобные сервисы уже существуют, однако мне эта идея показалась интересной как с точки зрения практического применения, так и с точки зрения технической реализации. Задание я выполнил, и, немного доработав систему, выложил в открытый доступ. О том, какие задачи мне пришлось решить и с какими проблемами столкнуться, я расскажу в этой небольшой статье.


            Читать дальше →
          • Что нужно знать про арифметику с плавающей запятой



            В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

            Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
            Читать дальше →
          • Статика в C#

            • Tutorial
            Волею судьбы в последние годы у меня появилось ещё одно очень увлекательное хобби – учить. Я занимаюсь обучением людей, которые хотят стать программистами C#. Люди приходят разные: технари, гуманитарии, кто-то по своей воле, кого-то направляют от организаций. Не смотря на различные уровни, мне нужно их обучать. Поэтому я стараюсь постоянно обновлять и улучшать свои обучающие материалы. В связи с чем, пришёл к выводу: «А не плохо было бы оформить материалы в текстовом виде, чтобы ими было удобно пользоваться». Под катом я выложил как пример одну из недавно оформленных лекций.
            Приглашаю весь желающих обсудить материал, может быть кто-то почерпнёт для себя что-то новое.
          • Тайны кнопок в Android. Часть 1: Основы верстки

            Приветствую, уважаемое сообщество.

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

            Первая часть предназначена для начинающих разработчиков. Я покажу, как сделать достаточно сложную кнопку исключительно версткой, не применяя Java-кода, ни тем более собственных компонентов. Знание этих приемов верстки пригодится и при работе с другими компонентами Android. По ходу статьи я буду подробно пояснять, что означают те или иные константы, атрибуты, команды и тому подобное. Но я также буду давать ссылки на официальную документацию Google, где вы можете подробно изучить каждую тему. Данная статья обзорная, я не ставлю цели привести здесь всю документацию, переведенную на русский язык. Поэтому я рекомендую изучать официальные источники, в частности те статьи, ссылки на которые я привожу здесь.

            Читать дальше →
          • Пузырьковая сортировка и все-все-все


              Все отлично знают, что из класса обменных сортировок самый быстрый метод – это так называемая быстрая сортировка. О ней пишут диссертации, её посвящено немало статей на Хабре, на её основе придумывают сложные гибридные алгоритмы. Но сегодня речь пойдёт не про quick sort, а про другой обменный способ – старую добрую пузырьковую сортировку и её улучшения, модификации, мутации и разновидности.

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

              image: пузырьки

              Сделать первый шаг в изучении сортировок