Jak si zobrazit pomocí Chrome a na Chromiu založených webových prohlížečích stránky s neplatným certifikátem? Stačí napsat thisisunsafe.
V repozitáři AUR (Arch User Repository) linuxové distribuce Arch Linux byly nalezeny a odstraněny tři balíčky s malwarem. Jedná se o librewolf-fix-bin, firefox-patch-bin a zen-browser-patched-bin.
Dle plánu by Debian 13 s kódovým názvem Trixie měl vyjít v sobotu 9. srpna.
Vývoj linuxové distribuce Clear Linux (Wikipedie) vyvíjené společností Intel a optimalizováné pro jejich procesory byl oficiálně ukončen.
Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie).
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 12.0 (Mastodon). Forgejo je fork Gitei.
Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 155 (pdf) a Hello World 27 (pdf).
Hyprland, tj. kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, byl vydán ve verzi 0.50.0. Podrobný přehled novinek na GitHubu.
Patrick Volkerding oznámil před dvaatřiceti lety vydání Slackware Linuxu 1.00. Slackware Linux byl tenkrát k dispozici na 3,5 palcových disketách. Základní systém byl na 13 disketách. Kdo chtěl grafiku, potřeboval dalších 11 disket. Slackware Linux 1.00 byl postaven na Linuxu .99pl11 Alpha, libc 4.4.1, g++ 2.4.5 a XFree86 1.3.
Ministerstvo pro místní rozvoj (MMR) jako první orgán státní správy v Česku spustilo takzvaný „bug bounty“ program pro odhalování bezpečnostních rizik a zranitelných míst ve svých informačních systémech. Za nalezení kritické zranitelnosti nabízí veřejnosti odměnu 1000 eur, v případě vysoké závažnosti je to 500 eur. Program se inspiruje přístupy běžnými v komerčním sektoru nebo ve veřejné sféře v zahraničí.
Facebook otevře HipHop - čerstvě vyvinutý překladač z PHP do C++. HipHop snižuje nároky na systém při vykonávání skriptů. Byl vyvíjen dva roky a běží na něm 90 % webového provozu na Facebooku. Zatím není kompatibilní s web serverem Apache, ani s PHP 5.3. Více na ITBiz.cz.
Tiskni
Sdílej:
btw. v com by ste taky facebook riesili vy ? python ? java ?
Určitě ne v jazyce, který je slabě typovaný a nemá rozumný systém modulů/balíčků. Také bych si asi rozmyslel, jestli je úplně nejlepší vlastnost, že to, co je mimo <?php a ?>, se posílá na výstup.
Také bych si asi rozmyslel, jestli je úplně nejlepší vlastnost, že to, co je mimo <?php a ?>, se posílá na výstup.
Proč je tohle problém?
Může se stát, že se před otevírací <?php dostane třeba mezera, a to pak může být problém. Navíc, tam, kde používají šablonovací systémy, se tato featura nepoužije.
printf("xxx")
může dostat mezera za otevírací " slusny programator si dava pozor na to, co robi
IMO je lepší, když problematické situace nemohou nastat, než když programátor musí hlídat, aby nenastaly.
Obecně hlídat, jestli se před voláním header
zavolá echo
, je nerozhodnutelný problém.
Já nechci tvrdit, co by PHP mělo nebo nemělo, nicméně si myslím, že by jazyk (nebo alespoň jeho implementace) měl podobné situace hlídat (nebo jim nějak zamezit), čím více chyb zachytí ještě před spuštěním programu, tím lépe.
<?php ?> je len jeden z miliónov spôsobov, ako spraviť interfejs medzi webserverom a jazykom. Ak si napíšem modul haskellu pre apache, kde bude úplne rovnako fungovať <?haskell ?>, tak to spraví z haskellu zlý jazyk? A naopak, aj pre PHP existujú iné metódy ako ho spojiť s webserverom. Ničmenej, s prvou časťou komentára súhlasím, takže najjednoduchšie je PHP nepoužívať vôbec, ak človeka zrovna nenútia revolverom priloženým ku spánku
Můžete se podělit o svůj názor.
Ještě dodám, že to, co jsem jmenoval, považuji za špatné i pro malé projekty a bohužel, pokud vím, tak se v PHP 6 nic nezmění.
Pro větší než drobné projekty zcela nevhodné
Nechápu proč. Pro PHP přece existuje spousta kvalitních frameworků (třeba Nette), s jejichž pomocí se dají větší věci bez problémů (a celkem kvalitně) psát. Možná máš na mysli jen staré funkcionální PHP?
Máte asi na mysli neobjektové PHP v zmysle používania funkcií namiesto metód? Lebo funkcionálne PHP nebolo, nie je a asi ani nebude nikdy. Akurát v posledných verziách dolepili zopár funkcionálnych vlastností (lambda funkcie, uzávery).
Ale běhové prostředí pro PHP musí dělat v podstatě totéž co běhové prostředí pro Javu. Rozdíl je třeba v tom, že v Javě máte (většinou) "lepší" typovou informaci, takže k proměnným není potřeba ukládat jejich typ, testovat typy za běhu atd.
Otázka je, jak moc sa dá v ktorom jazyku prasiť a jak je k tomu kompilátor/interpreter tolerantný. V PHP je to ďaleko za únosnou mierou.
Jinak obecně, každý scriptovací jazyk nemůže být rychlejší než jazyk nativní...Není zas tak těžké uvědomit si, že to není pravda.
S tým výkonom si dosť mimo. Kedysi to bolo ďaleko horšie, dnes je rýchlosť Javy inde a ku C++ má rozhodne ďaleko ďaleko bližšie než nejaké PHP (o rády). A bude to ešte lepšie, lebo JIT kompilátory zďaleka nepovedali posledné slovo. Btw, porovnávať jazyky, na základe nejakých benchmarkov webových aplikácií, v ktorých ide obvykle predovšetkým o rýchlosť prístupu k databáze, je trochu nevhodné
Húm hóm, tak javovské aplikácie ani mne nepripadali nikdy 2x rýchle a vždy žrali strašne veľa pamäte (na čo zástancovia Javy obvykle odpovedajú, že si človek má kúpiť silnejšie CPU a viac RAM...), ale IMHO je to oveľa viac problém zlého programovania, než toho, že by ten jazyk bol inherentne pomalý (a ani nemá prečo. Je to síce VM, ale s poriadnym JIT kompilátorom, ktorý ľudia od Sunu stále vylepšujú, sa tá rýchlosť blíži predkompilovanému kódu).
V princípe nevidím žiadny dôvod, prečo by Java mala byť pre desktop fuj a napr. C(++) nie. Všetky tie jazyky majú kopu výhod a kopu nevýhod. Javovské programy majú teda problém s GUI (aspoň z môjho pohľadu je to na hranici (ne)použiteľnosti), ale to nie je problém jazyka ako takého.
Jinak co se týče té posloupnosti operací pro PHP - interpretace kódu budiž, přesto se dá použít něco jako memcached, připojení k db může být přece persistentní, db queries jdou také velice dobře cachovat (praxe), výpis dat bude pro jednotlivé jazyky porovnatelný.Vem si, že v Javě můžeš zkombinovat Hibernate (který má cache na objekty z DB a na výsledky dotazů) a ještě mít často užívané věci (v redakčáku třeba položky z levého sloupce) jednoduše v globálních proměnných. Třeba když budeš mít v Lucene databází pro vyhledávání na webu, tak jí máš trvale načtenou v paměti... to nepřebiješ.
Vem si, že v Javě můžeš zkombinovat Hibernate (který má cache na objekty z DB a na výsledky dotazů)A přesto je to bezkonkurenčně nejpomalejší a venkoncem nejproblematičtější způsob přístupu k datům, jaký si lze vůbec představit
Chjo, tak znova... Toto nie je vlastnosť jazyka, ale čisto jeho spojenia s webserverom. Áno, ja viem, ľudí to mätie, keď 99.9% inštalácii PHP je cez libphp v apache a zamieňajú jazyk samotný s apachovským modulom, ale aj tak by nebolo od veci sa vyjadrovať trochu presnejšie
Tu sa neporovnávajú rýchlosti. Leoš písal o nejakých nových vlastnostiach jazyka, ktoré by mali umožňovať perzistenciu stavu. Ja som len upozornil, že to s jazykom nijak nesúvisí, je to dané čisto majoritným apache modulom, ktorý toto nikdy neumožňoval a nikdy umožňovať nebude, proste kvôli tomu, jak je koncipovaný (ako skript interpreter).
Ak sa porozhliadnete po tejto diskusii, tak si všimnete, že to je v skutočnosti úplne inak a to tak, že väčšina ľudí (a to sme na abclinuxu ešte v ďaleko lepších podmienkach, čo sa kvality programátorov týka, než bežní PHP hurá programátori tam vonku) si ani neuvedomí, že existuje rozdiel medzi PHP ako jazykom a libphp ako apache modulom. Preto má podľa mňa zmysel na to poukazovať.
Tu sa neporovnávajú rýchlosti.Ano, věta „můj odhad je, že by bylo o dost pomalejší“ s rychlostí vůbec nijak nesouvisí…
Ja som len upozornil, že to s jazykom nijak nesúvisíA já se vám marně snažím vysvětlit, že se zde neporovnávají jazyky (gramatika), ale majoritní implementace (kompilátor+běhové prostředí, runtime knihovny), kterým se říká stejně, jako těm jazykům.
Ak sa porozhliadnete po tejto diskusii, tak si všimnete, že to je v skutočnosti úplne inak a to tak, že väčšina ľudí (a to sme na abclinuxu ešte v ďaleko lepších podmienkach, čo sa kvality programátorov týka, než bežní PHP hurá programátori tam vonku) si ani neuvedomí, že existuje rozdiel medzi PHP ako jazykom a libphp ako apache modulom. Preto má podľa mňa zmysel na to poukazovať.To je od vás hezké, že na to poukazujete, ale tady všichni vědí, že se diskutuje o konkrétní implementaci – jediný, kdo to nechápe, jste vy.
Zaujímavé. Leoš nižšie špecifikoval, že mal na mysli _ľubovoľnú implementáciu_. Takže minimálne ja a Leoš o tom, že sa bavíme o konkrétnej implementácii nevieme. A myslím si, že nás takých bude viac. Ale pán Jirsák je samozrejme schopný hovoriť za celé ľudstvo... Btw, keby ste sa trochu zamysleli, tak by Vám došlo, že sa nemohlo jednať o konkrétnu apache implementáciu, pretože tá niečo ako cache neumožňuje z princípu: interpreter sa spúšťa pre každý request znova. Jediná možnosť ako docieliť cachovania, je zmeniť ten modul, alebo napísať nový. V oboch prípadoch dostanete novú implementáciu
Podľa mňa to rozumné nie je; sám som ten posledný, kto by PHP používal Ja som chcel len trochu vyjasniť ten zmätok okolo otázky jazyk/implementácia, ktorá určite nie je tak jednoznačná, jak ste sa snažili tvrdiť. Len na okraj, ak ste ešte nezabudli, tak celá táto diskusia je pod správičkou o prekladači PHP do C++
Inak som samozrejme netušil, že pod mojou krátkou poznámkou sa rozbehne takýto flame, ktorý už začína byť pomaly ale isto OT. Asi si po vzore Ládička nabudúce rozmyslím, či má nejaký zmysel sa do týchto diskusií vôbec zapájať
Neukážem ti ju. Možno taký apache modul existuje, možno nie (pre python aj pre ruby existujú, takže by som sa nečudoval, keby existoval aj pre PHP). Ničmenej moja pointa bola, že to, čo žiadal Leoš (perzistencia dát, cache, ...) nikdy v tom súčasnom module nebude, už z toho dôvodu, jak je postavený. Takže to nie je otázka nových vlastností jazyka, je to len otázka napísania nového apache modulu. Toť vsjo, nič viac som nechcel povedať.
V princípe určite áno. Treba ale na to netriviálne znalosti (tzn. ďaleko väčšie, než má väčšina PHP programátorov) a v tom prípade už nevidím dôvod PHP vôbec používať, keď máme desiatky lepších jazykov, vrátane Javy.
Aplikácia pred requestom nie je a nemôže byť v rovnakom stave, ak nie sú tie stránky úplne statické. Čo prístup na stránky od prihláseného/neprihláseného používateľa. Skutočne je to úplne rovnaké? Práve naopak, človek by ideálne chcel aplikáciu so skutočným stavom (tj. aplikačný server), ktorá by spracovávala požiadavky klienta (preposlané cez webserver). Až na tejto úrovni sa dá hovoriť o poriadnej aplikácií. V PHP sa toto rieši pomocou $_SESSION, ukladaní stavu do databáze, a pod., proste stav sa niekam odkladá, ale treba si uvedomiť, že sú to všetko len obezličky, ktoré majú nahradiť hlavný nedostatok a to je ten, že sa nedá napísať poriadna serverová aplikácia, ktorá by mala stav proste permanente uložený v pamäti. Pre malé weby to je výhoda, lebo tam si aplikácie veľa stavu pamätať nepotrebujú. IMHO toto mal Luboš na mysli, keď povedal, že PHP je pre väčšie projekty nevhodné.
Ešte doplním, že toto opäť nie je problém PHP ako jazyku, ale problém jeho najčastejšieho využitia pomocou libphp apache modulu. V princípe nie je problém použiť PHP na napísanie serverovej aplikácie, ktorá spracováva požiadavky (napr. pre python aj ruby existujú obe možnosti, jednak interpretácia skriptov ako bežne s PHP, jednak poriadne aplikácie), ale otázka je, či by v tomto prípade ešte malo nejaký zmysel PHP použiť a nebolo by lepšie siahnuť po lepšom jazyku; či už dynamickom (python, ruby), alebo statickom (java, c#), alebo pokojne po niečom exotickejšom (smalltalk seaside)
Tak. Databáza má IMHO slúžiť len na dve veci: 1) ako zbierka dát, nad ktorými sa dá efektívne vyhľadávať, 2) ako záloha stavu aplikácie. Pre ten účel číslo 2 sa dá rovnako dobre zálohovať na disk, alebo hocikam inam. Problém je, keď sa databáza začne zneužívať na udržiavanie stavu, kvôli tomu, že jazyk samotný to rozumne neumožňuje.
Ja tak isto. Ale do databáze sa dá uložiť aj ten stav. Session nie je žiadna výnimka, je to presne pamäť aplikácie. Bežná aplikácia v PHP nie je jeden .php súbor, ale ich kolekcia, ktorá interaguje cez $_SESSION, alebo cez databázu. Problém je, že toto nie je dobrá komunikácia v rámci jednej aplikácie pre väčšie projekty.
No, áno, ide to. Rovnako, ako sa dá presunúť tona piesku rukami namiesto použitia bágru
A čo ak ti spadne webserver? Čo ak vypnú elektrinu? Všetko sa to môže stať, ale v produkčnom prostredí existujú metódy, ako sa s tým vysporiadať. A medzi aplikačným serverom a webserverom nie je žiadny rozdiel. Oba sú to servere, na oba sa dajú použiť podobné metódy.
Pletieš hrušky s jablkami. GET a POST sú HTTP metódy slúžiace na komunikáciu klienta so serverom pomocou HTTP protokolu. $_GET a $_POST sú potom už len access pointy k týmto dátam, ktoré apache dáva PHP skriptu. SESSION funguje úplne inak a nemá s HTTP nič spoločné
Áno, presne tak, je to perzistentné úložište, čiže má služiť maximálne ako backup stavu, nie ako miesto, kde sa aktuálny stav drží. Viete si predstaviť desktopovú aplikáciu, ktorá by celý svoj stav držala v databáze? Žiadna to nebude robiť (desktopové aplikácie používajú obvykle databázy na celkom iný účel a to, svete div sa, ako databázu, čiže kolekciu dát, nad ktorými sa vyhľadáva), lebo je to už z princípu pomalé a z rôznych dôvodov problematické (treba stav pri každom spustení aplikácie, čo je každý client request, všetko správne načítať z databázy a po skončení zasa uložiť. Pri oboch procesoch sa dá vyrobiť kopa zbytočných chýb). Keď má človek možnosť držať stav v pamäti, tak je to pochopiteľne oveľa lepšie. Používať databázu namiesto pamäte je len obezlička a perzistencia dát je len výhovorka, lebo sú možnosti ako si dáta ustrážiť.
Doporučujem Vám zistiť si, ako funguje softvér v telekomunikáciách, alebo v leteckých spoločnostiach. Skutočne si myslíte, že tieto aplikácie môžu vypovedať službu čo len na sekundu v priebehu celoročnej prevádzky? Pritom žiadne databázy nepotrebujú. Stači dostatočný paralelizmus a metódy samoopravy spadnutých procesov (viď Erlang).
Tento kolobeh znacne zjednodusuje tvorbu aplikaci, protoze se muzes spolehnout, ze aplikace je pred request vzdy ve stejnem stavu. Duvod, proc Drupal a Joomla jsou pomale lezi IMHO uplne nekde jinde ...Ten důvod leží právě hlavně v tom, že pokaždé musí všechno tahat nanovo. Je to jako jet autem a na každé křižovatce nanovo startovat a rozjíždět auto.
Poďalšie ja som nenapísal najrozšírenejšie (M$), ale najlepšie.Však já jsem taky psal nejlepší.
Docela se divím, proč je FB psaný z velké části zrovna v PHP."PHP's roots are those of a scripting language, like Perl, Python, and Ruby, all of which have major benefits in terms of programmer productivity and the ability to iterate quickly on products. This is compared to more traditional compiled languages like C++ and interpreted languages like Java." -- viz odkaz ve zprávičce
"Který jazyk nemá..."
Čo jazyky, o ktorých sa dá dokázať, že nemajú žiadne chyby? A na nich vybudované nástroje na dokazovanie programov. Pravda, bežní programátori sú skeptickí a tvrdia, že vyrobiť dôkaz zaberie oveľa viac času ako napísať samotný program
Btw, PHP nemá len tak nejaké mušky, ale poriadne muchy, ktorých je v každej novej verzii opravených na desiatky. O tom, že aj v zlom jazyku je dobrý programátor písať slušne, netreba polemizovať, ale to nič nemení na tom, že PHP je jeden obrovský bordel a je to čím ďalej tým horšie (funkcionálne programovanie a menné priestory sú chválitebné, ale ten spôsob, akým to zapracovali má k dokonalosti veľmi ďaleko...). Tak isto to ich "objektové programovanie" s miliónmi menných prepínačov, ktoré pribúdajú v každej druhej verzii (napr. kvôli nedostatočnej introspekcii tried) a jasne ukazujú, jak nevhodne to bolo celé navrhnuté. A čo napr. používateľska správa chýb? Majú veľmi zvláštnu ad hoc hranicu medzi vnútornými Zend chybami, na ktorých vyhorí samotný parser a človek už nič nenarobí a chybami, ktoré v súčasných verziách môže ešte programátor spracovať (vhodné na testovanie a debugovanie). Je toho proste moc. PHP nie je jazyk. PHP je trochu lepší shell...
Nedostatky vidím v tom, že tak ako celé PHP, sú tam len dolepené a nie integrálnou súčasťou. Stačí porovnať s jazykom so slušnou správou modulov, napr. Haskell, Lisp, ale postačí aj Java. Lambda funkcie to isté. Holt je ich ťažko zapracovať do jazyka, ktorý má milión prepínačov typu global (ktoré sú pozostatkom ranného detstva PHP a v normálnom jazyku nemajú čo hľadať), a tým pádom nie je moc jasné, aký presne majú mať tie bindingy scope. Toto je ale problém aj lepšich jazykov, napr. Lispu, kde odchytiť do uzáveru lexikálnu premennú je niečo úplne iného ako odchytiť dynamickú (a to druhé je dokonca občas závislé od implementácie). Najjednoduchšie sa to rieši Schemeovský prístupom: všetky bindingy majú lexikálny scope. Toto by ale len tak nejaký imperatívny programátor asi moc neprežul
Introspekcia, zadať do googlu late static binding, ktoré pribudlo fakt len nedávno a zistíte, čo všetko bolo ešte nedávno prakticky nemožné (keď som chcel nájsť pravý objekt, ktorý volal oddedenú statickú metódu, musel som to riešiť pomocou debug backtrace a zopár hackov. Lepší spôsob som nenašiel ani osobne, ani na internete). Takýchto prepínačov bindingov má PHP opäť kopu a v prípade objektov je ten bordel s globálnymi, statickými, oddedenými priestormi samozrejme ešte ďaleko väčší než obvykle...
Aby som to zhrnul, tak celkovo za najväčší zdroj problémov PHP považujem to, že si dopredu neujasnili, aké presne bindingy od toho jazyka čakajú, takže použili všetky možné a teraz tú oceľovú guľu budú so sebou vliecť už navždy.
Veľmi by neuspelo. Ako python, tak ruby, majú celkom slušný základný návrh (nehovorím, že dokonalý, to ani omylom, ale aspoň niečo, na rozdiel od PHP). Ruby je ako potomok smalltalku čisto objektový a prakticky celý jazyk je v tomto zmysle konzistentný a kým sa človek nezačne hrabať v metaprogramovaní, tak na nejaké zákernosti nenarazí. Niekomu môžu vadiť perlovské syntaktické bonbóniky, ale to je už len detail. Python je na tom vcelku podobne, hoci je to trochu väčší bordel. Ale celkovo sa ani jeden z jazykov nedá s PHP porovnávať. Oba majú dobre spracované bindingy a správu premenných, objektové aj funkcionálne programovanie na veľmi slušnej úrovni (hoci python trochu pokrivkáva), sú silne typované, veľmi dobrý koncept modulov, dalo by sa pokračovať. PHP oproti týmto jazykom nemá prakticky žiadnu výhodu.
To je síce pravda, ale zas tak hrozné to nie je. Navyše pre produkčnú aplikáciu už nemá človek problém trochu zainvestovať do komplexného serverového riešenia. Každopádne, ja som porovnával len jazyky samotné.
Ne, Python je silně a dynamicky typovaný, ale PHP je slabě a dynamicky, Java je silně a (víceméně) staticky, Agda je silně a staticky.
(Hranice mezi slabě a silně typovanými jazyky není přesně definována).
Ak pokladáš python za vylepšené PHP, tak buď neovládaš python, alebo PHP, alebo ani jedno
A btw, python je o 5 rokov starší, takže ak nemal Guido vešteckú guľu, ťažko sa mohol riadiť modelom PHP pri návrhu pythonu (aj keby PHP nejaký model malo...)
Podle čeho soudíte, že to běhá rychle?
Btw, ty kecy o nevhodnosti na veliké projekty jsou jen známkou neschopnosti slušně navrhnout program.
Myslím si, že je PHP v některých věcech příliš tolerantní.
HipHop,
PHP → C++. To je teda vražedná kombinace.