Inlägg

Inlägg som olol har skrivit i forumet
Av olol

Dag: 6
Språk: Go
Lösning:

Försöker idag att använda mera funktioner och snygga upp koden lite. Första delen blev "ful" men andra delen är jag ganska nöjd med.

package main import ( "fmt" "os" ) func first4Unique(inputString string) int { for i, _ := range inputString { if i < 4 { continue } if inputString[i-1] != inputString[i-2] && inputString[i-1] != inputString[i-3] && inputString[i-1] != inputString[i-4] && inputString[i-2] != inputString[i-3] && inputString[i-2] != inputString[i-4] && inputString[i-3] != inputString[i-4] { return i } } return 0 } func checkUnique(onlyUnique []rune, ch rune) int { //Check for duplicates for i, v := range onlyUnique { if v == ch { return i } } return -1 } func startMarkerPos(inputString string) int { //Create an array of unique runes var onlyUnique []rune //Loop through the input string for i, ch := range inputString { //If the rune is in the array, remove everything including the first instance of it if checkUnique(onlyUnique, ch) != -1 { onlyUnique = onlyUnique[checkUnique(onlyUnique, ch)+1:] } //Add the rune to the array onlyUnique = append(onlyUnique, ch) //Check if we are done if len(onlyUnique) == 14 { return i + 1 } } return 0 } func main() { input, _ := os.ReadFile("input.txt") inputString := string(input) fmt.Println(first4Unique(inputString)) fmt.Println(startMarkerPos(inputString)) }

Dold text
Av olol

Dag: 5
Språk: Go
Lösning:

package main import ( "fmt" "os" "strconv" "strings" ) func getMoves(input string) (int, []string) { var crateRows int //Count on which row there's a double linebreak for i, ch := range input { if ch == '\n' && input[i+1] != '\n' { crateRows++ } if ch == '\n' && input[i+1] == '\n' { break } } //Return number of rows and the moves moves := strings.Split(input, "\n")[crateRows+2:] return crateRows, moves } // Function to get the letters from each "crate" func splitToStacks(input string, crateRows int) [][]string { rows := strings.Split(input, "\n")[0:crateRows] crateRow := strings.Split(input, "\n")[crateRows] numCrates, _ := strconv.Atoi(string(crateRow[len(crateRow)-2])) stacks := make([][]string, numCrates+1) for i := len(rows) - 1; i >= 0; i-- { k := 1 for j := 1; j < len(rows[0])-1; j += 4 { if string(rows[i][j]) != " " { stacks[k] = append(stacks[k], string(rows[i][j])) } k++ } } return stacks } func splitMoves(moves []string) [][]int { toret := make([][]int, len(moves)) for i := 0; i < len(moves); i++ { //Split each move into numbers move := strings.Split(moves[i], " ") tempNum, _ := strconv.Atoi(move[1]) tempFrom, _ := strconv.Atoi(move[3]) tempTo, _ := strconv.Atoi(move[5]) //Save the numbers to an array toret[i] = append(toret[i], tempNum) toret[i] = append(toret[i], tempFrom) toret[i] = append(toret[i], tempTo) } return toret } func MakeMoves1(stacks [][]string, moves [][]int) [][]string { for i := 0; i < len(moves); i++ { num := moves[i][0] from := moves[i][1] to := moves[i][2] //Move the correct number of letters from the "from" stack to the "to" stack for j := 0; j < num; j++ { stacks[to] = append(stacks[to], stacks[from][len(stacks[from])-1]) stacks[from] = stacks[from][:len(stacks[from])-1] } } return stacks } func MakeMoves2(stacks [][]string, moves [][]int) [][]string { for i := 0; i < len(moves); i++ { num := moves[i][0] from := moves[i][1] to := moves[i][2] //Move letters from the "from" stack to the "to" stack in batches on "num" stacks[to] = append(stacks[to], stacks[from][len(stacks[from])-num:]...) stacks[from] = stacks[from][:len(stacks[from])-num] } return stacks } func printLast(stacks [][]string) { for i := 1; i < len(stacks); i++ { fmt.Print(stacks[i][len(stacks[i])-1]) } } func main() { input, _ := os.ReadFile("input.txt") inputString := string(input) //Find separator between crates and moves crateRows, tempmoves := getMoves(inputString) //Get the crate letters into an array per collumn stacks := splitToStacks(inputString, crateRows) //Split moverows into pure numbers moves := splitMoves(tempmoves) //Create stack for first method stacks1 := MakeMoves1(stacks, moves) //Need to recreate stacks because MakeMoves1 changes the original stacks = splitToStacks(inputString, crateRows) //Create stack for second method stacks2 := MakeMoves2(stacks, moves) //Print last element of each stack printLast(stacks1) fmt.Println() printLast(stacks2) }

Dold text
Av olol

Dag:4 del1
Språk: Go
Lösning:

package main import ( "fmt" "os" "strconv" "strings" ) func main() { counter := 0 //take input from file and make it a string input, _ := os.ReadFile("../input.txt") inputString := string(input) pairs := strings.Split(inputString, "\n") for i := 0; i < len(pairs); i++ { elfs := strings.Split(pairs[i], ",") elfOneStart, _ := strconv.Atoi(strings.Split(elfs[0], "-")[0]) elfOneEnd, _ := strconv.Atoi(strings.Split(elfs[0], "-")[1]) elfTwoStart, _ := strconv.Atoi(strings.Split(elfs[1], "-")[0]) elfTwoEnd, _ := strconv.Atoi(strings.Split(elfs[1], "-")[1]) if (elfOneStart <= elfTwoStart && elfOneEnd >= elfTwoEnd) || (elfTwoStart <= elfOneStart && elfTwoEnd >= elfOneEnd) { counter++ } } fmt.Println(counter) }

Dold text

Dag:4 del2
Språk: Go
Lösning:

package main import ( "fmt" "os" "strconv" "strings" ) func main() { counter := 0 //take input from file and make it a string input, _ := os.ReadFile("../input.txt") inputString := string(input) pairs := strings.Split(inputString, "\n") for i := 0; i < len(pairs); i++ { elfOneStart, _ := strconv.Atoi(strings.Split(strings.Split(pairs[i], ",")[0], "-")[0]) elfOneEnd, _ := strconv.Atoi(strings.Split(strings.Split(pairs[i], ",")[0], "-")[1]) elfTwoStart, _ := strconv.Atoi(strings.Split(strings.Split(pairs[i], ",")[1], "-")[0]) elfTwoEnd, _ := strconv.Atoi(strings.Split(strings.Split(pairs[i], ",")[1], "-")[1]) if (elfOneStart <= elfTwoStart && elfOneEnd >= elfTwoStart) || (elfTwoStart <= elfOneStart && elfTwoEnd >= elfOneStart) { counter++ } } fmt.Println(counter) }

Dold text
Av olol

Dag:3 del1
Språk: Go
Lösning:

package main import ( "fmt" "os" "strings" ) func main() { var backpacks []string var priority int //take input from file and make it a string input, _ := os.ReadFile("../input.txt") inputString := string(input) //split input into each elfs calories backpacks = strings.Split(inputString, "\n") for i := 0; i < len(backpacks); i++ { var prio int comp1 := backpacks[i][0 : len(backpacks[i])/2] comp2 := backpacks[i][len(backpacks[i])/2:] for _, ch := range comp1 { if strings.Contains(comp2, string(ch)) { if ch > 97 { prio = int(ch) prio -= 96 } else { prio = int(ch) prio -= 38 } } } priority += prio } fmt.Println(priority) }

Dold text

Dag:3 del2
Språk: Go
Lösning:

package main import ( "fmt" "os" "strings" ) func main() { var backpacks []string var priority int iterations := 0 compare := 1 //take input from file and make it a string input, _ := os.ReadFile("../input.txt") inputString := string(input) //split input into each elfs calories backpacks = strings.Split(inputString, "\n") for i := 0; i < len(backpacks); i += 3 { var prio int for _, ch := range backpacks[i] { if string(ch) == "g" { } if strings.Contains(backpacks[i+1], string(ch)) { if strings.Contains(backpacks[i+2], string(ch)) { if ch > 97 { prio = int(ch) prio -= 96 } else { prio = int(ch) prio -= 38 } break } } } priority += prio compare++ if compare >= 3 { compare = 1 } iterations++ } fmt.Println(priority) }

Dold text
Av olol

Dag:2 del1
Språk: Go
Lösning:

package main import ( "fmt" "os" "strings" ) func main() { input, _ := os.ReadFile("../input.txt") inputString := string(input) rounds := strings.Split(inputString, "\n") var score int for i := 0; i < len(rounds); i++ { oponent := rounds[i][0] mine := rounds[i][2] switch mine { //I throw rock case 'X': score += 1 //I throw paper case 'Y': score += 2 //I throw scissors case 'Z': score += 3 } switch oponent { //They throw Rock case 'A': if mine == 'X' { score += 3 } if mine == 'Y' { score += 6 } if mine == 'Z' { score += 0 } //They throw Paper case 'B': if mine == 'X' { score += 0 } if mine == 'Y' { score += 3 } if mine == 'Z' { score += 6 } //They throw Scissors case 'C': if mine == 'X' { score += 6 } if mine == 'Y' { score += 0 } if mine == 'Z' { score += 3 } } } fmt.Println(score) }

Dold text

Dag:2 del2
Språk: Go
Lösning:

package main import ( "fmt" "os" "strings" ) func main() { input, _ := os.ReadFile("../input.txt") inputString := string(input) rounds := strings.Split(inputString, "\n") var score int for i := 0; i < len(rounds); i++ { oponent := rounds[i][0] mine := rounds[i][2] switch mine { //I throw rock case 'X': score += 0 //I throw paper case 'Y': score += 3 //I throw scissors case 'Z': score += 6 } switch oponent { //They throw Rock case 'A': if mine == 'X' { score += 3 } if mine == 'Y' { score += 1 } if mine == 'Z' { score += 2 } //They throw Paper case 'B': if mine == 'X' { score += 1 } if mine == 'Y' { score += 2 } if mine == 'Z' { score += 3 } //They throw Scissors case 'C': if mine == 'X' { score += 2 } if mine == 'Y' { score += 3 } if mine == 'Z' { score += 1 } } } fmt.Println(score) }

Dold text
Av olol

Dag:1 del1
Språk: Go
Lösning:

package main import ( "fmt" "os" "strconv" "strings" ) func main() { var elf []int input, _ := os.ReadFile("../input.txt") inputString := string(input) inputArray := strings.Split(inputString, "\n\n") for i := 1; i <= len(inputArray); i++ { var elfCal int calories := strings.Split(inputArray[i-1], "\n") for j := 0; j < len(calories); j++ { calInt, _ := strconv.Atoi(calories[j]) elfCal += calInt } elf = append(elf, elfCal) elfCal = 0 } maxElf := 0 for i := 0; i < len(elf); i++ { if elf[i] > maxElf { maxElf = elf[i] } } fmt.Println(maxElf) }

Dold text

Dag:1 del2
Språk: Go
Lösning:

package main import ( "fmt" "os" "strconv" "strings" ) func main() { var elf []int input, _ := os.ReadFile("../input.txt") inputString := string(input) inputArray := strings.Split(inputString, "\n\n") for i := 1; i <= len(inputArray); i++ { var elfCal int calories := strings.Split(inputArray[i-1], "\n") for j := 0; j < len(calories); j++ { calInt, _ := strconv.Atoi(calories[j]) elfCal += calInt } elf = append(elf, elfCal) elfCal = 0 } maxElf := 0 secondElf := 0 thirdElf := 0 for i := 0; i < len(elf); i++ { if elf[i] > maxElf { maxElf = elf[i] } } for i := 0; i < len(elf); i++ { if elf[i] > secondElf && elf[i] < maxElf { secondElf = elf[i] } } for i := 0; i < len(elf); i++ { if elf[i] > thirdElf && elf[i] < secondElf { thirdElf = elf[i] } } topThree := maxElf + secondElf + thirdElf fmt.Println(topThree) }

Dold text
Av olol

I varje kodispelares advancedsettings.xml (eller vad den heter, tar från minne) så borde du ha lösenord och användarnamn i klartext för login till databasen.

Av olol
Skrivet av forcevision:

En helt annan fråga, varför helt plötsligt får jag reklam när jag surfar ? På sidor jag är inne på som pihole tar bort reklam får jag plötslig reklam. Känns som när många surfar samtidigt här hemma så blir det så. Startar jag om routern så får vi ingen reklam längre.

Pushar du ut flera dns:er via din dhcp? Isåfall kanske raspberryn vid hög last svarar långsammare och din sekundära DNS används, vilken ej filtrerar. https://nextdns.io/ kan vara ett alternativ som sekundär dns, tror den kör någon form av filtrering också ifall din egen pi-hole instans går ner. Annars om du kör en virtuell pihole på en annan maskin för redundans. Trist om raspberryn skulle dö och du är utan dns helt.

Av olol

Du kan använda dig av 2x2TB+3TB för en raidz1, då kommer du få ut 4TB användbart (3TB disken används endast 2TB av) och valfri disk kan rasa utan att något försvinner.

Kanske värt att kolla på unraid, där kan man mixa diskar fritt och ha den största som "säkerhets disk" då kan du använda alla dina diskar och få 5TB användbart och fortfarande tappa valfri disk, tillskillnad från raidz1 eller raid5 som med alla diskar endast skulle ge dig 3TB användbart.

Av olol

En snabb googling på problemet skickade mig hit:
https://docs.mattermost.com/administration/config-settings.ht...

Där det står:
The name of the environment variable for any setting can be derived from the name of that setting in config.json. For example, to derive the name of the Site URL setting:

Find the setting in config.json. In this case, ServiceSettings.SiteURL.
Add MM_ to the beginning and convert all characters to uppercase and replace the . with _. For example, MM_SERVICESETTINGS_SITEURL.
The setting becomes export MM_SERVICESETTINGS_SITEURL="http://example.com".

Har du testat detta, verkar vara vad du söker efter.
Mvh

Av olol
Skrivet av jan-banan:

För och främst ftp eller likade då jag vill kunna hämta massor av filer/katalog i ett svep och det är stora filer. / kataloger. Dropbox blir rätt kasst när man ska börja med flera filer som är 10-20 gb stora

Skickades från m.sweclockers.com

Ja, fast nä. https är inte "dåligt" på att flytta filer, mot din egen server får du iprincip samma hastighet på https som med ftp/sftp. jag menade dropbox liknande interface, inte tjänsten i sig

Av olol

Funderat på att köra en owncloud om du vill kunna hantera användare och filprivilegier enkelt? Där kan du dela vissa kataloger via http(s) med lösenskydd och liknande. tänk dropbox?

Av olol
Skrivet av Irre:

Det finns väl ingen standard som säger att det måste finnas en Windows-knapp. Själv har jag aldrig använt någon.

Skickades från m.sweclockers.com

Han pratar om licensnyckel för windows, inte "flaggknappen" på tangentbordet

Av olol
Skrivet av Vash:

3700x istællet før 3800x

Motiverar 3800x prestandan med att jag vill ha den Prisskillnaden är såpass liten så det känns dumsnålt för framtiden. Man vet aldrig om dom byter socket eller så inför kommande generation.

Av olol
Skrivet av Donnerstal:

@olol: Du borde inte betala 1200kr för windows när du kan få det för <200kr

Jag som är/var ovetande, har kört osx i många år nu så var inte insatt i att det fanns sådanna alternativ. Tack så mycket för att du påpekade det!

Av olol
Skrivet av Vzano:

Tog och ändrade lite i listan för mer prisvärda delar samt tog D15 med fäste för AM4
https://komponentkoll.se/bild/JqPZu.png

Min miss på AM4 kompatibiliteten, va lite snabb i att bygga listan

Skrivet av Donnerstal:

Bytte ut grafikkortet eftersom det du valde är sämst...

Edit: Tog bort Windows

https://komponentkoll.se/bild/pvhZR.png

Bytte ut dit kort ännu en gång, verkar som detta har högre klock (OC) från standard till likt pris. Något annat man kan falla på med olika grafikkorten, tycker alla verkar lika med olika kylare och lite skillnad i klockfrekvenser.

Har planer på ett Fractal Design Define R6 USB-C blackout. Fanns inte på komponentkoll så valde chassit från generationen innan.

Bytet på SSD var klockrent, samma prestanda för lägre pris, tack för det!

Här kommer nuvarande listan i sin fulla form för vidare revidering

https://komponentkoll.se/bild/SBeVq.png

Av olol

Dator för gaming ~20k ex. tillbehör

Hej,

Har suttit och kollat på vad för komponenter som skulle gå ihop för ca 20k och tillsammans bilda en gamingdator som håller för mig ett par år framöver. Just nu ser listan ut som såhär:

https://komponentkoll.se/bild/yPBqw.png

Några invändningar på val av komponenter? Något som är överprisat till vad det gör och borde bytas ut?

Av olol

Köpråd Gaming- & Hackingtoshdator

Hej,

Jag håller på att tittar på en julklapp åt mig själv. Har idag en iMac med några år på nacken (late 2013) som jag känner att det börjar bli dags att byta upp mig ifrån.

Jag vill kunna spela på datorn, och även köra macOS, så kallad hackintosh.
Min stora fråga är om någon komponent är helt dumt vald för PC/Gaming delen av bygget?
Något som borde bytas för att spara pengar utan att tumma på prestandan desto mera?
Anledningen till två M.2 diskar är en för Windows och en för osX

Övriga kommentarer på val av komponenter, något som känns direkt underligt, börjar bli ett par år sedan jag byggde dator så några kvällars intensivinläsning på vad som gäller just nu i min budget (dator med skärm <30k) kan ju ha slagit fel för mig på någon/några punkter.

Tacksam för alla svar och synpunkter!

https://www.inet.se/kundvagn/visa/13054879

https://inetimg.se/img/tiny/forum-divider.png

https://www.inet.se/kundvagn/bild/13054879

Av olol

En raspberry Pi med inbyggt wifi, samt en wifi pinne till den, och sedan köra router mellan dem så borde du få en liten smidig sak som kan ta emot och sprida wifi

Av olol

Eftersom du kommer åt din router om du surfar in på http://ip så låter det som att du inte fått port-forwarding att fungera som den ska. Jag skulle testa att öppna en random port t.ex. 12945 utifrån till port 80 internt på internip:n för att se om det fungerar då.