V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Oficiální ceny Raspberry Pi Compute Modulů 4 klesly o 5 dolarů (4 GB varianty), respektive o 10 dolarů (8 GB varianty).
Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
pekne pekne pekne, vic takovych vyletu do historie ....
+1
Výhodu s vlastním for cyklem moc nechápu. Jaký je tedy rozdíl oproti klasickému:
for (id o in myColleciton) {
[o className];
}
Dají se při té iteraci dělat i jiné věci než "obyčejný" průchod nějakou kolekcí?
To není o výhodách nebo nevýhodách. Smalltalk prostě nemá for cyklus. A proto je jeho syntaxe strašně jednoduchá, protože lze pouze posílat zprávu jinému objektu a jako odpověď získat zase objekt. Je to spíše o tom, že někdo, kdo tehdy přemýšlel, jak udělat pomocí takto jednoduchého mechanismu for cyklus, ho implementoval jako poslání zprávy to:do: se dvěma parametry horní mez a blok kódu třídě Number (nebo Integer). Tady už jenom stačí němě zírat a obdivovat genialitu původního autora.
Takže tvůj kód vypadá takto:
myCollection do: [ :o | o delejNeco ].
A "for cyklus" vypadá takto:
1 to: 10 do: [ :index | Transcript show: i printString ].
Je to poslání zprávy to:do: instanci 1 s prvním parametrem 10 a druhým parametrem [ :index | Transcript show: i printString ].
Můžete použít GNU/Smalltalk a nebo pokud chcete psát aplikace, ve kterých opravdu o něco jde, tak použijte Gemstone/S, což je profesionální objektový server, kde programujete ve Smalltalku. Můžete tam programovat webové aplikace v Seaside, protože Gemstone/S m8 Seaside již v základu. V tomto případě je to už opravdu jiný svět, než tradiční Java nebo C#.
No ono to asi původně jako OS bylo myšlený...
Já se Smalltalkem jako jazykem problém nemám, ale vadilo mi, že je to spíš operační systém - vlastní gui, vlákna, všechno.
Syndrom Javy, teda promiňte možná Syndrom Smalltalku v Javě.
Vlastní - dalo by se říct vlastní implementace. V tom je to strašně úchvatný... Vemte si, že ta doba je víceméně doba šílené rozstříštěnosti. Grafická reprezentace přímo závislá na HW, co produkt to vlastní HW, OS, vlastní jazyk. Takže cíl byl hodit abstraktní toolkit a každá platforma bude mít vlastní implementaci.
MVC - Model jak jsou data reprezentovaná, Controller co se s nima dělá, View jak se zobrazí. No asi nejlepší příklad za všechny:
Gnome (gtk) versus KDE(qt) ty mají dneska taky svoje "vlastní gui, vlákna, všechno".
Takovej Fatrat - na jedné straně toho umí moc, je to program který je výborný, ale musím mít nainstalované qt. Což není jeho vina. Já třeba narážím na file dialog, kde mám jiné záložky a chování v Gtk a jiné v Qt. A tak nevím jestli mi stačí 1 click nebo dvojklik. Proč tohle má řešit autor Fatratu? Jeho maximálně zajímá "Nech zvolit uživatele adresář/soubor a vrať mi cestu".
Grafická reprezentace není zrovna to proč fatrat používáme, autor nemá možnost psát v abstraktním Widget Toolkitu, tak aby jeden uživatel používal implementaci GTK a druhý QT a třetí třeba úplně něco jiného.
No jo, ale otázka je jak ten abstract Widget Toolkit vyrobit? V prním kroku to je minimálně zduplikovat a přepsat stávající api a co dál:
a) průnik features
- tak to bude hodně omezené
b) vlastní sada features a doprogramovat chybějící feature u každé, kde chybí
- no tak si vemte nějakou dobu zpět a vášnivé diskuze nad GTK file dialogem
c) ...?
Takže zůstane u jedné implentace, protože to vytvořit, udržovat a vyvíjet může jenom marťan (a nebo IBM - SWT).
Zase na druhou stranu takové webové aplikace - poprvé celé HTML (např. seznam titulků článků) a odkaz Next vrací (ajax dotaz json, normalně celké html)
logika a model zůstavá: dotaž se do db, udělej list titulků a zobraz(odešli).
Uspěch je dán body a) v základu omezné features, ale možnost b) rychle a ad-hoc doprogramovat chybějící, třeba v Javasciptu.
Pak ten FOR - další úchvatná věc. Prostě neexistují metody tak jak se jsou v c, jave atd. parametry taky neexistují, prostě je to zpráva, je to objekt.
Tak v javě: o.metoda( new Zprava() implements MethodParam<o>() { }) ... no to moc elegantni neni.
...
PS: no a v době SmallTalku přišlo IBM s MS a místo toho aby získali trh abstaktním sjednocením, převálcovali ho jednou konkrétní implementací.
Tady už jenom stačí němě zírat a obdivovat genialitu původního autora.Toto konkrétně není ani tak známka geniality, jako spíše důvěrná znalost funkcionálního přístupu. Samozřejmě, objektový přístup je oproti funkcionálnímu výrazný posun, ale v případě cyklů a iterací tam vidím docela nápadnou podobnost.
6.times{ .. }
z ruby je naprosto okouzlující.
Celej fígl je v tom, že vám odmala ve škole (nebo sami doma) znásilňují myšlení, abyste mysleli jak počítač. Když se to nakonec povede a jste znásilněni, zjistíte, že zpátky k lidskému myšlení (podobnost s objekty) to jde hodně těžko nebo mnohým vůbec. Taky sem s tím měl dost problémy, než sem pochopil, že základ je zapomenout, že existuje imperativní programování.
Po nějakém čase urputného boje,Pro mě největším problémem byl fakt, že ve Squeaku člověk nemůže použít nic z prostředí, na které byl zvyklý a je odkázaný pouze na samotné prostředí, které je ovšem hodně svérázné. To je pak učící křivka hodně strmá.
Super, dělal sem v tom jazyce a teda.... nešlo mi to...
Konkrétně tedy ne squeaku... http://www.squeak.org/ doporučuju zkusit...
V tomto jsem dělal. Celé prostředí byla jedna jediná disketa 1,44 MB a bootovalo se to na PC jako vlastní operační systém.
Bylo to úžasné na tu dobu, co to dokázalo.
Bohužel na Smalltalku je vidět, že je to spíš operační systém, než programovací jazyk. Má problémy se nějak přizpůsobit existujícímu prostředí, operačnímu systému.
Stejně tak absolutně chybějící jakákoli ochrana kódu je dost pofiderní. Není problém zaměnit významy false a true například, a změníte ho v celém programu.
Další důvod, proč se moc nerozšířil je nechutná pomalost toho všeho, zejména v tehdejší době na slabých hw. Režie skutečného OOP je v případě Smalltalku velmi vysoká a platí se za ní výrazným zpomalením běhu kódu.
A asi nejvíc, proč byl Smalltalk zabit je licence a drahota.
Byl to hezký jazyk, bezvadně se v tom dělá, vývoj je rychlý a baví vás to. Řada lidí dodnes vzpomíná na Smalltalk jako na nejlepší programátorské období svého života. Ale na druhé straně přináší řadu problémů – velmi těžko ve Smalltalku řešitelných. Jako viz nulová ochrana kódu, nedokážu si na tom představit týmovou spolupráci řady lidí.
Možná šlo tehdá o nevhodnou implementaci (bez VM) nebo jiný zádrhel. Dnes obsahuje daná metoda volání primitiva, milion sinů to udělá za sekundu na procáku 1,5 GHz. Takže zas tak divoký to nebude.
Komerční prostředí Smalltalku - Gemstone, VisualWorks, VistaSmalltalk a třebas Smalltalk X pokud vím zas tak velké problémy s integrací do systémů na kterých běží nemají, ba naopak.
Pochvala za pěkné čtení. Docela bych uvítal kdyby se někde objevilo srovnání různých variant Smalltalku a jak se dají použít v běžném nasazení, prostě mimo akademický svět.
Když už se tady mluví o objektově orientovaném programování, dovolím si přidat odkaz na článek, kde se autor na OOP dívá trochu jinak:
No a to je právě problém, že autor linkovaného článku myslí jako počítač a né jako člověk. Když si jdete koupit rohlík, taky chcete recept?
Ten článek rozumuje nad něčím co je úplně vedle.
In OOP, objects can hold pointers to data that someone else can change out from under you
Pointer a OOP - ne ten člověk to nepochopil.
Ten článek rozumuje nad něčím co je úplně vedle.
Autor se zabývá pozdní vazbou, a to je podstata OOP, ne?
Pointer a OOP - ne ten člověk to nepochopil.
Abych odpověděl, dovolím si citovat z české Wikipedie (článek o OOP):
Udržování odkazů na jiné objekty a využívání jejich služeb se říká skládání objektů.
V článku se vyskytlo slovo odkaz, což to je dle mého názoru synonymum pro slova: ukazatel, reference
Tiskni
Sdílej: