Mugikorretara Egokitutako Web Guneak

Gaur egungo Smartphonen hedapena dela eta, beharrezkoa izaten da web guneak gailu hauetara egokitzea. Bide horretan, lana errazten diguten tresna berriak jaio dira, aipagarrienak honakoak direlarik: jQTouch eta jQuery Mobile. Lehena WebKit koreaz baliatzen da lan egiterakoan, eta bigarrena berriz, bokazio unibertsalagoaz jaioa, HTML5 erabiltzen du oinarri gisara.

Bi liburutegien kasuan garapenak ez du zailtasun handirik eskaintzen, web guneak garatzen ohitua dagoenari behintzat. Eredu gisara, nire web gunearen mugikorrentzako bertsioa prest dagoeneko eta honako helbidean aurkitu dezakezu atzigarri www.mobile.oroitz.dyndns.org.

Mahaigaineko Chrome-a Mugikor Bihurtzen

Mugikorretara bideratutako web-guneen garapenean, maiz beharrezko izaten da mahaigaineko ordenagailuetan orrialdeak testatzea. Horretarako, mugikorreko Chrome nabigatzailea mahaigaineko makinan eskuragarri izateko, honako pausuak jarraitu behar dira:

  • Lehenik eta behin Chrome nabigatzailearen exekutagarriaren “Shortcut” berri bat sortuko dugu.
  • Ondoren, eskuin botoiaz klikatuz, “Properties” aukeratu.
  • Behin aukeren lehioan “Target” balioan onakoa gehituko dugu:
--user-agent="Mozilla/5.0 (Linux; U; Android 2.1-update1; en-us;) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17"

Aldaketak onartu eta dagoeneko nabigatzailea mugikor formatura moldaturik izango dugu.

JDownloader Testuzko Linux Zerbitzari Batean

Post honetan ingurune grafikorik ez duen Linux zerbitzari batean JDownloader deskarga programaren instalaziorako pausuak argituko dira.

Lehen pausua JDownloader programa deskargatzea eta instalatzea da. Horretarako honako orrialdetik instaladorea lortu eta instalazio pausuak jarraitu besterik ez duzu. http://jdownloader.org/download

Behin aplikazioa instalatuta, exekutatu eta JDownloader-ek dakarren urruneko maneiurako Web Interfazea gaitu beharko duzu (Plugin-en artean aurki daiteke aukera hau).

Ondoren Xvfb komandoa instalatu beharra dago, horretarako honako pausuak jarraituz.

Azkenik honako kodea duen script-fitxategia sortu eta Linux sisteman instalatu beharko duzu honako pausuak egikarituz.

#!/bin/sh
 
set -e
 
JDOWNLOADER_USER=erabiltzailea
NDISPLAY=8765
 
XVFB_COMMAND="/usr/bin/Xvfb"
XVFB_COMMAND_OPS=":$NDISPLAY -ac"
JD_COMMAND="/usr/bin/java"
JD_COMMAND_OPS="-Xmx512m -jar /exekutagarrira/path/osoa/JDownloader.jar"
 
export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
 
start() {
     start-stop-daemon --start --quiet --background --user $JDOWNLOADER_USER --exec $XVFB_COMMAND  -- $XVFB_COMMAND_OPS &
     export DISPLAY=:$NDISPLAY.0
     start-stop-daemon --start --quiet --background --user $JDOWNLOADER_USER --exec $JD_COMMAND -- $JD_COMMAND_OPS &
}
 
stop() {
     kill `ps aux | grep "$JD_COMMAND" | awk '{print $2}' | head -n 1`
     kill `ps aux | grep "$XVFB_COMMAND" | awk '{print $2}' | head -n 1`
}
 
case "$1" in
  start)
        echo "Starting daemon: "$NAME
          start
          echo "."
     ;;
  stop)
        echo "Stopping daemon: "$NAME
          stop
          echo "."
     ;;
  *)
     echo "Usage: "$1" {start|stop}"
     exit 1
esac
 
exit 0

Kontuan izan script honetan honako balioetan sistemaren araberako aldaketak egin beharko direla:

  • JDOWNLOADER_USER: script-a exekutatuko duen erabiltzailea (root erabiltzailea ez da gomendatzen).
  • NDISPLAY: Xvfb-k sortuko duen ingurune grafikoaren identifikadorea.
  • JD_COMMAND_OPS: JDownloader.jar elementua aurkitzen den direktorioaren path-a ezarri beharko da.

Behin pauso guzti hauek jarraituta, sistema berrabiaratu beharko da. Dena egoki joan baldin bada, JDownloader-en web interfazera konektatu ahal izango zara.

Xvfb Ingurune Grafiko Birtualak

Sortzen dituen errendimendu galerak direla eta, linux zerbitzarietan ez da inolako ingurune grafikorik abiatzen. Hori dela eta, ezinezkoa izaten da derrigorrez ingurune grafikoa beharrezko duten aplikazioak exekutatzea.

Arazo honi aurre egiteko, Xvfb komandoaz baliatu gaitezke. Xvfb edo X Virtual Framebuffer komandoak, memoria espazioan ingurune grafiko birtual bat sortzeko gai da. Horrela ingurunea beharrezko duten aplikaziak exekutatzeko gai ziango garelarik. Hauek dira Xvfb instalatu ahal izateko beharrezko pausuak:

sudo apt-get install xvfb
 
sudo apt-get install xfonts*

Bigarren komando hau ez da guztiz beharrezkoa sistema guztietan, baina garrantzitsua da  xvfb komandoa erabiltzean erroreak agertzen diren kasuetan.

Behin komandoa instalatuta bere erabilera honakoa litzateke

  • Ingurune birtuala sortu, non ingurunearen identifikadorea kasu honetan 8765 zenbakia izango den.

Xvfb :8765 -ac &

  • DISPLAY aldagaia eguneratu, exekutatuko den programak ingurune berriaren berri izan dezan (ez ahaztu identifikadorearen amaieran dagoen “.0” balioa).

export DISPLAY=:8765.0

  • Orain nahi dugun programaren komandoa idatzi:
gedit

Komando honen erabilera JDownloader programarekin testeatu da Ubuntu Server 8.04 LTS batean. Oso erabilgarria suerta daiteke komando bidezko maneiua ez duten programak zerbitzari batean martxan izateko.

Linux-en Hasiera Script-ak Gehitzen

Linux sistema bat abiaratzen denean, sistemako edota erabiltzaileak definitutako zerbitzuak hasieratzeko aukera eskaintzen da. Horretarako sistema nagusietan /etc/init.d/ direktorioan kokatuak egoten diren script fitxategiak erabiltzen dira.

Erabiltzaileak sortutako script bat txertatu nahi denean, aipatutako direktorioan kopiatu beharra dago. Ez ahaztu script-aren jabea eta taldea “root” izateaz eta exekuzio baimenak egokiak esleitzeaz, horretarako honako komandoak erabiliz:

sudo chown root:root /etc /init.d/
sudo chmod 700 /etc/init.d/

Hurrengo pausua, script-a sistema abiatzean exekuta dadin ezartzea da. Horretarako update-rc komandoa erabiliko da.

  • Script-a gaitzeko honako komandoa erabili behar da:
update-rc.d /etc/init.d/<script_fitxategia> defaults
  • Eta honakoa desgaitzeko:
update-rc.d -f /etc/init.d/<script_fitxategia> remove

Komando hauek ez diete script-ei inongo aldaketarik eragiten, sistemari script-aren berri ematen diote eta beharrezko estekak ezartzen dituzte sistema abiatzean gure fitxategia exekuta dadin.

Facebook-eko Share-a Ajax Web Orrialde Batean

Facebook sare sozialak norberaren horman edukiak argitaratzeko aukera eskaintzen du, horretarako share botoiaz baliatzen delarik.

Web orrialde estatikoetan, share botoiaren txertaketa erraza eta sinplea da. Ajax teknologian oinarritzen diren web orrialdeetan ordea, arazo mordoa agertu daiteke. Share botoia, orrialdearen  “head” atalean aurkitzen diren metadatetan oinarritzen da edukia identifikatu ahal izateko. Ajax-en oinarrituriko orrialdeek ordea, eduki desberdin guztiek buruko (head) berbera konpartitzen dute.

Arazo hau ekiditeko hauek dira jarraitu beharreko pausuak:

  • Lehenik eta behin share botoiaren kodea txertatuko beharra dago. (www.example.com helbidea adibide gisara erabiliko da)
<script src="http://static.ak.fbcdn.net/connect.php/js/FB.Share" type="text/javascript"></script>
<a name="fb_share" class="facebook_share" share_url="http://www.example.com"></a>
  • Ondoren meta txertaketarako zubi gisara lan egingo duen php kodea idatziko da. Horretarako fbshare.php izeneko fitxategia sortu eta onako kodea txertatu behar zaio.
<?php
	$index = 'index.html';
 
	if (file_exists($index)) {
		$index_content = file_get_contents($index);
 
		$fbmeta = 	"<meta property='og:title' content='" . $_GET['title'] . "' />" .
				"<meta property='og:type' content='blog' />" .
				"<meta property='og:url' content='http://www.example.com' />" .
				"<meta property='og:image' content='http://" . $_GET['image'] . "' />" .
				"<meta property='og:site_name' content='Example Web' />";
 
		$html_content = str_replace("</head>", $fbmeta . "</head>", $index_content);
		echo $html_content;
	}
?>

PHP kode honek, web orrialdearen index.html fitxategia hartu eta “head” atalean behar diren meten txertaketa egiten du. Kontuan izan aurreko kodeko $_GET  parametroak ondorengo puntuan landuko den URL-aren araberakoak direla.

  • Azkenik share botoian ezarriko den “share_url” atributuaren balioa sortu beharra dago. Ikusi daitekeen moduan, php kodean meten baliotzat ezartzen diren balioak, url-an bidalitako parametroak dira. Beraz gure url-ak honelako itxura izan beharko du:
http://www.example.com/fbshare.php?title=[gure_titulua]&amp;image=[gure_preview_irudirako_URLa]

Pausu hauek jarraitu ondoren, erabiltzaile arruntek index.html fitxategia erabiltzen jarraitu ahal izango dute orrialdea bisitatzeko, share eskaerak ordea, fbshare.php fitxategitik bideratuko direlarik.

Esteka interesgarriak:

Share botoiaren txertaketarako dokumentazioa:
http://www.facebook.com/share_partners.php
Adibidea:
http://www.oroitz.dyndns.org/?lang=eu&content=dev

Machine Check Exception

Machine Check Exception-a, prozesadore baten barne arazoak erabiltzaileari jakinarazteko mekanismoa da. Windows sistema baten azpian lan egiten duen hardwareen kasuan, mekanismo honek, horren ezagunak diren pantailazo urdinak sortzen ditu. Linux sistematan ordea honelako mezuak agertzen dira (Sistema izoztua geratzen delarik):

Machine Check Exception Linux makinatan

Machine Check Exception Linux makinatan

Mezu hauek kriptikoak izaten dira eta beraz, arazoaren funtsa zein den ezagutzeko, mcelog bezalako utilitateak erabili beharko dira informazio zehatzagoa lortu ahal izateko.

Ubuntu sistema batean honako pausuak eman behar dira mcelog aplikazioa erabili ahal izateko:

sudo apt-get install mcelog

Ondoren terminal bat ireki eta honako komandoa exekutatu

sudo mcelog

Sistemak honelako informazioa pantailaratuko du:

mcelog komandoaren emaitza

mcelog komandoaren emaitza

Mezu hauetan atal interesgarriena MCA lerroari dagokiona da. Lerro honetan prozesadoreak jasandako errorearen informazio zehatza eskaintzen da, internet bidez soluzio posibleak aurkitzeko erabil erraza. Ala ere prozesadore fabrikatzaile gehienek, prozesadoreen gida zehatzak publikatzen dituzte sarean, bertan, errore hauen deskripzio eta zergaitiak aurkitu ahalko direlarik.

Esteka interesagarriak:

Zenbaki berdina, bi mugikor desberdin.

Gaur egun telefonia mugikorreko ia enpresa gehienek multitxartelak izateko aukera eskaintzen dute. Txartel hauek bi mugikor (edo gehiago) aldi berean zenbaki berarekin martxan izatea ahalbidetzen dute.

Duela ez askorarte modalidae hau erabiltzeko, terminal bakarrak egon behar zuen pizturik. Gaur egun ordea, murriztapen hau ezabatua izan da eta iada posible da terminal desberdinetan aldi berean deiak eta mezuak jaso edota interneten nabigatzea.

Nere bi terminalak dei bera jasotzen

Nere bi terminalak dei bera jasotzen

Postfix Posta Zerbitzaria Instalatzen

Zerbitzari batean postfix posta zerbitzari bat martxan jartzeko pausuak honakoak dira:

Lehenik eta behin postfix paketea instalatu behar da honako komandoaz:

sudo apt-get install postfix

Instalazioan zehar, konfiguraziorako menu txiki bat agertuko zaigu kontsolan. Puntu hau garrantzitsua da, postfix berak konfigurazio patroi bat edo beste eratuko duelako aukeraren arabera.

Kasu honetan, zerbitzaria Euskaltel-en internet konexio batera konektatua dagoenez, 25 portua itxia dago. Hori dela eta, ezinezkoa da posta zuzenean postfix zerbitzaritik bidaltzea, erdibideko bat erabili beharra dago. Beraz Internet with smarthost aukeratu da.

Hemendik aurrerako pausuak garrantzitsuak dira azken konfigurazioa zuzena izan dadin.

Mail domeinuaren izena ezarri, kontuan izan beharra dago domeinua lehenagotik existitu behar duela:

Hurrengo pausua erdibideko smtp zerbitzariaren helbidea ezartzea da, Euskaltel-en kasuan safemail.euskaltel.net:587 helbidean dago kokatua (587 portua erabiltzen du).

Aurrera jarraituz instalazioa amaitutzat joko da.

Azkenik honako puntuak kontuan hartzea gomendagarria da:

  1. Zerbitzariko firewall-ean 25 portua ireki beharra dago.
  2. NAT zerbitzua erabiltzen bada konexiorako Routerrean, 25 portua postfix zerbitzarira esplizituko bideratu beharra dago.
  3. Kontuan izan domeinua eskaintzen duen zerbitzuak Mail Exchange (MX) zerbitzua eskaintzen duela.

OHARRA: Webmin-eko mail gestorea erabiliz gero ezinbestekoa da moduluko konfigurazioan Domain to use in From: address aldagaian oroitz.dyndns.org domeinua ezartzea.

JQuery Plugin-ak Eraikitzen

JQuery liburutegiaren gainean plugin-ak eratzeko balio duten txantiloi ugari aurki daiteke interneten zehar. Ala ere, guztietan arazo berdinarekin aurkitu nahiz: pluginek aldagaien instantzia bakarra onartzen dute, hots, plugin instantzia guztiek aldagai global berberak erabili behar dituzte.

Hori ekiditeko hona hemen instantzietan aldagai propioak eraikiz plugin bat sortzeko balio duen txantiloila:

Lehenik eta behin, JavaScript klase arrunta sortu beharra da:

function JQueryClass(_options) {
	this.options = _options;
};
 
JQueryClass.prototype.getValue = function() {
	return this.options.value;
};

Ondoren klase horren instantziak sortuko dituen JQuery plugin-a eraiki:

(function($) {
	var defaultOptions = {
		value:0
	},
	instance_key = 'jqueryclass_key';
 
	$.fn.jqueryclass = function(_options) {
		var instance = this.data(instance_key);
 
		if(instance == undefined) {
			instance = new JQueryClass($.extend({}, defaultOptions, _options));
			this.data(instance_key, instance);
		}
 
		return instance;
	};
 
})(jQuery);

Eraikitako plugin-a testeatzeko honako kodea erabili daiteke. Emaitza bezala plugin instantzia bakoitzak bere “value” balio propioa pantailaratuko du. Kontuan izan kode hau ez dagoela guztiz osatua (ikus azpko index.html esteka test kode osoa ikusteko).

$(document).ready(function()
{
	$('#container_default').jqueryclass({
	});
 
	$('#container_1').jqueryclass({
		value:1
	});
 
	$('#container_2').jqueryclass({
		value:2
	});
 
	alert("jqueryclass instance 0 value: " + $('#container_default').jqueryclass().getValue());
	alert("jqueryclass instance 1 value: " + $('#container_1').jqueryclass().getValue());
	alert("jqueryclass instance 2 value: " + $('#container_2').jqueryclass().getValue());
});

Erabilitako kode osoa eta testerako index fitxategia  honako esteketan lor daitezke:

index.html (Test Fitxategia)
jqueryclass.js (JQuery plugin-aren txantiloila)