Sunday, December 8, 2013

Web Design vs Монгол бичиг

Монгол бичгээр вэб сайт бүтээх хүсэл эрмэлзэл сонирхол олон вэб хөгжүүлэгч, дизайнеруудад бодлын гүнд нь явдаг байх.

Харин вэб дизайныг Монгол бичигт тааруулан урлахад фонт, вэб броузер, гарын драйвер гэх мэт асуудал бэрхшээл их байсан ч, өдөр өдрөөр технологи хөгжихийн хэрээр фонтны асуудал шийдэгдсэн. Ихэнхи вэб броузерууд http://www.w3.org/TR/css-writing-modes-3/ босоо, хэвтээ, баруун зүүнгүй бичдэг болсон байна. /* Firefox дээр л энэ асуудал шийдэгдээгүй байв. {ubuntu дээр шалгав}

Энэ сэдэвтэй холбогдуулаад Bootstrap 3.0.2-ийн грид системийг монгол бичигт тааруулан жаахан өөрчилж үзэв.

Dropdown (Dropright?) гэх мэт component, js боломжуудыг ажиллагаанд оруулахад нэлээн засвар өөрчлөлт орох бололтой.

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

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