ugrás a tartalomhoz

Archívum - Feb 2012

február 26

Időzített futtatás cronból (sokszor)

cSuwwi · 2012. Feb. 26. (V), 00.33
Sziasztok,

Egy ideje fejlesztek php/mysql-ben egy rss olvasót, mert böngészőst szeretnék, de nem találtam olyat ami tetszene. Mindegy :)
A kód saját szerverről fut, hozzáférek mindenhez, tehát nem a környezet hátráltat.

Ez elképzelésem az volt (és ez is valósult meg), hogy a megadott rss fájlokat lementem lokális cachebe (sima filecachebe), majd onnan kiparseolom ami kell, azt mentem db-be.
Egyrészt lesz keresés, másrészt szerintem gyorsabb, mint mindig előszedni és kiparseolni, harmadrészt pedig a folytatólagosság is szempont.

Az rss fájlok ugye limittel vannak, ha egy hétig nem töltöm le, akkor kiesnek a régi bejegyzések. Mivel nem szeretnék ilyen lyukat, ezért fut a cron, ami letölti az rss fájlokat, és átrakja a db-be, amire szükségem van. Az utolsó 200 bejegyzést tartom meg, így lyuk sincs, és visszamenőlegesen is jó időre megvan minden.

A db-ben mentem, hogy mikor volt utoljára lekérve, a cron csak akkor tölti le, ha régebben mint 5 perc. Az oldal betöltéskor csak a db tartalmát jeleníti meg, nincs ilyenkor letöltés, mert erősen lassít, ha sok feedet kell feldolgozni. Az oldalak cachelve vannak, 5 perc után nyúl a db-hez.

A problémát ott látom, hogy több mint 100 feedet követek, és 5 perces a késleltetés. A cronos script úgy fut (percenként), hogy megnézi mennyi feed van összesen, ezt elosztja 5-el (esetünkben 100/5=20) és abban a percben 20 feedet kér le, és dolgoz fel (a lekérés random megy, tehát elméletben 5 perc alatt mind a 100 feed frissülni fog). Ez 100 feednél meg elmegy, de mondjuk 20 embernél fejenként 100 feeddel: 2000 feednél már percenként 400 lesz, ami gond. Persze ez a véglet, hogy mindenkinél más feed van.

Remélem nagyjából érthető.
5 perc szerintem még kibírható késleltetés. Hogy oldható meg, hogy nagyobb számú feednél is le tudjam kérni úgy hogy a szerver se dől össze? Vagy egyéb ötlet a megvalósításra? Nem mondom hogy ez a tökéletes megoldás, de jobb nem jutott eszembe.
A több vas alárakása egyelőre nem opció.

február 25

Ajax után bind

eMeLA · 2012. Feb. 25. (Szo), 18.13
Van egy ilyen kódom (Drupal 7.x, JQuery)

(function ($) {
$(document).ready(function() {
  init(); 
});

function init() {
  // kikapcs-bekapcs
  $(".select-field-wrapper").bind("change", function(e){
    $("td:has(#"+this.value+") div.form-wrapper").slideUp("slow");
    $("#"+this.value).slideDown("slow");     
  });
 
  // ajax betöltés után
  $("#more").bind("ajaxComplete ", function(){
    init();
  });

}

})(jQuery);
A "kikapcs-bekapcs" rész jól működik. A gond ott kezdődik, hogy a "#more" egy olyan gomb, melynek hatására egy Ajax lekérdezés után újratöltődik a ".select-field-wrapper".
Ugyan én újrahívom az Ajax lefutás után a init() rész (ami le is fut), de a bind "eltűnik" a .select-field-wrapper-ról.

Nem vagyok programozó, de szeretnék valami útmutatást. Én arra gyanakszom, hogy a "ajaxComplete"-kor még nincs a helyén(?) a .select-field-wrapper, így nem bind-elődik. Vagy rosszul csinálok valamit ?
 

Milyen hiba, vagy esetleg kód hiányzhat a követekező mail.php -ből?

fulton · 2012. Feb. 25. (Szo), 14.48
Új szolgáltatóhoz kerül a weblapom, de utólag megtudtam itt a "hagyományos email küldő php" nem fog működni. Csak SMTP hitelesítéssel oldaható meg:S
(Azt szeretném elérni hogy az oldalamba beágyazott lapon szereplő email küldő php segítségével, az oldalra érkező látogatók gyorsba üzenetet tudjanak nekem küldni)

Namármost kaptam tőlük egy segédletet, ami alapján egy nagyon egyszerű mail.php létrehoztam de nem történt semmi miután az új tárhelyen futattam. Szerintetek mi lehet a baj?

a fájl amit kaptam:
http://data.hu/get/4773599/sunweb_smtp.rtf

és a szerkesztett
Mail.php:


<?
$cimzett = "normalize##kukac##freemail.hu";
$targy = "Szia János!";
$tartalom = "Arra gondoltam, hogy búvárkodjunk. Üdv, Kata";
/*mail($cimzett, $targy, $tartalom)*/;

require_once "Mail.php";
$smtp = Mail::factory('smtp', array(
'host' => 'mail.sunweb.hu',
'auth' => true,
'username' => 'usernevemet ide beirtam',
'password' => 'jelszavamat ide beirtam'
));
$sentmail = $smtp->send($cimzett, array(
'From' => 'Szabó Lilla <lilla.szabo##kukac##abcd.hu>',
'To' => $cimzett,
'Subject' => $targy
), $tartalom);
?>
 

február 24

Ismételten this, de egy kis flash-el megkavarva.

therest · 2012. Feb. 24. (P), 21.54
Sziasztok!

Adott egy JS osztály, van egy metódusa. Ezt a metódust paraméterként adom egy flash objektumnak, amit swfobject-tel hozok létre, majd amikor szükséges flashből meghívom ExternalInterface.call-al. Ez működik is a lenti kóddal (bár abban koránt sem vagy biztos, hogy az adott példány metódusát hívja), azonban a this már a window-ra mutat amikor a függvény fut. A kérdés, valahogyan megoldható-e, hogy az ExternalInterface-ből hívott callback-eknél, hogy a this-en keresztül az eredeti objetumot érjem el? Persze különösebb hekkelések, eval, meg túl sok kód nélkül?

JS:ben

CJukebox=function() {
var v= {callback:this.onFinishedLoad};
var p= {};
var a = {id: "musicPlayer", name: "musicPlayer"};
swfobject.embedSWF("player.swf",placeholder", "10", "10", "8.0.35.0", "", v, p, a);
}
CJukebox.prototype.onFinshedLoad=function() {
console.log(this);
}

//valahol később:
new CJukebox();
Flashben:

ExternalInterface.call(callback);
 

Fragment azonosítók

whiteman0524 · 2012. Feb. 24. (P), 20.43
Sziasztok!

Fragment azonosítókkal kapcsolatban futottam bele egy kisebb fajta dilemmába, és ezzel kapcsolatban lennék kíváncsi a véleményekre.

Szóval adott egy bemutatkozó jellegű honlap aminek az egyik lapja a desing-ból fakadóan alapvetően többféle információt tartalmaz (személyes adatok, elérhetőség, projectek stb.) Ezek szekciókat alkotnak a lapon belül, és mindegyik szekción belül fel vannak sorolva az az alá tartozó tartalom blokkok (a továbbiakban csak "blokk") hogy így fogalmazzak. Tehát például a bemutatkozás szekció alatt fel vannak sorolva a személyek és a hozzájuk tartozó információk. A projectek alatt fel vannak sorolva az egyes projectek és némi információ róluk. Ezek egy-egy kisebb blokkot alkotnak, tehát egy szekció alapvetően az alá tartozó blokkok felsorolásából áll.

Azt szeretném megoldani hogy megfelelő URL hivatkozással kapásból rá lehessen ugrani egy-egy adott blokkra a lapon belül, fragmentek segítségével. Ez elsőre pofon egyszerűnek tűnik, mert minden blokknak adhatnék például egy id-t és akkor a .../#13 hivatkozás a 13. block-ra ugrana, csak ez így nem valami szép. Sokkal szebb lenne ha a fragment például valahogy úgy festene hogy .../#szekcio-id/blokk-id Ekkor az egyes blokkok id attribútuma úgy festene hogy id="szekcio-id/blokk-id". Viszont ez a megoldás azért nem működik, mert az id attribútum nem tartalmazhat slash karaktert. Tehát ahelyett, hogy minden blokkot egy számmal azonosítanék, sokkal jobb lenne ha a hova tartozása szerint kapna következetesen egy azonosítót.

A lényeg az, hogy mindezt minél beszédesebben, és minél szebben szeretném megoldani a fenti feltételeket figyelemebe véve. Ezzel kapcsolatban lennék kíváncsi a véleményekre. Ki hogyan oldaná meg?

A segítséget előre is köszönöm.
 

django olvasnivaló?

H.Z. v2 · 2012. Feb. 24. (P), 20.17
Tudnátok online olvasnivalót ajánlani a django-val (1.1 v. 1.3) való ismerkedéshez, ha már átrágtam magam a "hivatalos" tutorialon?
Szerettem volna megnézni a django.hu-t, de ott csak egy nginx hibaüzenet fogad :(
 

Felületfrissítés Node.js-sel websocketen keresztül

tihi · 2012. Feb. 24. (P), 17.31

Szeretném veletek megosztani a Node.js-sel és websockettel szerzett tapasztalataimat. Olyan rendszert szerettem volna készíteni, ahol a felület interaktívan frissül, mint a Facebooké üzenet érkezésekor.

február 24

Understanding technical debt

Joó Ádám · 2012. Feb. 23. (Cs), 22.41
A technológiai adósság
 

Letölthető a vadiúj Apache 2.4 webkiszolgáló

Hidvégi Gábor · 2012. Feb. 23. (Cs), 21.06
Jelentős előrelépést igér a teljesítmény és a rugalmasság terén
 

Akadálymentes súgószöveg űrlapmezőkhöz

Szántai Károly · 2012. Feb. 23. (Cs), 21.05
Hogyan lehet egy űrlapmező és a hozzá tartozó súgószöveg akadálymentes kapcsolatát megteremteni?