Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 161 (pdf).
Po delší době vývoje vyšla nativní linuxová verze virtuálního bubeníka MT-PowerDrumKit 2 ve formátu VST3. Mezi testovanými hosty jsou Reaper, Ardour, Bitwig a Carla.
Desktopové prostředí Budgie bylo vydáno ve verzi 10.10. Dokončena byla migrace z X11 na Wayland. Budgie 10 vstupuje do režimu údržby. Vývoj se přesouvá k Budgie 11. Dlouho se řešilo, v čem bude nové Budgie napsáno. Budgie 10 je postaveno nad GTK 3. Přemýšlelo se také nad přepsáním z GTK do EFL. Budgie 11 bude nakonec postaveno nad Qt 6.
OpenChaos.dev je 'samovolně se vyvíjející open source projekt' s nedefinovaným cílem. Každý týden mohou lidé hlasovat o návrzích (pull requestech), přičemž vítězný návrh se integruje do kódu projektu (repozitář na GitHubu). Hlasováním je možné změnit téměř vše, včetně tohoto pravidla. Hlasování končí vždy v neděli v 9:00 UTC.
Byl vydán Debian 13.3, tj. třetí opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.13, tj. třináctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
Na stránkách Evropské komise, na portálu Podělte se o svůj názor, se lze do 3. února podělit o názor k iniciativě Evropské otevřené digitální ekosystémy řešící přístup EU k otevřenému softwaru.
Společnost Kagi stojící za stejnojmenným placeným vyhledávačem vydala (𝕏) alfa verzi linuxové verze (flatpak) svého proprietárního webového prohlížeče Orion.
Firma Bose se po tlaku uživatelů rozhodla, že otevře API svých chytrých reproduktorů SoundTouch, což umožní pokračovat v jejich používání i po plánovaném ukončení podpory v letošním roce. Pro ovládání také bude stále možné využívat oficiální aplikaci, ale už pouze lokálně bez cloudových služeb. Dokumentace API dostupná zde (soubor PDF).
Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.
AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.
Tiskni
Sdílej:
>>Pro jakého čerta si potřebujete zvolit, zda je metoda virtuální? Kromě honění pikosekund to k ničemu nepotřebujete – tedy se u většiny skutečných OOP jazyků se vám takové volby nedostane. U vačšiny? U vačšiny mainstreamových jazykov(C++, C#, Visual Basic, Pascal / Delphi) si môžem zvoliť či bude metóda virtuálna.Asi to bude tym, ze vyraz "skutocne OOP jazyky" a vyraz "mainstreamove jazyky" oznacuju disjunktne mnoziny.
Smalltalk, ktorý sa v praxi medzi developermi moc neujal.Spousta old school věcí je ve smalltalku. Navíc lekce naučené ve smalltalku tak nějak daly směr moderním OO jazykům.
nemožnosť zvoliť či má byť metóda virtuálna (všetky metódy sú defaultne virtuálne)+
Potrebujem to kôli tomu aby som mohol zamedziť tomu aby iný developer moju metódu v inom objekte prepísal aj v rodičovskej triede.Tohle nějak nechápu. Pokud jsou všechny virtuální tak nepotřebujete nic označovat. Spíš by Vás mělo trápit že si nemůžete označit která *není* virtuální. Ale proč byste to dělal? Jinak...
je to neobjektové, neprehľadné a neintuitívne a a každá PHP knižničná funkcia má iné poradie parametrov.Tohle mě sere taky, nechápu kterej magor to takhle udělal. Nepište o PHP dlouhé články, ale vykašlete se na něj. A na všechny deriváty na něm postavené (drupal...) taky.
Jediné mainstramové OO jazyky ktoré túto možnosť nepodporujú sú Java a PHP. Potrebujem to kôli tomu aby som mohol zamedziť tomu aby iný developer moju metódu v inom objekte prepísal aj v rodičovskej triede.Pokud se to pochopil správně, jde vám o to, aby vaše metody nebyly předefinovatelné v potomkovi. Na to existuje klíčové slovo final.
Rychlejsi a vykonejsi pocitace potrebujem i kvuli OOP ... protoze programatori "zleniveli" a pisou hur nez driv. Mimo jine peknym prikladem je prave objektove programovani. Je to mocny nastroj, ale mel by se pouzivat s rozumem. Je spousta veci, kde pouzivat objekty je zbytecne.
Mimochodem, tohle ja taky pekny nesmysl:
k sa snažíte v PHP programovať objektovo (čo je nutnosť ak chcete mať elegantný, bezpečný kód)Elegantni a bezpecny kod absolutne nema zadnou souvislost s objektovym programovanim ...
Pokud potrebujes honit milisekundy, neprogramuj objektove, ale v co nejnizsim jazyce ... takze minimalne C, nebo asembler, pripadne rovnou ve strojakuSkutočne? Ono už to C býva občas rýchlejšie ako assembler, ak máte agresívne optimalizujúci kompilátor. Vo vyšších jazykoch sa dá dosiahnuť ešte vyššie zrýchlenie, vďaka kope sémantických informácií, ktoré kompilátor má k dispozícií, ale Vy ich pochopiteľne nevidíte (ak sa Vám teda nechce preliezať milión riadkov kódu...)
Samozrejme sa bavíme o jazykoch aspoň trochu orientovaných na rýchlosť (Lisp, rodina ML, Haskell), kde sa dajú často dosiahnuť lepšie výsledky ako s C, hoci je kód vysokoúrovňový.
?
Normálne aplikácie? To sú ktoré? A prečo si myslíte, že v Haskelle a Lispe sa "normálne" aplikácie (nech už je to čokoľvek) netvoria?
Ne ze by neslo napsat ucetnictvi treba v Lispu, ono by slo napsat treba i v Texu, ale je to dobry napadV Texu ne, ale v lispu urcite. A delalo by se to dobre.
lenže tých pár milisekúnd sa zvykne nazbierať a preto potrebujeme stále výkonnejšie počítače lebo väčšina dnešných programátorov rozmýšľa ako vy
Přečti si co se píše v nějaké 30 let staré knížce o programování a optimalizacích
.
if (string.Contains("PHP sux!"))
V PHP takto:
if (preg_match("/PHP sux/", $string))
Moc často se jinde nevrtám ale $this-> z PHP jsem viděl třeba v Qt jako this-> nebo u MS jazyků jako me., takže nevidím rozdíl... Prostě to tak je.
Třeba v C# jsem viděl naprosto otřesný způsob jak se připojit k databázi. V PHP stačí zavolat tři funkce, v C# ten človíček vytvářel nějakou podivnost aby to přinutil pracovat.
Class
{
private a = "x";
public void foo1(string a = "y")
{
return this.a; // vráti hodnotu x
}
public void foo1(string a = "y")
{
return a; // vráti hodnotu y
}
}
Class
{
private string a = "x";
public string foo1(string a = "y")
{
return this.a; // vráti hodnotu x
}
public string foo1(string a = "y")
{
return a; // vráti hodnotu y
}
}
ospravedlňujem sa som nevyspatý.
Či?
PHP je hrůza, a OOP v PHP je hrůza^2. Měl jsem tu čest vidět (při řešení problému s tím...) cosi co dodělává objektové chování, implementované v PHP pro PHP
, jedním slovem HNUS.
$this, s tím jsem nikdy problém neměl. Konkrétně jsem zvyklý psát ono redundantní this i v jiných objektově orientovaných jazycích, např. C++, mám prostě radši, když na první pohled vím, v jakém kontextu je proměnná deklarovaná (a neuznávám konvence typu m_variable), je to věc osobního stylu.
I přestože je v PHP hodně věcí špatných (způsobeno hlavně dlouhou historií PHP, zpětnou kompatibilitou a leností vývojářů), tak se v PHP dá psát vcelku slušný a dobrý kód, viz např. Doctrine 2 nebo Nette Framework.
Vždycky je to o človeku? Takže aspoň v princípe sa podľa teba dá rozumne programovať v Brainfucku? Alebo v PHP... 
Ja tiež nepoznám jazyk, v ktorom by sa nedalo prasiť, ale zároveň poznám kopu jazykov, v ktorých sa dá neprasiť. Brainfuck k nim ale nepatrí určite a PHP dosť možno tiež nie 
Btw mozna je povest php dana tim, ze k nemu vice tihnou prasici nez k ostatnim jazykum.
čo je nutnosť ak chcete mať elegantný, bezpečný kódA teď prosím tu o karkulce. Jinak ten matroš bych chtěl zkusit taky. Dodnes jsem nepochopil, jestli jako fakt a nebo jde o povedenou parodii. Pokud jde o parodii tak jednoznačně *THUMBS UP*.
$fn = "prehraj_".$typ;
if (function_exists($fn)) {
$fn($zvuk, $delka, ...);
} else {
error("Nepodporovaný typ zvuku.");
}
... a pak jen přidáváš funkce někam bokem. Dost podobně by se to dalo udělat i s třídama místo funkcí, ale to už je jen detail.
Podstatný je kvalitní návrh. Implementace je až druhořadá.
Zvuk.prehraj()
enum media_type { MEDIA_SOUND, ... };
struct media {
enum media_type type;
...
}
void prehraj(struct media m) {
switch(m.type) {
case MEDIA_SOUND:
...
case...
}
}