Inlägg

Inlägg som lydell har skrivit i forumet
Av lydell

Jag skulle googla på ”page monitor chrome extension”. (Byt ut ”chrome” mot den webbläsare du använder.) Kanske också ”auto reload chrome extension”.

Av lydell
Skrivet av Oliver3214:

Försökte exekvera dessa men får bara en massa errors.

Så är det att programmera. Man får en massa errors hela tiden och så löser man dem ett i taget. Sen skriver man mer kod och orsakar nya errors. Rinse and repeat.

Av lydell

class Kortlek { public static void main(String[] args) { // Chosen from a brand new deck well shuffled System.out.println("spader 9"); } }

Av lydell

Vad tycker du verkar roligast?

  1. Både och av nedan två (känns lite bredare snarare än djupare)

  2. Utveckla mobilappar

  3. Utveckla webbsajter

Av lydell

Obligatoriska skojlänkar när man pratar om random:

Av lydell

Vi köpte en Netgear EX8000 i slutändan, den kändes bättre. Var rätt så enkel att installera, förutom att exemplaret verkar vara en retur och inte var fabriksåterställd vilket var mycket förvirrande (köpt hos Netonnet). Och att Netgears UI var lite buggigt och otydligt – suck. Återstår att se nu om det hjälper. Om inte annat får vi bättre hastighet och 5.0 GHz nu!

Av lydell
Skrivet av Phod:

Du betalar nog litet för namnet Nighthawk också.

Ah, makes sense!

Citat:

Nu finns det ju en uppsjö enheter som du kan tänkas vara intresserad av. Gör ett filter på Prisjakt som inkluderar det du vill ha, sortera efter omdöme fallande och kolla recensionerna för de enheter som hamnar överst i listan.

Nja, det finns en handfull bara, faktiskt. https://www.prisjakt.nu/c/accesspunkter-bryggor-repeatrar?928=929&r_1101=3-5.5&r_lowestPrice=91-2000

Av lydell

Tack för bra svar!

Ja, det är en accesspunkt jag är ute efter. Eller – mina föräldrar behöver en. Tror vi. Förra sommaren försökte vi förbättra WiFi i huset. Vi drog en ethernetkabel över vinden från routern föräldrarna fått från Internetleverantören (via fiber) till en annan del av huset. Där satte vi en gammal D-Link DIR-635-router (som de hade i garderoben) och konfigurerade den till en accesspunkt, med samma SSID och lösenord. Det gjorde susen!

Men för några månader sedan började det krångla utan att de förändrat något. Är man ansluten till D-Link:en så tappar man Internet efter en stund. Oftast räcker det att stänga av och sätta på WiFi på sin enhet (mobil, dator), men i värsta fall behöver de starta om hela D-Link:en.

Vi tänker att det kanske är dags att ersätta D-Link:en med nåt modernare. Det som behövs är:

  • Accesspunkt.

  • Switch. Min mamma jobbar vid D-Link:en och vill gärna koppla in med ethernetkabel. Vill man ha fler än 1 lättåtkomliga LAN-portar verkar det inte finnas jättemånga renodlade accesspunkter att välja på.

Just nu jämför jag de här två:

Linksys RE6500 – 779 kr
https://www.prisjakt.nu/produkt.php?e=2755679

Netgear Nighthawk X6S EX8000 – 1839 kr
https://www.prisjakt.nu/produkt.php?p=4462156

En skillnad är att Nighthawk har NAT enligt Prisjakt, men inte Linksys:en. Det har vi rett ut nu!

En annan skillnad är ”teoretisk max dataöverföringshastighet”: 1200 Mbit/s vs 2133 Mbit/s. Nighthawk har också ”Tri-Band” medan Linksys:en är okänd. Är detta vad man betalar 1000 kr mer för?

Av lydell

Vad betyder NAT hos en accesspunkt?

När man letar bland accesspunkter på Prisjakt finns ”NAT: Ja/Nej” som datapunkt: https://www.prisjakt.nu/c/accesspunkter-bryggor-repeatrar?928=929&b_942=1

Vad betyder NAT hos en accesspunkt? Jag trodde att NAT var routerns uppgift:

  1. Min dator är ansluten via WiFi till accesspunkten (om den är närmast).

  2. Accesspunkten skickar vidare via ethernetkabel till routern.

  3. Routern ändrar från min lokala IP-adress till hushållets publika IP-adress genom NAT.

  4. När svar kommer tillbaka från Internet översätter routern tillbaka till min lokala IP-adress genom NAT, och skickar till accesspunkten.

  5. Accesspunkten skickar till min dator.

Så när jag jämför accesspunkter på Prisjakt, hur tar jag ställning till om NAT Ja vs Nej spelar roll för mig?

Av lydell

Poängen med collapseList är att man skapar alla sina bootstrap.Collapse vid start. Sen skapar man inga fler, utan använder bara de man har. Detta är för att varje instans håller koll på sitt state – om den är öppen eller inte och så vidare. Så jag tror inte det är en bra idé att köra new bootstrap.Collapse() igen i collapse-funktionen (som körs vid varje klick).

Det du istället behöver är att kunna gå från ett elements ID till dess bootstrap.Collapse-instans. Det kan vi lösa genom att spara alla instanserna i ett objekt/map istället för en array, så man kan slå upp via ID istället för index.

Det här skapar ett tomt objekt:

var collapseMap = {}

Det här stoppar in saker i objektet, ett efter ett. Vi skapar en bootstrap.Collapse-instans för varje element, och använder dess ID som nyckel:

collapseElementList.forEach(function (collapseEl) { collapseMap[collapseEl.id] = new bootstrap.Collapse(collapseEl, { toggle: false }) })

I collapse-funktionen behöver vi uppdatera lite. Man går igenom ”allt i ett objekt” lite annorlunda än för än array:

for (var id in collapseMap) { collapseMap[id].hide() }

Och här är själva grejen: Vi kan nu slå upp via ID och öppna den klickade sektionen:

collapseMap['collapse' + n].show()

Allt på en gång:

<html><head> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstr..." rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstra..."></script> </head> <body> <h1 onClick="collapse(12);">Rubrik 1</h1><br> <div class="collapse" id="collapse12"> Undertext till rubrik ett </div> <br><br> <h1 onClick="collapse(21);">Rubrik 2</h1><br> <div class="collapse" id="collapse21"> Undertext till rubrik två </div> <br><br> <h1 onClick="collapse(31);">Rubrik 3</h1><br> <div class="collapse" id="collapse31"> Undertext till rubrik tre </div> <script> var collapseElementList = [].slice.call(document.querySelectorAll('.collapse')) var collapseMap = {} collapseElementList.forEach(function (collapseEl) { collapseMap[collapseEl.id] = new bootstrap.Collapse(collapseEl, { toggle: false }) }) function collapse(n) { for (var id in collapseMap) { collapseMap[id].hide() } collapseMap['collapse' + n].show() } </script> </body> </html>

Av lydell

Dokumentationen du länkade till föreslår att börja så här:

var collapseElementList = [].slice.call(document.querySelectorAll('.collapse')) var collapseList = collapseElementList.map(function (collapseEl) { return new bootstrap.Collapse(collapseEl) })

Första raden hittar alla .collapse-element och gör en array av det.

Sen gör man en ny array utifrån elementen. Den nya arrayen innehåller bootstrap.Collapse-instanser – en för varje element. På en sådan instans kan man till exempel göra .hide() för att stänga.

Så jag lade in det i din kod. Dock blev collapseElementList en tom array, för den koden körs före alla elementen nedanför hunnit skapats. Så jag flyttade hela script-taggen till slutet istället.

Då återstår bara att uppdatera din collapse-funktion.

För att stänga allihop:

collapseList.forEach(function (collapse) { collapse.hide() })

Och sen för att öppna den man tryckte på:

collapseList[n - 1].show()

Det blir n minus ett för att arrays börjar på 0, inte 1.

Allt på en gång:

<html><head> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstr..." rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstra..."></script> </head> <body> <h1 onclick="collapse(1);">Rubrik 1</h1><br> <div class="collapse"> Undertext till rubrik ett </div> <br><br> <h1 onclick="collapse(2);">Rubrik 2</h1><br> <div class="collapse"> Undertext till rubrik två </div> <br><br> <h1 onclick="collapse(3);">Rubrik 3</h1><br> <div class="collapse"> Undertext till rubrik tre </div> <script> var collapseElementList = [].slice.call(document.querySelectorAll('.collapse')) var collapseList = collapseElementList.map(function (collapseEl) { return new bootstrap.Collapse(collapseEl, { toggle: false }) }) function collapse(n) { collapseList.forEach(function (collapse) { collapse.hide() }) collapseList[n - 1].show() } </script> </body> </html>

Inte den finaste kod jag skrivit, men nåt i den stilen borde hjälpa.

Av lydell

I sök-sammanhang brukar ”query” betyda det man söker efter. Om du till exempel har en sök-ruta i ett program och användaren skriver in ”strumpor” där så kommer query = "strumpor" i koden.

”container” har jag ingen bra idé på vad det kan vara i det här sammanhanget.

Av lydell

Hej! Du behöver posta

  • din kod och

  • ditt problem

för att få hjälp.

Av lydell

Nu kan jag inte MATLAB eller ens matematiken som nämns, men vad är det som gör att du känner dig osäker på om din valency(A)-funktion är rätt eller inte?

Du skriver ”själv tycker jag att det ser rätt ut när jag testar” – det är helt rätt approach! Oavsett programmeringsspråk är det bra att testa sina funktioner med ett gäng olika in-värden och kolla att du får rätt ut-värden tillbaka. Tänk på att testa olikartade fall! T ex om du testar en funktion som lägger ihop två heltal, testa då inte bara med positiva tal utan också 0 och negativa tal samt blandningar av dem etc. Försök hitta ”edge cases”. Din funktion är rätt tills motsatsen bevisats med ett exempel då den gör fel!

Av lydell

Såvitt jag förstår din kod har din bild en okänd storlek by default, som alltså verkar vara alldeles för stor i telefon i horisontellt läge. För skärmar som är max 380px breda (d.v.s. många telefoner i vertikalt läge) (och dessutom max 520px höga av någon anledning – jag hade nog tagit bort det) så får bilden en helt annan storlek (55vw×46vh, vilket förmodligen kommer att förvränga bilden). Telefoner i horisontellt läge är i regel nånstans 480px–812px breda. Du kan antingen lägga till fler @media eller tänka om med stylingen så att bilden aldrig blir för stor, till exempel med img { max-width: 100%; }.

Av lydell

margin gör ingenting i tabeller, såvitt jag vet. Du har bytt till tabell-layout med display: table-cell;. Möjligtvis kan du åstadkomma det du vill med padding istället. Tabell-layout för saker som inte är tabeller är också förlegat – jag skulle som sagt rekommendera flexbox.

Av lydell
Skrivet av heretic16:

Är det vanligt att man har två typer av utvecklare när man gör en webbapplikation? Eller brukar man ha "full-stack"-utvecklare som både kan front- och backend?

Båda är vanligt skulle jag säga. På mitt förra jobb hade vi frontend-utvecklare och backend-utvecklare. På mitt nuvarande jobb är alla full stack, och jag tycker att resultaten blir bättre då – det blir färre missförstånd mellan frontend och backend, och så går det fortare att utveckla. Särskilt bra blir det vid parprogrammering, där ena personen lutar lite mer åt frontend och den andra lite mer mot backend.

Av lydell

display: inline-block; är ett förlegat sätt att göra layout med, tycker jag. Mycket enklare med Flexbox.

Av lydell
Skrivet av linneaagnes:

kläm på det här med get och post.

When in doubt, använd POST för formulär. Bästa exemplet på ett GET-formulär är en sökruta, men till formulär där man ska skicka mer data än så är POST bättre.

Citat:

man kan skapa en php sida där informationen lagras

För att göra det enklare skulle du kunna strunta i att lagra information och bara maila iväg den till dig själv. (Ifall skickandet av mailet misslyckas kan det vara bra att ha lagrat informationen först, men det kan göras senare om du känner för det.) Se länken i inlägget ovan.

Citat:

hur gör man detta med t.ex Brackets?

Brackets är en kodeditor. Du kan använda vilken editor du vill när du programmerar, men vissa är bättre än andra för vissa språk. Bra att känna till: Brackets ska läggas ned.

Av lydell

Jag förstår inte riktigt vad du menar, men det låter som att du är ute efter det här:

int size = 5; int[] arr = new int[size]; for(int i = 0; i < arr.length; i++{ arr[i] = i; System.out.println(arr[i]); }

Det borde printa:

0 1 2 3 4