@ctietze@mastodon.social
@ctietze@mastodon.social avatar

ctietze

@ctietze@mastodon.social

Developer of indie macOS apps. The Archive, WordCounter, TableFlip, Move!

Using #Xcode to write #Swift and sometimes #SwiftUI apps for #iOS and #Mac.

OG #Zettelkasten zealot.
Local #urbansketchers group founder.

#Bielefeld (Germany)

─────────────
#fedi22

This profile is from a federated server and may be incomplete. Browse more on the original instance.

ctietze, to random
@ctietze@mastodon.social avatar

New blog post:

📝 Declarative Text Kit: Inserting Strings and Lines With a Result Builder https://christiantietze.de/posts/2024/05/declarative-text-kit-inserting-strings-and-lines/

How to write a Swift Result Builder DSL to compose different commands into a single sequence, leaning on the compiler.

The "functional" key insight for me during this step in the development of a declarative Text Kit API was this:

Decompose your DSL's units further.

Then recompose these in buildPartialBlock to enforce rules.

Find out what that means in the post :)

ctietze, to random
@ctietze@mastodon.social avatar

Dang.

After a long period of grand-fathering us non-subscription users of old versions, Dash.app (the documentation browser for Mac) removed the old Apple API update feed. Now I'm getting periodical error notifications :)

ctietze, to random
@ctietze@mastodon.social avatar

Phew, wrote a huge blog post today.

ctietze,
@ctietze@mastodon.social avatar

@isurujn it's wordcounterapp.com

map, to random
@map@xoxo.zone avatar

TIL: One of the biggest German rappers is selling vapes called "Steve Jobs". 🤯

ctietze,
@ctietze@mastodon.social avatar

@map they probably wanted to call it "Apple" but got sued ;)

ctietze,
@ctietze@mastodon.social avatar

@map ok that doesn't help :D

ctietze, to random
@ctietze@mastodon.social avatar

@krisajenkins Where do you find all these interesting people to talk with? Had Neovim, Event Driven/Actor, and a couple of programming languages covered in your podcast recently and it is a wild mix but always is insightful and exciting

ctietze, to random
@ctietze@mastodon.social avatar

Designing Actor-Based Software (with Hugh McKee) https://youtube.com/watch?v=CBUWcUuG6Ss

The examples sound great and also intuitively make sense to me as an actor noob: use data structures that support "fanning out" for concurrency.

But Swift's actor model seems to behave a bit differently, doesn't it?

At least the stuff everyone complains about feels different.

/cc @mattiem

ctietze, (edited ) to random German
@ctietze@mastodon.social avatar

Bei News zu inter-europäischen Vergleichen, diesem inklusive, kann ich mich immer nicht unbefangen freuen und habe dieses leiseen Zwifel:

"Feiert die Bundesregierung unter einem aktuell beliebten Thema hier versehentlich den Abstieg aller Nachbarstaaten?" 👀

https://social.bund.de/@Bundesregierung/112455881546585986

simonbs, to random
@simonbs@mastodon.social avatar

I have a four-day work week, allowing me to focus on my side projects on Fridays. Boy, I love Fridays! 😄

ctietze,
@ctietze@mastodon.social avatar

@simonbs yeah freedom like this is the best for hackers, I think :)

hajovonta, to emacs
@hajovonta@mastodon.online avatar

I'm trying to create an user interface where the user should be able to edit a list, including the adding, removing and ordering of items.

Unfortunately, with the ordering requirement, I'm a bit stuck - how is it usually solved in Emacs?

#emacs

ctietze,
@ctietze@mastodon.social avatar

@hajovonta So what do you have at the moment?

widget.el based UI?
https://www.gnu.org/software/emacs/manual/html_mono/widget.html

tabulated-list-mode (like the Package mode)?

The latter is compatible with 'ewoc' which seems to be backed by a doubly linked list, so changing the order of items should be simple-ish

ctietze, to neovim
@ctietze@mastodon.social avatar

Recently picked up that an "IDE" is a largely uncustomized, out-of-the-box experience, and that (Neovimmers) call the result of their customizations a "PDE", a "Personal Development Environment" instead.

Made me wonder:

Is the notion that IDE's are what they are, mostly unchangable, a common one?

ctietze,
@ctietze@mastodon.social avatar

@Flyingmana Hm, I wonder if VSCode counts as an IDE, and not a very customizable app that by defaults starts as a mere text editor.

Opposed to the regular Visual Studio application, which comes equipped with debugger and all.

ctietze, to random
@ctietze@mastodon.social avatar

What's new in PHP 8.4 https://stitcher.io/blog/new-in-php-84

"Property Hooks" is a new feature and it looks just like Swift's, or the stuff in C#

ctietze,
@ctietze@mastodon.social avatar

@helge What does that mean? @pilky

ctietze,
@ctietze@mastodon.social avatar

@pilky It is! Worked on a small thing for Zettelkasten.de in January and it's nothing like the stuff I've been using in 2003 :)

ctietze,
@ctietze@mastodon.social avatar

@helge I see! I haven't tried to ship any scripting language executable in a while (tried a decade ago with Ruby IIRC). So yeah, a quick glance shows that you can get embedded PHP server processes maybe, but not much else. A C library/runtime (PH7) is also a reimplementation for feature parity. That's kind of wild.

grumpygamer, to random
@grumpygamer@mastodon.gamedev.place avatar

Good morning...

ctietze,
@ctietze@mastodon.social avatar

@grumpygamer do I read "grandmama" correctly with French pronunciation?

ctietze,
@ctietze@mastodon.social avatar

@stevenodb @grumpygamer True. I can't imagine it with a Texan accent (which is the only American one I can imagine)

ndw, to emacs
@ndw@mastodon.social avatar

For the first time in...a few decades at least. Maybe ever. Emacs is regularly and unceremoniously segfaulting on me. Pretty clearly something to do with tree sitter, which is a bit frustrating. ( 29.3 on MacOS from brew)

ctietze,
@ctietze@mastodon.social avatar

@ndw I run into immediate crashes when selecting text and tabbing to indent in tree-sitter-enabled modes since last week or the one before, too

ctietze, to random
@ctietze@mastodon.social avatar

I shouldn't have followed the "Swift" hashtag on Mastodon. It's Taylor Swift all over the place today.

gernot, to SwiftUI German
@gernot@mas.to avatar

Checking and formatting phone numbers for app signup in . How hard can it be?

(Turns out: Hard. And I suspected that… Still sucks though.)

ctietze,
@ctietze@mastodon.social avatar

@gernot @uliwitness If the parser is good enough, sounds like a somewhat simple transformation using a view model (name used intentionally and properly this time), though?

ctietze,
@ctietze@mastodon.social avatar

@gernot @uliwitness Can you explain?

It looks to me like it can parse "round trip" values, i.e.
String→PhoneNumber→String→PhoneNumber

You can have it parse any String input,

get a structured PhoneNumber value,
(display this in the UI),

encode that into a String (with the .e164 strategy, the other one uses a dictionary),

then parse that again.

If the UI starts with empty fields, and the user pastes +1234567 into a text field, that should work to kick-start things?

ctietze,
@ctietze@mastodon.social avatar

@gernot @uliwitness Oh dear, didn't notice the immutability! That is awkward.

You can initialize from dictionary or JSON though:
https://github.com/marmelroy/PhoneNumberKit/blob/7678318c0c5b88051b9e26fd86b7af6484463339/PhoneNumberKit/PhoneNumber%2BCodable.swift

Since that's possible, the same invariant protections should be available in a public initializer IMHO. PR Should be trivial

cabel, to random
@cabel@panic.com avatar

A powerful new ride spotted in Portland

image/jpeg

ctietze,
@ctietze@mastodon.social avatar

@cabel That's a beaut

  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • InstantRegret
  • magazineikmin
  • modclub
  • khanakhh
  • Youngstown
  • rosin
  • mdbf
  • slotface
  • Durango
  • ngwrru68w68
  • thenastyranch
  • kavyap
  • DreamBathrooms
  • JUstTest
  • cubers
  • osvaldo12
  • Leos
  • anitta
  • everett
  • ethstaker
  • GTA5RPClips
  • tester
  • cisconetworking
  • megavids
  • tacticalgear
  • normalnudes
  • lostlight
  • All magazines