ugrás a tartalomhoz

Archívum - 2019 - Fórum téma

január 11

Van-e PHP és milyen verzió?

mind1 valami név · 2019. Jan. 11. (P), 09.38
Kívülről hogy lehet megállapítani egy web szerverről, hogy van-e rajta PHP és ha van, akkor milyen verzió?
Kívülről alatt azt értem, hogy böngészőből/curl/wget/egyéb segédeszköz segítségével.
Van erre valami bevett módszer?

Az a baj, hogy nem tudom eltalálni a megfelelő keresőkifejezést, így a nyomorult google csupa olyan találattal szórakoztat, hogy hozzak létre egy .php file-t...
 

január 9

Docker "kedvesség" - process limits

mind1 valami név · 2019. Jan. 9. (Sze), 10.14
Ez de fura... a szerveremen nem tudom honnan, be van állítva egy default process limit a usereknek:
ulimit -u
30784

Én úgy tudtam, hogy ez unlimited by default, de most olvasgatva úgy tűnik, az unlimited egy Debian specialitás, egyébként a kernel beállít egy alapértéket. (ettől kezdve nem értem, hogy működhet a fork bomb nevű poén)
No mindegy, a minap az androidos telefonomat sikerült kiakasztani egy ilyen fork bomb segítségével, hogy kis híján a szervizben kötött ki :D
Most docker konténerben akartam kipróbálni, de biztos-ami-biztos inkább megnéztem a konténer limitjeit. És itt jött a meglepetés: a host minden processzének be van állítva limit, kivéve a docker konténert. A konténerből simán megfektethetem a hostot is egy ilyen fork bomb segítségével...
Nem gáz ez egy kicsit?

Update: O.K., lehet limitet adni a konténernek, de ha külön nem gondoskodom róla, akkor bizony limitálatlanul rohangál...
 

január 8

github privát repo (blogposzt, jobb híján a fórumon)

mind1 valami név · 2019. Jan. 8. (K), 10.58
Azt írja az Arstechnica, hogy egy mai bejelentés szerint, mostantól az ingyenes accountok tulajdonosai is használhatnak privát repot.

Érdekes... tudom, rosszindulatú vagyok, de már megint az okot, a hátsó szándékot keresem a dolog mögött.
Vajon csak annyi lenne, hogy sokan kerestek más helyet a kódjaiknak, miután a Microsoft felvásárolta a githubot és próbálják megtartani azokat, akik maradtak?
Vagy (ennek még utánanézek a felhasználási feltételek közt) arra számítanak, hogy így értékesebb kódokat is megkapnak? Bár ezt nem hiszem, aki komoly szoftvert fejleszt és nem hajlandó nyíltforrásúvá tenni, az nem fog ingyenes tárolót használni.

Szóval kíváncsi vagyok. :)
 

január 7

Feldolgozási sorrend?

mind1 valami név · 2019. Jan. 7. (H), 21.15
Ha van egy szövegfájlom (linux kernel logja), amiben sokféle, javarészt ismert szerkezetű sor található, akkor milyen sorrendet szokás követni a feldolgozásban?
Előbb parse-olás és utána a szűrés a már szétszedett, kielemzett sor mezőinek értéke alapján?
Vagy előbb a szűrés regex alapján és attól függően, hogy milyen mintára illeszkedett a sor, mehet a trancsírozás és a mezők értékét csak a különböző feldolgozásokhoz, statisztikákhoz használom fel?
Vagy ennek egy változata, hogy dupla szűrést csinálok: egyet a parse-olás előtt, hogy eldöntsem, milyen sort is kaptam, majd egy másikat ami már a mezők alapján szűr?
 

január 6

el nem végzett munka

misike · 2019. Jan. 6. (V), 10.04
Üdv!

Van két táblám és egy működő lekérdezésem ez az:
select f.feladat, f.db, count(m.mego) megoldottam from feladatok f left join matek m on f.feladat=m.felnev and m.id='$id' and m.mego='Jó' and DATE(m.ido)=CURDATE() where f.db<>0 group by f.feladat,f.db
A count(m.mego) megoldottam értéke az elvégzett feladatok száma. Ha nulla az az el nem végzett feladat.

Ez kilistázza egy embernek az elvégzett és el nem végzett feladatait. Abban kérnék segítséget hogy ez ne csak egy emberét listázza ki hanem csoportosan mindenkiét a felhasználónévvel együtt. Itt már van harmadik tábla.

Próbálkoztam így:
select u.user, f.feladat, f.db, count(m.mego) megoldottam from feladatok f left join matek m
on f.feladat=m.felnev and m.mego='Jó' and DATE(m.ido)=CURDATE() left join users u
on u.id2=m.id where f.db<>0  group by u.user, f.feladat,f.db
meg így:
select 
        u.user,
	f.feladat,
	f.db,
	count(m.mego) megoldottam 
	from   users u
	 join matek m on u.id2=m.id 
	right join feladatok f on f.feladat=m.felnev  
	  and m.mego='Jó' 
	  and DATE(m.ido)=CURDATE()-2 
	where f.db<>0 
	  and u.user <> 'Mindenki' 
	group by 
	  u.user,
	  u.feladat,
	  f.db");
Ezek sajnos nem listázzák ki az el nem végzett feladatokat. Tudna valaki segíteni?
Köszi.
 

január 4

docker vs lxc

mind1 valami név · 2019. Jan. 4. (P), 12.05
Láttam, hogy többen használjátok a dockert. Van köztetek olyan, aki az lxc-t is ismeri? Ezek milyen viszonyban vannak egymással?
Annyi "tiszta", hogy a docker az kb. arról szól, hogy egy app/konténer és a konténer addig él, míg az applikáció. Az lxc konténerben több applikáció is futhat, valahol egy chroot és egy virtuális gép közt van.

Viszont amennyire emlékszem, az lxc konténerek update-elése belülről is mehet talán (bemegyek a konténerbe és mondjuk debian esetén egy apt-get upgrade-del letudom a dolgot), míg a docker esetében, ha jól értem, a karbantartóra kell várnom, hogy az image-et update-elje, csak utána tudom lerántani magamhoz a javított verziót.
Ez tényleg így van?
Ha így van, ez jó dolog éles környezetben, hogy esetleg több napos késéssel jön meg egy biztonsági javítás?

----
Mondjuk felmerültek bennem olyan apróságok is, hogy ha van egy webes applikációm, amihez tartozik web szerver, RDBMS, reverse proxy valami middleware (mondjuk egy komolyabb MQ szoftver), az kapásból négy-öt konténer, amiket már nem annyira egyszerű kézben tartani külön management szoftver nélkül.
(asszem, janoszen írta valahol, hogy ha kettőnél több konténer, akkor már kell valami management cucc föléjük)
 

január 4

Rekurzió

mahoo · 2019. Jan. 3. (Cs), 22.45
Lenne egy egyszerű feladat: nested tömbben megszámolni egy adott elem gyakoriságát, rekurzív módon.
Nekem van egy megoldásom, de nem igazán tetszik és érdekelne más megoldás.
function countItems(arr, item) {
  var result = 0;

  (function count(arr, item){
    for (var i=0; i<arr.length; i++){
      if (Array.isArray(arr[i])){
        count(arr[i], item);
      } else if (arr[i] === item) {
        result++;
      }
    }
  })(arr, item);

  return result;
}


var arr = [
	["banana", "strawberry", "apple", ["banana", "strawberry", "apple", ["apple"]], "apple"], 
  "apple",
  ["banana", "strawberry", "apple", ["banana", "strawberry", "apple"]]
];
console.log(countItems(arr, "apple"));
Ami nem tetszik:
- van benne egy 'for'
- biztos van szebb megoldas :)
 

január 2

Adatküldés kliens oldali formázással?

mind1 valami név · 2019. Jan. 2. (Sze), 10.00
Kicsit csatlakoznék Gábor, szemantikus webbel kapcsolatos elképzeléseihez.
Valami hóttprimitív megoldást szeretnék arra, hogy küldök egy nagy halom adatot, leginkább gépi feldolgozást támogató formában a böngészőnek (természetesen megjelölve, hogy mi, micsoda benne), amiből aztán a böngésző készítene fogyasztható formátumú weblapot.
A kérdés az lenne, hogy ehhez milyen formát célszerű használni manapság?
Számomra ideális az lenne, ha JSON-t küldhetnék, meg mellé egy halom CSS-t, de úgy tudom, ez nem megy.
XML-ben lehetne, de az minden, csak nem egyszerű, ha kulturált formában akarom tartani az egészet.
Van erre valami bevált, kevés munkával megvalósítható eljárás?

Például van egy nagy halom IP cím, mindegyik mellett néhány számláló. Ez JSON-ben valahogy így néz ki:
'{"1.1.1.1": [1, 2, 3, 4], "1.2.3.4": [0, 12, 44, 55], "8.8.8.8": [123, 33, 55, 111]}'

Ebből szeretnék valami ilyet kapni a böngészőben:
1.1.1.1       1    2    3    4
1.2.3.4       0   12   44   55
8.8.8.8     123   33   55  111

Gondolom, ezt kliens oldalon macerás feldolgozni, ha nem akarok mélyebben elmerülni még a Javascriptben is.
Ha nem JSON-t, hanem XML-t küldök, azzal megoldható amit akarok (már nem emlékszem, pontosan mit kell használni, annak utána tudok nézni), csak az XML egy böszme állatfajta, akkor már az is egyszerűbb, ha a szerver rakja össze a HTML kódot.
Vagy eleve rossz úton járok?

ui: a Spamrobot vagy? captcha kicsit gázos, ha az előnézetet használom. Valami "reuse attack"-ra panaszkodik. :(
 

január 1

Formázott ul középre helyezése

Blackfriar · 2019. Jan. 1. (K), 06.37
Sziasztok !
Egy olyan ul-t szeretnék vízszintesen középre helyezni (akár pl. egy div-ben), ami pl. az alábbi formázással rendelkezik.
ul {list-style-type: upper-roman;}
Tehát nem vízszintes menüt szeretnék, ha valaki esetleg arra gondol.
A "list-style-position: inside;"-dal pont a lényeget veszítjük el.