• Сам себе сервер SelfHost

    • Tutorial
    Пишем «сам себе сервер» с использованием классов пространства имен System.Web.Http.SelfHost.

    Столкнулась с использованием классов этого пространства имен, когда появилась необходимость в написании веб-морды, доступной из:

    image службы Windows.
    Читать дальше →
  • Русские программисты в Канаде

      Любой русский программист после пары минут чтения кода, обязательно вскочит и произнесет обращаясь к себе: переписать это все нафиг. Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный.
      Читать дальше →
    • Хранение данных в Android

        В прошлом своем посте я писал о создании всплывающих менюшек, сегодня же мы поговорим о более важной теме такой, как хранение данных. В android есть несколько способов хранения данных: общие настройки, бд и тд. В этом посте я расскажу о том как хранить данные в БД.
        Читать дальше →
      • Проект PSFreedom портирован на Android

          Как и ожидалось после новости о портировании проекта на Nokia n900, появились порты на Android.
          PSFreedom — порт
          На данный момент подтверждена работа на следующих устройствах:
          — HTC Desire
          — Google Nexus One
          — HTC Dream (G1)
          Читать дальше →
        • Основы программирования под Android на примере игры Судоку

            В статье описаны основные трудности создания приложений под Android.
            Рассматриваются базовые понятия программирования Android.
            Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
            Осторожно много скриншотов.

            Читать дальше →
          • Опыт составления резюме

              Проблема


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

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

              Читать дальше →
            • AsyncCollections: история одного велосипеда

              С давних времён я был большим поклонником System.Collections.Concurrent и BlockingCollection в особенности. Сколько раз это чудо инженерной мысли выручало в самых разнообразнейших ситуациях — не счесть.

              С чуть менее давних времён в обиход прочно вошли async/await. Казалось бы, жизнь прекрасна, но есть одно «но»: асинхронный код миксовать с блокирующим кодом как-то не очень-то хочется. А BlockingCollection, как несложно догадаться (хотя бы из названия), в ряде случаев поток блокирует.
              Что же делать?
            • 7 мифов о Linq to Database

                Linq появился в 2007 году, тоже же появился первый IQueryable-провайдер — Linq2SQL, он работал только с MS SQL Server, довольно сильно тормозил и покрывал далеко не все сценарии. Прошло почти 7 лет, появилось несколько Linq-провайдеров, которые работают с разными СУБД, победили почти все «детские болезни» технологии и, уже пару лет как, Linq to Database (обобщенное название для популярных провайдеров) готов к промышленному применению.

                Тем не менее далеко не все применяют Linq to Database и объясняют это не только тем, что проект старый и переписать на linq довольно сложно, но и приводят в качестве аргументов различные мифы. Эти мифы кочуют из одной компании в другую и часто распространяются через интернет.

                В этом посте я собрал самые популярные мифы и опровержения к ним.
                Читать дальше →
              • Откуда «мыло» в WPF и как с ним бороться



                Это руководство для WPF-разработчиков, стремящихся добиться максимально чёткой картинки в своих приложениях. Графическая система WPF до мозга костей векторная, но конечным результатом её работы по-прежнему является растр. Если не уделить этому факту должного внимания, можно столкнуться с различными сортами «мыла» — паразитными артефактами растеризации. В такой ситуации важно не терять присутствия духа, причины их возникновения вполне рациональны, а методы борьбы достаточно просты и эффективны.
                Читать дальше →
              • Подробно о Xamarin

                Вы неплохо владеете языком C# и платформой .NET в целом? Вам надоело стоять в стороне и смотреть, как кто-то другой пишет крутые мобильные приложения вместо вас? У меня есть для вас кое-что интересное! То, что поможет вам изменить сложившуюся ситуацию и позволит писать отличные мобильные приложения, не требуя отдельного изучения Objective-C и Java. Я расскажу вам о продукте Xamarin. Подробно и правдиво.

                Что это?



                Xamarin — это фреймворк для кроссплатформенной разработки мобильных приложений (iOS, Android, Windows Phone) с использованием языка C#. Идея очень простая. Вы пишете код на своем любимом языке, с применением всех привычных для вас языковых фич типо LINQ, лямбда-выражений, Generic`ов и async`ов. При этом вы имеете полный доступ ко всем возможностям SDK платформы и родному механизму создания UI, получая на выходе приложение, которое, строго говоря, ничем не отличается от нативных и (по крайней мере по заверениям) не уступает им в производительности.

                Фреймворк состоит из нескольких основных частей:
                Читать дальше
              • Читаем QR код

                • Tutorial
                Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

                В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

                Иллюстраций: 14, символов: 8 510.
                Читать дальше →
              • Фильтр Калмана

                • Tutorial


                В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
                Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
                Читать дальше →
              • Сравнение производительности JSON-сериализаторов для .NET

                Json в .NET может использоваться для разных целей. В моём случае это формирование ответа на Ajax-запрос в ASP.NET Mvc приложении. Конечно, конвертация ответа в JSON — не самое тонкое место, но мне стало интересно, как можно ускорить эту операцию. Настоящая статья не является детальным обзором существующих JSON-сериализаторов для .NET/Mono. Меня интересовало в первую очередь время, затрачиваемое на сериализацию относительно простых структур данных, и во вторую очередь маппинг. То есть, хочется чтобы сериализация легко и гибко программировалась и быстро работала.

                В исследование попали следующие средства сериализации:
                1. Простая конкатенация строк
                2. JavaScriptSerializer (.NET Framework)
                3. DataContractJsonSerializer (.NET Framework 3.5)
                4. Newton Json.net (json.codeplex.com, james.newtonking.com/pages/json-net.aspx)
                5. JsonEx (code.google.com/p/jsonexserializer)
                6. Fluent Json (fluentjson.codeplex.com, code.google.com/p/fluent-json)

                Читать дальше →
              • Логгирование приложения на C# в базу данных FireBird Embedded с помощью NLog 2.0

                Приступая к своему первому десктопному приложению на С#, я задался вопросом ведения логов. Изучив предложения по данной теме, за хорошие отзывы и отсутствие платы за использование, мой выбор пал на NLog 2.0. После чтения документации на сайте, а также местных статьей, я легко настроил вывод отладочной информации в текстовый файл. Но пытливый ум на месте не стоит, и так как в моем приложении используется база данных FireBird Embedded, то я решил настроить логгирование в нее. Вот тут я и получил пазл длиной в 5 часов.
                Читать дальше →
                • +22
                • 7.4k
                • 4
              • Повторная генерация исключений

                  Обработка исключений появилась в mainstream языках программирования вот уже более трех десятилетий назад, но сегодня все еще можно встретить разработчиков, которые боятся их использовать. Некоторые считают, что генерация исключений в конструкторе повредит их хрупкой карме и их настигнет кара в виде поддержки кода двадцатилетней давности, написанного стадом безумных индусов. Некоторые все еще застряли в эпохе языка С и даже в языке C# интенсивно используют коды возврата в виде магических чисел или даже строк, считая, что исключения придумали трусы, а настоящие самураи могут обойтись и без них. (Хотя мы-то с вами знаем, что настоящие самураи следуют “Принципу самурая” и никаких кодов возврата не используют).

                  Дополнительную сложность добавляют конкретные платформы и языки программирования. Сегодня на собеседовании C# разработчика, когда речь заходит об обработке исключений, обязательно прозвучит вопрос: “А в чем отличие “проброса” исключения с помощью конструкций throw; и throw ex;?”. И хотя, это страшный баян и большинство разработчиков давно знают правильный ответ на этот вопрос, в реальном коде встретить “некошерный” вариант очень даже просто.

                  Особенность платформы .NET заключается в том, что в ней не существует (а точнее, как мы вскоре увидим – не существовало) способа перехвата исключения в одном месте и последующего его генерирования в другом. Если разработчик бизнес-приложения или библиотеки сталкивался с такой задачей, то решалась она очень простым способом: исходное исключение заворачивалось в другой объект в виде вложенного исключения и пробрасывалось уже новое исключение.

                  Читать дальше →
                • Обзор двадцати двух бесплатных шрифтов с сайта Open Font Library: 16 шрифтов с кириллицею + 6 орнаментальных и спецсимвольных шрифтов

                    Сегодня я упоминал ужé о трудностях, с которыми сталкивается всякий, кто желает разыскать на сайте Open Font Library шрифты с поддержкою кириллицы. Фильтра по языкам нет; поиск по слову «cyrillic», как dimitrymd успел убедиться, находит только десяток шрифтов.

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

                    1. ConsolaMono
                    2. Crimson
                    3. Dataface
                    4. Designosaur
                    5. Didact Gothic
                    6. GNUTypewriter
                    7. Grana Padano
                    8. Jura
                    9. Neocyr
                    10. NotCourierSans
                    11. Old Standard
                    12. Pfennig
                    13. Press Start 2P
                    14. Sansus Webissimo
                    15. Triod Postnaja
                    16. VDS

                    «На закуску» я намерен также обозреть полдюжины шрифтов с различными спецсимволами да орнаментами:

                    1. Chess
                    2. FivefoldOrnamentsEtc
                    3. Futhark Adapted
                    4. Knots
                    5. UniCons
                    6. Web Symbols

                    Читать дальше →
                  • Удобная отладка Windows служб

                    Отладка Windows Service приложений не такая тривиальная задача как кажется. Проблема в том, что при отладке этого типа приложений нельзя воспользоваться стандартными средствами Visual Studio такими как точки останова (breakpoints) и прочими полезными инструментами. Всё из-за того, что Windows Service приложение не может быть зыпущено по F5 прямо из Visual Studio. Всё же, MSDN предлагает нам несколько способов для их отладки. Скорее всего многие разработчики даже и не сталкивались с ними до тех пор, пока не стали создавать свою первую службу. Это использование записей в журнал событий и подключение к процессу. Оба этих метода хорошо описаны в MSDN, но они позволяют произовдить отладку только уже запущенной службы. Из-за этого код, который производит сам запуск службы, в методе OnStart(), нельзя протестировать.

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

                    • Tutorial
                    Если в один прекрасный момент вам ударило в голову желание насадить разумное, доброе, вечное, и пересадить всех с SVN на GIT, сразу встают три проблемы:
                    • Объяснить зачем это нужно разработчикам и руководству
                    • Ввести в обиход новую схему работы с кодом
                    • Научить ничего не подозревающих девелоперов новым техникам
                    Читать дальше →
                  • Видео с HighLoad++: Константин Осипов (Oracle) — MySQL: проблемы роста

                      Еще один видеоролик с HighLoad++:

                      Константин Осипов (Oracle) говорит о проблемах роста проекта и его команды в докладе MySQL: проблемы роста

                      Часть первая, (25:03): video.mail.ru/corp/mf/2/3.html

                      Часть вторая: (25:23): video.mail.ru/corp/mf/2/4.html

                      Часть третья: (25:38): video.mail.ru/corp/mf/2/5.html

                      Часть четвертая: (08:13): video.mail.ru/corp/mf/2/6.html

                      Хороших выходных :)
                      • +17
                      • 4.6k
                      • 7