• Простой индикатор раскладки клавиатуры в курсоре на С++

      Тема отображения текущей раскладки беспокоила хабрасообщество уже не раз. Я опробовал множество существующих решений, но по разным причинам они меня не устроили. Чтобы подобрать для себя наиболее удобный вариант отображения текущей раскладки, я написал небольшое приложение на C++, которое при нажатии на левый Shift отображает язык в системном курсоре редактирования текста. Менее 100 строк кода и около 4 килобайт в скомпилированном виде — на основе этого вы можете достаточно просто реализовать свой взгляд на то, как на самом деле должна выглядеть индикация текущей раскладки.
      Читать дальше →
    • Боты на .Net Core для Telegram, Slack и Facebook

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



        Практически все, кто пользуется современными средствами обмена сообщениями, сталкивались с ботами. Одно из определений бота – это программа, выполняющая автоматически и/или по заданному расписанию какие-либо действия через интерфейсы, предназначенные для людей.

        Боты могут использоваться для информирования, для автоматизации процессов (например, автоматической генерации задачи в TFS на основе письма пользователя) и для многих других целей, но т.к. одной статьи не хватит, чтобы рассмотреть все варианты, далее пойдёт рассказ лишь о том, как создать бота для обработки команд.
        Читать дальше →
      • Шпаргалка по шаблонам проектирования


          Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

          Под катом — много картинок.

          Читать дальше →
        • Подборка бесплатных инструментов для разработчиков

          • Translation
          Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

          Читать дальше →
        • Удаленное включение по Mac-адресу C# (Wake On Lan)

          В этой статье я хотел бы поделиться небольшим опытом удаленного включения компьютера. Эта тема, пожалуй, многим известна, но хотелось бы еще раз уделить внимание данной технологии. Свою статью я разделю на две части:
          • Сканирование локальной сети, получение IP-адреса, HostName, Mac-address;
          • Создание "magic packet" и отправка.

          Вот так примерно выглядит созданная программа:



          Итак, приступим к выполнению первого пункта.
          Читать дальше →
        • Локализация WPF страниц

          • Tutorial
          Сегодня существует много способов локализации WPF проектов в основном основанных на биндинге.
          В этом подходе есть свои плюсы и минусы. Меня не устраивает в этом подходе это огромное количество биндингов в xaml разметке, дополнительная задержка при загрузке страницы. Так же дополнительное время для поиска строки в исходном коде т.е. когда я вижу строку в запущенной программе, сначала я должен найти эту строчку в resx ресурсах, а после только xaml содержащий этот ключ.

          Недавно мы подключили Elas для локализации нашего проекта. Elas вытаскивает из xaml разметки все значения атрибутов элемента помеченного x:Uid и помещает их в xlf файл для последующего перевода. Расскажу на простом примере как это делается.
          Читать дальше
        • Youtube

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

            image

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

            Для того чтобы запрос шел мимо cdn серверов ютуба надо заблокировать диапазон ip адресов (в роутере или на компьютере).

            173.194.55.0/24 и 206.111.0.0/16
            Читать дальше →
          • 100 статей про разработку для Windows на русском языке

              image

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

              Полный список под катом
              Читать дальше →
            • Ускорение загрузки Windows for fun and profit

                image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

                Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
                Под катом много однообразных картинок и немножко унылого текста
              • Опыт составления резюме

                  Проблема


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

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

                  Читать дальше →
                • Модернизации зеркала в прихожей

                    Результат моих трудов

                    Идея модернизации зеркала появилась у меня 2 года назад. И для ее реализации в магазине Икея было куплено зеркало. Так же для этого зеркала была куплены фоторамка с метеостанцией. Как всегда, нехватка времени, лень и страх не давали мне реализовать свою идею до победного конца. И вот моя идея, наконец-то, реализовалась.
                    Читать дальше →
                  • Роскомнадзор признаёт хентай детским порно, призывает к подаче жалоб, обещает пополнение реестра запрещённых ресурсов в Интернете

                      Чуть больше двух месяцев тому назад (11 апреля 2013 г.) в новости «Роскомнадзор занялся мультипликационной порнографией» на сайте «Известий» можно было прочесть, что москвич Владимир Голованов, действуя под влиянием убеждения в том, что «стиль японских порномультфильмов хентай изначально предполагает персонажей неясного возраста с кукольными, детскими лицами» (это цитата), подал в Роскомнадзор жалобу с просьбою признать эти анимационные произведения относящимися к разряду порнографии с участием несовершеннолетних. Тогда же и там же можно было прочесть, что эксперты Лиги безопасного Интернета (ЛБИ) считают, что хентай — это и есть детское порно. («Если Роскомнадзор попросит провести экспертизу, то наш экспертный центр подготовит заключение. Мы, скорее всего, будем говорить, что это детская порнография», — объявил директор ЛБИ Денис Давыдов.)

                      Так и вышло. Вчера (13 июня) в новости «Роскомнадзор признал мультфильмы детской порнографией» на сайте «Известий» стало можно прочесть, что «у экспертов не вызвало сомнения, что анимированные герои представлены в образе несовершеннолетних и при этом участвуют в порнографических сценах». Ведомство попросило москвича Голованова подать повторную жалобу: Роскомнадзор объявил, что после этого анимационные видеозаписи, признанные детской порнографией, будут внесены в реестр запрещённых ресурсов. Упоминается также намерение Антона Коробкова-Землянского (члена Общественной палаты) внести изменения в закон «О защите детей от информации, причиняющей вред их здоровью и развитию», в понятие порнографии добавив анимацию (в том числе — трёхмерную).

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

                      Читать дальше →
                    • Мультфильм на осциЛЛографе

                        Потрясающая работа, проделанная умельцем.



                        Пока автор делал этот шедевр, он:
                        — получил кучу знаний по оптике и лазерам
                        — научился работать с ПЛИС (оно же FPGA)
                        — использовать USB2.0 на полной скорости (поток точек и тайминги идут по usb в плис)
                        — познакомился с Qt
                        — научился писать драйвера под Linux

                        Впечатляет.
                      • Алгоритм аннотирования иллюстраций или почему бы программисту не быть немного дизайнером?

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

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

                          Читать дальше →
                        • Как два программиста хлеб пекли



                            Я работаю программистом уже много лет, на протяжении которых, как это ни странно, я всё время что-то программирую. И вот какую интересную вещь я заметил: в коде, написанном мной месяц назад, всегда хочется что-то чуть-чуть поправить. В код полугодичной давности хочется поменять очень многое, а код, написанный два-три года назад, превращает меня в эмо: хочется заплакать и умереть. В этой статье я опишу два подхода. Благодаря первому архитектура программы получается запутанной, а сопровождение — неоправданно дорогим, а второй — это принцип KISS.

                            Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

                            Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
                            — Ребята, нам нужно, чтобы делался хлеб.

                            Именно так, «делался», без уточнения способа производства.

                            Как же поступят наши программисты?
                            Читать дальше →
                          • Первый опыт написания плагинов для Autocad на C#

                            Предыстория


                            Я начинающий разработчик, «школьный» уровень знания С++, небольшой (2 года) опыт программирования на С#, нулевой опыт работы в автокаде
                            Недавно попросили изменить LISP программки автокада, предназначенные для создания/изменения межевых планов и подготовки соответствующих документов MS Word / XML — пофиксить баги и добавить новый функционал.
                            Поскольку читабельность программ на Лиспе (по крайней мере для меня) оставляет желать лучшего, я решил переписать это на более понятный язык.
                            Т.к. мне не нужны были миллисекунды прироста скорости, я пропустил С++ и остановился на C#

                            Под катом то, что я узнал за 2 недели переписывания программ
                          • Три возраста паттерна Singleton

                            Паттерн Singleton появился, пожалуй, как только появились статичные объекты. В Smalltalk-80 так был сделан ChangeSet, а чуть в самых разных библиотеках стали появляться сессии, статусы и тому подобные объекты, которых объединяло одно — они должны были быть одни-единственные на всю программу.

                            В 1994 году вышла известная книга «Паттерны проектирования», представив публике, среди 22-х прочих, и нашего героя, которого теперь назвали Singleton. Была там и его реализация на C++, вот такая:
                            Читать дальше →
                          • Сборка Hifidiy Mini USB DAC Mk2 Kit

                              Доброе время суток. Прочитав пост решил попробовать себя в таком нелегком деле, как самостоятельная сборка усилителя. Но для начала захотелось попробовать свои силы и потренироваться на чем-то поменьше и я решил собрать DAC. Выбор пал на Mini USB DAC Mk2 от hifidiy.net.
                              image
                              Читать дальше →