✍️Write rieview ✍️Rezension schreiben 🏷️Get Badge! 🏷️Abzeichen holen! ⚙️Edit entry ⚙️Eintrag bearbeiten 📰News 📰Neuigkeiten
Tags: nickkaczmarek
I made some dal tadka with pickled onions and some garlic naan. It was delicious!
Excessively tall biscuit sandwich with Just Egg, Miyokos cheddar slices, Beyond Meat breakfast sausage, and Lightlife tempeh (marianted to taste like bacon). Also biscuit made by my wife. No clue hat recipe she used but they are delicious.
Another interesting article about “plussing” your apps by Sam Henri Gold on the Lickability blog.
The thing he’s describing sounds a lot like a design system or at least what I, as a developer, envision a design system being.
Some really useful tips are about spacing, color tokens, typography, empty states, and using context menus with buttons for advanced actions.
I have read this article before and it was really interesting. I want to remember it exists (and also reduce my tab count) so I’m documenting it here. My wife calls this concept a “commonplace book” or a “narration notebook”.
15.11.2024 16:30Plussing your iOS app by Sam Henri GoldThis was a few weeks ago, but my wife made an amazing potato soup. I also added some pimento cheese and it was a phenomenal addition. Thanks to Bangin’ Vegan Eats for supply the pimento cheese.
I read an interesting article from Krzysztof Zabłocki today.
It was about using protocol composition in Swift to handle dependency management. I’m not sure if I could use this at work but wanted to save this article for the future if I could.
Essentially what he outlines is creating protocols that enable behaviors and then having the implementations live in some AppCoordinator type object and your consuming types declare a dependency typealias
that is a concatenation of the various protocols you want and then you need only to inject the AppCoordinator type and it will handle providing only the types you need.
I like the part where you define protocols but I don’t know how scalable sticking all the implementations in an App-level type is. Perhaps his recommendation would be to have many domain specific types that implement the protocols you make.
I’ve had this tab open for months so rather than continuing to keep it open, I’m opting to use my blog to store it. Maybe that’s another post about a better way to handle notes about a topic or blog article without blogging. Maybe blogging is the way. I’m not sure…
Using protocol compositon for dependency injection
15.11.2024 15:39Using protocol compositon for dependency injection by Krzysztof ZabłockiI don’t normally like to write negative posts, but something that is very frustrating is when the weather is finally nice enough to turn your air conditioning off and open all your windows and then someone is smoking cigarettes outside of your house. 🤢
9.9.2024 13:05I don’t normally like to write negative posts, but something that is very frustrating is when the weather is finally nice enough to turn...Photo by Thomas Bennie on Unsplash
I noticed something that might be of interest to y’all.
At one point I asked my team if the preference was to name test files as MyFileTests
or TestMyFile
.
I’ve noticed that for test files that end with Tests
you get this nice output in the Counterparts
menu where the test and the implementation file are linked.
This only works if the test is named MyFileTests
and there isn’t any deviation. (ex. MyFile
and MyFileTests
and not TestMyFile
)
TIL: if you are running the same test case over and over you can mash ⌃⌥⌘G
and Xcode will rerun the last test case you just ran.
Importantly this will just run whatever you had run just before. So if it’s a whole test case, it runs that again. If it’s a single test it will run that again. If it’s multiple tests, it will run that again.
From a friend: It also preserves the run many times aspect. So if you're running 1000 times, you can keep hitting it to run 1000 more times.
You can also run “selected” tests with ⌃⌥⌘U
so if you select some text, you can run the tests within that selection.
These options all live in the Product
menu under Perform Action
labeled as Test
and Test Again
.
The reason I stumbled upon this was because I was adding tests to a file that exists and it’s taking me a couple tries to get it all right. I want to be able to edit the setup steps and then run the XCTestCase
again without running the entire Test Scheme or Test Plan. I looked into Xcode key bindings to see what was there and found this.
Hope it can help someone else!
15.5.2024 18:15Xcode How To: Run Tests Without Running All TestsMade a kind of chow fun the other day. Recipe was very easy to follow but I used a different soy based protein.
Causes the window you’re focused on prior to the click event to hide.
I was trying to remember how to do this so I’m writing it down for future me.
This is something I heard @siracusa@mastodon.social talking about on a somewhat recent video epsiode of ATP.
I made an iOS app that used WeatherKit. Everything was working as expected and recently I wanted to add an WatchOS component. Because I am adding the watch app to an existing iOS app, I added the target in Xcode and made sure to update the capabilities to the watch app so that it could use WeatherKit too.
Unfortunately I kept running into an auth error where when running the watch app, WeatherKit couldn’t created a jwt and therefore no weather data was making it to the app.
I then went to developer.apple.com and tried to add an identifier for my watch app but it wouldn’t let me. Saying the identifier was invalid. Argh!!! I was so confused.
I thought “maybe I need to wait a couple days for some process to complete”, but still no luck.
Finally I decided I’d make a fresh watchOS/iOS app and plug my weather framework into that, create a new identifier and everything would surely work. Right?!
Well then I get the exact same error in the developer portal! What the hell is going on.
Here is the important part: it turns out that in some cases Xcode automatically creates identifiers in the developer portal. You may see a bunch of identifiers that start with XC
.
Then I realized that my watch kit app identifier was there the whole time! …if only the developer portal errors were clearer about why I couldn’t create a new identifier…
Anyways, then I clicked on my watchkitapp identifier, added the capability and the service for WeatherKit and voila, it worked!!!
tl;dr if you’re unable to create an identifier in developer.apple.com, check that the identifier wasn’t already automatically created for you. 🤷🏽♂️
12.4.2024 14:22How to fix WatchKit app WeatherKit issuesMenu: Editor -> Edit All In Scope (also shows key binding)
Keyboard Shortcut: Control-Command-E
I have used Xcode’s Refactor
command many times and while it’s nice and useful, it is always buggy and really slow. Sometimes I just want to quickly edit something in the file I’m working in. This command seems to do that.
Hope this can help someone else as well.
12.4.2024 12:50Xcode How To: Edit all instances of a word in a file with a keyboard shortcutI live in South Carolina so I wasn’t in the path of totality, but I still wanted to see the eclipse. Unfortunately I forgot to get glasses, but I still wanted to see it. I was reading about when it would be happening and I learned that I could make a pinhole projector out of some boxes, tape, and a piece of paper.
Over dramatic title, but there is some truth to it.
As a software developer I know how to make things. Maybe not super well, but I can get there. I also like to pay for software that others make.
The thing I run into is that I sometimes feel like I can make the thing and so I do. There are some benefits of this.
The problem with this is that I have a ton of tiny little projects that don’t work quite as well because I get bored with the fine tuning and polishing. And then I have something that works well enough, but not as well as the original thing I based my software on.
This whole thing reminds me of when people are doing home improvement projects and there is an option to pay someone to do it, but someone feels like they can do it themselves.
Maybe this isn’t a problem or a curse at all, just a way to spend time working on something.
9.4.2024 19:46It's a curse to know how to make softwareDriving across time zones can get weird.
There are a lot of swamp haters out there. I was one of them before I moved to South Carolina. After having been here just over a year, I can say that swamps are amazing and truly beautiful. Highly recommend you come check out a swamp.
26.3.2024 19:00Swamps are pretty awesomeSome azaleas, tulips, and wisteria from a recent trip to Magnolia Plantation and Gardens.
The azaleas out here are so vibrant. I haven’t paid attention to them if they’ve existed in other places I’ve lived but wow are they intense and so full of flowers.
Also there are so many varieties!
These are from a little over a month ago, but I was able to sit here and film this bird for over 2 minutes. It was so cool to see the wind moving its feathers and how calm and focused it was (my words, I don’t know what it was thinking).
I’m so thankful to have moved somewhere that is warmer than where I used to live.
I got my bill for another year of Micro.blog and I remembered, “oh yeah, I should probably write things”.
19.3.2024 18:47I got my bill for another year of Micro.blog and I remembered, “oh yeah, I should probably write things”.
Pictured is a Common Camelia. Could be an informal double, but I’m unsure.
5.2.2024 14:03I can't believe I live somewhere where flowers are blooming in February.I was trying to add some zsh completions and I couldn’t figure out why they weren’t working. I had added them into a folder that I was running autoload
on, but I still couldn’t get it to work.
I found this stackoverflow post and it saved me.
Here is what my .zshrc
looks like now.
autoload -Uz compinit && compinit
# enable case insensitive tab completion
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
fpath=(/usr/local/share/zsh-completions $fpath)
source $DOTFILES/zsh-completions/_arduino_cli
NOTE: I set up environment variables for important paths hence the $DOTFILES
line.
I think the gist of this is autoload compint (I was already doing this) and then source your completion files (I was not doing this).
I’ll probably later write a nice loop for this if I end up with more completions.
3.1.2024 02:28How to fix zsh completions⬆️
⬇️