Pull to refresh
26
0
Sergei Grigorev @sergei-grigorev

curious developer

Send message

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

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

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

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

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

читать дальше
Total votes 82: ↑67 and ↓15+52
Comments112

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

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

Во второй части статьи рассмотрено, как решать конфликты параллельного доступа в LINQ to SQL, и причины появления ChangeConflictException при попытке обновления записей, способы решения.
далее много текста
Total votes 41: ↑30 and ↓11+19
Comments14

Opera 10.50 (под Windows) и как подружить её с Silverlight

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


Перешел на страницу установки… но увидел надпись Microsoft Silverlight may not be supported on this browser, и таблицу поддерживаемых браузеров (см. ниже), среди которых Opera не было. Но выход всё же был. Инструкция под хабракатом.
Читать дальше →
Total votes 90: ↑58 and ↓32+26
Comments80

Базы данных. Конфликты параллельного доступа (Часть 1 — поиск проблемы)

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

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

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

Приложение само должно решать, какие действия ему необходимо сделать, чтобы решить этот конфликт. Например, ситуация может быть такая: администратор сайта зашел на страницу, отображающую данные обычного пользователя (администратор имеет возможность обновлять эти данные).Если после того, как страница администратора прочитает пользовательские данные из базы, и обычный пользователь обратиться к странице, отображающую его пользовательские данных, и внесет измения, то возникнет конфликт, когда администратор сохранит свои изменения. Если же конфликт не возникнет — то изменения обычного пользователя будут перекрыты и потеряны. Может быть и иначе — изменения администратора потеряны. Какое поведение должно быть верным в каждом конкретном случае — это и есть сложная проблема. Первый шаг — обнаружить её. Второй — разрешить. Есть два базовых подхода к разрешению конфликтов параллельного доступа — оптимистичный и пессимистичный.
Читать дальше →
Total votes 7: ↑5 and ↓2+3
Comments7

Новости от СКП в отношении произошедшего с Torrents.ru

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

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

Читать дальше →
Total votes 124: ↑78 and ↓46+32
Comments329

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

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

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

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

Как с помощью командой строки удалить приложение из системы

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

Читать дальше →
Total votes 14: ↑7 and ↓70
Comments4

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

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

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

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

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

Мне не хотелось бы полностью описывать всю структуру взаимодействия, т.к. это заняло бы значительную часть статьи. В этой статье я опишу принцип взаимодействия на конкретных примерах, опишу способы выделения и очистки выделенной памяти.
Читать дальше →
Total votes 53: ↑38 and ↓15+23
Comments24

Information

Rating
Does not participate
Location
Seattle, Washington, США
Date of birth
Registered
Activity

Specialization

Data Engineer
Senior