OpenTofu, tj. svobodný a otevřený fork Terraformu vzniknuvší jako reakce na přelicencování Terraformu z MPL na BSL (Business Source License) společností HashiCorp, bylo vydáno ve verzi 1.7.0. Přehled novinek v aktualizované dokumentaci. Vypíchnout lze State encryption.
Spouštět webový prohlížeč jenom kvůli nákupu kávy? Nestačí ssh? Stačí: ssh terminal.shop (𝕏).
Yocto Project byl vydán ve verzi 5.0. Její kódové jméno je Scarthgap. Yocto Project usnadňuje vývoj vestavěných (embedded) linuxových systémů na míru konkrétním zařízením. Cílem projektu je nabídnou vývojářům vše potřebné. Jedná se o projekt Linux Foundation.
Operační systém 9front, fork operačního systému Plan 9, byl vydán v nové verzi "do not install" (pdf). Více o 9front v FQA.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové verzi 6.1. Přehled novinek i s náhledy v oficiálním oznámení a na GitHubu. Řešeny jsou také 2 bezpečnostní chyby.
Lennart Poettering na Mastodonu představil utilitu run0. Jedná se o alternativu k příkazu sudo založenou na systemd. Bude součástí systemd verze 256.
Hudební přehrávač Amarok byl vydán v nové major verzi 3.0 postavené na Qt5/KDE Frameworks 5. Předchozí verze 2.9.0 vyšla před 6 lety a byla postavená na Qt4. Portace Amaroku na Qt6/KDE Frameworks 6 by měla začít v následujících měsících.
Byla vydána nová verze 2.45.0 distribuovaného systému správy verzí Git. Přispělo 96 vývojářů, z toho 38 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání. Vypíchnout lze počáteční podporu repozitářů, ve kterých lze používat SHA-1 i SHA-256.
Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Osobně bych šel do staticky typovaného jazyka s odvozováním typů, abychom se vyhli těm nejtriviálnějším chybám.Statický typový systém může odhalit docela dost chyb – cituji z popisu jazyka Ur/Web, který je určen pro tvorbu spolehlivých webových aplikací:
The signature of the standard library is such that well-typed Ur/Web programs "don't go wrong" in a very broad sense. Not only do they not crash during particular page generations, but they also may not:
- Suffer from any kinds of code-injection attacks
- Return invalid HTML
- Contain dead intra-application links
- Have mismatches between HTML forms and the fields expected by their handlers
- Include client-side code that makes incorrect assumptions about the "AJAX"-style services that the remote web server provides
- Attempt invalid SQL queries
- Use improper marshaling or unmarshaling in communication with SQL databases or between browsers and web servers
Ač to vypadá zajímavě, je to teprve na začátku. Jen dva díly tutoriálu, reference manuál nejde. Osobně bych potřeboval knihovnu pro napojení na Facebook, něco jako ORM atd. To univerzum knihoven je příliš malé.
Ten HelloWorld ocsigenu nevypadá z nejpřívětivějších:) Ale to je taky tím že už jsem spoustu let zvyklý na jiné jazyky...
http://ocsigen.org/howto/helloworld
open Lwt open Eliom_content.Html5.D open Eliom_service open Eliom_parameter open Eliom_registration.Html5 let main_service = register_service ~path:["hello"] ~get_params:unit (fun () () -> return (html (head (title (pcdata "Hello World of Ocsigen")) []) (body [h1 [pcdata "Hello World!"]])))
import Happstack.Server
main = simpleHTTP nullConf $ ok "Hello, World!"
Statický typový systém může odhalit docela dost chybNebo taky nemusi. Pokazde kdyz udelate
void x(void *p) {
...
some_struct* t = (some_struct*)p;
...
}
...jde type checking do pr...kenny vohrady.
Suffer from any kinds of code-injection attacksTo by se ten jazyk musel ale používat na všechno a řetězce v něm být pouhé texty, ne kód jako například SQL příkazy nebo javascript a kvůli některým vlastnostem by to v podstatě nemělo být ani HTML. To už by mi přišlo jako docela hezký framework. Nicméně s těmito vlastnostmi přichází neflexibilita. Tudíž je ten jazyk prakticky bez šance získat výrazný podíl na webových aplikacích a je vhodný jen pro určitou škálu projektů.
To by se ten jazyk musel ale používat na všechno a řetězce v něm být pouhé textyAno, on se používá na všechno – generuje se z něj C kód pro server, SQL pro databázi, HTML a JavaScript pro klienta.
Array.new(10).size.must_equal 10
není MiniTest::Unit ale MiniTest::Spec. assert právě naopak je součást MiniTest::Unit. To musí vypadat ta aplikace teda, když netušíte ani takovýhle základní fakt. Snad se v tom kolega vyzná líp.
describe
a it
pro "okomentování testů" a uvnitř použít klasický assert. Tahle možnost se mi líbí pro integrační testy a hojně jí využívám.
Jinak jako důkaz se můžete podívat na testy Rails. Ačkoliv jsou všechny přepsány do MiniTestu, používají klasický assert (schválně).
Lepší?
Máte pravdu. Tušil jsem, že tam budu mít chyby; bylo to psáno v rychlosti:) "must_equal" je v
MiniTest::Spec a ne v MiniTest::Unit. Opravím to.
Tiskni Sdílej: