• BudgetTracker — ещё один open-source инструмент для личного учета финансов

      Почему?


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


      Какой тренд? Я богатею, или беднею?


      КДПВ

      image

      Читать дальше →
    • ObjectRepository — .NET in-memory repository pattern для ваших домашних проектов

        Зачем хранить все данные в памяти?


        Для хранения данных сайта или бекэнда первым желанием большинства здравомыслящих людей будет SQL база данных. 


        Но иногда в голову приходит мысль что модель данных не подходит для SQL: например, при построении поиска или социального графа нужен поиск по сложным связям между объектами. 


        Хуже всего ситуация, когда работаете в команде, и коллега не умеет строить быстрые запросы. Сколько времени вы потратили на решение проблем N+1 и на построение дополнительных индексов, чтобы SELECT на главной странице отрабатывал за разумное время?


        Другим популярным подходом является NoSQL. Несколько лет назад был большой хайп вокруг этой темы — для любого удобного случая разворачивали MongoDB и радовались ответам в виде json-документов (кстати, сколько костылей пришлось вставить из-за циклических ссылок в документах?).


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

        Читать дальше →
      • Интегрируем TeamCity с JIRA – без плагинов и администраторов

          Мы разрабатываем большое модульное UI-приложение, состоящее из большого количества плагинов с разными циклами релиза. Весь код располагается в одном репозитории, так что к разработчикам постоянно приходит QA-специалист и спрашивает: «А какой компонент поменялся? Какую версию выкладывать, чтобы проверить задачу?». Вопрос оказался актуален не только на UI (C#), но и на backend (Java). После наших опрометчивых обещаний все писать ручками я предложил автоматически формировать нужный список на базе изменившихся файлов в момент merge pull-request-а. В этой статье мы расскажем, как организовали это через расширение функциональности сборок на TeamCity (TC) без администраторских прав на сервере и установки внешних плагинов.

          Читать дальше →
        • Каталог квестов в реальности в Москве

            Год назад в Москве появились первые два квеста в реальности — «Советская Квартира» и «Психиатрическая больница» от Клаустрофобии. Все очень просто — вас запирают на час в помещении и вам надо найти выход. Никакой грубой силы, только адреналин, поиск вещей, и попытки придумать что со всем этим делать.

            Спустя год у меня за спиной 37 пройденных квестов, куча ответов на вопросы вида “посоветуй куда сходить”, “а что это за квест”, и т.д.
            Где-то после 15-го квеста мне стало лень запоминать где я был, а где нет, да и о пройденных квестах начал забывать, поэтому начал делать свой небольшой портал где можно было отмечать где я был и соревноваться с друзьями.

            Так начал появляться мой хобби-проект — EscapeTeams. Это такой каталог квестов, в котором можно отмечать квест где ты уже был, оставить о нем отзыв, и посмотреть список что еще не пройдено.
            Читать дальше →
            • +10
            • 6.5k
            • 8
          • Вход в систему по подключению определенной флешки

              Одним ужасным пятничным вечером мне стало интересно как реализован вход в систему(Windows 7) по отпечатку пальца, так часто использующийся на ноутбуках. Что меня большего всего интересовало – как сделана такая прозрачная интеграция с WinLogon(механизм входа в систему).

              С помощью знакомого я узнал что сие называется Credential Provider(по крайней мере начиная с Vista, до неё – был другой механизм). И тут-то я вспомнил что давно хотел сделать чтобы система разблокировалась при подключении одной определенной флешки. Поэтому я захотел быстренько наваять такой проект.
              читать дальше
            • WPF4 и Taskbar в Windows 7: Кнопки предпросмотра(Thumbnail buttons)

              • Translation
              У панели задач Windows 7 есть много способов для приложений предоставлять уникальную информацию чтобы сделать UX ещё круче. Одна из них рассматривается в этой статье — кнопки панели предсмотра на таскбаре.

              Существует вероятность что вы уже используете несколько приложений использующих эту функциональность. Вот скриншот приложения Zune с 4мя кнопками предпросмотра.


              Читать дальше
            • Ограничение маршрутов в ASP.NET MVC

              • Translation
              Одна из реально удобных вещей в расширяемости ASP.NET MVC — это возможность накладывать ограничения и писать собственные ограничения для ваших маршрутов. Я склонен считать что добавление ограничей маршрутов(когда это возможно) — это отличная практика. Почему бы когда невалидные значения маршрута передаются в ваше приложение не позволить фреймворку ASP.NET MVC и модулю маршрутов самим заняться валидацией?

              узнать подробнее
            • Как сплагиатить удобную утилиту для показа зарядки ноутбука?

                Всё началось с того что я увидел утилиту от IBM/Lenovo для показа заряда батареи ноутбука в непривычном месте — в таскбаре/супербаре, но не в виде значка, а как панель(аналогичные используются для управления проигрывателями iTunes, WMP, Zune):



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

                Именно так я решил написать своё решение. Писать будем на C++. Я писал в Visual Studio 2010, можно использовать предыдущие версии. Главное — наличие установленного Windows SDK(ставится отдельно от студии, доступен бесплатно, скачать можно например тут)

                Вот что у меня получилось:

                Моя панелька
                Читать дальше →
              • C# 4.0, и несуществующие методы

                • Translation
                Предупреждение: Нижеследующее многие сочтут извращением с C#. Возможно конечно это и не так, но я Вас предупредил:).

                В Ruby есть интересная особенность для перехвата вызовов несуществующих методов. В таких случаях Ruby вызывает метод вашего класса с названием «method_missing». Автор этого текста показывал пример этого на IronRuby в другой статье.

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

                Не было до текущего момента!(Барабанная дробь)
                Читать дальше →
              • C# + WPF + сторонние сборки -> один .exe-шник

                  Бывает приходится разработать маленькое приложение на C# и WPF, однако в следствие использования сторонних сборок(например SharpZipLib, Unity) — получается так что на выходе у нас кроме нашего маленького .exe-шника получается ещё и куча .dll-ок, а нам нужно чтобы был именно один .exe-шник.
                  Читать дальше →