Класс для работы с диапазонами чисел.

Точнее, написать надо было класс, который сможет проанализировать строку, где через запятую перечислены числовые значения, как одиночные, так и заданные отрезками: НачальноеЧислоКонечноеЧисло.
НачальноеЧисло должно быть меньше КонечноеЧисло.
Например: 1, 114, 21-30. И в дальнейшем показать, входит ли заданное значение в ранее установленный диапазон. Но заодно уж добавил и остальные функции. Строки такие, например, встречаются в окне печати Word (номера страниц)
Свойства класса:
bool AllowRepeats — В случае истинности значения AllowRepeats в диапазоне разрешены повторы значений.
2 конструктора — 1 создает класс с AllowRepeats==true, 2 позволяет задать AllowRepeats
Методы:
AddInDiapason (long Value) — Добавляет в диапазон значение Value
AddInDiapason(long StartValue, long EndValue) — Добавляет в диапазон значения, начиная со StartValue и заканчивая EndValue включительно
AddFromString(string DiapasonString) — добавляет в диапазон значения из вышеописанной строки, если не получилось возвращает false.
Clear() — Очищает значения диапазона
InDiapasonCount(long Value) — Возвращает, сколько раз встречается значение Value в диапазоне.
SortDiapason(SortOrder Order) — Сортирует диапазон по возрастанию или убыванию в зависимости от заданного параметра Order
SortOrder описана как:

public enum SortOrder
{
byAscending = 0,
byDescending = 1
}


ToArray() — Возвращает массив, содержащий значения диапазона.
InDiapason(long Value) — Проверяет, входит ли значение Value в диапазон (возвращает true или false)
GetIndexes(long Value) — Получает индексы элементов, равных значению Value
RemoveAt(int Index) — Удаляет элемент с индексом Index, генерирует исключение если индекс вне диапазона.
Remove(long Value) — Удаляет из диапазона все значения Value
Remove(long StartValue, long EndValue) — Удаляет из диапазона все значения, начиная со StartValue и заканчивая EndValue
RemoveInDiapason(string DiapasonString) — Удаляет из диапазона все значения, заданные строкой DiapasonString
GetValue(int Index) — Возвращает значение элемента с индексом Index
SetValue(int Index, long Value) — Устанавливает элементу с индексом Index значение Value
ReplaceValue(long OldValue, long NewValue) — Заменяет в диапазоне значения равные OldValue на значения NewValue
MaxValue(out long Value) — Возвращает максимальное значение элемента диапазона в переменную Value. Возвращает false в случае, если диапазон не заполнен значениями.
MinValue(out long Value) — Возвращает минимальное значение элемента диапазона в переменную Value. Возвращает false в случае, если диапазон не заполнен значениями.
Скачать исходник класса
Скачать демо

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/192739.html
Прокомментировать заметку можно по ссылке выше.

Калькулятор регулярных выражений

Накодилось тут, случайно, походу другого проекта.
-можно ввести регулярное выражение, паттерн, и строку замены Match.Result
— ищет все совпадения в паттерне и выдает их и результат работы Match.Result
— умеет замену (Regex.Replace)
-умеет IsMatch
-умеет сохранять данные в файл и загружать их.
Visual Studio 2008
.NET Framework 2.0
Программа (Yandex.Disk)
Исходник (Yandex.Disk)
Программа (Mega.nz)
Исходник (Mega.nz)
UPD: Появилась еще идея, навеянная LovinGOD’ом все-таки накодить утилиту, занимающуюся учетом рабочего времени, она же напоминалка о регулярных делах, она же органайзер. Но это позже. Я ж не работаю и бухгалтерия мне особо не нужна.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/190132.html
Прокомментировать заметку можно по ссылке выше.

Искал альтернативу Яндекс.Диску

Бо из нерашки он как-то хреново работает. Решыл таки попробовать http://mega.co.nz
Непонятно что, конечно, но фишка при регистрации прикольная.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/181504.html
Прокомментировать заметку можно по ссылке выше.

Перенос текста в кнопке HTML

Понадобилось. Погуглил — в видимых пределах народ говорит, что это невозможно, либо предлагает всяческое шаманство с CSS и JavaScript, чего ради такой задачи не очень хотелось. Ларчик открылся довольно просто, во всяком случае в Firefox оно сработало. Оказалось, что достаточно в нужное место добавить перенос строки n, вот так, например:

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/180712.html
Прокомментировать заметку можно по ссылке выше.

Программно вернуться на предыдущую страницу или перейти к определенной странице

с помощью php + javascript

Если надо не назад, а куда-нибудь, то делаем так:

Необходимо помнить, что при вызове history.back() назад, конечно, вернется, но страничка не обновится, т.к. скорее всего загрузится из кэша браузера. Это надо учитывать, если при возврате назад, необходимо обновить какие-то данные. Вот в таком случае (удаление файла), например:

где:

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/180432.html
Прокомментировать заметку можно по ссылке выше.

disabled элементы формы HTML и пост-запрос

Оказывается, если элемент в форме disabled, то в $_POST он не попадает.
Поэтому если что-то disabl’ить — данные надо передавать в скрытых полях.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/180221.html
Прокомментировать заметку можно по ссылке выше.

Любой ад


Транзакцию отменил, зато ляп хороший увидел.
Я всегда знал, что Яндекс он да, и туда сможет.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/174668.html
Прокомментировать заметку можно по ссылке выше.

Переходник DIN-5 to PS/2

По просьбам возвращаюсь к напечатанному.
Обратная задача (как сделать переходник PS/2 to DIN-5) разбиралась тут, поэтому просто даю схему переходника.


Крупный вариант

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/172070.html
Прокомментировать заметку можно по ссылке выше.

Теперь понимаю бухов

Почему они такие нервные.
Сцуко! В Excel’е же формулы на некультурном языке, еще и с мерзкой Ё
Конечно, тут поневоле охуеешь.
Оторвать бы руки тому пидарасу (не путать с геями), который ТАК извратился.
А задача которая в C# решается с помощью 2 строк кода… лучше не продолжать.
В общем добавляю к двум уже известным извращениям (хоккею на траве и балету на льду) третье — формулы и операторы на некультурном.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/171766.html
Прокомментировать заметку можно по ссылке выше.

Помогите по старому железу…

Господа, товарищи и прочие. Первый раз в жизни не я победил железо, а железо меня.
Досталася мне олдовая нонеймовая плата видеозахвата на чипе BrookTree Bt 848, дрова найти никак не могу, разные рекомендуемые универсальные драйвера (от Ускова или от Eduardo Jose Tagle) не подходят от слова совсем. Т.е. устанавливаться-устанавливаются, но своих функций не выполняют. DScaler 4, если ему вручную установить модель карты Avermedia TVPhone, Hauppauge (old) или MM100PCTV и тюнер Philips [PAL] или Philips [PAL / DK] ловит каналы даже без дров, но звук настроить не удается вообще.
Родных драйверов нет, и где их взять неизвестно, ибо диск, коробка и прочее канули в Лету.
Похожих карт было выпущено три вагона, от разных производителей и большая часть с небольшими но критичными различиями. Если кто сможет по маркировке определить что это за карта конкретно буду дико благодарен.
Маркировка на чипе видеозахвата
BT848AKPF
BF7394.3 9810
Маркировка на тюнере
Philips
3139 147 1392L
FM 1256/PH hm
SV 219809
Входы на плате:
S-Video/Композитный/TV-антенна/FM-антенна
На обратной стороне платы наклейка с серийным номером:
S/N 3308 8040

Upd я нашел другую плату, но и эту хочу настроить. так что если кто что знает все равно прошу отписываться

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/169095.html
Прокомментировать заметку можно по ссылке выше.

Переходник PS/2 to DIN-5. Видеоинструкция по сборке и тестирование.


http://youtu.be/QTvuJhT3Qmg
Текстовая версия
Скачать в формате DOC

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/168680.html
Прокомментировать заметку можно по ссылке выше.

Паяем переходник PS/2 to DIN-5 для подключения PS/2 клавиатуры к старому компьютеру.

Захотел однажды мой товарищ реанимировать пылящийся на полке PII, для установки на него 98-й винды и последующего поиграния в олдовую Worms Armageddon. Но возникла проблема – на старом компьютере разъем для клавиатуры DIN-5, а клавиатура имеется в наличии PS/2. Поскольку, в интернетах мануалы по сборке переходника были какие-то корявые, решил написать свой.
Можно, конечно, было решить задачу по-иному, просто подпаяв штекер DIN-5 с «хвостом» к проводу PS/2 клавиатуры, но это показалось ненадежным – вдруг клавиатура сломается. Поэтому будем делать переходник.
Требуется уточнить, что клавиатуры с разъемом DIN-5 электрически и логически совместимы с клавиатурами PS/2, т.е. они используют одинаковые напряжения питания и сигналы от PS/2-ных клавиатур для компьютера ничем не отличаются от клавиатур с разъемом DIN-5. Посему задача сводится лишь к тому, чтобы все правильно собрать и припаять соответствующие контакты штекера DIN-5 (папа), который втыкается в нашу материнку, к гнезду PS/2, куда будет подключаться PS/2-я клавиатура.

Итак, требуемые компоненты

1. Прямые руки
2. Паяльник или паяльная станция
3. Штекер DIN-5 (папа) и соединительные провода.
4. Гнездо PS/2 (мама)
Где взять первые 2 компонента – разбирайтесь сами. 🙂
Штекер DIN-5 можно взять от старой неработающей клавиатуры, также он может встретиться в магазинах музыкальных товаров. Коннекторы DIN-5 до сих пор используются для коммутации аудиооборудования. Можно также заказать штекер через Интернет, например, здесь.
У нас был DIN-5 штекер с куском кабеля от старой клавиатуры, по слухам погибшей от рук бойца ВДВ, от удара о головную кость оного.
PS/2 разъем можно выпаять со старой материнской платы. Правда, без паяльной станции, операция выпаивания может оказаться весьма геморройной (мы так одно гнездо в процессе убили), поэтому второе гнездо было, не мудрствуя лукаво, выпилено ножовкой прямо с куском материнской платы. Была б паяльная станция – сделали бы аккуратнее. PS/2 разъем, впрочем, также можно заказать через Интернет или купить в магазине электронных товаров и запчастей.
Внешний вид коннектора и гнезда

Коннектор DIN-5:

Гнездо PS/2:

Собственно распайка

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

Крупный вариант.
На этом все. Берите в руки паяльник, похмеляйтесь, чтоб руки не дрожали и приступайте.
Готовый продукт


UPD:
Добавили видео
Скачать в формате DOC (Yandex.Disk)
Скачать в формате DOC (Mega.NZ)

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/167994.html
Прокомментировать заметку можно по ссылке выше.

Глюк в последней Sysinternals suite

Решил тут обновить… На свою дурную голову.
При первом запуске некоторых утилит пропадают кнопочки в окошке принятия лицензионного соглашения.
Реально не принимается лицензионное соглашение!
Если такое случилось можно попробовать нажать Alt+F4 и перезапустить утилиту. Но глюк плавающий и может повториться. В таком случае можно использовать команду %utilitename% /accepteula, например junction.exe /accepteula
UPD:
Второй вариант для ленивых — воспользоваться reg-файлом (Yandex.Disk). Reg-файл (Mega.NZ)

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/163771.html
Прокомментировать заметку можно по ссылке выше.

Некоторые ссылки по вопросу I2P в Linux

И настроек I2P в локальной сети.
Поскольку мне все некогда дописать объемную статью по настройке машины с Puppy Linux в качестве I2P-роутера для домашней сети, а народ вдруг чего-то про это вспомнил и начал требовать, просто оставлю некоторые полезные ссылки. Дабы и у меня не пролюбились. Напишу обязательно, дайте только с делами разобраться.
Краткий HOW-TO для внедрения в I2P (мануал для FreeBSD с подробными пояснениями и SSL’ом даже). Сразу говорю, в моем мануале SSL не будет, мне лень и некогда.
Как настроить интерфейс I2P-роутера для дальнейшего входа в него с другого компьютера в локальной сети. картинка копия взято отсюда

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/151130.html
Прокомментировать заметку можно по ссылке выше.

Про детекцию TOR-адресов в комментариях

Проверить, пишет ли кто-либо из под Tor весьма просто (при условии, что известен IP).
База данных Tor’овских айпишников открыта и постоянно обновляется. Лежит здесь
Заодно уж набыдлокодилась небольшая утилита, получает с этого сайта либо список с полными данными (в формате CSV), либо простой список IP адресов — текстовый файл, на каждой строчке которого отдельный IP.
Опции формата CSV настраиваются (на случай, если изменится), все вроде интуитивно понятно, а хелп писать пока лень, в ближайшие дня три напишу.
Утилиту можно скачать тут Исходники здесь.
Проге требуется .NET Framework 2.0 (или выше) и доступ к интернету для обновления БД адресов. В опциях можно поставить автообновление БД при запуске.
Веник не уйдет!

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/150664.html
Прокомментировать заметку можно по ссылке выше.

Ростелеком признался в собственной кривожопости

Ответили все-таки:

Уважаемый Николай Павлович,
в ответ на Ваше обращение сообщаем.
Доступ к Интернет-сайту http://www.chaognosis.tk/ ограничен в соответствии с Представлением Прокуратуры Новосибирской области от 13.12.2011 № 27-151-0011.
ОАО «Ростелеком» не располагает информацией о причинах отсутствия адреса данного Интернет-ресурса в «Едином реестре доменных имен, указателей страниц сайтов в сети Интернет и сетевых адресов, позволяющих идентифицировать сайты в сети Интернет, содержащие информацию, распространение которой в Российской Федерации запрещено».
Сожалеем о сложившейся ситуации, выражаем надежду на понимание.
И.о. начальника отдела по работе с претензиями
П.П. Ставничий

С учетом того, что домен chaognosis.tk зарегистрирован позже 13.12.2011, значит он блокируется вместе со всеми доменами .tk, на которых установлен редирект. Как я и писал в предыдущем посту. Вывод — ростелекомовцам срочно необходима операция анальной резекции, чтоб решить проблемы с их руками окончательно.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/145070.html
Прокомментировать заметку можно по ссылке выше.

Про .tk

Оказывается, кривожопый Ростелеком блокирует домены .tk пачками. Причем, походу только те, на которых установлен редирект, у которых нормальные DNS-записи, в т.ч. и домены самого регистратора открываются. Хрен знает что такое — попытки получить объяснения у службы техподдержки кривожопого ростелекома успеха не имеют. По 8-800 … номеру сидит тупая пизда, которая отправляет на сайт этого самого ростелекома. На обращения с сайта служба техподдержки не реагирует абсолютно.
Просто феерические дерьмоуебки. Надеюсь, когда нибудь Мизулиной и директору ростелекома запихают их закон в анус, вместе с десятком метров сетевого кабеля.

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/144717.html
Прокомментировать заметку можно по ссылке выше.

Демки на осциллографах

Ну не могу я на эту рожу постом ниже смотреть. Поэтому никакого ката нахрен.
Анимэшка особенно чудесна.


Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/140774.html
Прокомментировать заметку можно по ссылке выше.

Запуск FTP-сервера PureFTPd из командной строки в PuppyRus Linux.

И заодно немного про автозагрузку.
В прошлой заметке по поводу FTP-сервера мы настраивали для его корректной работы отдельного пользователя и запускали его при помощи встроенной в оболочку графической утилиты. Сейчас речь пойдет о том, как управлять им с командной строки.
Read more…

Это перепост заметки из моего блога на LJ.ROSSIA.ORG
Оригинал находится здесь: http://lj.rossia.org/users/hex_laden/139976.html
Прокомментировать заметку можно по ссылке выше.