• Музыка из кейгенов. Как это работает?

      Еще давно очень многих интересовал один вопрос: «Эта программа занимает всего 100 кб, что за музыку она воспроизводит? Как это работает?»

      Так вот, называется это чудо – Трекерная музыка. И что самое главное – она занимает очень мало места, в отличие от .mp3 или .wav. В современных популярных ОС трекерные файлы (MOD, XM, S3M, IT и пр.) проигрываются большинством медиаплееров, например, Winamp, VLC, Amarok, Audacious и другими.

      Скачать такую музыку можно, например отсюда — keygenmusic.net, или отсюда www.modarchive.org. Это отнюдь не единственные ресурсы, стоит только обратиться к поиску.

      Для того, чтобы воспроизвести такую музыку в своей программе, нам потребуется минимальное знание C++, а также minifmod, доступный в исходниках. Как заявляют разработчики, minifmod добавит всего 50 кб к вашему exe-файлу (без учета сжатия).

      читать дальше
    • LINQ to SQL и конфликты параллельного доступа

        В первой части статьи мы изучили то, каким образом можно найти конфликт параллельного доступа и возможные способы их решения.
        Вторая часть статьи посвящена решению этого конфликта, при использовании LINQ to SQL.

        Во второй части статьи рассмотрено, как решать конфликты параллельного доступа в LINQ to SQL, и причины появления ChangeConflictException при попытке обновления записей, способы решения.
        далее много текста
      • Opera 10.50 (под Windows) и как подружить её с Silverlight

          Недавно, после того как обновил браузер Opera, сестренка попросила меня разобраться, почему вместо привычного плеера появилась странная картинка.
          Get Microsoft Silverlight


          Перешел на страницу установки… но увидел надпись Microsoft Silverlight may not be supported on this browser, и таблицу поддерживаемых браузеров (см. ниже), среди которых Opera не было. Но выход всё же был. Инструкция под хабракатом.
          Читать дальше →
        • Базы данных. Конфликты параллельного доступа (Часть 1 — поиск проблемы)

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

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

            Если к базе данных обращаться из нескольких соединений и проводить изменения, то возникновение конфликтов — это лишь вопрос времени и везения.

            Приложение само должно решать, какие действия ему необходимо сделать, чтобы решить этот конфликт. Например, ситуация может быть такая: администратор сайта зашел на страницу, отображающую данные обычного пользователя (администратор имеет возможность обновлять эти данные).Если после того, как страница администратора прочитает пользовательские данные из базы, и обычный пользователь обратиться к странице, отображающую его пользовательские данных, и внесет измения, то возникнет конфликт, когда администратор сохранит свои изменения. Если же конфликт не возникнет — то изменения обычного пользователя будут перекрыты и потеряны. Может быть и иначе — изменения администратора потеряны. Какое поведение должно быть верным в каждом конкретном случае — это и есть сложная проблема. Первый шаг — обнаружить её. Второй — разрешить. Есть два базовых подхода к разрешению конфликтов параллельного доступа — оптимистичный и пессимистичный.
            Читать дальше →
          • Новости от СКП в отношении произошедшего с Torrents.ru

              Следственными органами Следственного комитета при прокуратуре Российской Федерации по городу Москве расследуется уголовное дело, возбужденное по признакам преступления, предусмотренного ч. 2 ст.146 УК РФ (незаконное использование объектов авторского права, совершенное в крупном размере).

              По данным следствия, 26 января 2010 года житель города Москвы за денежное вознаграждение в размере 1,5 тысячи рублей записал на жесткий диск ЭВМ контрафактную программу «Autodesk AutoCAD» русская версия, авторские права на которую принадлежат компании Autodesk, стоимостью более 106 тысяч рублей.

              Читать дальше →
            • .NET и работа с неуправляемым кодом. Часть 2

                .NET и работа с неуправляемым кодом. Часть 2

                Тем, кто не читал первую часть — читать

                После выполнения первой части работ, создания структур, мне задачу усложнили. Библиотечка с которой мне нужно было работать — выделяла массив, размер которых не был известен до момента запуска. Он был динамический, т.е. чем больше данных — тем больше массив. Тут задача стала поинтереснее, т.к. старый способ, когда было достаточно использовать структуру, в которой этот размер был указан — уже не подходил.
                Читать дальше →
              • Как с помощью командой строки удалить приложение из системы

                • Translation
                Допустим у вас есть приложение, которое было установлено через MSI. И вы знаете только имя приложения (в данном случае, только первую часть названия). Для использования команды MSIEXEC требуется, чтобы вы знали GUID, но все программы имеют разные GUID, более того, даже разные версии программы могут иметь различный GUID. И вот решение, которое придумал Bill Lin's: он перебирает ключи реестра, чтобы получить этот самый GUID, у которого DisplayName начинается с определенного имени.

                Читать дальше →
              • .NET и работа с неуправляемым кодом. Часть 1

                  .NET и работа с неуправляемым кодом. Часть 1

                  .NET и работа с неуправляемым кодом

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

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

                  Мне не хотелось бы полностью описывать всю структуру взаимодействия, т.к. это заняло бы значительную часть статьи. В этой статье я опишу принцип взаимодействия на конкретных примерах, опишу способы выделения и очистки выделенной памяти.
                  Читать дальше →