12/26/2011

Шинэ булан MATLAB

Блогтоо нэгэн шинэ булан нэмье гэж бодлоо. Matlab дээр айхтар туршлага байхгүй ч ажиллах явцдаа сурч мэдсэн зүйлээ нэмээд явбал дараа өөрт минь ч хэрэгтэй боловуу. Ойрын үед милээн завгүй байгаа тул дараа завандаа шинэ буландаа шинэ бичлэгээ шинэ онд нэмнэ ээ. :)
Continue Reading...

11/28/2011

Cakephp : Apache Alias

Энэ удаа Alias ашиглан Cakephp дээр хөгжүүлсэн вэб хуудасаа харуулах талаар жаахан тэмэдэглэл бичье.
Cakephp ашиглаагүй үед дараах байдлаар шууд ашиглах боломжтой байдаг бол, Cakephp дээр хөгжүүлсэн вэб арр-н хуьд нэмэлт тохиргоо шаардлагатай болдог.

Alias /test /usr/local/test/

AddDefaultCharset Off
Options Indexes FollowSymLinks
Order allow,deny
Allow from all



Cakephp үед доорх байдлаар тохиргоогоо өөрчлөөрэй.
1-рт

1. app/webroot/.htaccess нээж доорх мөрийг нэмнэ
2. RewriteBase /test

Жишээлбэл :


RewriteEngine On
RewriteBase /test
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]



2-рт

//app/webroot/index.php файлыг дараах байдлаар засварлана
//Засварлахын өмнөх
if (!defined('WEBROOT_DIR')) {
define('WEBROOT_DIR', bsename(dirname(__FILE__)));
}
//Засварлахын дараах
if (!defined('WEBROOT_DIR')) {
define('WEBROOT_DIR', "test");
}


Тохиргоо хийгдэж дууссан бол дараах байдлаар хандаж болно.

http://your-domain/test/



Continue Reading...

11/27/2011

Sony Tablet


Хэн нэг нь android os-тэй tablet pc авах гэж байгаа бол
Sony Tablet дажгүй юм байна шүү. Надад лав бусдаасаа хавь илүү юм шиг санагдсан. Үнийн хувьд жаахан үнэтэй ч ашиглахад амар бас цэнэгээ гайгүй удаан барьдаг юм байна гэж...
Бусад зураг
Continue Reading...

11/24/2011

Android : Holo Theme

Holo Theme ашиглаж байхад titlebar-г customize хийж болохгүй юм. Style-нхаа parent-г зүгээр Theme гэхээр болоод байгаа хэрнээ Holo Theme гэж тодорхойлохоор ажилдаггүй ээ. Holo Theme-г ашигламаар байдаг customize хийж байсан хүн байвал туршлагаасаа хуваалцааж.
Continue Reading...

11/21/2011

Android : Cache directory-н талаар

Android арр бичиж байхад Cache directory ашиглах шаардлага ихээхэн гарч байгаа болов уу. Хэдэн санаа болохоор зүйл энэ бичлэгтэй оруулъя гэж бодлоо.
Cache directory-д дэд хавтас үүсгэх

File file = new File(getCacheDir(), "your folder name/");
//Дээрх folder байгаа эсэхийг шалгах
if (!file.exists()) {
//байхгүй тохиолдолд үүсгэх
if(file.mkdirs()){
//Үүсгэсэн folder тоо файл хуулах
FileOutputStream fos = new FileOutputStream(new File(getCacheDir(), "your folder name/" + хуулах файлийн зам));
fos.close();
}
}

Cache directory устгах

public static void fdeleteCacheDir(Context context) {
Runtime localRuntime = Runtime.getRuntime();
String cachePath = context.getCacheDir().getPath();
String cmd = "rm -R " + cachePath;
try {
localRuntime.exec(cmd);
} catch (IOException err) {
Log.d(TAG, " fdeleteCacheDir:" + err.getMessage());
}
}

Continue Reading...

10/31/2011

CakePHP Sqlite3 ашиглах

CakePHP FW -н sqlite_open функц нь Sqlite2 хүртлэх хувилбарыг дэмждэг бөгөөд Sqlite3 ашиглах үед доорх алдаа үүсдэг.

file is encrypted or is not a database


Sqlite3 ашиглахын тулд дараах классыг ашиглаж болно.
Доорх линкээс татаад аваарай
Татах


Татаж авч задласны дараа файлуудаа доор бичсэний дагуу харгалзах дир-т хуулна.

dbo_sqlite3_spok.php - г cake/app/models/datasources/dbo/」
dbo_source.php - г 「cake/app/models/datasources/」


ӨС-тай холбох тохиргоог доорх байдлаар тохируулна.

var $default = array(
'driver' => 'sqlite3_spok',
'connect' => 'PDO',
'persistent' => false,
'host' => '',
'login' => '',
'password' => '',
'database' => 'sqlite:../your path/Your DB',
'prefix' => '',
'encoding' => 'UTF-8',
);


Гэвч scaffold,paginate г.м функцуудыг ашиглах үед дараах алдаа үүсдэг.

Call to undefined method DboSqlite3Spok::calculate()


Дээрх алдааг засахдаа dbo_sqlite3_spok.php-д дараах функцыг нэмээрэй.

function calculate(&$model, $func, $params = array()) {
$params = (array)$params;
switch (strtolower($func)) {
case 'count':
if (!isset($params[0])) { $params[0] = '*'; }
if (!isset($params[1])) { $params[1] = 'count'; }
return 'COUNT(' . $this->name($params[0]) . ') AS ' .$this->name($params[1]);
case 'max':
case 'min' :
if (!isset($params[1])) { $params[1] = $params[0]; }
return strtoupper($func) . '(' . $this->name($params[0]) . ') AS ' . $this->name($params[1]);
break;
}
}

Continue Reading...

10/24/2011

SELinux Enable => Unable to connect to PostgreSQL server: could not connect to server: Permission denied


Unable to connect to PostgreSQL server: could not connect to server: Permission denied

SELinux Enable үед дээрх алдаа заавал дараах командыг бичиж SELinux төлөвийг шалгана.

getsebool -a | grep httpd

Дээрх командыг биелүүлэхд доорх байдлаар үр дүн нь харгадана.

allow_httpd_anon_write --> off
allow_httpd_mod_auth_pam --> off
allow_httpd_sys_script_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_network_connect --> off
httpd_can_network_connect_db --> off
httpd_can_network_relay --> off
httpd_disable_trans --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> on
httpd_rotatelogs_disable_trans --> off
httpd_ssi_exec --> off
httpd_suexec_disable_trans --> off
httpd_tty_comm --> off
httpd_unified --> on

httpd_can_network_connect_db гэсэн тохиргоо Off үед дээрх алдаа үүсэх магадлалтай учир доорх командыг ашиглан On болгон тохируулна.

setsebool -P httpd_can_network_connect_db 1

Ер нь SELinux Enable үед урьд нь ажиллаж байсан тохиргоо ажиллахгүй үед SELinux-н лог файлыг нь шалгах нь зүйтэй юм.

/var/log/audit/audit.log


Permission denied гэсэн алдаа заасан үед дээрх лог файлыг шалгахдаа доорх команды ашиглавал хялбар байдаг.

grep "avc: denied" /var/log/audit/audit.log

Бүгдэд нь амжилт хүсье. :)
Continue Reading...

10/21/2011

Android Device information-г ашиглах талаар


Дараах жижигхэн жишээ код хэрэг болж магад гэж бодоод оруулж байна.

ICCID、IMSI、IMEI мэдээлэлийг авах
AndroidManifest.xml-д дараах uses-permission нэмнэ



Java Code

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

//ICCID
String iccid = telephonyManager.getSimSerialNumber();

//IMSI
String subscriberid = telephonyManager.getSubscriberId();

//IMEI
String deviceid = telephonyManager.getDeviceId();


МАС address авахдаа
AndroidManifest.xml-д дараах uses-permission нэмнэ



Java Code

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String macAddress = wifiInfo.getMacAddress();



OS хувилбар, тухайн Device-н нэр авахдаа

//OS Version
String osVersion = Build.VERSION.RELEASE;

//Device Name
String productName = Build.PRODUCT;
Continue Reading...

10/20/2011

ocropus суулгах талаар

Дээрх програмыг CentOS 5.X дээр суулгаж байсан туршлага байвал туршилгаасаа хуваалцана уу?
Алдаа заагаад суухгүй юм.
Tesseract 3.00 суулгасан ч үр дүн нь буруу гараад байх юм.
Continue Reading...

10/10/2011

Android:XmlPullParser & Dialog


Блогтоо XmlPullParser & Dialog ашигласан жижигхэн жишээ оруулж байна. Та бүхэн санаа оноо авна биз дээ.


Тайлбар :

XmlPullParser функцыг ашигласнаар хавтсанд байрлах бүх XML файлуудыг уншиж файл тус бүрээр тэдгээрийн утгыг хялбараар ашиглаж болдог.



Тайлбар :

Энэ удаагынхаа жишээ нь Dialog ашиглах бүртээ тодорхойлох бус Dialog функыг нэг тодорхойлон хэд хэдэн удаа Dialog-н утга болон гарчигийн дахин тодорхойлж болохуйц жишээ болно.


assets хавтсанд dialog.xml файлыг үүсгэнэ.



XmlPullParser and Dialog
XmlPullParser and Dialog ашигласан жишээ


Жишээ код :

//Dialog Flg
public static final int DIALOG_FLG = 0;
//Dialog Title
public static final String STR_TITLE = "TITLE";
//Dialog Message
public static final String STR_MESSAGE = "MESSAGE";
// Tag-n ner
String STR_TAG = "";
// Value
String STR_VALUE = "";
//
Bundle data = new Bundle();
@Override
public void onCreate(Bundle savedInstanceState) {
try{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//XmlPullParser
XmlPullParser parser = Xml.newPullParser();
// assets Folder dahi xml file-diig unshih
AssetManager asset = getResources().getAssets();
InputStream is = null;
//dialog.xml file neeh
is = asset.open("dialog.xml");
InputStreamReader isr = new InputStreamReader(is);
parser.setInput(isr);

for (int type = parser.getEventType(); type != XmlPullParser.END_DOCUMENT;
type = parser.next()) {
switch(type) {
case XmlPullParser.START_TAG: // start tag
STR_TAG = parser.getName();
break;
case XmlPullParser.TEXT: // tag-n utga
STR_VALUE = parser.getText();
// utga bga esehiig shalgah
if(STR_VALUE.trim().length() != 0) {
// title tag-d bichigdsen utgiig data huvisagchid olgoh
if(STR_TAG.equals("title")) {
data.putString(STR_TITLE, STR_VALUE);
} else if(STR_TAG.equals("msg")) {
//msg tag-d bichigdsen utgiig data huvisagchid olgoh
data.putString(STR_MESSAGE, STR_VALUE);
}
}
break;
case XmlPullParser.END_TAG: // end tag
break;
}
}
//Dialog haruulah
showDialog(DIALOG_FLG, data);
}catch(Exception err){
Log.e("ERROR",err.getMessage());
}
}


@Override
protected Dialog onCreateDialog(int id){
return null;
}

@Override
protected Dialog onCreateDialog(int id, Bundle data){
Dialog dialog = null;
switch(id){
case DIALOG_FLG:
String title = data.getString(STR_TITLE);
String mes = data.getString(STR_MESSAGE);
dialog = new AlertDialog.Builder(this)
.setTitle(title)
.setMessage(mes)
.setPositiveButton("OK", null)
.create();
break;
}

return dialog;
}

@Override
protected void onPrepareDialog(int id,Dialog dialog,Bundle data){
switch(id){
case DIALOG_FLG:
String mes = data.getString(STR_MESSAGE);
AlertDialog ad = (AlertDialog)dialog;
ad.setMessage(mes);
break;
}
}

Continue Reading...

9/06/2011

httpd: apr_sockaddr_info_get() failed for ...


httpd: apr_sockaddr_info_get() failed for xxxx.xxxx
Could not reliably determine the server's fully qualified domain name,

Дээрх алдаа вэб сервер ээ Start,Restart хийх үед гарвал дараах тохиргоонуудыг дахин нэг шалгаарай.

/etc/hosts-н тохиргоо
/etc/sysconfig/network-н тохиргоо
Тохиргоог өөрчлөх
service network restart
/etc/httpd/conf/httpd.conf файлд ServerName-г тохируулсан эсэх

Continue Reading...

8/05/2011

VMware ESXi 4.1 : Tech Support Mode Disabled

Хэн нэгэнд нь ESXi 4.1 дээр Console ашиглах шаардлага гарч магад гээд энэ бичлэгийг оруулж байна.

ESXi 4.1-н default тохиргоотой үед Console ашиглах боломжгүй ба доорх текстийг дэлгэцэнд харуулах болно.

Tech Support Mode has been disabled by the administrator.

** Console-руу шилжихдээ Alt+F1
** Үндсэн дэлгэцрүү шилжихдээ Alt+F2

Enable болгохын тулд дараах видеоны дагуу серверийнхээ тохиргоог өөрчлөөрэй.

Console-г идвэхтэй болгосоноор заавал VMware vCenter Server ашиглалгүйгээр серверийн тохиргоогоо өөрчлөх боломжтой.
Жишээ нь : SSH идвэхтэй болгох г.м
Continue Reading...

7/29/2011

VMware ESXi : Backup Guest OS


Блогийнхоо зочидод энэ өдрийн мэнд хүргье. VMware ESXi дээр 4 ҮС систем суулгаад ашиглаж байгаа юм. Тэгээд суулгасан ҮС-дээ Backup хийх гэсэн жаахан асуудал гараад та бүхнээс асуух гэсэн юм.

Зорилго нь: Автомаар USB HDD-д Backup хийх.

Эхлээд өөрийнхөө байдалыг жаахан тайлбарлая. Backup хийх талаар судлахад ерөнхийдөө дараах 4н төрлийн арга байх шиг байгаан.

1. vCenter Converter ашиглах
2. Data Browser ашиглах
3. Remote CLI ашиглах
4. SSH ашиглах

Дээрх 4н аргыг ашиглаад Backup хийж болох боловч эхний 2 нь хэтэрхий удаан тэгээд автомаар Backup хийж болохгүй. Сүүлийн аргыг ашиглах нь боломжийн боловч доорх асуудлууд үүсээд байгаан.

1. Суулгасан ҮС ажиллаж байх үед *.vmdk файлруу хандаж болохгүй
2. 1-р асуудлыг snapshot ашиглаад шийдэж болох боловч ESXi ямар нэгэн USB Device танихгүй байгаа учир USB HDD-д Backup хийх боломжгүй болчоод байна.


Файл сервер үүсгээд сүлжээгээр Backup хийж байгаа боловч Backup хийх өгөгдлийн хэмжээ их учир жаахан тиймэрхүү болоод байгаа юм.

Та бүхэн ESXi-д суулгасан ҮС-ээ хэрхэн Backup хийж байгаа талаараа зөвлөгөө өгч туслана уу?

Мөн ESXi-д ямар нэгэн USB Device таниулах талаар санал байвал сэтгэгдэл үлдээнэ үү.
Continue Reading...

6/28/2011

Android Intent ашиглах талаар

Бас нэг жижигхэн тэмдэглэл оруулчихъя.
Android Intent-г ашиглаад утга дамжлуулахдаа дараах байдлаар дамжуулна.

Intent i = new Intent(this, NextForm.class);
i.putExtra("Value1", "NextForm ");
i.putExtra("Value2", 100);
//NextForm файлдаа
Intent intent = this.getIntent();
String strValue1 = intent.getStringExtra("Value1");
int intValue2 = intent.getIntExtra("Value2",0);

Active хийсэн цонхныхоо буцах утгыг нь авахдаа
дараах байдлаар авч болно.

//Activity хийхдээ дарааф функцыг ашиглана
startActivityForResult(intent,REQUEST_CODE)
//
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK && requestCode == REQUEST_CODE) {
//RESULT_CANCELED
}
}
//finish хийхдээ
setResult(RESULT_OK, data);
finish();
//мөн түүнчлэн
setResult(RESULT_CANCELED, data);
finish();


Android анхлан судалж байгаа хүмүүст энэ тэмдэглэл милээн хэрэг болох болов уу гэж бодлоо. Дараа нь TabHost-н талаар жаахан зүйл бичнэ ээ. Жижиг зүйлээс болоод ажиллахаа байчихдаг сонин контрол байгаан. Асуух зүйл байвал коммент үлдээгээрэй мэдэх зүйл байвал хариулахад хэзээд бэлэн.
Continue Reading...

6/22/2011

Android DatePicker & Date class


Ойрд блогтоо бичлэг нэмсэнгүй. Өнөөдөр ганц бичлэг нэмчихье. Сүртэй биш ч гэлээ бас мэдэж байхад гэмгүй зүйл гэж бодлоо.
DatePicker-н утгыг оноож өгөхдөө updateDate гишүүн функцыг нь ашиглана. Дараах байдлаар

DatePicker .updateDate(yyyy,MM,dd);

Жишээлбэл дараах огноогоор DatePicker-н утгыг өөрчлөх болсон гэж үзвэл.

String temp_date = "2011-12-13";
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd");
Date date = curFormater.parse(temp_date);
int year = date.getYear();
int month = date.getMonth();
int day = date.getDay();
DatePicker .updateDate(year,month,day);

Дээрх кодыг ажилуулбал алдаа заах бөгөөд учир нь
Date классын

getYear функцын утга нь : year-1900
getMonth функцын утга нь : 0-11
getDay функцын утга нь : 1-7 буюу Даваа-Ням хүртлэх утга буцаадаг болно

Жава дээр байнга юм хийдэг хүмүүст бол асуудалгүй боловч тэрхэн зуур андуураад биччих магадлал ихээхэн өндөр золиг байна лээ.
getDay функцын оронд getDate функыг ашиглаарай. getYear функцын утган дээр 1900 нэмээд бичвэл дээрх жишээ асуудалгүй ажиллах болно.

Continue Reading...

5/29/2011

The Circus Live

Блогынхоо зочидод бүгдэд нь энэ өдрийн мэнд хүргье. Би гэдэг хүн дуу дуулахдаа маруухан ч дуу сонсох дуртай нэгэн болоод энэ удаагынхаа бичлэгээр Take That хамтлагийн 2009 онд зохион байгуулагдсан “The Circus Live” аялан тоглолтын бичлэгийг бүрэн эхээр нь хүргэж байна. Час улаан шүтэн бишрэгч энэ тэр нь биш ч зарим дуунуудад нь дуртай болохоор тоглолтынх нь бичлэгийг олж үзэв ээ. Дээхэн үеийн бичлэгч гэсэн хэн нэгэнд сонирхолтой байх болов уу.
“The Circus Live” аялан тоглолт нь 2009/6/5-2009/7/5 хүртлэх бүтэн сарын турш 4 орны 7 хотод нийт 20 удаа тоглогдсон бөгөөд 1сая гаруй үзэгч үзсэн тоглолт юм. Энэ хүү бичлэг нь аялан тоглолтын хаалтын хэсэг болох Лондон хотын “Wembley” цэнгэлдэхэд болсон тоглолтынх болно. Take That хамтлагын аялан тоглолт болон шинэ гарсан цомгуудынх нь талаарх мэдээлэлийг тус хамтлагийн http://www.takethat.com/ сайтнаас уншаарай.
Татах 1-р хэсэг
Татах 2-р хэсэг
Татах 3-р хэсэг
Татах 4-р хэсэг
Татах 5-р хэсэг
Татах 6-р хэсэг

Continue Reading...

5/24/2011

YES ...

Ажил цагтаа амьжихгүй тэвдэж байхад аминд орсон доорх командад өнөөдөр бүр хайр зарламаар санагдчихлаа.
NKF гээд тэмдэгтийн кодчилолыг хөрвүүлдэг команд юм. Хэн нэгэнд хэрэг болж магад.
Команд бичих аргачилал

$ nkf [Тохиргоо] хөрвүүлэх файл > хөрвүүлсэн файл

[Тохиргоо]

-j      : JIS code (ISO-2022-JP)
-e : EUC code
-s : Shift-JIScode
-w : UTF-8 code
-Lu : unix -> (LF)
-Lw : windows -> (CRLF)
-Lm : macintosh -> (CR)
-g(--guess) : кодыг шалгах
--overwrite : overwrite
--version : version шалагх

Жишээ :

1. Тэмдэгийн кодыг шалгах
$ nkf -g example.txt
2. UTF-8-рүү хөрвүүлэх
$ nkf -w --overwrite example.sql г.м

Continue Reading...

5/09/2011

VMware vSphere Hypervisor:PF Exception 14 in world 9154



VMware ESXi 4.1-г суулгасан чинь дэлгэцэн дээрх алдаа заагаад болдоггүй ээ.
Тэгсэн дараах тохиргоог өөрчлөөд суулгасан чинь зүгээр суучихлаа.

BIOS тохиргоо хэсгээс
・[Advanced] - [Advanced Processor Options]
 Enhanced Idle Power State :  Enabled ⇒ Disabled

Continue Reading...

4/28/2011

FUJITSU PRIMERGY -> CENTOS 5.6

FUJITSU PRIMERGY(RAID1) серверт CENTOS суулгачих гэсэн чинь чаддаггүй ээ.

Дараах алдаа заагаад.
Error Loading Operating System

BIOS-н тохиргооноос RAID disable хийж байгаад суулгасан ч ямар ч алдаагүй суучихаад restart хийсэний дараагаар арай өөр алдаа заагаад байхын. FUJITSU -н өөрийнх нь Server view suite-г нь ашиглаад суулгах гэхээр үйлдлийн систем сонгох хэсэгт нь CENTOS гэсэн сонголт байдаггүй RED HAT гэж сонгоод суулгахаар СД нь биш байна аа гээд явдаггүй ээ. Мэддэг хүн байвал хэрхэн суулгах талаар зөвлөгөө өгөөч. Гэртээ нэг сервер тавьчихъя гэсэн чинь үйлдлийн системээ суулгаж чаддаггүй ээ гэж.
FUJITSU рүү и-мэйл бичсэн чинь тус болох хариу ирүүлэхгүй юм. Хариулахаасаа залхуурсан уу надтайгаа адилхан нэг нь таарсан уу бүү мэд хэхэ. Мөн гүүгл ахаас асууж заасан замаар нь яваад тусыг эс олсон болно....
Ямартай ч блогын маань зочид суулгах санаа оноо хэлж өгнө гэж найдаж байна.

Continue Reading...

4/21/2011

Adapter & ListView & ExpandalbeListView

Сонирхосон хэн нэг нь үзээрэй гэж...



Continue Reading...

3/21/2011

...-ны FB-р зочлоорой

Ийм гарчиг хаа сайгүй л явдаг болж дээ гэж. Уул нь тэр систем нь хайлт хийх бүрэн боломжтой, тэр модуль маш сайн ажилдаг шд. Иймэрхүү гарчиг сайт, блог дээрээ байршуулсан хүмүүс FB-г сурталчилсан гэж мөнгө авмаар юм аа хэхэ. Бид нар чинь гүүгл-н сурталчилгаа байршуулаад мөнгө авдаг биз дээ. Яаг тэрэн шиг.....
Continue Reading...

2/23/2011

Cbox-д Captcha нэмэх

Чат маягийн юманд маань баахан сурталчилгаа нэмэгдээд байхаар нь Captcha нэмчихье гэж бодоод гүүгл-с хайсан чинь Cbox-д тийм тохиргоо байдын байна. Доорх дараалалаар тохируулчихвал хэн нэгэн автоматаар зар оруулаад байх боломжгүй болно. Таны блогт зорьж орж ирээд, санал хүсэлтээ бичье гэсэн хүнээс бусад нь.

Cbox-руу нэвтрээд
Options menu => Posting options => Captcha check-г check хийгээд хадгалаад өөрийн Cbox-н кодоо өөрчлөхөд л болно
Continue Reading...

2/16/2011

SEO-Search Engine Optimization

SEO талаар жаахан зүйл бичье гэж бодлоо. Бичих болсон учир шалтгаан нь интернетээр мөнгө хийцгээе гэсэн уриалага,боломж маш их өссөнтэй холбоотой. Энэ талаар бичихээр гүүглийн рекламыг өөрийн блог болон вэб хуудсандаа байршуулан ашиг олох явдалтай шууд холбоо хамааралтай болно. Рекламаа хэрхэн байршуулах, ашиглах г.м бичлэг болон зөвөлгөөнүүд маш их байдаг болохоор энэ удаад арай өөр талаас жаахан тайлбар оруулъя. Реклам байршуулан ашиг олоход, тухайн блог болон вэб(цаашдаа Б&В) сайтын хандалттай шууд хамааралтай байдаг. Учир нь хандалт ихсэх тусам тухайн рекламыг үзэх хүний тоо ихсэх боломжтой болдог. Ийм учраас өөрийн Б&В сайтын хандалтыг хэрхэн нэмэгдүүлэх вэ гэдэг асуудал үүсдэг. Мэдээж тухайн Б&В агуулгаас ихээхэн шалтгаалах боловч анхлан эхлэж буй хүмүүст өөрийн Б&В-г хэрхэн нийтэд түгээх вэ гэдэг асуудал үүснэ. Энэ асуудалыг шийдэхэд ихээхэн хувь нэмэр оруулах зүйл нь SEO сайтар ашиглах явдал юм. Одоогоор хамгийн хүчирхэг хайлтын систем болох google,yahoo,bing.. –г дэлхий нийтээрээ сая сая хүн хэрэглэж, хайлт хийн өөрийн хүссэн мэдээлэлээ олж авахад ашиглаж байгаа. Энэ хүчирхэг хайлтын системүүдэд өөрийн Б&В-г оновчтойгоор таниулахад юуг анхаарах хэрэгтэй талаар бяцхан зөвөлгөө маягийн юм доор гальт сийрүүлье.
Дээрх хайлтын системүүд нь хайлт хийх үедээ ашиглах өгөгдлийн байзаа өдөр бүр шинэчлэж байдаг. Энэ шинэчлэх алхамд өөрийн Б&В-г зөв таниулж чадвал сая сая хүний хандалтыг өөрийн Б&В-т татах боломжтой болно. Үүнээс үүдээд хэрхэн зөв таниулах вэ гэдэг асуудал үүснэ. Үүнд :
Б&В-н keyword,description-г зөв,оновчтой тодорхойлох.
Тухайн Б&В-г хайлтын системүүд уншхад хялбар байх
Sitemap.xml файлыг шинэ хуудас нэмэгдэх бүрт шинэчлэж байх
Б&В-н линкийн тоо, тухайн линк ажиллаж байгаа эсэх гээд дурдаад байвал маш олон зүйл багтдаг. Эхний ээлжинд дээрх зүйлсийн талаар жаахан тайлбар нэмье.

Б&В-н keyword,description-г зөв,оновчтой тодорхойлох.
Keyword-г тодорхойлохдоо хайлтын системд хэрэглэгч ямар keyword оруулан хайлт хийхэд өөрийн Б&В хайлтын үр дүнд илэрэх боломжтой талыг бодолцон өөрийн Б&В агуулгт тохирох keyword-дыг [,] таслалаар тусгаарлан тодорхойлж өгөх хэрэгтэй. Хэт олон keyword тодорхойлж өгөх нь сайн зүйл биш 5-6-н keyword-г тодорхойлж өгвөл хамгийн сайн гэж үздэг. Хайлтын системүүд нь Keyword-д тодорхойлж өгсөн текстээс хамгийн зүүн талых нь өндөр үнэлгээтэй буюу үндсэн агуулга гэж үздэг.
Description-г тодорхойлохдоо хэт их урт текст бичихээс зайлс хийх хэрэгтэй ихдээ 160 тэмдэгт байвал сайн.(Зэнкакү бол 80 тэмдэг). Мөн тухайн текстын агуулга нь Б&В-н агуулгатай тохирч байх нь чухал.

Б&В-г хайлтын системүүд уншхад хялбар байх
Дээрх зүйлд маши олон зүйл ордог. Таг-дын дараалал тухайн таг ашигласан тоо, эхлэл болон төгсгөлийн тагыг заавал бүрэн бичиж байх гэх мэт. Жишээлбэл h1,h2,h3 г.м тагуудын бичигдэх дараалал нь дээрх бичигдсэн дараалалаар бичигдвэл сайн. Мөн h1 тагыг нэг хуудсанд олон ашиглахгүй байвал сайн.
CSS-г стандартын дагуу бичсэн байх. Зөв бичигдсэн эсэхийг w3c validator түүлүүд ашиглан шалгаж болдог.(Өөр өөрсдийн Б&В-г шалгаад үзээрэй.)
Тухайн хуудсанд ашиглагдаж байгаа зураг,линкүүдийн тайлбарыг тодорхойлж өгвөл сайн. Ж: img тагын alt property-г тухайн зургын агуулгат тохируулан тодорхойлж өгвөл сайн. Энэ хэсэгт бол маш олон зүйл бичиж болно та бүхэн хэрэгтэй гэж үзээд илүү ихийг мэдэхийг хүсвэл гүүглээс хайгаад үзээрэй.

Sitemap.xml файлыг шинэ хуудас нэмэгдэх бүрт шинэчлэж байх
Sitemap.xml-г тодорхойлж өгөх нь маш чухал зүйл. Хайлтын системүүдийн өгөгдлийн санг шинэчлэдэг Robot-д (03-05) үед тухайн файл тодорхойлогдсон байвал шууд тухайн файлын утгаар хайлтын сангаа өөрчилдөг. Уг файлыг тодорхойлохдоо бэлэн түүлүүд ашиглан үүсгээд өөрийн Б&В-н нүүр хуудас байрлаж байгаа дир-т хуулах хэрэгтэй. Гүүглийн мэдээлэлийн санд зөв таниулж чадвал Yahoo гүүглийн хайлтын сангаас шууд шинэчлэдэг болсон тул юуны өмнө гүүглийн WebMaster түүлийг ашиглан бүртгүүлээрэй. Bing-н хувьд өөрийнх WebMaster түүлийг ашиглах нь зүйтэй юм.
Тухайн файлыг зөв зүйтэй,өөрийн Б&В хуудас нэмэх, устгах үед шинэчлээд байвал таны Б&В-н хандалт эрс нэмэгдэнэ гэдэгт итгэлтэй байж болно. Яагаад устгах нэмэх үед гэвэл тухайн Б&В-т байрлаж буй линкүүд ажиллахгүй байвал хайлтын системүүд таны Б&В-н үнэлгээ буурч хайлтын үр дүнд харуулах байрлал буурна. Ж : тодорхой нэг хайлтын үр дүнгийн хамгийн эхэнд таны Б&В байрладаг байсан бол 10-т харуулна г.м

Б&В-н линкийн тоо, тухайн линк ажиллаж байгаа эсэх
Линк ажиллахгүй байвал ямар үр дагавар гарах талаар дээр дурьдсан болно. Линкийн тоо хайлтын системд эзлэх ранк-г тодорхойлно. Мөн ямар линк гэдгээс шалтгаалдаг болно. Өөр олон олон үзүүлэлтээр таны Б&В-н ранк тодорхойлж хайлтын үр дүндээ лист үүсгэн харуулдаг.

Энэ хүрээд ядмагхан тайлбараа дуусгая. Илүү их зүйлийн талаар мэдэхийг хүсвэл дээрх хайлтын системүүдийг ашиглан дэлгэрэнгүй мэдээлэлийг хэн нэгний Б&В-с олж аваарай.
Continue Reading...

1/30/2011

Allowed memory size of 8388608 bytes exhausted...

PHP-тээ холбоо хамааралтай package суулгах үед дээрх алдаа гарвал дараах байдлаар засаарай.

1. php.ini файлыг нээж memory_limit зааж өгсөн утгыг
өөрчлөх.
анхны утга нь 8М байдаг бөгөөд 16М,64М болгон өөрчлөөрэй.

Дээрх тохиргоог хийгээд алдаа засагдахгүй бол дараах алхамыг хийгээрэй.

2. /usr/share/pear/ дир-т байрлах pearcmd.php файлыг нээж
дараах мөрийг нэмээрэй.
ini_set('memory_limit', '16M')

1 болон 2 дахь тохиргоог өөрчилвөл дээрх алдаа засагдах болно. Засагдахгүй дохиолдол байвал коммент үлдээгээрэй. Мөн тохиргоогоо өөрчлөөд серверээ restart хийхээ мартуузай.
Continue Reading...

1/21/2011

Crontab ажиллахгүй үед шалгавал зохих зүйлс

1. Crond төлөвийг шалгах
2. Crontab-д нэмсэн файлын permission-г шалгах
3. Cron log файлыг шалгах
Юуны өмнө дээрх 3-н зүйлийг шалгах нь зүйтэй болов уу гэж бодлоо.
Crond төлөвийг шалгах даа доорх командыг бичиж шалгана.

Service crond status
Бас Run level-г нь шалгах нь зүйтэй байх шалгахдаа
Chkconfig --list crond командыг ашиглаарай (Run level 2-5 On байвал асуудалгүй.)

Crontab-д нэмсэн файлын permission-г шалгаж бүх хэрэглэгчид уг файлыг ажиллуулж болохоор тохируулах.

chmod a+x yourfile (everyone execute permission on yourfile )

Cron log файлыг шалгах
Уг файл нь /var/log/ дир-т байрлах бөгөөд дараах командыг бичвэл файлыг агуулгыг харж болно.

vi /var/log/cron

дээрх файлд ямар нэгэн алдааны мэдээлэл бичигдэгүй байсан ч ажиллахгүй дохиолдол бий. Тухайн файлд Crontab-д нэмсэн файлын агуулга буюу бичлэгийн алдаатай дохиолдолд тухайн алдааны мэдээлэлийг бичдэггүй болно. Уг алдааны мэдээлэлийг шалгахдаа Crontab-д команд нэмэхдээ дараах байдлаар нэмээрэй.

Команд >>/var/log/analog.log 2>>/var/log/analog-err.log
Жишээлбэл:
*/1 * * * * php /var/www/htdocs/example.php >>/var/log/analog.log 2>>/var/log/analog-err.log

Дээрх команд нь example.php файлыг 1 минут дутамд сервер дээр автоматаар execute хийгдэхээр нэмэгдсэн байна.

example.php-д бичигдсэн код алдаатай үед /var/log/analog-err.log файлд тухайн алдааны мэдээлэл бичигдэх тул та тэр дагуу өөрийн кодыг шалгаж үзээрэй.

Блогийн маань нийт зочидод тус нэмэр болно гэдэгт итгэлтэй байна.

Continue Reading...

1/18/2011

Year 2038 problem

Энэ асуудалын талаар мэддэггүй хүмүүс байгаа байх гэж бодоод жаахан зүйл бичье гэж бодлоо.
PHP дээр огноо дүрслэхдээ UNIX timestamp ашигладаг функц ашиглавал дүрслэж болох огноо-н MAXIMUM утга нь 32бит-н компьютер дээр 2-н 31 зэрэг байдаг. Үүнийг UNIX timestamp ашиглан огноод шилжүүлвэл

2038-01-19 12:14:07 болно

дээрх хязгаараас давсан буюу их утгыг хөрвүүлэхдээ дараах огноог дүрслэдэг

1901-12-14 05:45:52

Та бүхэн дараах кодыг ажиллуулж туршиж үзээрэй

$maximum_value = pow(2, 31) - 1;
echo date('Y-m-d H:i:s', $maximum_value) . "\n";

$maximum_overflow = $maximum_value + 1;
echo date('Y-m-d H:i:s', $maximum_overflow) . "\n";
?>


Урт хугацаагаар ашиглах систем хөгжүүлэхдээ UNIX timestamp ашиглан огноо дүрсэлдэг функц анхнаасаа ашиглахгүй байсан дээр болов уу гэж бодож байна. Жишээлбэл : PEAR-н Calc класс-г ашиглаж болно.
Continue Reading...
 

Надад итгэл бий Copyright © 2009 WoodMag is Designed by Ipietoon for Free Blogger Template