Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Ze systému Slavia pojišťovny uniklo přibližně 150 gigabajtů citlivých dat. Jedná se například o pojistné dokumenty, lékařské záznamy nebo přímou komunikaci s klienty. Za únik může chyba dodavatelské společnosti.
Sněmovna propustila do dalšího kola projednávání vládní návrh zákona o digitální ekonomice, který má přinést bezpečnější on-line prostředí. Reaguje na evropské nařízení DSA o digitálních službách a upravuje třeba pravidla pro on-line tržiště nebo sociální sítě a má i víc chránit děti.
Meta převezme sociální síť pro umělou inteligenci (AI) Moltbook. Tvůrci Moltbooku – Matt Schlicht a Ben Parr – se díky dohodě stanou součástí Meta Superintelligence Labs (MSL). Meta MSL založila s cílem sjednotit své aktivity na poli AI a vyvinout takovou umělou inteligenci, která překoná lidské schopnosti v mnoha oblastech. Fungovat by měla ne jako centralizovaný nástroj, ale jako osobní asistent pro každého uživatele.
Byla vydána betaverze Fedora Linuxu 44 (ChangeSet), tj. poslední zastávka před vydáním finální verze, která je naplánována na úterý 14. dubna.
Open source router Turris Omnia NG Wired je v prodeji. Jedná se o Turris Omnia NG bez Wi-Fi. Je připraven pro zamontování do racku.
<phone:PhoneApplicationPage
x:Class="SmartDial.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:helpers="clr-namespace:SmartDial.Helpers"
xmlns:viewmodels="clr-namespace:SmartDial.ViewModels"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<phone:PhoneApplicationPage.DataContext>
<viewmodels:MainViewModel />
</phone:PhoneApplicationPage.DataContext>
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Button Content="Sample button" />
</Grid>
</phone:PhoneApplicationPage>
Hlavní pes nechť je zakopán v této poloze:
using System;
namespace SmartDial.Helpers
{
public class ContactsCache
{
protected readonly ContactsCache _instance = new ContactsCache();
public ContactsCache Instance
{
get { return _instance; }
}
static ContactsCache() { }
public ContactsCache()
{
}
}
Tato třída je jedním z návrhů singletonu, neboli třídy, u které chceme, aby měla vždy jen jedinou instanci přístupnou přes ContactsCache.Instance. Ovšem pozor, u konstruktoru mi přebývá klíčové slovo public a mám ještě jednu zradu v klíčových slovech - u _instance a Instance mi chybí static.
Proč je tak důležité, aby konstruktor singletonu nebyl public? Podívejte se na následující průšvih a spojte si ho s předchozím kódem:
public class MainViewModel
{
public MainViewModel()
{
this.ContactsCache = new ContactsCache();
}
public ContactsCache ContactsCache;
}
Singleton je obvykle třída navržená s záměrem, aby měla pouze jednu jedinou instanci, tedy u mě Instance. Současný návrh singletonu ovšem umožňuje vytvářet i další instance a společně s tímto kusem kódu způsobí, že po prvotním vytvoření instance třídy se budou neustále vytvářet další instance (taková malá rekurze), čímž dojde k přetečení zásobníku a následně k vyvolání výjimky System.StackOverflowException.
PhoneApplicationPage.DataContext), který v konstruktoru volá výše zmíněný řádek kódu (new ContactsCache()), Visual Studio a Expression Blend se budou pokoušet načíst strukturu ViewModelu, tedy zavolají konstruktor ViewModelu, ten zavolá zase konstruktor ContactsCache (- poslední krok se opakuje do nekonečna) - a proto po krátké době spadnou. A zase kvůli StackOverflowException. Nejsou ty nové technologie prostě skvělé?
A nejlepší je, že kompilátor si něčeho takového ani nevšimne.
DOPLNĚNÍ: Visual Studio při pádu tímto způsobem prostě zmizí, v event logu sice dostane místečko, ale nic se z toho nedozvíte. Musíte tedy jednou instancí Visual Studia debugovat další instanci Visual Studia, abyste zjistili, co se vlastně stalo.
Tiskni
Sdílej:
interface Interface<T> {}
class Bang<T> implements Interface<Interface<? super Bang<Bang<T>>>> {
static void bang() {
Interface<? super Bang<Byte>> bang = new Bang<Byte>();
}
}