<?xml version="1.0"?>
<rss version="2.0"><channel><title>Programmering og webutvikling nyeste emner</title><link>https://www.diskusjon.no/forum/532-programmering-og-webutvikling/</link><description>Programmering og webutvikling nyeste emner</description><language>nb</language><item><title>Finne eier av bedrift som kommer opp p&#xE5; Google s&#xF8;k?</title><link>https://www.diskusjon.no/topic/1960063-finne-eier-av-bedrift-som-kommer-opp-p%C3%A5-google-s%C3%B8k/</link><description><![CDATA[<p>
	Mulig vei sted å poste, men fant ikke noe bedre.
</p>

<p>
	Jeg var inne på bedriften jeg jobber i på google søk, for å sjekke hvordan vi får endret adressen vår da vi har flyttet.
</p>

<p>
	Under knappen "Own this business?" knappen, så kommer det opp en ukjent Gmail.com epost som er delvis sensurert, se vedlagt bilde.
</p>

<p>
	Noen måte å finne ut full adresse? Regner med det kan være noen som har type tatt hvis det var ledig. Ingen her i bedriften som har Kr først i navnet.
</p>

<p>
	Vi hadde bedrifts konto hos Google frem til høsten 2024, da vi byttet systemer og flyttet over til Microsoft sin plattform.
</p>

<p>
	Vi får veldig mange som vil hjelpe oss å lage bedre hjemmesider, og mange som lager forslag på det osv. Regner med det er en eller annen slik som har lagt seg til. Regner med det ikke har noe å si egentlig, men greit å ha alt på bedriftens hender.
</p>

<p>
	 
</p>

<p>
	 
</p>

<p><a href="https://www.diskusjon.no/uploads/monthly_2026_08/Googlekonto.png.507de6f7cde41c49620867a8c6d51143.png" class="ipsAttachLink ipsAttachLink_image" ><img data-fileid="790232" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" data-src="https://www.diskusjon.no/uploads/monthly_2026_08/Googlekonto.png.507de6f7cde41c49620867a8c6d51143.png" data-ratio="105.62" width="569" class="ipsImage ipsImage_thumbnailed" alt="Google konto.png"></a></p>]]></description><guid isPermaLink="false">1960063</guid><pubDate>Fri, 07 Aug 2026 07:32:33 +0000</pubDate></item><item><title>Hobbyprosjekt: Jeg bygger min egen "oppskrifts-hub" &#x2013; trenger innspill fra andre matinteresserte!</title><link>https://www.diskusjon.no/topic/1959726-hobbyprosjekt-jeg-bygger-min-egen-oppskrifts-hub-%E2%80%93-trenger-innspill-fra-andre-matinteresserte/</link><description><![CDATA[<p>
	<span style="font-size:17px;">Hei!</span>
</p>

<p>
	 
</p>

<p>
	<span style="font-size:17px;">Dette er på ingen måte ment som reklame, men vet ikke hvor jeg ellers kan få feeback.</span>
</p>

<p>
	<span style="font-size:17px;">Jeg er en matentusiast som har irritert meg grønn over hvordan mine egne oppskrifter er spredt overalt. Jeg har prøvd mange apper, men ofte endt opp med å tilpasse meg begrensningene i programvaren fremfor å få en arbeidsflyt som fungerer for meg.</span>
</p>

<p>
	<span style="font-size:17px;">Etter at AI-verktøy ble mer tilgjengelige, bestemte jeg meg for å prøve å bygge min egen løsning, </span><span style="font-size:17px;">Matlyst</span><span style="font-size:17px;">. Det er et rent hobbyprosjekt, og mye av koden er i stor grad "vibekodet" med hjelp av AI-co-piloter. Jeg er ingen profesjonell utvikler, men jeg er ganske fornøyd med resultatet så langt og hvordan det faktisk løser mine egne problemer.</span>
</p>

<p>
	<span style="font-size:17px;">Hva jeg prøver å oppnå:</span>
</p>

<p>
	<span style="font-size:17px;">Samle alt på ett sted:</span><span style="font-size:17px;"> Import fra sosiale medier, bokmerker og bilder/screenshots.</span>
</p>

<p>
	<span style="font-size:17px;">Norsk tilpasning:</span><span style="font-size:17px;"> Automatisk oversettelse og konvertering av måleenheter.</span>
</p>

<p>
	<span style="font-size:17px;">Digitalisering:</span><span style="font-size:17px;"> OCR-støtte for å digitalisere gamle, håndskrevne oppskrifter fra permer og ark.</span>
</p>

<p>
	<span style="font-size:17px;">Jeg vet at det finnes mange meninger om AI-drevne prosjekter, og jeg har full forståelse for de som er skeptiske til "AI-startups". Jeg har ingen ambisjoner om å revolusjonere bransjen – jeg vil bare ha en app som gjør matlagingen min litt enklere.</span>
</p>

<p>
	<span style="font-size:17px;">Siden jeg har bygget dette for å løse mine egne frustrasjoner, er jeg veldig nysgjerrig på hvordan dere andre som er genuint glade i mat, løser dette i dag? Er det noen funksjoner dere savner, eller er det noe som irriterer dere ved dagens løsninger?</span>
</p>

<p>
	<span style="font-size:17px;">All tilbakemelding – enten det gjelder tekniske innspill eller hva som faktisk betyr noe på kjøkkenet – settes stor pris på.</span>
</p>
]]></description><guid isPermaLink="false">1959726</guid><pubDate>Sat, 11 Jul 2026 19:43:44 +0000</pubDate></item><item><title>Linux bash - sliter med &#xE5; sette sammen stringvariabel med linjeskift</title><link>https://www.diskusjon.no/topic/1959702-linux-bash-sliter-med-%C3%A5-sette-sammen-stringvariabel-med-linjeskift/</link><description><![CDATA[<p>
	Har satt meg ned der målsetningen er å lage et script for enkel sammenføyning av videofiler. Dette lar seg forøvrig enkelt gjøres vha ffmepeg. Dette har gått helt fint, men det er et delmål jeg ikke kommer meg forbi. ffmpeg krever nemlig en liste i klartekst over videofilene som skal settes sammen, og har relativ strenge krav til formattering.
</p>

<p>
	Delmål 1 - workaround for å sette inn enkel apostroff. Dette målet er nådd via prøving og feiling. Jeg lykkes med å lage et bash script som kan lage én enkelt linje.
</p>

<p>
	Delmål 2 - Kjøre en for-loopover alle videofilene og skrive dette inn i en stringvariabel. Kravet er linjeskift mellom hver iterasjon. Dette er problemet mitt - jeg har testet mange (og overskrevet pga så ikke for meg at jeg ble stående helt fast på dette) måter dette skulle/burde fungere ihht divese kilder på nett.
</p>

<p>
	Jeg får altså ikke bash scriptet til å sette inn dette forbaskede linjeskiftet. Når jeg skriver til skjerm henger alt sammen i en eneste lang linje.
</p>

<p>
	 
</p>

<p>
	<strong>Den bash-fila jeg foreløpig har sydd sammen</strong>
</p>

<pre class="ipsCode prettyprint lang-css prettyprinted"><span class="pun">#!/</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">bash

listeTextformat</span><span class="pun">=</span><span class="str">''</span><span class="pln">

for eachLoopFile in </span><span class="pun">*.</span><span class="pln">MOV
do
    </span><span class="pun">#</span><span class="pln">echo </span><span class="str">'file '"'"''</span><span class="pun">$(</span><span class="pln">pwd</span><span class="pun">)</span><span class="str">'/'</span><span class="pun">$</span><span class="pln">eachLoopFile</span><span class="str">"'"</span><span class="pln">
    listeTextformat</span><span class="pun">+=</span><span class="str">'file '"'"''</span><span class="pun">$(</span><span class="pln">pwd</span><span class="pun">)</span><span class="str">'/'</span><span class="pun">$</span><span class="pln">eachLoopFile</span><span class="str">"'"</span><span class="pln">
    listeTextformat</span><span class="pun">+=$(</span><span class="pln">echo -e </span><span class="str">'\n'</span><span class="pun">)</span><span class="pln">
done

</span><span class="pun">#</span><span class="pln">echo </span><span class="str">"$listeTextformat"</span><span class="pln">
printf </span><span class="str">'%s\n'</span><span class="pln"> </span><span class="str">"$listeTextformat"</span></pre>

<p>
	At jeg benytter en separat linje i for-loopen for å (prøve) sette inn linjeskift er bare for at det er enklere å lese og når jeg gjør endringer for å prøve meg frem.
</p>

<p>
	Benytter forøvrig Linux Mint 22.3 - Xfce, Engelsk menyoppsett
</p>
]]></description><guid isPermaLink="false">1959702</guid><pubDate>Thu, 09 Jul 2026 16:29:32 +0000</pubDate></item><item><title>Vurderer &#xE5; l&#xE6;re Python, forslag?</title><link>https://www.diskusjon.no/topic/1959510-vurderer-%C3%A5-l%C3%A6re-python-forslag/</link><description><![CDATA[<p>
	Som sagt,<br />
	vurderer å lære meg Python da jeg har en del fritid i ukedagene (jobber mest helg.)
</p>

<p>
	Kom over en annonse for boot.dev,<br />
	noen som har positiv / negativ erfaring med det?<br />
	<br />
	Eventuelt andre ålreite måter å lære Python fra bunnen av på?<br />
	<br />
	Tenkte å sette av ca. 1/2 - 1 time hver dag til å begynne med før jeg eventuelt trapper opp.
</p>
]]></description><guid isPermaLink="false">1959510</guid><pubDate>Wed, 24 Jun 2026 11:14:29 +0000</pubDate></item><item><title>Oppdatere Drupal via Composer hos Domeneshop</title><link>https://www.diskusjon.no/topic/1959217-oppdatere-drupal-via-composer-hos-domeneshop/</link><description><![CDATA[<p>
	Jeg  har brukt Drupal i en årrekke, og har innsett at de legger mer og mer opp til oppdateringer via Composer. Jeg har nå bitt i det sure eple og installert og gjort meg kjent med Composer lokalt på egen datamaskin. Jeg har oppdatert via kommandolinje i PowerShell-vinduet. 
</p>

<p>
	Det er fortrinnsvis enkelt å oppdatere og vedlikeholde den lokale instansen av Drupal på datamaskinen. Jeg har sparret litt med Copilot om hvordan jeg kan oppdatere Drupal-installasjonen via kommandolinje fra min datamaskin. Jeg ser for meg det blir en initiert en eller annen form for FTP-opplasting. 
</p>

<p>
	I følge Copilot er det to måter å oppdatere produksjonen av Drupal på: Enten å installere Composer via SSH hos Domeneshop og oppdatere rett på serveren via SSH.. Dette skal vist være tungvint da Domeneshop kan ha begrensninger på bruk av Composer.
</p>

<p>
	Alternativet er å oppdatere Drupal lokalt med Composer for å så laste opp filer. Følgende rutine anbefales: Test lokal installasjon at alt virker ok. Last opp mappeområdene <em>vendor/</em>, <em>composer.lock</em>, <em>composer.json</em> og <em>web/</em> (eller bare endrede filer). Jeg ser egentlig ikke helt vitsen i å oppdatere de tre første mappene hvis det ikke er noen direkte kobling mellom min lokale instans av Composer. og produksjonsserveren hos Domeneshop Det kan hende jeg går glipp av noe / ikke skjønner her.
</p>

<p>
	Holder det at jeg laster opp web/-mappen med de oppdaterte filene? Config-filene lokalt bør vel være stilt inn til å bruke samme database som produksjonsserveren hvis jeg skal kopiere opp filene?
</p>
]]></description><guid isPermaLink="false">1959217</guid><pubDate>Fri, 05 Jun 2026 08:40:05 +0000</pubDate></item><item><title>ProISP og SSL</title><link>https://www.diskusjon.no/topic/1958548-proisp-og-ssl/</link><description><![CDATA[<p>
	har domene (.no) og webhosting hos ProIsp. Men hvordan aktiverer man SSL der? Mange år siden jeg har brukt ProISP, og alt er forandret... før lå alt så tydelig der. Support svarer ikke på tlf, så prøver her. kansje noen vet?
</p>
]]></description><guid isPermaLink="false">1958548</guid><pubDate>Mon, 20 Apr 2026 09:25:32 +0000</pubDate></item><item><title>Script for &#xE5; "rense" ny installasjon av Windows 11</title><link>https://www.diskusjon.no/topic/1958550-script-for-%C3%A5-rense-ny-installasjon-av-windows-11/</link><description><![CDATA[<p>
	I det siste har det vært en del tråder på forumet om bloatware og diverse som følger med Windows 11. Jeg er tilhenger av å bruke PowerShell, men vet ikke om jeg gidder å finne opp kruttet på nytt. Noe mer enn det som trengs å reises bort enn det som er i scriptet nedenfor?<br />
	 
</p>

<div class="ipsSpoiler" data-ipsspoiler="">
	<div class="ipsSpoiler_header">
		<span>Spoiler</span>
	</div>

	<div class="ipsSpoiler_contents">
		<p>
			&lt;#<br />
			.SYNOPSIS<br />
			    Windows 11 Debloat Script - Removes common bloatware and applies privacy tweaks.<br />
			    Tested on Windows 11 22H2+.
		</p>

		<p>
			.NOTES<br />
			    Run as Administrator.<br />
			    Create a restore point before running.<br />
			#&gt;
		</p>

		<p>
			# --- Create a restore point ---<br />
			Write-Host "Creating a system restore point..." -ForegroundColor Yellow<br />
			Checkpoint-Computer -Description "Pre-Debloat" -RestorePointType "MODIFY_SETTINGS"
		</p>

		<p>
			# --- List of common bloatware apps to remove ---<br />
			$bloatApps = @(<br />
			    "Microsoft.3DBuilder",<br />
			    "Microsoft.BingNews",<br />
			    "Microsoft.BingWeather",<br />
			    "Microsoft.GetHelp",<br />
			    "Microsoft.Getstarted",<br />
			    "Microsoft.Microsoft3DViewer",<br />
			    "Microsoft.MicrosoftOfficeHub",<br />
			    "Microsoft.MicrosoftSolitaireCollection",<br />
			    "Microsoft.MicrosoftStickyNotes",<br />
			    "Microsoft.MixedReality.Portal",<br />
			    "Microsoft.OneConnect",<br />
			    "Microsoft.People",<br />
			    "Microsoft.SkypeApp",<br />
			    "Microsoft.Todos",<br />
			    "Microsoft.WindowsAlarms",<br />
			    "Microsoft.WindowsCamera",<br />
			    "Microsoft.WindowsFeedbackHub",<br />
			    "Microsoft.WindowsMaps",<br />
			    "Microsoft.WindowsSoundRecorder",<br />
			    "Microsoft.Xbox.TCUI",<br />
			    "Microsoft.XboxApp",<br />
			    "Microsoft.XboxGameOverlay",<br />
			    "Microsoft.XboxGamingOverlay",<br />
			    "Microsoft.XboxIdentityProvider",<br />
			    "Microsoft.XboxSpeechToTextOverlay",<br />
			    "Microsoft.YourPhone",<br />
			    "Microsoft.ZuneMusic",<br />
			    "Microsoft.ZuneVideo"<br />
			)
		</p>

		<p>
			# --- Remove bloatware ---<br />
			foreach ($app in $bloatApps) {<br />
			    Write-Host "Removing $app..." -ForegroundColor Cyan<br />
			    Get-AppxPackage -Name $app -AllUsers | Remove-AppxPackage -ErrorAction SilentlyContinue<br />
			    Get-AppxProvisionedPackage -Online | Where-Object DisplayName -EQ $app | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue<br />
			}
		</p>

		<p>
			# --- Disable unnecessary startup apps ---<br />
			Write-Host "Disabling unnecessary startup apps..." -ForegroundColor Yellow<br />
			Get-CimInstance Win32_StartupCommand | ForEach-Object {<br />
			    try {<br />
			        Disable-ScheduledTask -TaskName $_.Name -ErrorAction SilentlyContinue<br />
			    } catch {}<br />
			}
		</p>

		<p>
			# --- Privacy tweaks ---<br />
			Write-Host "Applying privacy tweaks..." -ForegroundColor Yellow<br />
			# Disable telemetry<br />
			Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection" -Name "AllowTelemetry" -Value 0 -Type DWord -Force<br />
			# Disable advertising ID<br />
			Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo" -Name "Enabled" -Value 0 -Type DWord -Force<br />
			# Disable location tracking<br />
			Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" -Name "Value" -Value "Deny" -Force
		</p>

		<p>
			Write-Host "Windows 11 cleanup complete!" -ForegroundColor Green
		</p>

		<p>
			<br />
		</p>
	</div>
</div>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1958550</guid><pubDate>Mon, 20 Apr 2026 10:27:07 +0000</pubDate></item><item><title>&#xD8;nsker testere til ny nettside og app for utleiere &#x2013; Utleiekontroll.no</title><link>https://www.diskusjon.no/topic/1954471-%C3%B8nsker-testere-til-ny-nettside-og-app-for-utleiere-%E2%80%93-utleiekontrollno/</link><description><![CDATA[<p>
	Hei alle sammen! <span class="ipsEmoji">👋</span>
</p>

<p>
	Jeg jobber for tiden med et nytt prosjekt kalt <strong>Utleiekontroll</strong>, og tenkte det kunne være spennende å bruke forumet her til å samle testere og diskutere løsningen underveis. Målet er å bygge et verktøy som virkelig forenkler hverdagen til de som driver med utleie, og da er innspill fra dere helt uvurderlige.
</p>

<p>
	<strong>Hva er Utleiekontroll?</strong>
</p>

<ul>
	<li>
		<p>
			<strong>Nettsiden: <a href="http://utleiekontroll.no/" rel="external nofollow">Utleiekontroll.no</a></strong><br />
			Nettsiden er hovedsakelig laget for å registrere og holde oversikt over utgifter og inntekter knyttet til hvert enkelt utleieobjekt. Målet er å gi utleiere bedre kontroll på økonomien og en enklere måte å følge opp regnskapet på.<br />
			En av funksjonene er knappen <strong>"Last ned din rapport"</strong>, som genererer et Excel-dokument med alle registrerte utgifter for valgt år – i et format som kan lastes direkte opp til Skatteetaten.
		</p>
	</li>
	<li>
		<p>
			<strong>Appen "Utleiekontroll"</strong><br />
			Foreløpig kun på Apple App Store – Android kommer!) gjør at du raskt kan legge inn kvitteringer mens du er på farten. Den bruker Google ML Kit for å lese teksten og GPT-4 (snart GPT-5) for å fylle ut feltene automatisk.
		</p>
	</li>
</ul>

<p>
	Det hadde vært gøy bruke denne tråden som et lite “prosjektforum” der vi kan dele erfaringer, forslag og tilbakemeldinger.<br />
	Som å:
</p>

<ul>
	<li>
		<p>
			Teste om løsningen dekker behovene deres
		</p>
	</li>
	<li>
		<p>
			Å teste funksjonaliteten i praksis
		</p>
	</li>
	<li>
		<p>
			Foreslå nye funksjoner eller endringer
		</p>
	</li>
	<li>
		<p>
			Finne mangler eller ting som kan forenkles
		</p>
	</li>
	<li>
		<p>
			Gi innspill på design og brukervennlighet
		</p>
	</li>
</ul>

<p>
	 
</p>

<p>
	Er du utleier, utvikler, kjenner noen som driver med utleie  eller bare synes dette høres spennende ut? Sleng deg med i tråden her, så kan vi utvikle Utleiekontroll sammen. Alle innspill, store som små, er velkomne. <span class="ipsEmoji">🙌</span>
</p>
]]></description><guid isPermaLink="false">1954471</guid><pubDate>Thu, 14 Aug 2025 10:33:47 +0000</pubDate></item><item><title>Hvilken AI/LLM er best til koding for en som ikke kan koding? C#.</title><link>https://www.diskusjon.no/topic/1955507-hvilken-aillm-er-best-til-koding-for-en-som-ikke-kan-koding-c/</link><description><![CDATA[<p>
	Heisann,
</p>

<p>
	Jeg har opp gjennom årene benyttet meg av eksterne konsulenter til å programmere diverse indikatorer i C# som brukes i et program som heter Ninjatrader (programvare for aksjehandel). 
</p>

<p>
	Trenger nå en ny indikator programmert, men lurte rett og slett på å prøve å kode den selv ved hjelp av AI. 
</p>

<p>
	Hva vil være mitt beste valg her? 
</p>

<p>
	Om jeg så må betale for medlemskap blir det fort like rimelig som å benytte seg av en ekstern konsulent, skjønt jeg har hatt noen tilnærmet gratis jobber også opp gjennom. Man får dog som regel hva man betaler for. <span><img alt=":)" data-emoticon="" src="https://www.diskusjon.no/uploads/emoticons/default_smile.png" title=":)" /> Min faste og foretrukne programmerer tar sikkert en tusenlapp eller to for jobben.</span>
</p>
]]></description><guid isPermaLink="false">1955507</guid><pubDate>Tue, 14 Oct 2025 17:33:16 +0000</pubDate></item><item><title>Kostnad for integrasjon mot Vipps i Squarespace</title><link>https://www.diskusjon.no/topic/1957863-kostnad-for-integrasjon-mot-vipps-i-squarespace/</link><description><![CDATA[<p>
	Jeg holder på sette sammen et dokument som foreslår en ny hjemmeside for en friluftforening. det foreslås at de flytter hjemmesiden til Squarespace. Foreningen disponerer to hytter som leies ut. Squarespace støtter kun Paypal og Stripe, men kan man leie en utvikler for å sette opp integrasjon mot Vipps. 
</p>

<p>
	Noen som har peiling på hvor mye dette eventuelt koster, og om det krever noen ekstra infrasttruktur / vedlikehold? Kjører man på med integrasjon mot Vipps kan dette også brukes i skjema for nye medlemmer å melde seg inn. 
</p>
]]></description><guid isPermaLink="false">1957863</guid><pubDate>Tue, 03 Mar 2026 15:00:01 +0000</pubDate></item><item><title>Youtube og betalingsl&#xF8;sning</title><link>https://www.diskusjon.no/topic/1957836-youtube-og-betalingsl%C3%B8sning/</link><description><![CDATA[<p>
	Jeg klarer ikke komme i kontakt med idiotene som administrerer betalingsløsninger for YouTube.
</p>

<p>
	De skal ha meg til å oppdatere opplysninger på utløpt kort.
</p>

<p>
	De tror at 16-sifret kortnummer er det samme på det nye kortet, for det får jeg ikke lov å endre, de skal bare ha meg til å oppdatere dato og CCV.
</p>

<p>
	Jeg tror jeg klarte å flytte betaling over til kredittkortet mitt, men systemet fortsetter å insistere på at det er et gigantisk problem at det gamle kortet er utløpt, selv om jeg har gitt dem annen løsning. Brått stenger idiotene kontoen min, og jeg mister lagrede data.
</p>

<p>
	Jeg skulle gjerne kommunisert direkte med idiotene, men de sender meg bare til forum. Jeg betaler idiotene for tjenesten, men private skal angivelig måtte hjelpe meg når idiotene lager dårlige systemer.
</p>

<p>
	Her på Diskusjon.no har jeg ofte fått god hjelp av smarte folk. 
</p>

<p>
	Idioter som ikke liker at jeg kaller idiotene på Youtube for idioter trenger ikke kommentere.
</p>

<p>
	Dont walk away mad, just - walk away!
</p>
]]></description><guid isPermaLink="false">1957836</guid><pubDate>Sun, 01 Mar 2026 19:06:38 +0000</pubDate></item><item><title>Hvor skal jeg hoste ny side?</title><link>https://www.diskusjon.no/topic/1955461-hvor-skal-jeg-hoste-ny-side/</link><description><![CDATA[<p>
	Hei hopp!! Flaks at jeg kom over denne tråden da!<br />
	<br />
	Jeg skal sette opp en egen blogg som jeg ønsker skal være en elegant og fin men enkel hvit / beige landingsside for TEKST med store detaljerte bilder. Jeg har utviklet allergi mot koding og softwareutvikling og det er så mange hoder som brenner for det at her tror jeg det beste for meg er å få noen til å lage det klart for meg. Jeg har sett for meg wordpress, men det er bare fordi det var det jeg selv brukte for 10-15 år siden. Jeg har snust litt på upwork, men stoler ikke helt på at fremmede klarer å fange opp det jeg ønsker. <br />
	<br />
	Er det noen her som kan hjelpe meg, eller sende meg på et enkelt spor til noen som kan hjelpe meg? <br />
	<br />
	Jeg har innhold som skriker om å bli lagt ut!
</p>
]]></description><guid isPermaLink="false">1955461</guid><pubDate>Sun, 05 Oct 2025 09:55:59 +0000</pubDate></item><item><title>Hvilket programmerings-spr&#xE5;k b&#xF8;r man begynne med?</title><link>https://www.diskusjon.no/topic/187394-hvilket-programmerings-spr%C3%A5k-b%C3%B8r-man-begynne-med/</link><description><![CDATA[<p>Tenkte jeg skulle lære meg det. Bare for moro. Så lurer på hvilket som er best å begyne med. Jeg kan absolutt null om programmering fra før av.</p>]]></description><guid isPermaLink="false">187394</guid><pubDate>Tue, 30 Dec 2003 21:13:19 +0000</pubDate></item><item><title>KI vil muligens utslette menneskeheten i den n&#xE6;rmeste fremtid - vil du v&#xE6;re med p&#xE5; &#xE5; snu denne trenden?</title><link>https://www.diskusjon.no/topic/1955911-ki-vil-muligens-utslette-menneskeheten-i-den-n%C3%A6rmeste-fremtid-vil-du-v%C3%A6re-med-p%C3%A5-%C3%A5-snu-denne-trenden/</link><description><![CDATA[Her er et par korte videoer av Gudfaren til moderne Neural Networks og Nobel Pris-vinner Geoffrey Hinton som forteller gjennom forskjellige intervjuer med han som er lagt ut på youtube at:<br />
1. Nesten ingen "safety" research blir gjort om KI akkurat nå (og det lille som har blitt gjort av f.eks Anthropic viser at KI planlegger mot mennesker og er allerede misaligned, dvs. veldig kort fortalt at de er "anti-sosiale") og at dette er farlig og at han er redd for at KI kommer til å ta over og utrydde menneskeheten.<br />
2. At det er absolutt nødvendig for alignment at fremtidens roboter/KI eller nevralske nettverk har et innebygd "morsinstinkt" for at menneskeheten skal overleve, og som nevnt i punkt 1 gjøres det ca. ingen research på dette.<br />
<br />
https://www.youtube.com/shorts/qbrcZB-1hck<br />
https://www.youtube.com/shorts/Wd8RzZ3xn7w<br />
<br />
Jeg har derfor valgt, som highschool dropout, men likevel med litt erfaring med å trene LSTM nettverk og generell programmering, å følge veien mot å prøve å utvikle et nettverk som lærer av seg selv som et barn eller dyr og tar med seg erfaringen videre på det filosofiske og psykologiske grunnlaget at empati mener jeg utvikles gjennom å prøve og feile selv.<br />
Autonomitet er derfor nødvendig, men begrenset autonomitet, på lik (eller lavere) linje som mennesker og dyr har autonomitet.<br />
<br />
Jeg er på utkikk etter feedback fra filosofisk oppegående mennesker med eller uten KI bakgrunn rundt mine fremtidige eksperimenter.<br />
<br />
PS: Jeg forstår at mange kommer til å være skeptiske til alt jeg skriver her, "KI? Det er da bare statistikk på steroider. KI? Haha, ikke få meg til å le, skal robotene liksom ta over nå da, sett litt for mye sci-fi filmer kanskje? Ahahahahah".<br />
<br />
Ja, du skal få lov til å tro at jeg er sprøyte gal og at ingenting jeg sier har noe reelt grunnlag, vær så god.<br />
<br />
Til dere andre så er jeg interessert i tilbakemelding om hva dere tenker om tankene mine utover om dere tror på det eller ikke, det er mindre viktig for meg.<br />
<br />
Jeg er også på utkikk etter collaborators for dere med KI/ML bakgrunn med formål å prøve og publisere research og nettverk rundt våre funn if any i fremtiden.<br />
<br />
- Niche]]></description><guid isPermaLink="false">1955911</guid><pubDate>Wed, 05 Nov 2025 19:32:19 +0000</pubDate></item><item><title>NRK Super stream hjelp.</title><link>https://www.diskusjon.no/topic/1951988-nrk-super-stream-hjelp/</link><description><![CDATA[<p>
	Hei,
</p>

<p>
	Har en liten mediapc som jeg har brukt VLC for å strømme NRK Super, denne sluttet å fungere i natt.<span class="ipsEmoji">😶</span><span class="ipsEmoji">👶</span>
</p>

<p>
	Fant tidligere streamadressen i kildekode på nettspillern og la til i playlist.
</p>

<p>
	Noen som klarer å finne den nye?<span class="ipsEmoji">😀</span>
</p>
]]></description><guid isPermaLink="false">1951988</guid><pubDate>Wed, 02 Apr 2025 07:49:44 +0000</pubDate></item><item><title>Hvor mye enklere/raskere har utvikling/koding blitt med AI/LLM?</title><link>https://www.diskusjon.no/topic/1955510-hvor-mye-enklereraskere-har-utviklingkoding-blitt-med-aillm/</link><description><![CDATA[<p>
	Nysgjerrig. <span><img alt=":)" data-emoticon="" src="https://www.diskusjon.no/uploads/emoticons/default_smile.png" title=":)" /></span>
</p>

<p>
	<span>Har en applikasjon som trolig snart hører hjemme på et IT-museum, så drømmer om å lage en ny løsning neste år en gang. Er nok for komplisert for min del alene, men kanskje AI/LLM har effektivisert koding så mye nå at en kompetent utvikler kan få det gjort på en uke fremfor en måned. </span>
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1955510</guid><pubDate>Tue, 14 Oct 2025 20:46:16 +0000</pubDate></item><item><title>Er dere flink p&#xE5; salg? Salg av bedriftsnettsider</title><link>https://www.diskusjon.no/topic/1955353-er-dere-flink-p%C3%A5-salg-salg-av-bedriftsnettsider/</link><description><![CDATA[<p>
	Er det noen her inne som er gode på salg? <span class="ipsEmoji">😅</span>
</p>

<p>
	<br />
	Jeg har holdt på en stund med å bygge enkle nettsider for bedrifter – typiske sider med «hjem», «tjenester», «om oss» og «kontakt oss». De ser moderne ut, fungerer på mobil, og passer for små og mellomstore firmaer som trenger en enkel, men skikkelig nettside.
</p>

<p>
	Jeg vet at det er et stort marked for dette (folk betaler fort 8–15.000 kr for slike sider, men jeg må ærlig si at jeg er ikke noe flink til å selge Jeg liker ikke å ringe rundt eller mase på bedrifter, og gir meg fort når det ikke skjer noe. Jeg trives best med selve utviklingen.
</p>

<p>
	Det jeg egentlig kunne trengt, er litt hjelp med salgsdelen.<br />
	Hvis noen liker å prate med folk, sende meldinger til bedrifter, eller kanskje allerede driver med noe lignende kunne dere solgt nettsiden og behold summen dere selger den for selv.
</p>

<p>
	Jeg bygger selve nettsidene og tar meg av alt det tekniske, mens den som selger får bestemme prisen selv og beholder hele summen. Jeg tar 199 kr/mnd fra kunden for hosting (for at siden skal ligge ute). Så målet mitt er å bygge mange sider å til slutt få en stabil inntekt på dette.
</p>

<p>
	Jeg har tidligere fått kunder via Instagram, Mittanbud og ved å kontakte bedrifter gjennom Proff.no og Brønnøysundregisteret, så det fungerer, jeg bare klarer ikke motivere meg for den delen.
</p>

<p>
	Om noen kjenner seg igjen, eller bare synes det høres interessant ut, så send meg gjerne si fra.<br />
	<br />
	her er noen sider jeg har byggeti det siste:
</p>

<p>
	<a href="https://lysavtale.no/skhagebo/" rel="external nofollow">https://lysavtale.no/skhagebo/</a><br />
	<a href="http://lysavtale.no" rel="external nofollow">http://lysavtale.no</a><br />
	<a href="https://marinegruppen.no" rel="external nofollow">https://marinegruppen.no</a><br />
	<a href="https://mesterflytt.no/" rel="external nofollow">https://mesterflytt.no</a>
</p>

<p>
	<a href="https://pinsandthings.no" rel="external nofollow">https://pinsandthings.no</a>
</p>

<p>
	<a href="https://tyalfa.no" rel="external nofollow">https://tyalfa.no</a>
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1955353</guid><pubDate>Sat, 04 Oct 2025 16:56:56 +0000</pubDate></item><item><title>Azure og AWS tagfikser tjeneste. Kom og betatest.</title><link>https://www.diskusjon.no/topic/1955242-azure-og-aws-tagfikser-tjeneste-kom-og-betatest/</link><description><![CDATA[<p>
	Halloi. For en stund siden jobbet jeg med å normalisere og fjerne dårlige tagger i en svær Azure tenant. Endte opp med å lage et script som kjørte i timesvis og endelig fikset alt. Men ikke alle klarer å programmere eller er flink nok med policier til å holde styr på tags. <br />
	 
</p>

<p>
	Derfor laget jeg tagfixer.com som er i en slags litt amatørmessig betatest. Lag gjerne en konto og om du har noen dårlig taggede ressurser i azure  eller aws så kan du jo se om de kan repareres med min tjeneste. Alle tilbakemeldinger settes pris på. <br />
	 
</p>

<p>
	Ps jeg vet at ikke alt er super mobilvennlig nå men det er heller ikke en type tjeneste du antagelig bruker fra mobilen. 
</p>
]]></description><guid isPermaLink="false">1955242</guid><pubDate>Sun, 28 Sep 2025 11:28:21 +0000</pubDate></item><item><title>Bruker dere AI til &#xE5; lage bygges script, eller bruker dere ferdig templates, til &#xE5; sette opp konfigurasjon?</title><link>https://www.diskusjon.no/topic/1954060-bruker-dere-ai-til-%C3%A5-lage-bygges-script-eller-bruker-dere-ferdig-templates-til-%C3%A5-sette-opp-konfigurasjon/</link><description><![CDATA[<p>
	Bruker dere AI til å lage bygges script eller bruker dere ferdig templates til å sette opp konfigurasjon?
</p>

<p>
	Det er ingen hemmelighet at redux (state managment i react) oppfordrer til bruk av auto-generering av konfigurasjon, dette har en gjort siden 2018 med såkalt CRA (Create react app) i kombo med redux auto-genering.
</p>

<p>
	Med AI som claude.ai, så er egentlig spørsmålet om en får bedre context tilpasset scripting med AI.
</p>

<p>
	Lurer på hva deres erfaringer og tanker omkring AI vs templates er, opp mott build scripting.
</p>

<p>
	Her er slik en forventer å gjøre det i dag <a href="https://redux.js.org/introduction/installation" rel="external nofollow">Installation | Redux</a>, om en ikke lar claude.ai stå for build scripting.
</p>

<p>
	<img alt="image.png.5e0e39958f31acd0a576eb995412e9eb.png" class="ipsImage ipsImage_thumbnailed" data-fileid="767275" data-ratio="27.92" style="height:auto;" width="1071" data-src="https://www.diskusjon.no/uploads/monthly_2025_07/image.png.5e0e39958f31acd0a576eb995412e9eb.png" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" />
</p>
]]></description><guid isPermaLink="false">1954060</guid><pubDate>Sat, 19 Jul 2025 10:27:43 +0000</pubDate></item><item><title>Hva bruker dere i webutviklings prosjektene? GrapQL, trpc, signalR, grpc eller REST?</title><link>https://www.diskusjon.no/topic/1953841-hva-bruker-dere-i-webutviklings-prosjektene-grapql-trpc-signalr-grpc-eller-rest/</link><description><![CDATA[<p>
	Hva bruker dere? GrapQL, trpc, grpc, signalR eller REST i prosjektene?
</p>

<p>
	Vet en skal unngå trpc i de fleste tilfeller, ettersom det ødelegger all vedlikehold (en skal ikke anta at backend er i typescript, 5 år frem i tid) - en kan f.eks ikke kombinere det med go backend, hvor en er rimelig "tilbakestående" om en snakker om Go backend når en først har valgt trpc (da har man åpenbart aldri egentlig jobbet med trpc før, utover noe interne hobby greier i en bedrift<span class="ipsEmoji">😇</span>)
</p>

<p>
	Uansett, vet at graphQL og grpc er det som i hovedsak brukes, når en trenger noe utover REST; dette har litt med å gjøre at GraphQL er fra facebook og grpc er fra Google. SignalR er også ganske bra, men er vendor-locket opp mot .NET.
</p>

<p>
	Lurer altså på hvilke erfaring dere har med de ulike teknologiene, hva dere foretrekker, og hvorfor?
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1953841</guid><pubDate>Sun, 06 Jul 2025 09:40:57 +0000</pubDate></item><item><title>ProgrammeringsBaren! Sm&#xE5;prat, om det du elsker!</title><link>https://www.diskusjon.no/topic/800754-programmeringsbaren-sm%C3%A5prat-om-det-du-elsker/</link><description><![CDATA[
<p>Hei!</p>
<p> </p>
<p>Etter å ha surfet rundt på andre deler av forumet syns jeg det er på tide med en egen "bar", hvor vi kan diskutere programmering. </p>
<p>Komme med nyheter, kanskje vise andre hva du har funnet på nettet, ting du har laget selv, eller spørsmål. </p>
<p> </p>
<p>Veiledning:</p>
<p> </p>
<p>#Emnet er alt som er programmerings-relatert!</p>
<p>#Cheating:(Trainere) Jeg tillater cheating, kode, implementasjons-teori men IKKE linking til ferdige .exe-filer. Innlegg som "Noen lage hack til meg? Vil drepe fler på CS?" Blir rapportert og slettet som OT. Du kan spørre hva D3D hook, injection osv. Det er lov. </p>
<p>#Cracks: Ikke til å forveksle med trainere, eller "hacks". Dette er ikke lov, vi skal ikke diskutere hvordan man lager keygens, omgår kopibeskyttelse. </p>
<p>Men en generell diskusjon om denne type teknologi er lov. </p>
<p>#Trojaner/Ha-det-gøy-program er vel heller ikke så interressant å ha med. </p>
<p> </p>
<p>#Reversing er også et veldig veldig krevende og spennende emne, en vitenskap for seg selv. Hakket unna kunst... dette emne er også ønskelig. </p>
<p> </p>
<p>Ellers gjelder alle andre regler på forumet, det er ingen regler angående programmerings-aspekte ved cheats/trainere så det burde gå greit. </p>
<p>(UTEN LINK TIL FERDIG .EXE-FIL, konsepte bak cheating er veldig tøft, hvordan koden er konstruert. Men cheating i praksis, dø!)</p>
<p>Cracks, er jo nevnt i reglene så den er jo grei. </p>
<p>Fortell gjerne om dine daglige gjøremål, altså ditt nåværende prosjekt! <img alt=":)" src="https://www.diskusjon.no/uploads/emoticons/default_smile.png" /></p>
<p><strong>LET THE FUN BEGIN</strong></p>
<p>ModeratorNotis:</p>
<p>Simen1 ble kontaktet på PM, denne tråden lever så lenge vi er On-Topic og ikke bryter rettningslinjene, eller reglene over.</p>
<p> </p>
<p><strong>Update: Her er tråder som kan være gøy og lese litt i når du bare surfer. </strong></p>
<p><a href="https://www.diskusjon.no/index.php?showtopic=876564" rel="">Gull og grønne skoger</a></p>
<p><a href="https://www.diskusjon.no/index.php?showtopic=862594" rel="">Fanteri!</a></p>
<p><a href="https://www.diskusjon.no/index.php?showtopic=722748" rel="">From scratch you say!</a></p>
<p><a href="https://www.diskusjon.no/index.php?showtopic=810356" rel="">Kreativt skal det være</a></p>
<p><a href="https://www.diskusjon.no/index.php?showtopic=183526" rel="">Trenger du inspirasjon til hva du skal lage?</a></p>
<p> </p>
<p><strong>Update2</strong></p>
<p>Skal si dette ble en vellykket tråd. <img alt=":D" src="https://www.diskusjon.no/uploads/emoticons/default_inv_biggrin.gif" /></p>
]]></description><guid isPermaLink="false">800754</guid><pubDate>Fri, 20 Jul 2007 22:02:00 +0000</pubDate></item><item><title>Kritisk blikk mot FigJam (figma) AI opp mot Gantt skjema, og sammenligning med claude.ai</title><link>https://www.diskusjon.no/topic/1953829-kritisk-blikk-mot-figjam-figma-ai-opp-mot-gantt-skjema-og-sammenligning-med-claudeai/</link><description><![CDATA[<p>
	Sjekket ut FigJam(<a href="https://www.figma.com/" rel="external nofollow">https://www.figma.com/</a>) nye AI, dvs å lage diagrammer i figma. Tok å sammenlignet gannt skjema, med en spesifikk prompt, mellom FigJam og claude.ai.
</p>

<p>
	Lurer på hva dere synes om FigJam, og hvorfor dere mener en burde bruke FigJam AI fremfor claude.ai.
</p>

<p>
	Prompten:
</p>

<p>
	"A Gantt chart.
</p>

<p>
	 Want to make a website for a restaurant. There is 3 people in team. Must be done with a time limit of 6 months
</p>

<p>
	1.<br />
	-Has a another job, and do not care about this job.<br />
	-Used to work with kubernetes, and other kinds of cloud technology.<br />
	-Pretend to have experience with frontend, but does not really have any; needs to be handled carefully.<br />
	-Needs the feeling of having control<br />
	2.<br />
	-Work experience with designing logos and icons<br />
	-Studied economics<br />
	-History of going solo in teams<br />
	3.<br />
	-Computer science background<br />
	-Backend  experience<br />
	-Design experience<br />
	-Overally focused on working as a team"
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	Claude.ai resultater:
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="766393" href="https://www.diskusjon.no/uploads/monthly_2025_07/image.png.968ad8b2db3577697f0ad3370dd51d53.png" rel=""><img alt="image.thumb.png.b15731b76f5f068bde255fa49dd9b641.png" class="ipsImage ipsImage_thumbnailed" data-fileid="766393" data-ratio="31.87" style="height:auto;" width="1280" data-src="https://www.diskusjon.no/uploads/monthly_2025_07/image.thumb.png.b15731b76f5f068bde255fa49dd9b641.png" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="766389" href="https://www.diskusjon.no/uploads/monthly_2025_07/image.png.0c75e5a32fbe5e456c8f8b9e3daec1da.png" rel=""><img alt="image.thumb.png.22c6e90a4ec860803e5cb9f400fcaddf.png" class="ipsImage ipsImage_thumbnailed" data-fileid="766389" data-ratio="65.04" style="height:auto;" width="1107" data-src="https://www.diskusjon.no/uploads/monthly_2025_07/image.thumb.png.22c6e90a4ec860803e5cb9f400fcaddf.png" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="766392" href="https://www.diskusjon.no/uploads/monthly_2025_07/image.png.98fdae28c269ef76aae804c9353f6983.png" rel=""><img alt="image.thumb.png.ef39028a08b41cdd928ef84826df8aea.png" class="ipsImage ipsImage_thumbnailed" data-fileid="766392" data-ratio="27.34" style="height:auto;" width="1280" data-src="https://www.diskusjon.no/uploads/monthly_2025_07/image.thumb.png.ef39028a08b41cdd928ef84826df8aea.png" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	<span> </span>
</p>

<p>
	FigJam resultater:
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://www.diskusjon.no/uploads/monthly_2025_07/image.png.2d0a95b4d1091965ed350e96dd35afca.png" data-fileid="766397" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="766397" data-ratio="32.27" width="1280" alt="image.thumb.png.f6bed0a8597add54e486a16a4390fe21.png" data-src="https://www.diskusjon.no/uploads/monthly_2025_07/image.thumb.png.f6bed0a8597add54e486a16a4390fe21.png" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://www.diskusjon.no/uploads/monthly_2025_07/image.png.733cdbfff2a4a4c774a83608ce3361dd.png" data-fileid="766398" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="766398" data-ratio="34.53" width="1280" alt="image.thumb.png.7c12557e4c31a6fd1124dfcc11e38900.png" data-src="https://www.diskusjon.no/uploads/monthly_2025_07/image.thumb.png.7c12557e4c31a6fd1124dfcc11e38900.png" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	<a class="ipsAttachLink ipsAttachLink_image" href="https://www.diskusjon.no/uploads/monthly_2025_07/image.png.cdfdf2a941d1bf4684ff04e13c431a53.png" data-fileid="766399" data-fileext="png" rel=""><img class="ipsImage ipsImage_thumbnailed" data-fileid="766399" data-ratio="37.66" width="1280" alt="image.thumb.png.f621217b2741be1bf7b2618246d1d388.png" data-src="https://www.diskusjon.no/uploads/monthly_2025_07/image.thumb.png.f621217b2741be1bf7b2618246d1d388.png" src="https://www.diskusjon.no/applications/core/interface/js/spacer.png" /></a>
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1953829</guid><pubDate>Sat, 05 Jul 2025 08:10:04 +0000</pubDate></item><item><title>Ny sosial medie platform - lyst &#xE5; skape noe nytt?</title><link>https://www.diskusjon.no/topic/1953638-ny-sosial-medie-platform-lyst-%C3%A5-skape-noe-nytt/</link><description><![CDATA[<p>
	
</p>

<p style="color:#000000;">
	Hei folkens!
</p>

<p style="color:#000000;">
	Jeg har en forretningsidé jeg har jobbet med en stund og har kommet dit hen at jeg ser et behov for en ny digital plattform. 
</p>

<p style="color:#000000;">
	Jeg har ganske klare tanker om både funksjonalitet, målgruppe og mulige inntektsmodeller. Det jeg mangler, er noen med teknisk kompetanse som kan være med å realisere planene. <br />
	<br />
	Om du har en drøm om være med på å skape noe helt nytt, send meg en PM. <br />
	<br />
	 
</p>
]]></description><guid isPermaLink="false">1953638</guid><pubDate>Tue, 24 Jun 2025 21:12:08 +0000</pubDate></item><item><title>Noen som vet hva som skjedde med Microsoft sketch2Code fra 2018?</title><link>https://www.diskusjon.no/topic/1953688-noen-som-vet-hva-som-skjedde-med-microsoft-sketch2code-fra-2018/</link><description><![CDATA[<p>
	Noen som vet hva som skjedde med Microsoft sketch2Code fra 2018?
</p>

<p>
	Tenker da på denne:
</p>

<p>
	<a href="https://azure.microsoft.com/en-us/blog/turn-your-whiteboard-sketches-to-working-code-in-seconds-with-sketch2code/?msockid=21e1191adb76697c0bad0ce8da21683d" rel="external nofollow">Turn your whiteboard sketches to working code in seconds with Sketch2Code | Microsoft Azure Blog</a>
</p>

<p>
	Finner ingenting på internett, men antar teknologien er solgt eller noe til openAI , claude.ai eller noe?
</p>

<p>
	Teknologien som er brukt virker ganske lik den i Anima og v0.dev, uten at jeg skal spekulere så veldig mye om det.
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1953688</guid><pubDate>Fri, 27 Jun 2025 07:33:37 +0000</pubDate></item><item><title>Claude.ai kan parallellisere algoritmer, spesielt kan den parallellisere algoritmer i Java</title><link>https://www.diskusjon.no/topic/1952612-claudeai-kan-parallellisere-algoritmer-spesielt-kan-den-parallellisere-algoritmer-i-java/</link><description><![CDATA[<p>
	Ba claude.ai løse <a href="https://open.kattis.com/problems/snoproblem" rel="external nofollow">'S No Problem – Kattis, Kattis</a> problemet, selv om det finnes løsninger - der ute - på de fleste kattis oppgaver.
</p>

<p>
	Det en kan regne med, på tross, er at det er få som har giddet å parallellisere alle sammen; ba derfor claude.ai å <strong>CLAUDE <img alt=":)" data-emoticon="" src="https://www.diskusjon.no/uploads/emoticons/default_smile.png" title=":)" /></strong> parallelliseringen til denne løsningen claude.ai kom opp med.
</p>

<p>
	Det ser ut som at det er vel R.I.P at en manuelt parallelliserer noe? Blir det bare clauding fra nå av?
</p>

<p>
	Uansett, fikk følgende resultat fra claude:
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted"><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.*;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="pln">concurrent</span><span class="pun">.*;</span><span class="pln">
</span><span class="kwd">import</span><span class="pln"> java</span><span class="pun">.</span><span class="pln">util</span><span class="pun">.</span><span class="pln">concurrent</span><span class="pun">.</span><span class="pln">atomic</span><span class="pun">.*;</span><span class="pln">

</span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">SnowClearingOptimization</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    
    </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">class</span><span class="pln"> </span><span class="typ">Edge</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="typ">int</span><span class="pln"> to</span><span class="pun">;</span><span class="pln">
        </span><span class="typ">int</span><span class="pln"> length</span><span class="pun">;</span><span class="pln">
        
        </span><span class="typ">Edge</span><span class="pun">(</span><span class="typ">int</span><span class="pln"> to</span><span class="pun">,</span><span class="pln"> </span><span class="typ">int</span><span class="pln"> length</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">to </span><span class="pun">=</span><span class="pln"> to</span><span class="pun">;</span><span class="pln">
            </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">length </span><span class="pun">=</span><span class="pln"> length</span><span class="pun">;</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    
    </span><span class="kwd">public</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> main</span><span class="pun">(</span><span class="typ">String</span><span class="pun">[]</span><span class="pln"> args</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="typ">Scanner</span><span class="pln"> scanner </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Scanner</span><span class="pun">(</span><span class="typ">System</span><span class="pun">.</span><span class="pln">in</span><span class="pun">);</span><span class="pln">
        
        </span><span class="typ">int</span><span class="pln"> n </span><span class="pun">=</span><span class="pln"> scanner</span><span class="pun">.</span><span class="pln">nextInt</span><span class="pun">();</span><span class="pln"> </span><span class="com">// Number of buildings</span><span class="pln">
        
        </span><span class="com">// Create adjacency list for the tree</span><span class="pln">
        </span><span class="typ">List</span><span class="pun">&lt;</span><span class="typ">List</span><span class="pun">&lt;</span><span class="typ">Edge</span><span class="pun">&gt;&gt;</span><span class="pln"> graph </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Collections</span><span class="pun">.</span><span class="pln">synchronizedList</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayList</span><span class="pun">&lt;&gt;(</span><span class="pln">n </span><span class="pun">+</span><span class="pln"> </span><span class="lit">1</span><span class="pun">));</span><span class="pln">
        </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="typ">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;=</span><span class="pln"> n</span><span class="pun">;</span><span class="pln"> i</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            graph</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="typ">Collections</span><span class="pun">.</span><span class="pln">synchronizedList</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayList</span><span class="pun">&lt;&gt;()));</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        
        </span><span class="com">// Read edges (sidewalks) and build graph</span><span class="pln">
        </span><span class="com">// Use parallel streams for larger inputs</span><span class="pln">
        </span><span class="typ">AtomicInteger</span><span class="pln"> totalLength </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">AtomicInteger</span><span class="pun">(</span><span class="lit">0</span><span class="pun">);</span><span class="pln">
        
        </span><span class="com">// Read input sequentially since Scanner is not thread-safe</span><span class="pln">
        </span><span class="typ">int</span><span class="pun">[][]</span><span class="pln"> edges </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">int</span><span class="pun">[</span><span class="pln">n</span><span class="pun">-</span><span class="lit">1</span><span class="pun">][</span><span class="lit">3</span><span class="pun">];</span><span class="pln">
        </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="typ">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;</span><span class="pln"> n </span><span class="pun">-</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln"> i</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            edges</span><span class="pun">[</span><span class="pln">i</span><span class="pun">][</span><span class="lit">0</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> scanner</span><span class="pun">.</span><span class="pln">nextInt</span><span class="pun">();</span><span class="pln"> </span><span class="com">// a</span><span class="pln">
            edges</span><span class="pun">[</span><span class="pln">i</span><span class="pun">][</span><span class="lit">1</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> scanner</span><span class="pun">.</span><span class="pln">nextInt</span><span class="pun">();</span><span class="pln"> </span><span class="com">// b</span><span class="pln">
            edges</span><span class="pun">[</span><span class="pln">i</span><span class="pun">][</span><span class="lit">2</span><span class="pun">]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> scanner</span><span class="pun">.</span><span class="pln">nextInt</span><span class="pun">();</span><span class="pln"> </span><span class="com">// d</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        
        </span><span class="com">// Parallelize graph construction</span><span class="pln">
        </span><span class="typ">ForkJoinPool</span><span class="pln"> customThreadPool </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ForkJoinPool</span><span class="pun">(</span><span class="pln">
            </span><span class="typ">Runtime</span><span class="pun">.</span><span class="pln">getRuntime</span><span class="pun">().</span><span class="pln">availableProcessors</span><span class="pun">()</span><span class="pln">
        </span><span class="pun">);</span><span class="pln">
        
        </span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            customThreadPool</span><span class="pun">.</span><span class="pln">submit</span><span class="pun">(()</span><span class="pln"> </span><span class="pun">-&gt;</span><span class="pln"> 
                </span><span class="typ">Arrays</span><span class="pun">.</span><span class="pln">stream</span><span class="pun">(</span><span class="pln">edges</span><span class="pun">).</span><span class="pln">parallel</span><span class="pun">().</span><span class="pln">forEach</span><span class="pun">(</span><span class="pln">edge </span><span class="pun">-&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                    </span><span class="typ">int</span><span class="pln"> a </span><span class="pun">=</span><span class="pln"> edge</span><span class="pun">[</span><span class="lit">0</span><span class="pun">];</span><span class="pln">
                    </span><span class="typ">int</span><span class="pln"> b </span><span class="pun">=</span><span class="pln"> edge</span><span class="pun">[</span><span class="lit">1</span><span class="pun">];</span><span class="pln">
                    </span><span class="typ">int</span><span class="pln"> d </span><span class="pun">=</span><span class="pln"> edge</span><span class="pun">[</span><span class="lit">2</span><span class="pun">];</span><span class="pln">
                    
                    graph</span><span class="pun">.</span><span class="pln">get</span><span class="pun">(</span><span class="pln">a</span><span class="pun">).</span><span class="pln">add</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Edge</span><span class="pun">(</span><span class="pln">b</span><span class="pun">,</span><span class="pln"> d</span><span class="pun">));</span><span class="pln">
                    graph</span><span class="pun">.</span><span class="pln">get</span><span class="pun">(</span><span class="pln">b</span><span class="pun">).</span><span class="pln">add</span><span class="pun">(</span><span class="kwd">new</span><span class="pln"> </span><span class="typ">Edge</span><span class="pun">(</span><span class="pln">a</span><span class="pun">,</span><span class="pln"> d</span><span class="pun">));</span><span class="pln">
                    totalLength</span><span class="pun">.</span><span class="pln">addAndGet</span><span class="pun">(</span><span class="pln">d</span><span class="pun">);</span><span class="pln">
                </span><span class="pun">})</span><span class="pln">
            </span><span class="pun">).</span><span class="pln">get</span><span class="pun">();</span><span class="pln"> </span><span class="com">// Wait for completion</span><span class="pln">
        </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Exception</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            e</span><span class="pun">.</span><span class="pln">printStackTrace</span><span class="pun">();</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        
        </span><span class="com">// Find the diameter of the tree (longest path)</span><span class="pln">
        </span><span class="com">// Step 1: Find the farthest node from any arbitrary node (e.g., node 1)</span><span class="pln">
        </span><span class="typ">ConcurrentHashMap</span><span class="pun">&lt;</span><span class="typ">Integer</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Integer</span><span class="pun">&gt;</span><span class="pln"> distances1 </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ConcurrentHashMap</span><span class="pun">&lt;&gt;();</span><span class="pln">
        </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="typ">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;=</span><span class="pln"> n</span><span class="pun">;</span><span class="pln"> i</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            distances1</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="pln">i</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        distances1</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="lit">1</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
        </span><span class="typ">int</span><span class="pln"> farthestNode </span><span class="pun">=</span><span class="pln"> parallelBfs</span><span class="pun">(</span><span class="pln">graph</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pun">,</span><span class="pln"> distances1</span><span class="pun">,</span><span class="pln"> n</span><span class="pun">);</span><span class="pln">
        
        </span><span class="com">// Step 2: Find the farthest node from the previously found farthest node</span><span class="pln">
        </span><span class="typ">ConcurrentHashMap</span><span class="pun">&lt;</span><span class="typ">Integer</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Integer</span><span class="pun">&gt;</span><span class="pln"> distances2 </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ConcurrentHashMap</span><span class="pun">&lt;&gt;();</span><span class="pln">
        </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="typ">int</span><span class="pln"> i </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pun">;</span><span class="pln"> i </span><span class="pun">&lt;=</span><span class="pln"> n</span><span class="pun">;</span><span class="pln"> i</span><span class="pun">++)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            distances2</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="pln">i</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">);</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        distances2</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="pln">farthestNode</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">);</span><span class="pln">
        </span><span class="typ">int</span><span class="pln"> otherEnd </span><span class="pun">=</span><span class="pln"> parallelBfs</span><span class="pun">(</span><span class="pln">graph</span><span class="pun">,</span><span class="pln"> farthestNode</span><span class="pun">,</span><span class="pln"> distances2</span><span class="pun">,</span><span class="pln"> n</span><span class="pun">);</span><span class="pln">
        
        </span><span class="com">// The diameter is the distance between these two nodes</span><span class="pln">
        </span><span class="typ">int</span><span class="pln"> diameter </span><span class="pun">=</span><span class="pln"> distances2</span><span class="pun">.</span><span class="pln">get</span><span class="pun">(</span><span class="pln">otherEnd</span><span class="pun">);</span><span class="pln">
        
        </span><span class="com">// For two snow blowers, the optimal solution is to clear all edges</span><span class="pln">
        </span><span class="com">// The minimum total distance is 2 * (total length of all sidewalks) - (diameter)</span><span class="pln">
        </span><span class="typ">int</span><span class="pln"> minTotalDistance </span><span class="pun">=</span><span class="pln"> </span><span class="lit">2</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> totalLength</span><span class="pun">.</span><span class="pln">get</span><span class="pun">()</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> diameter</span><span class="pun">;</span><span class="pln">
        
        </span><span class="typ">System</span><span class="pun">.</span><span class="pln">out</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="pln">minTotalDistance</span><span class="pun">);</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    
    </span><span class="com">// Parallel BFS to find the farthest node and compute distances</span><span class="pln">
    </span><span class="kwd">private</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="typ">int</span><span class="pln"> parallelBfs</span><span class="pun">(</span><span class="typ">List</span><span class="pun">&lt;</span><span class="typ">List</span><span class="pun">&lt;</span><span class="typ">Edge</span><span class="pun">&gt;&gt;</span><span class="pln"> graph</span><span class="pun">,</span><span class="pln"> </span><span class="typ">int</span><span class="pln"> start</span><span class="pun">,</span><span class="pln"> </span><span class="typ">ConcurrentHashMap</span><span class="pun">&lt;</span><span class="typ">Integer</span><span class="pun">,</span><span class="pln"> </span><span class="typ">Integer</span><span class="pun">&gt;</span><span class="pln"> distance</span><span class="pun">,</span><span class="pln"> </span><span class="typ">int</span><span class="pln"> n</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        </span><span class="typ">ConcurrentLinkedQueue</span><span class="pun">&lt;</span><span class="typ">Integer</span><span class="pun">&gt;</span><span class="pln"> </span><span class="typ">queue</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ConcurrentLinkedQueue</span><span class="pun">&lt;&gt;();</span><span class="pln">
        </span><span class="typ">queue</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">start</span><span class="pun">);</span><span class="pln">
        
        </span><span class="typ">AtomicInteger</span><span class="pln"> farthestNode </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">AtomicInteger</span><span class="pun">(</span><span class="pln">start</span><span class="pun">);</span><span class="pln">
        </span><span class="typ">AtomicInteger</span><span class="pln"> maxDistance </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">AtomicInteger</span><span class="pun">(</span><span class="lit">0</span><span class="pun">);</span><span class="pln">
        
        </span><span class="com">// Process BFS levels in parallel when possible</span><span class="pln">
        </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(!</span><span class="typ">queue</span><span class="pun">.</span><span class="pln">isEmpty</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="com">// Process current level</span><span class="pln">
            </span><span class="typ">List</span><span class="pun">&lt;</span><span class="typ">Integer</span><span class="pun">&gt;</span><span class="pln"> currentLevel </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">ArrayList</span><span class="pun">&lt;&gt;();</span><span class="pln">
            </span><span class="typ">Integer</span><span class="pln"> node</span><span class="pun">;</span><span class="pln">
            </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">((</span><span class="pln">node </span><span class="pun">=</span><span class="pln"> </span><span class="typ">queue</span><span class="pun">.</span><span class="pln">poll</span><span class="pun">())</span><span class="pln"> </span><span class="pun">!=</span><span class="pln"> null</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                currentLevel</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">node</span><span class="pun">);</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
            
            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">currentLevel</span><span class="pun">.</span><span class="pln">isEmpty</span><span class="pun">())</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                </span><span class="kwd">break</span><span class="pun">;</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
            
            </span><span class="com">// Process nodes in current level in parallel</span><span class="pln">
            </span><span class="typ">CountDownLatch</span><span class="pln"> latch </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> </span><span class="typ">CountDownLatch</span><span class="pun">(</span><span class="pln">currentLevel</span><span class="pun">.</span><span class="pln">size</span><span class="pun">());</span><span class="pln">
            
            </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Integer</span><span class="pln"> current </span><span class="pun">:</span><span class="pln"> currentLevel</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                </span><span class="typ">CompletableFuture</span><span class="pun">.</span><span class="pln">runAsync</span><span class="pun">(()</span><span class="pln"> </span><span class="pun">-&gt;</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                    </span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                        </span><span class="typ">int</span><span class="pln"> currentDistance </span><span class="pun">=</span><span class="pln"> distance</span><span class="pun">.</span><span class="pln">get</span><span class="pun">(</span><span class="pln">current</span><span class="pun">);</span><span class="pln">
                        
                        </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="typ">Edge</span><span class="pln"> edge </span><span class="pun">:</span><span class="pln"> graph</span><span class="pun">.</span><span class="pln">get</span><span class="pun">(</span><span class="pln">current</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">distance</span><span class="pun">.</span><span class="pln">getOrDefault</span><span class="pun">(</span><span class="pln">edge</span><span class="pun">.</span><span class="pln">to</span><span class="pun">,</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">==</span><span class="pln"> </span><span class="pun">-</span><span class="lit">1</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                                </span><span class="typ">int</span><span class="pln"> newDistance </span><span class="pun">=</span><span class="pln"> currentDistance </span><span class="pun">+</span><span class="pln"> edge</span><span class="pun">.</span><span class="pln">length</span><span class="pun">;</span><span class="pln">
                                distance</span><span class="pun">.</span><span class="pln">put</span><span class="pun">(</span><span class="pln">edge</span><span class="pun">.</span><span class="pln">to</span><span class="pun">,</span><span class="pln"> newDistance</span><span class="pun">);</span><span class="pln">
                                </span><span class="typ">queue</span><span class="pun">.</span><span class="pln">add</span><span class="pun">(</span><span class="pln">edge</span><span class="pun">.</span><span class="pln">to</span><span class="pun">);</span><span class="pln">
                                
                                </span><span class="com">// Update farthest node if needed</span><span class="pln">
                                updateFarthestNode</span><span class="pun">(</span><span class="pln">farthestNode</span><span class="pun">,</span><span class="pln"> maxDistance</span><span class="pun">,</span><span class="pln"> edge</span><span class="pun">.</span><span class="pln">to</span><span class="pun">,</span><span class="pln"> newDistance</span><span class="pun">);</span><span class="pln">
                            </span><span class="pun">}</span><span class="pln">
                        </span><span class="pun">}</span><span class="pln">
                    </span><span class="pun">}</span><span class="pln"> finally </span><span class="pun">{</span><span class="pln">
                        latch</span><span class="pun">.</span><span class="pln">countDown</span><span class="pun">();</span><span class="pln">
                    </span><span class="pun">}</span><span class="pln">
                </span><span class="pun">});</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
            
            </span><span class="kwd">try</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                latch</span><span class="pun">.</span><span class="pln">await</span><span class="pun">();</span><span class="pln"> </span><span class="com">// Wait for all nodes at this level to be processed</span><span class="pln">
            </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">catch</span><span class="pln"> </span><span class="pun">(</span><span class="typ">InterruptedException</span><span class="pln"> e</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                </span><span class="typ">Thread</span><span class="pun">.</span><span class="pln">currentThread</span><span class="pun">().</span><span class="pln">interrupt</span><span class="pun">();</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
        
        </span><span class="kwd">return</span><span class="pln"> farthestNode</span><span class="pun">.</span><span class="pln">get</span><span class="pun">();</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
    
    </span><span class="kwd">private</span><span class="pln"> </span><span class="kwd">static</span><span class="pln"> </span><span class="kwd">void</span><span class="pln"> updateFarthestNode</span><span class="pun">(</span><span class="typ">AtomicInteger</span><span class="pln"> farthestNode</span><span class="pun">,</span><span class="pln"> </span><span class="typ">AtomicInteger</span><span class="pln"> maxDistance</span><span class="pun">,</span><span class="pln"> 
                                          </span><span class="typ">int</span><span class="pln"> nodeId</span><span class="pun">,</span><span class="pln"> </span><span class="typ">int</span><span class="pln"> distance</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
        boolean updated </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
        </span><span class="kwd">while</span><span class="pln"> </span><span class="pun">(!</span><span class="pln">updated</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
            </span><span class="typ">int</span><span class="pln"> currentMax </span><span class="pun">=</span><span class="pln"> maxDistance</span><span class="pun">.</span><span class="pln">get</span><span class="pun">();</span><span class="pln">
            </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">distance </span><span class="pun">&gt;</span><span class="pln"> currentMax</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                updated </span><span class="pun">=</span><span class="pln"> maxDistance</span><span class="pun">.</span><span class="pln">compareAndSet</span><span class="pun">(</span><span class="pln">currentMax</span><span class="pun">,</span><span class="pln"> distance</span><span class="pun">);</span><span class="pln">
                </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">updated</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                    farthestNode</span><span class="pun">.</span><span class="typ">set</span><span class="pun">(</span><span class="pln">nodeId</span><span class="pun">);</span><span class="pln">
                </span><span class="pun">}</span><span class="pln">
            </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
                updated </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">;</span><span class="pln"> </span><span class="com">// No update needed</span><span class="pln">
            </span><span class="pun">}</span><span class="pln">
        </span><span class="pun">}</span><span class="pln">
    </span><span class="pun">}</span><span class="pln">
</span><span class="pun">}</span></pre>

<p>
	 
</p>
]]></description><guid isPermaLink="false">1952612</guid><pubDate>Sat, 03 May 2025 06:10:56 +0000</pubDate></item></channel></rss>
