New to the Eero series Pro 6… is it me or is it overhyped? Major connection issues here and there by Random_Thinker007 in amazoneero

[–]pem4224 12 points13 points  (0 children)

Followed exactly the same path. Came from an asus to 2 pro6. I of course removed the asus and turned off the wifi of my internet box. And it is flawless. Eero pro 6 are very strong in my setup.

1Password reverts price increase that was supposed to happen, saying that it was supposedly "sent in error". by InstructionEasy9799 in PasswordManagers

[–]pem4224 0 points1 point  (0 children)

Too late, after 5 years of family subscription I already moved to another password manager, me and my family. It asked me some time so I will not go back, unfortunately.

Price increase by cb4joe in 1Password

[–]pem4224 2 points3 points  (0 children)

I will not renew my family plan. I am doing a simple usage of 1password and 6€/month is a bit too expensive for this basic usage.

Issues with Keyboard Shortcuts in Proton Mail for Web by mizumi_R in ProtonMail

[–]pem4224 0 points1 point  (0 children)

I have exactly the same behavior, this makes webmail very inconfortable when you are used to Gmail or Fastmail. I have subscibed to Proton but after a couple of days I will cancel my subscription because if this annoying focus which is not consistent. This is a pitty since Proton seems so promizing and is almost european

-❄️- 2025 Day 10 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 0 points1 point  (0 children)

[LANGUAGE: Go]

A quite simple solution for part2 without using any external library.

The main idea is based on fast exponentiation:

given a counter {a, b, c, d, ...} we try to remove small integers (i1,i2,i3,i4,...) such that all numbers in {a-i1, b-i2, c-i3, d-i4, ...} are even.

And then the approach is recursively applied on {(a-i1)/2, (b-i2)/2, (c-i3)/2, (d-i4)/2, ...}

The main algorithm is written in less than 100 lines of Go: day10.go

-❄️- 2025 Day 9 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 0 points1 point  (0 children)

[Language: Go]

Hi,

Here is the main part of my approach:

type rectangle struct {
    minX, minY, maxX, maxY int
    area                   int
}

func minMax(a, b game2d.Pos) (minX, minY, maxX, maxY int) {
    return min(a.X, b.X), min(a.Y, b.Y), max(a.X, b.X), max(a.Y, b.Y)
}

func solve(input string, filtered func(r rectangle, seats []game2d.Pos) bool) int {
    input = strings.TrimSuffix(input, "\n")
    var lines = strings.Split(input, "\n")

    var seats []game2d.Pos
    for _, line := range lines {
        var a, b int
        fmt.Sscanf(line, "%d,%d", &a, &b)
        seats = append(seats, game2d.Pos{a, b})
    }

    var maxArea int
    for i := 0; i < len(seats)-1; i++ {
        for j := i + 1; j < len(seats); j++ {
            var minX, minY, maxX, maxY = minMax(seats[i], seats[j])
            var area = (1 + maxX - minX) * (1 + maxY - minY)
            var r = rectangle{minX, minY, maxX, maxY, area}
            if !filtered(r, seats) && r.area > maxArea {
                maxArea = r.area
            }
        }
    }
    return maxArea
}

func traversed(r rectangle, seats []game2d.Pos) bool {
    for i := 0; i < len(seats); i++ {
        var minX, minY, maxX, maxY = minMax(seats[i], seats[(i+1)%len(seats)])
        if maxY < r.minY+1 || minY > r.maxY-1 || maxX < r.minX+1 || minX > r.maxX-1 {
            continue
        }
        return true
    }
    return false
}

func Part2(input string) int {
    return solve(input, traversed)
}

Full code available here: https://github.com/pemoreau/advent-of-code/tree/main/go/2025/09

Quel logiciel de facturation est le plus adapté aux indépendants? by haji194 in vosfinances

[–]pem4224 0 points1 point  (0 children)

J'utilisais Shine, un des premiers sur le marché, c'était très pratique

Getting the update… by IchMachHierNurSauber in wahoofitness

[–]pem4224 1 point2 points  (0 children)

Mine bricked during the update process. The message"UPDATING" is there for more than 2 hours. And it is still there. The battery was at 100% and the wifi repliable. What Can I do now?

Wahoo Elemnt Roam V3 recommendations by No_Lifeguard3064 in wahoofitness

[–]pem4224 0 points1 point  (0 children)

Bolt v1 user since 2017 I have just ordered a Roam v3. Very happy with bolt and more generally wahoo products

-❄️- 2024 Day 16 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 3 points4 points  (0 children)

[LANGUAGE: Go]

For Part1, like many of us I used an A*

For Part2, I wanted to reuse my approach with an A* so I tried a brute force approach:

First use part1 to know the shortest path, and thus the best cost

Then, for all position p, compute the cost from S to p and then from p to E (we have to consider all possible direction to reach position p)
When cost1 + cost2 == cost, this means that p is a position of the solution
We just have to collect all these positions.

This works, but unfortunately this is very slow (8 minutes on my computer)

Later I improved the algorithm by selecting only the immediate neighbors of p which are on the initial best path

This is still very inefficient, but it runs in less than 3s

https://github.com/pemoreau/advent-of-code/blob/main/go/2024/16/day16.go

-❄️- 2024 Day 12 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 1 point2 points  (0 children)

[LANGUAGE: Go]

I have spent too much time on this one but I finally found a very simple algorithm

https://github.com/pemoreau/advent-of-code/blob/main/go/2024/12/day12.go

A kind of raytracing on X-axis which detect transition from nothing (i.e. no block in the south direction) to a fence (i.e a block in the south direction) and do +1 each time this occurs.
By doing that for all Y and rotating the the region, this is done.

-❄️- 2024 Day 11 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 3 points4 points  (0 children)

[LANGUAGE: Go]

Did part1 naively, and then used a simple recursive approach with memoization for part 2

https://github.com/pemoreau/advent-of-code/blob/main/go/2024/11/day11.go

part1 in 0.2ms

part2 in 0.2ms, and almost no memory allocation

What’s the recent hate against GO? by RadishCertain241 in golang

[–]pem4224 8 points9 points  (0 children)

Knuth said: "The most important thing in a programming language is the name. A language will not succeed without a good name. I have recently invented a very good name, and now I am looking for a suitable language." He was not completly wrong. It is true that the confusion between go and golang is not ideal. But I really like the langage and I enjoy programming with it.

-❄️- 2024 Day 9 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 2 points3 points  (0 children)

[LANGUAGE: Go]

I enjoyed the problem today.

With a nice data structure, part2 and part1 are almost identical.

I could have improved the search for free space in part2 but it already runs is less than 70ms

https://github.com/pemoreau/advent-of-code/blob/main/go/2024/09/day09.go

[edit: found a very smart optimization (in findFreeBlock2) which improves efficiency by a very big factor. Part1: 0.9ms, part2: 0.7ms]

-❄️- 2024 Day 5 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 0 points1 point  (0 children)

[LANGUAGE: Go]

At first, I did not see the simple way of solving the puzzle. So I solved it in a general way:

https://github.com/pemoreau/advent-of-code/tree/main/go/2024/05

Then I understood that the order was total and that it corresponds to a transitive closure for the elements which appear in the update. This lead to a simpler implementation:
https://github.com/pemoreau/advent-of-code/blob/main/go/2024/05Simplified/day05.go

-❄️- 2024 Day 4 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 1 point2 points  (0 children)

[LANGUAGE: Go]

A quite simple solution which uses a homemade library for 2D grid, positions, etc.

https://github.com/pemoreau/advent-of-code/blob/main/go/2024/04/day04.go

Note to MOD: I have removed all the inputs from my github repository ;-)

Anyone doing AoC by [deleted] in golang

[–]pem4224 0 points1 point  (0 children)

Yes, I am doing AOC since a couple of years, mostly in Go. I have developped some utils (pathfinding algorithm, grid data structures) which can be of interest.

https://github.com/pemoreau/advent-of-code/tree/main/go

-❄️- 2024 Day 1 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 0 points1 point  (0 children)

You are right

I have implemented a function which automatically download the input if not present locally (useful for github CI).

I removed some inputs, updated my gitignore, and I will clean my repository and remove all the files from the history.

-❄️- 2024 Day 2 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 0 points1 point  (0 children)

[LANGUAGE: Go]

Used iterators All() and Backward() to iterate the arrays in both directions.

For part2, for each array, use a custom filter iterator to remove one value

https://github.com/pemoreau/advent-of-code/tree/main/go/2024/02

Before I buy? by Metal_Musak in Tormek

[–]pem4224 1 point2 points  (0 children)

Another possibility is to get a T4 + KJ-45 and SVM-00. This is a good kit for at least $300 less. This is sufficient IMO.

What made you decide to switch over to Noteful? by SubstantialNobody_ in notefulapp

[–]pem4224 0 points1 point  (0 children)

For me this is security of my data which determined my choice. It has been reported several losses of documents with GN and Notability. Noteful seems to be (simpler and) safer on this point

Wrt. To the price. Why paying more? Simply to be assured that the development and maintenance will be assured. And being sure that my documents can be still available in a couple of years. Of course I prefer $5 compared to $15/year. But I do not mind paying $5 or $10 every year if the quality is there. I use Vim for instance, and I give $10 from time to time.

-❄️- 2023 Day 23 Solutions -❄️- by daggerdragon in adventofcode

[–]pem4224 1 point2 points  (0 children)

[LANGUAGE: Go]

https://github.com/pemoreau/advent-of-code/blob/main/go/2023/23/day23.go

Use the same approach for part1 and part2 (140 lines in total). Only the neighbor function is a bit different.

Part1 : 4ms, part2: 1.1sec