Sunday, December 1, 2013

Монгол бичгийг вэбэд дүрслэх

Эх монгол бичгээ хэрэглэх хүсэл, тэр тусмаа вэбэд алдаагүй, дүрслэх хүсэл олон хэрэглэгч, хөгжүүлэгчдэд байдаг байх. Олон үйлдлийн системүүдэд фонт, гарын драйвер суулгах гэх мэтээр өөр өөрийн аргаар дүрслэх арга хэрэгслүүдийг хэрэгжүүлж байгаа ч өнөөг хүртэл крилл, латин үсэгтэй адил хялбар хэрэглэх боломж үүсээгүй л байна.

Харин саяхан Амаржаргал хэмээх залуугийн хийсэн драйвер, шинэ фонт http://mongoltolbo.com/hutuch/ хаяг дээр гарсан байна. Вэб-д Монгол бичиг дүрслэх боломжуудад нэлээн үсрэлт хийхийн эхлэл болох болов уу гэж бодогдов.



Ubuntu үйлдийн систем дээр Firefox дээр алдаагүй дүрслэгдэж байв.

᠂᠂᠂ ᠰᠡᠳᠭᠢᠯ ᠤᠷᠮᠠᠰ ᠪᠠᠳᠠᠷᠠᠨ ᠪᠠᠬᠠᠲᠤᠮᠤ᠂ ᠦᠰᠦᠨ ᠪᠤᠭᠤᠷᠤᠯ ᠥᠲᠡᠭᠦᠰ ᠪᠢ!
ᠬᠤᠲᠤᠭ ᠥᠯᠵᠡᠢ ᠪᠦᠷᠢᠳᠦᠭ᠍ᠰᠡᠨ ᠬᠤᠪᠢ ᠶᠡᠬᠡ ᠵᠠᠶᠠᠭᠠᠲᠤ ᠲᠦᠮᠡᠨ ᠦ ᠮᠢᠨᠢ


Монгол улсын ерөнхийлөгчийн албан ёсны сайтын Монгол Бичиг дээрхи хувилбар гарсан нь ихэд таатай харагдав. http://www.president.mn/mng/

Эх монгол бичиг дээр олон олон сайтууд гарч, мартагдах шахсан бичиг үсэг эргэн түгэн дэлгэрэх болтугай.

Монгол бичгийн цахим дүрслэлтэй холбоотай мэдээлэл, холбоосууд:

http://monscript.blogspot.com/
http://mongolian-script.blogspot.com/

Monday, November 25, 2013

PHP: Монгол хэл дээрхи SLUG функц

Гайгүй Slug функц хайж яваад https://gist.github.com/sgmurphy/3098978 нэг ийм функц олов.


Жаахан засвар хийгээд Монгол үсгүүдийг авдаг болгов.
function url_slug($str, $options = array()) {
            // Make sure string is in UTF-8 and strip invalid UTF-8 characters
            $str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());

            $defaults = array(
                    'delimiter' => '-',
                    'limit' => null,
                    'lowercase' => true,
                    'replacements' => array(),
                    'transliterate' => true,
            );

            // Merge options
            $options = array_merge($defaults, $options);

            $char_map = array(
                    // Latin
                    'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
                    'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
                    'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O',
                    'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
                    'ß' => 'ss',
                    'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
                    'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
                    'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',
                    'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',
                    'ÿ' => 'y',

                    // Latin symbols
                    '©' => '(c)',

                    // Greek
                    'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',
                    'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P',
                    'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',
                    'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I',
                    'Ϋ' => 'Y',
                    'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',
                    'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',
                    'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',
                    'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's',
                    'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i',

                    // Turkish
                    'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',
                    'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',

                    // Mongolian / Russian
                    'А' => 'А', 'Б' => 'Б', 'В' => 'В', 'Г' => 'Г', 'Д' => 'Д', 'Е' => 'Е', 'Ё' => 'Ё', 'Ж' => 'Ж',
                    'З' => 'З', 'И' => 'И', 'Й' => 'Й', 'К' => 'К', 'Л' => 'Л', 'М' => 'М', 'Н' => 'Н', 'О' => 'О', 'Ө' => 'Ө',
                    'П' => 'П', 'Р' => 'Р', 'С' => 'С', 'Т' => 'Т', 'У' => 'У', 'Ү' => 'Ү' , 'Ф' => 'Ф', 'Х' => 'Х', 'Ц' => 'Ц',
                    'Ч' => 'Ч', 'Ш' => 'Ш', 'Щ' => 'Щ', 'Ъ' => 'Ъ', 'Ы' => 'Ы', 'Ь' => 'Ь', 'Э' => 'Э', 'Ю' => 'Ю',
                    'Я' => 'Я',
                    'а' => 'а', 'б' => 'б', 'в' => 'в', 'г' => 'г', 'д' => 'д', 'е' => 'е', 'ё' => 'ё', 'ж' => 'ж',
                    'з' => 'з', 'и' => 'и', 'й' => 'й', 'к' => 'к', 'л' => 'л', 'м' => 'м', 'н' => 'н', 'о' => 'о','ө' => 'ө',
                    'п' => 'п', 'р' => 'р', 'с' => 'с', 'т' => 'т', 'у' => 'у', 'ү' => 'ү', 'ф' => 'ф', 'х' => 'х', 'ц' => 'ц',
                    'ч' => 'ч', 'ш' => 'ш', 'щ' => 'щ', 'ъ' => 'ъ', 'ы' => 'ы', 'ь' => 'ь', 'э' => 'э', 'ю' => 'ю',
                    'я' => 'я',

                    // Ukrainian
                    'Є' => 'Є', 'І' => 'I', 'Ї' => 'Ү', 'Ґ' => 'G',
                    'є' => 'є', 'і' => 'i', 'ї' => 'ү', 'ґ' => 'g',

                    // Czech
                    'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',
                    'Ž' => 'Z',
                    'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u',
                    'ž' => 'z',

                    // Polish
                    'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z',
                    'Ż' => 'Z',
                    'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',
                    'ż' => 'z',

                    // Latvian
                    'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',
                    'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',
                    'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n',
                    'š' => 's', 'ū' => 'u', 'ž' => 'z'
            );

            // Make custom replacements
            $str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);

            // Transliterate characters to ASCII
            if ($options['transliterate']) {
                    $str = str_replace(array_keys($char_map), $char_map, $str);
            }

            // Replace non-alphanumeric characters with our delimiter
            $str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);

            // Remove duplicate delimiters
            $str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);

            // Truncate slug to max. characters
            $str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');

            // Remove delimiter from ends
            $str = trim($str, $options['delimiter']);

            return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str;
    }

Sunday, November 10, 2013

HTML Page print дээрхи url, header-ийг арилгах



@page
{
size: portrait;
margin:0cm;
}
@page rotated { size : portrait }
table { page : rotated }
@media print{
body{ background-color:#FFFFFF; background-image:none; color:#000000 }
#ad{ display:none;}
}

@page дээр margin: 0; нөхцлийг зааж өгөхөд зураг дээр харагдаж буй огноо, url хаяг шахагдаж алга болох нь ээ

Tuesday, May 28, 2013

ХОВЧ ШААЗГАЙ буюу JIRGEE.QUOTE.MN

Дийлэнхи твиттер хэрэглэгчдийн хувьд өөрийн дагагчдаа эргүүлэн дагах бяцхан дадал, соёл бий болсон байдаг. Олон хүн дагаад, дагуулаад эхлэхээр үүнийг гар аргаар хянах боломж хомс. Олон онлайн түүл (refollow.com, justunfollow.com, unfollowers.me) байдаг хэдий ч эдгээр төлбөртэй үйлчилгээг санал болгодог, үнэгүй туршиж үзэхэд дагах, дагуулах тоо нь хязгаарлалттай байдаг учир байнгын хэрэглээ болгон хэрэглэхэд өртөг зардал ихтэй.

  • Харин http://jirgee.quote.mn/-нь
    ямар нэгэн хязгаарлалтгүйгээр дагах/цуцлах боломжтой. 
  • 1400 тэмдэгтээр жиргэх 
боломжыг эхний ээлжинд хангаж өглөө.

Сэтгэл гаргаж хийсэн өчүүхэн аппликэйшнийг минь тухлан сууж таалан болгооно уу. Санал хүсэлт, сэтгэгдэл, зөвлөмжийг @GansukhB твиттер хаяг дээр хүлээн авна. Эсвэл сэтгэгдэл хэсэг дээр бичиж үлдээнэ үү.

Wednesday, July 20, 2011

All Images has been converted to PDF!

Скайнердаж оруулсан хуудсууд гэх мэт зургийн файлаар байгаа зүйлсийг pdf рүү хөрвүүлэх шаардлага урьд нь нэлээд таарч байлаа. Үүнийг шийдэхийн тулд OpenOffice-оо нээгээд зургуудаа оруулаад хуудсаа дүүртэл нь сунгаад PDF file format руу хөрвүүлэх бодол хамгийн түрүүнд орж ирэв. Гарын арван хуруунд багтах тооны хуудас бол асуудалгүй. Гэтэл хэдэн зуу, хэдэн мянган хуудсыг гараар бэлтгэнэ гэдэг үнэхээр залхуутай ажил.

Залхуугийхаа хүчээр энэ талаар Google-с хайж үзтэл ImageMagick нэртэй гайхалтай програм байдаг юм байна.

$ sudo apt-get install imagemagick

гээд суулгачихна.

$ cd <зургууд байрлаж буй хавтас>

$ convert *.jpg foo.pdf

гэвэл тухайн хавтсанд байгаа бүх jpg өргөтгөлтэй файлуудыг дарааллаар нь foo.pdf болгож нэгтгэн хөрвүүлнэ. Гайхалтай хялбар биш үү?

Зөвхөн байгаа зургуудыг нэгтгэж pdf болгохоос гадна өнгөнүүдийн элдэв тохиргоо, маск, зургийн хэмжээг шахах, элдэв эффэкт өгөх, эргүүлэх гэх мэт зурагтай холбоотой бүхий л боломжууд өгөгдсөн юм байна. Үүнийг нь

$ convert -h

командаар дэлгэрэнгүй хараарай.

Sunday, July 10, 2011

Ubuntu 11.04 a few problems with sound

Ubuntu 11.04 дээр зарим нэг дууны холбогдолтой програмуудын ажиллагаа асуудалтай байв.

Эхлээд Tuxguitar програмыг ажиллуулаад дууг нь тоглуулах гэтэл дуу нь огт гарахгүй байна. Элдэв ALSA драйвер, сан суулгаад нэмэр байдаггүй. Timidity гэгч midi дууны сан бүхий програмыг суулгаад

timidity -EFreverb=0 -iA -Os

командыг өгч ажиллуулж өгч орхиод tuxguitar-аа нээгээд дуу тоглуулж болж байв.

* * *

gtick хэмээх metronome багажыг ажиллуулах гэтэл

Couldn't start metronome.
Please check if specified sound device
and sample file are accessible.

гэсэн алдааны мэдээлэл гарч ирэв. Google-ээс хайж хэдэн хэдэн хэлэлцүүлгийн сэдвүүдийг нээж үзтэл preference дотроос дууныхаа төхөөрөмжийг /dev/dsp /dev/dsp1 гэх мэтээр өөр өөрөөр зааж өгвөл ажиллана гэнэ. Оролдож үзээд үр дүнгүй. /dev хавтасыг сөхөөд үзвэл dsp нэртэй ямар ч дууны төхөөрөмж алга.

Тэгтэл /dev/dsp нь OSS (Open Sound) гэгч зүйлийн хэсэг байсан ч элдэв шалтгааны улмаас линуксын сүүлийн үеийн хувилбаруудад ашиглагдахаа больжээ. Гэхдээ үүнийг padsp хэмээх багажийн тусламжтай ашиглаж болох гэнэ.

padsp gtick

командыг өгтөл ажиллаж байна. Ашгүй гэж.

Friday, May 20, 2011

Add a audio track to video with VLC player

Сайн чанарын видео оптик дискүүд (DVD, BluRay) дээр кино бичлэгүүд дотроо олон тооны (хэлний сонголтоор) audio track, subtitle track-уудыг агуулж, үзэгч өөрийн таалалд нийцүүлэн тэдгээрээс сонгож үзэх боломжийг нэлээд сайн хангаж өгч байгаа. Харин түүнийг RIP-лэж авахадаа дүрс, дууг салгаж авсан тохиолдолд хамтад нь тоглуулах шаардлага гарна. Subtitle буюу хадмал орчуулгыг бараг бүхий л төрлийн media player-үүд, codec-ууд дэмждэг болсон. Гэвч audio track-г нэмж зэрэг тоглуулах гэж багагүй оролдсоны эцэст VLC player програмыг ашиглан тоглуулж үр дүнд хүрэв.


$ vlc Beauty\ And\ The\ Beast\ 1991.mkv --input-slave=Beauty\ And\ The\ Beast\ 1991.dts

Харин энэ үйлдлийг GUI орчинд шийдэж чадсан хүн байвал комэнтээр үлдээгээрэй. Мэдлэгт нэмэр болог :)