Hoppa till huvudinnehåll

2024-08-03

Vi fick slut på kolumner

  • Jimmy Millers "Vi fick slut på kolumner" beskriver hans första jobb inom mjukvara och dess kaotiska men fascinerande kodbas, med fokus på en databas-tabell kallad Merchants som fick slut på kolumner, vilket ledde till skapandet av Merchants2.
  • Kodbasen var en blandning av VB, C#, olika JavaScript-ramverk och många SOAP-tjänster, med anmärkningsvärda problem som att en utvecklare inte checkade in kod, vilket orsakade svårspårade buggar.
  • Trots rörigheten tillät kodbasen kreativ problemlösning, där utvecklare skapade sina egna lösningar, vilket ledde till ett frikopplat system och en unik, direkt koppling med användarna.

Reaktioner

  • En utvecklare delade med sig av sin erfarenhet med en oorganiserad kodbas på sitt första företag, som saknade versionskontroll och hade många globala variabler.
  • Buggar åtgärdades genom att installera Visual Studio på kundernas platser och köra appen i felsökningsläge, vilket ledde till flera, inkonsekvent namngivna versioner lagrade på en delad disk.
  • Utvecklaren införde så småningom moderna metoder som git, Linux och Continuous Integration (CI) för nya projekt, men det gamla projektet förblev oförändrat, vilket belyser utmaningarna med att förbättra dysfunktionella kodbaser.

p5.js

  • Biblioteket p5.js erbjuder en rad exempel och community-skisser för att hjälpa användare att lära sig och utforska dess kapaciteter.
  • Anmärkningsvärda projekt inkluderar Geodata Weaving, Slime Molds, Generative Succulents, Padrão Geométrico, Zen Pots och Glitch animation, vilket visar bibliotekets mångsidighet.
  • Användare kan stödja p5.js-biblioteket genom donationer eller genom att ladda ner det för eget bruk.

Reaktioner

  • p5.js fick ett bidrag på 450 000 € från Sovereign Tech Fund år 2023 för att förbättra sin dokumentation och tillgänglighet, vilket resulterade i en ny, användarvänlig webbplats.
  • Användare uppskattar p5.js för dess nybörjarvänliga natur men noterar prestandabegränsningar jämfört med bibliotek som d3 eller three.js.
  • Den nya webbplatsen har tagits emot positivt, även om vissa användare saknar referenser till p5.js ursprung från Processing-projektet, som har mött kritik för budgetfördelningen.

Tauri 2.0 Release Candidate

  • Release Candidate för Tauri 2.0 har tillkännagivits, med en stabil release förväntad i slutet av augusti, med fokus på att slutföra dokumentationen och åtgärda kritiska buggar.
  • Tauri 2.0 introducerar grundläggande stöd för mobil utveckling, även om det ännu inte matchar skrivbordsfunktionernas paritet, och inkluderar förändringar som en fast namnrymd för kärnpluginer och en omstrukturering av Rust API.
  • En extern säkerhetsgranskning har genomförts med alla problem åtgärdade, och den fullständiga rapporten kommer att publiceras snart; samhället uppmuntras att bidra till dokumentation och problemlösning.

Reaktioner

  • Release Candidate för Tauri 2.0 har tillkännagivits, vilket har väckt betydande diskussioner bland användare om dess funktioner och potentiella förbättringar.
  • Tauri är ett ramverk för att skapa små, snabba binärfiler för stora plattformar med hjälp av frontend-ramverk som kompilerar till HTML, JavaScript och CSS, med backend-logik i språk som Rust, Swift och Kotlin.
  • Användare jämförde Tauri med Electron och noterade Tauris lättare fotavtryck och inbyggda integration, samtidigt som de diskuterade dess säkerhetsfokus, plattformsoberoende användargränssnitt och utmaningar som problem med webbkomponenter på Linux och behovet av bättre dokumentation.

Framtiden för kdb+?

  • kdb+ är en kraftfull teknik för lagring och analys av historiska marknadsdata, men alternativ som Clickhouse, QuestDB, Bigquery och Redshift är nu konkurrenskraftiga när det gäller hastighet.
  • För lokal kvantitativ analys föredras Python med DuckDB, Polars eller PyKX på grund av tillgänglighet och kostnadseffektivitet.
  • kdb+'s realtidsströmning och distribuerade datorkapacitet är underutnyttjade, medan teknologier som Kafka och Flink blir alltmer populära.

Reaktioner

  • Diskussionen kretsar kring framtiden för kdb+, en högpresterande tidsseriedatabas, och dess potentiella efterträdare.
  • Alternativ som TimeScale (en PostgreSQL-tillägg), DuckDB och ClickHouse lyfts fram för deras prestanda och kostnadseffektivitet.
  • Den proprietära naturen och de höga kostnaderna för kdb+ är stora nackdelar, vilket får vissa att överväga öppen källkods-lösningar som Python med DuckDB och Polars för tidsserieanalys.

Hanon Pro – pianoteknik och övningar för den digitala tidsåldern

  • Hanon Pro är en modern pianoträning-app för iPhone, iPad och Mac, som erbjuder funktioner som spårning av framsteg, feedback och utveckling av träningsvanor.
  • Avancerade funktioner inkluderar prestandaanalys, automatisk sidvändning och interaktiva funktioner när de är anslutna till ett MIDI-tangentbord via Bluetooth eller USB.
  • Appen stöder iCloud-synkronisering, dagliga övningspåminnelser och prestationer, och är byggd med SwiftUI och Core MIDI, kompatibel med iOS 17.

Reaktioner

  • Hanon Pro är en pianoteknikapp som erbjuder övningar och feedback, utformad för den digitala tidsåldern.
  • Användare har rapporterat att appen kraschar med MIDI-kontroller och uttryckt en önskan om MIDI-uppspelning och mer flexibla övningsalternativ.
  • Appen kräver iOS 17+, vilket orsakar frustration bland användare med äldre enheter, och förslag på förbättringar inkluderar bättre enhetskompatibilitet och ytterligare funktioner som spårning av framsteg och anpassade poänguppladdningar.

Lisp med GC på 436 byte

  • SectorLISP inkluderar nu skräpinsamling, vilket innebär att ett högnivåprogrammeringsspråk med skräpinsamling får plats i startsektorn på en 512-byte diskett, och använder endast 436 byte.
  • Detta gör LISP till det minsta programmeringsspråket, som överträffar FORTH och BASIC, och det är kompatibelt med alla PC-modeller sedan 1981 med minst 64kb RAM.
  • Projektet visar på betydande optimering, minskar i8086-assemblerimplementeringen med ytterligare hundra byte, och inkluderar en 40-byte skräpsamlare, med binärfiler och källkod tillgängliga på GitHub.

Reaktioner

  • En Lisp-tolk med skräpinsamling (GC) har implementerats på endast 436 byte, vilket visar en imponerande bedrift av minimalism inom programmering.
  • Projektet, som är värd på justine.lol, har fått betydande uppmärksamhet och beundran för sin kompakta och effektiva design, refererar till tidigare verk och erbjuder pedagogiska insikter.
  • Diskussioner belyser balansen mellan att skapa en minimalistisk tolk och att upprätthålla funktionaliteten hos en "riktig" Lisp, vilket väcker debatter om programmeringsspråk som Brainfuck och deras praktiska tillämpningar.

Jag gjorde en utökad version av Vimtutor – Introducerar Vimtutor Sequel

  • "Vimtutor Sequel" erbjuder avancerade Vim-lektioner, inklusive kommandon, tekniker, steg-för-steg handledningar och interaktiva övningar.
  • Installation kan göras via Homebrew eller genom att klona arkivet från GitHub, med detaljerade instruktioner för båda metoderna.
  • Verktyget är licensierat under MIT-licensen, och bidrag välkomnas enligt riktlinjerna i CONTRIBUTING.md.

Reaktioner

  • Vimtutor Sequel är en utökad version av den ursprungliga Vimtutor, riktad till användare som är bekanta med grundläggande Vim-kommandon och som vill lära sig avancerade funktioner.
  • Viktiga funktioner inkluderar handledningar om splits, stavningskontroll, avancerad sökning och ersättning, makron, Vim-skriptning, plugins, sessioner och register, tillsammans med en anpassad vimrc-konfiguration för en konsekvent inlärningsupplevelse.
  • Installationsinstruktioner finns för Mac, Windows och Linux, och skaparen söker feedback och bidrag via GitHub-förvaret.

1991 WWW-NeXT-implementation

  • Detta GitHub-repository speglar Tim Berners-Lees ursprungliga WorldWideWeb-applikation för NeXT, och visar upp den första prototypen av en hypertext-webbläsare/redigerare.
  • Applikationen tillåter åtkomst till hypertextservrar, filer och nyheter, vilket ger en inblick i den tidiga webbens funktionalitet.
  • Förrådet inkluderar en historisk ändringslogg, med commit-datum bakdaterade till den senast ändrade dagen för varje fil, vilket bevarar den ursprungliga tidslinjen.

Reaktioner

  • 1991 års WWW-NeXT-implementation har gjorts tillgänglig på GitHub, vilket har väckt intresse bland teknikentusiaster och digitala arkeologer.
  • Denna utgåva framhäver webben i dess tidiga grafiska form, i kontrast till de textbaserade webbläsare som var vanligare vid den tiden.
  • Projektet visar användningen av Objective-C och NeXTStep, med betoning på de snabba applikationsutvecklingsmöjligheter som var avgörande för Tim Berners-Lees ursprungliga webbläsare/redigerare.

Forskare utvecklar behandling som kan döda glioblastomceller i hjärnans bana

  • Forskare från McMaster University och andra institutioner har identifierat en ny hjärnbana som används av glioblastomceller och utvecklat en lovande terapi för att blockera och döda dessa tumörer.
  • Studien, publicerad i Nature Medicine den 2 augusti 2024, visar att riktning mot denna väg med CAR T-celler och ett läkemedel avsevärt förbättrar överlevnaden i prekliniska modeller.
  • Behandlingen, som fokuserar på ROBO1-proteinet, fördubblade överlevnadstiden i tre cancermodeller och utrotade tumörer i 50% av fallen för två av sjukdomarna, vilket ger hopp för glioblastom och andra invasiva hjärncancerformer.

Reaktioner

  • Forskare har utvecklat en ny behandling som kan döda glioblastomceller, en mycket aggressiv hjärncancer med historiskt låga överlevnadsgrader.
  • Dr. Richard Scolyer, som behandlar sitt eget glioblastom, har visat lovande resultat utan återfall på över ett år, vilket belyser potentialen i denna nya metod.
  • Diskussionen betonar komplexiteten och utmaningarna i att behandla cancer, och noterar att även om immunterapi är effektiv för vissa cancerformer, fungerar den inte för alla tumörer, och alternativa behandlingar som ketogen terapi är fortfarande omdebatterade.

Vanliga I/O-uppgifter i modern Java

  • Artikeln av Cay Horstmann diskuterar vanliga I/O-uppgifter i Java, särskilt för webbapplikationer, såsom att läsa/skriva textfiler, hantera JSON och arbeta med ZIP-filer.
  • Det belyser API-förbättringar sedan Java 8, inklusive UTF-8 som standardkodning från Java 18 och förbättringar av klasserna java.nio.file.Files och java.io.InputStream.
  • Artikeln ger praktiska kodexempel för att läsa och skriva textfiler, hantera inmatningsströmmar och arbeta med kataloger och ZIP-filer, med betoning på användningen av moderna Files-metoder istället för den äldre File-klassen.

Reaktioner

  • Diskussionen kretsar kring egenheterna och problemen med Javas URL och URI klasser, särskilt kring likhetskontroller och DNS-upplösning.
  • Framhäver utvecklingen av Java I/O från java.io.File till java.nio.file.Path, med betoning på icke-blockerande I/O och bättre abstraktion.
  • Ger praktiska råd och vanliga fallgropar vid användning av Javas I/O-API:er, såsom hantering av undantag i strömmar och användningen av var.

Domare stoppar FCC:s återställande av nätneutralitetsregeln

Reaktioner

  • En domare har stoppat FCC:s regel om återställande av nätneutralitet, vilket eskalerar de juridiska konflikterna kring nätneutralitet.
  • Denna suspension följer på ett beslut från Högsta domstolen som minskade den federala regleringsmakten, vilket ledde till en instabil regleringsmiljö.
  • Critics menar att instabiliteten gynnar etablerade företag och försvårar verksamheten för nya marknadsaktörer, och föreslår att kongressen bör ta itu med dessa frågor istället för domstolarna.

Magnetiskt svävande rymdhiss till låg omloppsbana (2001) [pdf]

Reaktioner

  • Hacker News-användare diskuterar en artikel från 2001 om magnetiskt svävande rymdhissar till låg omloppsbana, och minns liknande koncept i Popular Science.
  • Debatten omfattar tekniska utmaningar, inklusive behovet av avancerade material som kolnanorör och högtemperatursupraledare, samt riskerna med en bruten lina.
  • Alternativ som railguns och lanseringsslingor föreslås, med diskussioner om den ekonomiska genomförbarheten och praktiska användningen av rymdhissar, tillsammans med framsteg inom supraledande material.

År av Metas nyhetsförbud i Kanada

  • Metas nyhetsförbud i Kanada, som svar på lagförslag C-18, har lett till en minskning av engagemanget för kanadensiska nyhetsmedier på Facebook och Instagram med 85%, vilket resulterat i en total minskning av engagemanget med 43%.
  • Ungefär 30% av lokala nyhetskanaler har blivit inaktiva på sociala medier, och endast 22% av kanadensare är medvetna om förbudet.
  • Trots förbudet stöter 36% av användarna fortfarande på nyhetsinnehåll genom omvägar, men kanadensare ser 11 miljoner färre nyhetsvisningar per dag på dessa plattformar, konsumerar mindre nyheter totalt sett och genom en mer partisk lins.

Reaktioner

  • Metas nyhetsförbud i Kanada, påverkat av tidningslobbyister och politiker, kräver att plattformar betalar för nyhetsinnehåll, vilket leder till att Meta blockerar nyhetslänkar.
  • Kritiker hävdar att förbudet skadar nyhetsorganisationer genom att ta bort fördelaktiga gratislänkar på sociala medier, trots att nyhetsinnehåll fortfarande dyker upp genom lösningar som skärmdumpar.
  • Den pågående debatten ifrågasätter om Meta bör betala för nyhetsinnehåll, med oro för minskad nyhetskonsumtion, ökad partisk information och påverkan på nyhetsorganisationers intäkter och överlevnad.

Mot användarrumsifiering av POSIX – del I: signalhantering och IO

  • Redox OS har fått ett NGI Zero-bidrag för att implementera POSIX-signalhantering och processhantering i användarutrymmet, vilket möjliggör ett årslångt fokus på förbättringar av kärnan och komponenterna.
  • Förbättringar i schemapaketformatet och nya systemanrop (SYS_PREAD2 och SYS_PWRITE2) har ökat RedoxFS kopieringsprestanda med 63%, liknande effektiviteten hos io_uring.
  • Projektet syftar till att flytta mer POSIX-logik till användarutrymmet, med förbättringar i signalhantering och framtida planer på att utveckla en användarutrymmesprocesshanterare och ytterligare förbättringar av kärnan.

Reaktioner

  • POSIX tillåter att filbeskrivare (FDs) delas av flera processer, vilket är nödvändigt för Unix-liknande system och kapabilitetsorienterad säkerhet, men denna delning kan flyttas till användarutrymmet.
  • Den globala markören i FDs komplicerar samtidig åtkomst, vilket kräver synkronisering, och medan Rusts std::fs::File-API hanterar detta med krav på mutabilitet, kan andra språk stöta på buggar eller behöva komplexa API:er.
  • Moderna applikationer och systemprogrammering utvecklas för att balansera POSIX:s historiska design med behovet av mer modulära och säkra gränssnitt, genom att använda verktyg som D-Bus och Linux:s plan9-namnutrymmen för bättre isolering och säkerhet.

Primitiva rekursiva funktioner för en arbetande programmerare

  • Artikeln betonar vikten av att förstå Turing-fullständighet och primitivt rekursiva funktioner, som ofta förbises i datavetenskapsutbildningen.
  • Det framhäver att många praktiska problem kan implementeras i icke-Turing-kompletta språk, som erbjuder fördelar som determinism och säkerhet.
  • Diskussionen inkluderar skillnaderna mellan ändliga tillståndsmaskiner, Turingmaskiner och primitiva rekursiva funktioner, och noterar att PRF:er alltid terminerar och kan beräkna många praktiska funktioner.

Reaktioner

  • Artikeln utforskar primitiva rekursiva funktioner och deras betydelse för att säkerställa att kod avslutas, i linje med principerna för strukturerad programmering.
  • Den diskuterar begränsningarna med Turing-fullständighet och fördelarna med språk som CUE och Dhall som kan garantera terminering.
  • Konversationen tar upp de praktiska utmaningarna med att bevisa funktionsavslutning och konsekvenserna för konfigurationsspråk, och balanserar beräkningskraft och säkerhet.