Как проверить ИНН

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

Если кратко, то первые две цифры — это код региона (у меня 92 — код Татарстана), следующие две цифры — год выпуска бланка паспорта (у меня 03 — 2003-й год, но паспорт выдан в конце 2002 года), остальные цифры — просто порядковый номер. Номер свозной (т. е. если в год закончился на номере 003500, то в следующем году первый номер будет 003501), начинается с 101 и заканчивается цифрами 999999, при переполнении нумерация начинается с номера 101.

Из этого правила есть исключение — 1997 г. в связи с какими-то причинами были выпущены паспорта́ специального тиража, к ним эти правила не применимы.

Оставить комментарий

Как узнать есть ли шрифт

Очень оригинальный JavaScript нашёлся на просторах интернета — JavaScript font detection, т. е. скрипт, который обнаруживает — есть ли у пользователя определённый шрифт или нет.

Принцип прост — скрипт проверяет не является ли имя шрифта, которое запрашивается, шрифтом по-умолчанию. Если является, то сообщается, что шрифт есть, если нет, то запрашиваемым скриптом пишется фраза, а потом её получившийся размер (точнее размер охватывающего контейнера) сравнивается с той же фразой, написанной шрифтом по-умолчанию.

Если размеры совпадают, значит шрифта нет.

Оставить комментарий

Альтернативная «Опера Мини»

Opera Mini (2.42КиБ)

Многие пользователи сотовых телефонов с поддержкой Java используют Opera Mini, не все знаю, что есть модификации этого замечательного браузера. Лично я использую модификацию с сайта wapland, очень рекомендую, кратенький список изменений доступен на странице FAQ.

Оставить комментарий

Разделяемая память

Удивительная вещь — до появления memcached никто, как будто бы, и не знал о существовании разделяемой памяти. Сейчас memcached почему-то называют лучшим решением. Это не так — у этого решения есть особенности, которые в некоторых проектах делают его не лучшим выбором. Memcached хорош двумя вещами — он позволяет держать данные в едином хранилище (например, несколько frontend делят общий кеш) и объединять несколько серверов (масштабируемость). Другие его особенности делают его выбор в некоторых проектах нерациональным (в других — напротив, лучшим решением), а именно: отсутствие блокировок (нельзя заблокировать какой-то ключ, прочитать, вычислить новое значение, разблокировать) и работа через TCP/IP.

Кроме того, у memcached есть особенность, которую тоже надо учитывать. Есть случаи, когда memcached может удалить данные из кеша, вот комментарий разработчика Анатолия Воробья:

Есть набор классов по величине памяти — например, в самом простом и дефолтном варианте, есть класс размером в 128 байт, потом 256 байт, потом 512, 1k, 2k итд. до 1Mb. Если какая-то запись (ключ+значение+ дополнительные заголовки) занимает, скажем, 1.5k, под нее отводится кусок из класса в 2k, т. е. кусок размером в 2k, и она в него пишется.

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

Ссылки на другие способы доступа к разделяемой памяти есть в аннотации к модулю PEAR System::SharedMemory.

Оставить комментарий

PSP

Продолжаю освоение Sony PSP. За месяц пользования выяснилось, что самые интересные игры — те, что распространяются на UMD. Стоят они около 700-1500 рублей, но, к счастью, есть альтернатива — в интернете можно найти образы этих дисков в формате ISO, DAX или CSO. Запускают такие игры, обычно, через особые программы, но мне больше нравится использовать особую прошивку — её изготавливает некто Dark_Alex.

Последняя, на данный, момент версия (базируется на прошивке 2.71) называется Custom Firmware 2.71 SE-B» и позволяет запускать ISO- или CSO-образы прямо с флеш-карты (из папки ISO), причём даже без наличия UMD-диска в приводе (режим NO-UMD, читайте руководство к прошивке). Лучше до обновления создать в корне папку ISO, одно из обновлений виснет, если этой папки нет. CSO — один из способов упаковки ISO, об этом я расскажу в следующих статьях.

С образами в формате DAX и JSO (это другие варианты упакованных ISO) прошивка не работает, но это не проблема — образ можно распаковать программой Daxter Creator (интерфейс не английский, но разобраться несложно) или утилитой Dax Creator, которая запускается из командной строки. Обе утилиты запускаются только под Windows.

К прошивке есть разнообразные патчи, например, для фонового проигрывания музыки или для изменения частоты процессора (основной процессор может работать с максимальной скоростью 333Mhz, это не разгон — в Sony снизили его частоту для экономии батареи) и т. п. Как оказалось, даже IR Shell нормально уживается с этой прошивкой, в файле описания внутри файла eboot.pbp этой программы нужно изменить значение одного ключа, впрочем, в сети можно найти уже перепакованный «IRShell».

Кстати, мне ещё очень понравилась программа «X-Flash», она позволяет изменять кое-какие настройки в прошивке (поддерживается и версия 2.71 SE-B»). В целом, она очень полезна — я, например, с её помощью отключил надоедливый звук и ролик при запуске программ.

Оставить комментарий