Sign in

Pascal Welsch

@pascalwelsch.com
628 followers 247 following 217 posts

Flutter Expert 💙 Follow me for updates on #Flutter and #Dart Co-Founder wiredash.com 💬📈 CTO phntm.xyz 💼 he/him 👩‍❤️‍👨 husband 🇩🇪 Cologne

PostsRepliesMedia
Pascal Welsch @pascalwelsch.com · 12/05/2026
As early adopter of various Google hardware products let me tell you: Do not buy the Googlebook! If you do, you'll be beta testing an unfinished product which will be discontinued two years later
0100
Pascal Welsch @pascalwelsch.com · 27/11/2025
My vibe coding setup changes every week. Which tool have I missed this week?
110
Pascal Welsch @pascalwelsch.com · 12/10/2025
Today I was 11x "absolutely right!"
280
Pascal Welsch @pascalwelsch.com · 18/09/2025
I was wondering why the QR code tile was "active" all the time until I realized it is actually just the Audible app shining through 😑 #ios26
180
Pascal Welsch @pascalwelsch.com · 11/09/2025
I've rarely seen a bench in a sauna. A towel might help or only showing the oven
110
Pascal Welsch @pascalwelsch.com · 18/08/2025
I'm talking at fluttercon.dev about "Flipping the Testing Pyramid - Smarter Widget Testing with Spot & Robots"
030
Pascal Welsch @pascalwelsch.com · 27/06/2025
You can press D and W in Google Calendar to quickly switch between Day and Week view 😍
000
Pascal Welsch @pascalwelsch.com · 26/06/2025
I thought JSON is way older 🤯
230
Pascal Welsch @pascalwelsch.com · 05/06/2025
Perfect start 🏁 #MarioKartWorld #Switch2
050
Pascal Welsch @pascalwelsch.com · 31/05/2025
I sometimes prefer building up a mutable list. It might not be the shortest, but is definitly the easiest to debug.
031
Pascal Welsch @pascalwelsch.com · 30/05/2025
Dart developers! Quick, what's the output?
210
Pascal Welsch @pascalwelsch.com · 28/05/2025
spot: 0.18 is a huge release 🚛 #Flutter widget testing becomes better with every update pub.dev/packages/spo...
161
Pascal Welsch @pascalwelsch.com · 14/05/2025
Since I spend more and more time in cursor, I ported my personal editor theme (Sweet Pascal) from IntelliJ to VScode. The pastel colors are inspired by Sweet Sweet Canyon from Mario Kart 8
120
Pascal Welsch @pascalwelsch.com · 25/04/2025
It's easier if there are exising rules. This worked for me in a new project
220
Pascal Welsch @pascalwelsch.com · 15/04/2025
One way to test for new vs. old implemenation is this
110
Pascal Welsch @pascalwelsch.com · 15/04/2025
I now have to fix @wiredash.com. Moving to the next page is impossible. The animation is taking ~10min to settle (vs 500ms previously) I hope I find a clever way to distinguish between the new and old Flutter SDK
100
Pascal Welsch @pascalwelsch.com · 11/04/2025
It still bothers me that I can’t recreate a simple link color change animation on hover in Flutter. It’s so easy with CSS. github.com/flutter/flut...
210
Pascal Welsch @pascalwelsch.com · 02/04/2025
Only for macos. On linux and windows you get way more disk space. See Org Settings -> Actions -> Runners
020
Pascal Welsch @pascalwelsch.com · 25/03/2025
Using the pubspec.lock is not enough. Also the flutter version needs to be locked. When the flutter version changes, its locked dependencies change. This forces pub get to find new compatible packages. This updates some packages regardless of what is defined in the lockfile.
210
Pascal Welsch @pascalwelsch.com · 24/03/2025
When the "forgot password" function sends you your password in plain text as email 🤦‍♂️ Danke Bezirksregierung Köln @stadt-koeln.de
040
Pascal Welsch @pascalwelsch.com · 05/03/2025
Inbox zero 💪
260
Pascal Welsch @pascalwelsch.com · 24/02/2025
I cannot belive this is valid @dart.dev code @mrale.ph what does throw return so that it can throw a throw?
240
Pascal Welsch @pascalwelsch.com · 30/01/2025
I invested a full day testing cursor.com. I haven't written a single line of code. It was all generated and good 🤯 I was especially amazed by refactorings across the codebase. Faster than me ⚡️ The actual workflow is like reviewing PRs. Suggest a change, review the change. Iterate, land the change.
4231
Pascal Welsch @pascalwelsch.com · 10/01/2025
It exists. You can archive all timelines at once with this action
000
Pascal Welsch @pascalwelsch.com · 03/01/2025
spot 0.17.0 now ships with Jaspr to generate the HTML timeline. Thanks so much @schultek.dev for the migration. github.com/passsy/spot
1101
Pascal Welsch @pascalwelsch.com · 30/12/2024
Making progress. The spot timeline now supports hot-restart for spot developers. This makes it way easier to work with Jaspr It takes Dart ~1.5s to compile the app to JS.
040
Pascal Welsch @pascalwelsch.com · 19/12/2024
Which code style do you prefer? 🤔 Today's #AdventOfCode felt like a challenge in code formatting more than anything. I can't decide which style I like better!
int possibleDesignsCount(
  String design,
  Map<String, int> memo,
  List<String> patterns,
) {
  if (memo.containsKey(design)) {
    return memo[design]!;
  }
  final sum = patterns.filter((it) => design.startsWith(it)).map((it) {
    final remaining = design.substring(it.length);
    if (remaining.isEmpty) return 1;
    return possibleDesignsCount(remaining, memo, patterns);
  }).sum();
  memo[design] = sum;
  return sum;
}int possibleDesignsCount(
  String design,
  Map<String, int> memo,
  List<String> patterns,
) {
  if (memo.containsKey(design)) {
    return memo[design]!;
  }
  final sum = patterns
      .filter((it) => design.startsWith(it))
      .map((it) => switch (design.splitAt(it.length)) {
            [_, final r] when r.isNotEmpty =>
              possibleDesignsCount(r, memo, patterns),
            _ => 1,
          })
      .sum();
  memo[design] = sum;
  return sum;
}int possibleDesignsCount(
  String design,
  Map<String, int> memo,
  List<String> patterns,
) {
  if (memo.containsKey(design)) return memo[design]!;
  return memo[design] = patterns.filter(design.startsWith).map((it) {
    return switch (design.splitAt(it.length)) {
      [_, final r] when r.isNotEmpty => possibleDesignsCount(r, memo, patterns),
      _ => 1,
    };
  }).sum();
}int possibleDesignsCount(
    String design, Map<String, int> memo, List<String> patterns) {
  if (memo.containsKey(design)) return memo[design]!;
  return memo[design] = patterns.filter(design.startsWith).map((it) {
    if (design.splitAt(it.length) case [_, final r] when r.isNotEmpty)
      return possibleDesignsCount(r, memo, patterns);
    else
      return 1;
  }).sum();
}
230
Pascal Welsch @pascalwelsch.com · 17/12/2024
Yesterday, I was ready to drop out of #AdventOfCode. Tired of pathfinding in 2D grids and stuck on Part 2. But today? Personal best, finishing in the Top 1000! Turns out, doing assembler in school proves useful. I claimed provisional #1 on the Dart leaderboard for a few minutes
1180
Pascal Welsch @pascalwelsch.com · 12/12/2024
I think today is the breaking point for many in #AdventOfCode. The task is not hard but lengthy. It took me almost 2h, doubling the time of my longest previous day.
3100
Pascal Welsch @pascalwelsch.com · 11/12/2024
Depending on the error, you already get a dump via debugDumpApp in the timeline (HTML report). The timeline API is open, you can add anything you want
020
Pascal Welsch @pascalwelsch.com · 11/12/2024
spot automatically creates screenshots for you at every assertion. It is shown when the test fails in an HTML report. This way you never fly blind 😎 github.com/passsy/spot#...
160
Pascal Welsch @pascalwelsch.com · 10/12/2024
Please try spot's tap method. It does many checks that help you to figure out why the target is not reacting to hit testing github.com/passsy/spot#...
290
Pascal Welsch @pascalwelsch.com · 10/12/2024
Local History for the rescue! Spent way to long for #AdventOfCode Day 10 - Part 1 only to discover that I solved Part 2 very early on. Used IntelliJ's Local History to revert to a previous point and was done in seconds.
180
Pascal Welsch @pascalwelsch.com · 08/12/2024
#AdventOfCode Day 8 and we got the 3rd version of a 2D map. It's a bit too repetitive for my taste
120
Pascal Welsch @pascalwelsch.com · 07/12/2024
#AdventOfCode Day 7 greeted us with a small recursion problem. What a great start into the weekend 🏃🏻‍♂️💨 More of this kind of problems and we might be able to catch up to our leader @hari07.bsky.social
380
Pascal Welsch @pascalwelsch.com · 05/12/2024
I tried solving #AdventOfCode by shuffling the numbers. It worked great for the example, but took way too long for the entire input 😆
250
Pascal Welsch @pascalwelsch.com · 04/12/2024
Today's #AdventOfCode was a classic 2D grid puzzle. It was straight-forward to implement, but took me 30min 😱 Part 2 was actually easier 💫 Try it yourself! adventofcode.com/2024/day/4
070
Pascal Welsch @pascalwelsch.com · 03/12/2024
Great to see the #flutterdev community growing with each day
040
Pascal Welsch @pascalwelsch.com · 03/12/2024
After today's #AdventOfCode Day 3 I invested some extra time to build a proper lexer. There's a 50% chance the problem continues tomorrow. github.com/passsy/aoc24...
240
Pascal Welsch @pascalwelsch.com · 01/12/2024
Here's an example of #AdventOfCode 2023 Day 1. Unfortunately, most solutions require 80% input parsing, that's not great for code golfing. code.golf/collatz#dart is a far better platform
020
Pascal Welsch @pascalwelsch.com · 01/12/2024
Won #AdventOfCode Day 1 by a few seconds. I guess, due to my mature setup which everyone is allowed to fork/copy from github.com/passsy/aoc24...
1160
Pascal Welsch @pascalwelsch.com · 25/11/2024
Updating spots Roadmap 🚀
060
Pascal Welsch @pascalwelsch.com · 25/11/2024
You have the freedom of choosing any algorithm you want. If they would ever change it you can switch to a simpler/different version
010
Pascal Welsch @pascalwelsch.com · 22/11/2024
loadAppFonts is now available in spot: ^0.15.0 pub.dev/packages/spot
130
Pascal Welsch @pascalwelsch.com · 21/11/2024
Bluesky does testing right 🟢
1153
Pascal Welsch @pascalwelsch.com · 17/11/2024
It would be great when those two flags could be controlled from within a test, not the process starting the test file
000
Pascal Welsch @pascalwelsch.com · 17/11/2024
This flag also calls DisableFontFallback. I don't think enabling the fallback again is exposed and accessible from flutter.
110
Pascal Welsch @pascalwelsch.com · 17/11/2024
The test fonts are loaded with the engine flag --use-test-fonts which ultimately calls GetTestFontData() loading FlutterTest, Ahem and Cough github.com/flutter/engi...
100
Pascal Welsch @pascalwelsch.com · 13/11/2024
I found an if case in production #Dart code. I hate it!
251