Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.6. Přehled novinek s náhledy v oznámení na blogu.
V Edici CZ.NIC, knižní řady správce české národní domény, vychází nová kniha Martina Malého Kódy, buildy, firmwary. Autor po půl roce od vydání předchozího titulu přichází se svou již sedmou knihou, tentokrát zaměřenou na vývoj programového vybavení pro embedded zařízení. Publikace s podtitulem Základy vývojářského řemesla pro tvůrce hobby elektroniky nabízí praktického průvodce pro všechny, kdo své projekty vytvořené s Arduinem
… více »V Brně na FIT VUT probíhá dvoudenní open source komunitní konference DevConf.CZ 2026. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.
Byla vydána nová verze 15.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
Vývojáři Ubuntu představili projekt Myna, tj. iniciativu zaměřenou na přidání funkce převodu řeči na text do prostředí desktopu Ubuntu. Dle plánu již v Ubuntu 26.10.
Společnost Epic Games představila nový open source systém pro správu verzí Lore navržený pro "bezprecedentní škálovatelnost dat i týmů a optimalizovaný pro projekty, včetně her a zábavy, které kombinují kód s velkými binárními soubory, aby uspokojil potřeby vývojářů i umělců". Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.
Úřad pro ochranu hospodářské soutěže (ÚOHS) provedl v říjnu 2024 místní šetření u společnosti Seznam.cz. Úřad prověřoval důvodné podezření na možné protisoutěžní jednání, konkrétně zneužití dominantního postavení. Krajský soud v Brně v květnu 2025 konstatoval, že toto šetření bylo nezákonné. Nejvyšší správní soud (NSS) včera rozhodl, že šetření bylo provedeno v souladu se zákonem. Krajský soud bude muset případ posoudit znovu.
Byl představen skládací telefon Commodore Callback 8020. Ani hloupý, ani chytrý. Pro fanoušky Commodore a digitálního minimalismu. Bez webového prohlížeče a sociálních sítí. S předinstalovaným WhatsAppem. S operačním systémem Sailfish OS.
V OpenBSD byla objevena 27 let stará chyba v ppp pomocí níž lze vzdáleně obejít autentifikaci. Chyba byla nahlášena 12.6. a 14.6. byla opravena. Bližší info v článku A 27-Year-Old Authentication Bypass in OpenBSD's PPP Stack.
Odpověď Evropské komise (pdf) k evropské občanské iniciativě Stop Destroying Videogames, jež je součástí hnutí Stop Killing Games: "Komise se domnívá, že v této fázi nemůže navrhnout právní povinnost zachovat hratelnost videoher poté, co přestaly být poskytovány komerčně. Důvodem jsou i stávající práva duševního vlastnictví. Podle autorského práva EU mají nositelé práv výlučná práva ke svým výtvorům. Kromě autorských práv mohou být
… více »Malinkatý dvojitý zápisek. Neobsahuje prudce inteligentní postřehy. Obsahuje jednořádkový patch.
Tak zaprvé jsem si moc hezky početl a poposlouchal rozhovor s šéfem softwaru od sondy Phoenix (toho času bagrujícího v polárních oblastech Marsu). Zajímavé je to celé, zvláště pro lidi od embedded systémů a mission-critical věcí. Zaujalo mě, že se v JPL odklonili od Ady k Céčku ("it is not so scary").
Mám rád Gedit. Je elegantní, napsal jsem v něm už spoustu věcí. Teď dělám nějaké experimenty v Pythonu, na to se Eclipse a podobní mastodonti moc nehodí. Plugin pro Python funguje docela dobře, ale nutnost zakládat projekt a workspace mě odrazuje
.Ono totiž doplňování kódu je v dynamických jazycích obecně neřešitelné. Definice tříd nejsou dány staticky, ale mohou být měněny za běhu. A protože dělám hoch experimenty, na nějaké doplňování kódu (které tak krásně funguje v Javě) jsem rezignoval.
Jenže opisovat dlouhé identifikátory pořád dokola trochu pruda je. Rozhodl jsem se tedy, že zkusím nějaký plugin (ano, Gedit umí pluginy), který bude doplňovat slova, bez porozumění jazyka.
Příslušný plugin jsem našel zde, respektive zde. Stačí nakopírovat do ~/.gnome2/gedit/plugins, povolit v nastavení a už to jede. Nejlepší je, že plugin je napsaný v Pythonu a je docela jednoduchý - lze ho tedy opravit k obrazu svému způsobem, o kterém se nějakému potrhlému konfiguráku ani nezdá. Čehož jsem hned využil: v originální verzi se slovo pro doplnění potvrzuje tabelátorem, já jsem si povolil ještě enter. Vizte patch:
--- completion.py-orig 2008-07-12 12:41:16.000000000 +0200
+++ completion.py 2008-07-10 11:20:26.000000000 +0200
@@ -243,7 +243,7 @@
return self._terminate_completion()
if event.state & gtk.gdk.MOD1_MASK:
return self._terminate_completion()
- if (event.keyval == gtk.keysyms.Tab) and self._remains:
+ if (event.keyval in (gtk.keysyms.Tab, gtk.keysyms.Return)) and self._remains:
return not self._complete_current()
completion_window = self._completion_windows[window]
if (event.keyval == gtk.keysyms.Up) and self._remains:
Tiskni
Sdílej:
, a i do těch vesmírných sond, protože se jeho implementace vejde do několika kilobajtů, takže je takřka blbuvzdorná. Akorát na tu druhou věc jsem měl někde zajímavý odkaz a teď ho nemůžu nají. ;-/
Ale Python mám rád, protože v něm jdou jednoduše a elegantně věci, které jsou ve statických jazycích dost přes ruku. Ale všechno něco stojí.
Ale s tím mastodontem jsem to myslel jinak. Já dělám experimenty, převážně s PyPy, zkouším různé přepínače atd. Pydev bych použil, kdybych soustavně dělal na něčem větším a konvenčním, ráno bych to otevřel a večer zavřel.
Mít objekt - transparentní proxy je taky prasárna?Naprosto. V Javě je to jeden z oblíbených způsobů, jak implementovat AOP, a s klidem bych řekl, že ten nejhorší. Nevím teda, jak v Pythonu, ale v Javě se té transparence pořádně dosáhnout nedá, takže
this není this a vůbec samé pěkné věci.
Původní návrh CLOSu nic podobného neobsahoval, a není to ani součástí oficiální ANSI normy. Aspektové programování vlastně vzniklo jako specializace MOPu - což je rozšiřující API, které umožňuje přeprogramovat chování takřka celého CLOSu (třeba pořadí hledání metod v nadtřídách, to je jedna z těch pro programátoršké smrtelníky srozumitelnějších věcí). Ostatně AOP vymyslel Gregor Kiczales, který toho s Lispem, CLOSem a MOPem má hodně společného. (AOP pak není vlasně víc, než jedna konkrétní aplikace MOPu, který dneska podporují snad všechny implementace Common Lispu, tedy tam je to v podstatě "na úrovni virtuálního stroje" - no, tady spíš "na úrovni modelu jazyka".
)
Nechápu, jak to ti Lispaři dělají. Teda chápu, tak nějak vzdáleně… ale asi nikdy se nad tou neuvěřitelnou přizpůsobivostí a jednoduchostí nepřestanu podivovat. A taky to pěkně ničí moje už tak ubohé programátorské sebevědomí
this a ta není "obalena" tou proxy mrchou?
A mimochodem, dokáží někdy zapšklí C++kaři pochopit, že nemají patent na rozum a že Javisté nejsou untermensch?
class Math(object):
def cosmos_constant(self):
return 1
def pow(self, x):
return x*x*self.cosmos_constant()
class Proxy(object):
def __init__(self, target):
self.target = target
def __getattr__(self, name):
print 'logging this call...'
return getattr(self.target, name)
m = Math()
print m.pow(4)
p = Proxy(m)
print p.pow(5)
A ty bys chtěl, aby se zalogovalo volání té kosmologické konstanty z pow()?
Metoda cosmos_constant() se chová odlišně v závislosti na tom, kdo ji volá, což je v tomhle případě vcelku na dvě věci. Představ si, že bys tou proxy chtěl změnit vesmír (nastavit kosmologickou konstantu na 2). Proto jsem psal, že to je prasárna
Na druhou stranu, v některých případech takový zástupný objekt může dobře postačit (třeba takové hrubé trasování, jako ve tvojí ukázce), to uznávám.
Představ si, že bys tou proxy chtěl změnit vesmír (nastavit kosmologickou konstantu na 2).Něco na tenhle způsob?
kyo@valinor:~> ghci GHCi, version 6.8.2: http://www.haskell.org/ghc/ :? for help Loading package base ... linking ... done. Prelude> let 2 + 2 = 5 in 2 + 2 5 Prelude>
Metoda cosmos_constant() se chová odlišně v závislosti na tom, kdo ji volá, což je v tomhle případě vcelku na dvě věci.Nechová se odlišně ta metoda, vždyť jsou to dvě různé metody, ne?
p.cosmos_constant() a dostanu 2, očekávám, že volání p.pow(2) vrátí 8. Vy ne?
Math máte napsán tak, že počítá se svou kosmologickou konstantou (proto třeba self). Kdybyste chtěl, aby počítal s jeho (nějakého cizího objektu), musíte mu ten cizí objekt předat jako parametr. cosmos_constant() buď nemáte nadefinovánu tak, že vrací svou kosmologickou konstantu, nebo ji tak nadefinovánu máte, a pak vytvořená proxy porušuje tento dohodnutý kontrakt. Proxy s tím ale nemá nic společného, kdybyste si ten dohodnutý kontrakt porušil už v implementaci třídy Math, dopadnete stejně.
v Javě se té transparence pořádně dosáhnout nedá, takže this není this a vůbec samé pěkné věciJak to že ne?
this je pořád reference na objekt, na kterém je volána aktuální metoda. To že okolo toho objektu je nějaká proxy nemůže ten objekt zajímat. Očekávám, že když v objektu zavolám na this final metodu, provede se úplně to samé, jako bych kód té metody přímo vložil do svého kódu. Pokud tu metodu chci provést na stejném objektu, který referencuje ten, kdo moji metodu vyvolal, musí mi referenci na ten objekt předat. Zkuste si někdy něco napsat v JavaScriptu, abyste viděl, jak to vypadá, když si nikdy nemůžete být jist, co je this.
To že okolo toho objektu je nějaká proxy nemůže ten objekt zajímat.Proto tvrdím, že se nedá dosáhnout plné transparence. Výraz this není this berte proboha trochu s nadsázkou, já přece jenom dobře vím, jak taková proxy funguje