Parental leave civic hacking pt. 2 (previously): or, using LLMs to extract civic structured data from unstructured content. I tooted a while ago about finding some fun usage of LLMs to extract US rep local office phone numbers where a purely heuristic method failed spectacularly. I finally wrapped this up: we can now extract and update local office numbers from every single house and senate…
Parental leave civic hacking pt. 1: an updated 5 Calls app is out sporting a new “Inbox” tab with important votes and messages from your Reps! I’ve always wanted to build ”DMs from your reps” for 5 Calls and I really solidified my belief that it was important earlier this year when, again, hundreds of thousands of (mostly young) people found the app through insta and tiktok as a way to…
I’m a big fan of minimizing external dependencies and one of the moments forming my opinion on this was dealing with mapping user location to Congressional district for 5 Calls. This is a key part of 5 Calls: you enter an address or zip code and we return a set of representatives for various levels of government, including their phone numbers and various metadata that’s useful to you.…
I took about a month off between my last job and my current one to ostensibly do some work around the house but also to wrap up work on my running music app that I’ve been working on; Runtracks. The inspiration was simple: when a track comes on while you’re running and it perfectly matches your step cadence, it feels great! Why can’t we do this for every track in your running…
We recently were able to buy our first house (!!! it does still seem a bit surreal) and a flood of projects that I’ve never quite been able to commit to in a rental have been added to my todo list. One of those was setting up historical temperature charts for indoor spaces, and in general just building out some fun homekit integrations without shelling out lots of $$$ for expensive sensors.
I’m working through a rewrite of the 5 Calls site to static publishing via hugo (same as here) but with the addition of dynamic content via small React components. I don’t see this approach in a lot of places but so far I think it’s very effective, I’ll talk about the specifics at some point in the future. Because I’m not just building features into an existing…
Funny story, a few weeks ago I locked myself out because technology. I left the house via the garage to see some neighborhood commotion and realized when I came back that I had been hoodwinked by my own code. You see, I typically let myself in via a custom developer-signed app that travels out over the internet, back in to the house via a reverse proxy and then triggers an Arduino+relay connected…
Earlier this year I noticed one of the bushes in the backyard was sending off a bunch of flowers, more than I’ve ever seen on this one bush for sure, and now they’ve fulled developed into seed pods. These were impressive even when they were pre-bloom, they’re probably 8 feet tall and there are something like 10 flowers per stalk over seven stalks that the plant produced this…
openjdk cannot be opened because the developer cannot be verified when installing adb via brew If you’re like me and enjoy the simplicity of installing command line tools using the brew command on macOS, you’ve likely run into one or two cases where Catalina prevents you from running a tool that’s been installed because it hasn’t been verified. In this case, I’m…
I’ve run into this problem largely when setting up new projects, as I start to break out internal files into their own folders and the project has to start finding dependencies in new locations. In my case, it was complaining about imports from internal paths like import ContactPermissions from 'app/components/screens/contactPermissions';. The error message tries to help by giving you four…
If you’re trying to use the homebridge-camera-ffmpeg plugin for homebridge to connect your IP camera to Homekit, you may have run into issues with ffmpeg exiting with code 1 when trying to stream. This usually means ffmpeg can’t launch with the options provided in your camera configuration, but many different things can be going wrong and it’s hard to debug. [1/18/2020, 8:27:54…
The Problem If you’re running tests on your iOS build CI pipeline with fastlane, you might run into an issue when running scan using Xcode 11+ if you’ve got some Swift package manager dependencies. The full error might look like this: [18:44:50]: ------------------ [18:44:50]: --- Step: scan --- [18:44:50]: ------------------ [18:44:50]: $ xcodebuild -showBuildSettings -workspace…
I’ve hit a few roadblocks when working on Read & Share and I’m working on building separate screens in isolation while I wait for improvements from the next Xcode and SwiftUI beta (maybe next week?) to really tie things together. It’s frustrating to not be able to move forward on the whole app flow, and I will admit that once or twice I thought about rewriting the app without SwiftUI. But at the…
I’ve been working on a project that I’m aiming to release with iOS 13 later this year, and I’ve decided to do some build logs with interesting features or new things I’m learning here. I talked a bit about it on twitter: The idea for Read & Share stems from a) my interest in using some new features from iOS 13 in production and b) my newfound reading time during my commute…
GitHub lunched a new feature yesterday, sponsorship for open source developers. On its face this seems like a great idea, people who write open source software largely get nothing right now, so more than nothing must be better, right? But as many folks are right to point out, this is not as simple as it seems. Open source maintainers are already subject to entitled users demanding attention to…
previously on laquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. « html: « html: « uri: %C2%AB mac: opt+\…
previously on ldquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. “ html: “ html: “ uri: %E2%80%9C mac: opt+[…
previously on lsaquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. ‹ html: ‹ html: ‹ uri: %E2%80%B9
previously on lsquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. ‘ html: ‘ html: ‘ uri: %E2%80%98 mac: opt+]…
previously on raquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. » html: » html: » uri: %C2%BB mac:…
previously on rdquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. ” html: ” html: ” uri: %E2%80%9D mac:…
previously on rsaquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. › html: › html: › uri: %E2%80%BA
previously on rsquo.net Since 2005 this site was a single serving site for references to the unicode entity raquo, », along with some of the other members of the “quo” family. 15 (!!!) years later I still get emails telling me people find it useful, so hopefully this page will get picked up as the replacement reference for that content. ’ html: ’ html: ’ uri: %E2%80%99 mac:…
The Problem You tried to expand the content in your component by adding an element before or after an element you were already rendering in this component. render() { return ( <h1>Your first element</h1> <h2>Your second element</h2> ); } The render function of a React component expects a single element to be returned here but you’re passing two, the h1 and h2. The Solution If you’re…
Feels like we have another launch or space probe every couple weeks now, yeah? BepiColumbo is on its way to Mercury after launch last night: The crazy thing about this mission is the length of time it takes to actually reach Mercury despite the fact that it’s a little more than half the distance to Mars. Turns out it’s really crazy hard to hit the orbit of a planet that’s so…
I have a great way to recommend and read books. It’s called buying and forgetting. It works best if you truly forget what the book is about and start reading it only knowing that it was something you wanted to read in the past. Today it was Ursula K. Le Guin’s The Lathe of Heaven. I opened the kindle to read something, realized I had finished everything else on my list and then had to…
I sort of understand the programmer’s attraction to climbing, particularly structured climbing like bouldering. There’s a clear path to progression: you improve and you move to something harder or do something you’ve finished before in less time (sadly, you don’t unlock cheats). But the extremes of the sport aren’t all that compelling to me. Unlike some people, I…
I’ve wanted to play guitar for a long time but it was hard to justify the cost of starting something that I didn’t know if I’d like all that much – really an absurd justification for someone who spends money on stupid technology regularly. But! A while back I saw the kickstarter for the second generation of loog guitars, smaller form factor guitars with only three strings…
Jack Dorsey (and FB COO Sheryl Sandberg) were asked a few questions today in front of the Senate Intelligence committee, as part of investigations into foreign interferrence ops on social media. The statement is the typical bullshit we hear from Twitter, and specifically from @jack, all the time: We’re so important to the world We know Twitter has problems Look at everything we’re…
I’m on day 4 of writing on write.as and already feeling that push to avoid breaking my streak. I think that’s what I need to keep moving forward. It was actually not easy for me to pick a spot to start blogging again. I spent a few days customizing some Ghost blog before I realized I just had to start writing and figure out the customization stuff later. This has always been my…
Totally unfinished thought about progress and humans and physical space and actual SPACE: What if cultural resets (the founding of America, an existing country after a revolution, a community after a devastating disease) are critical for the progress of new ideas for humankind? New foundations are frequently the birth of radical new ideas, often because of some constraint that established…
One of those things that you have to do a lot of as a small startup is switching between planning and execution modes… sometimes too quickly. Recently we started working on advocacy tools that 5 Calls could provide to other groups, giving them the same sort of mobilization that we are able to generate for our own topics. As we’re making this switch over from campaign tools to advocacy…
Fascinating account of what it looks like on the backend of Tesla’s software stack. I can’t imagine they’ve fixed many of this situations considering the incredible crunch to get the Model 3 out the door over the last year. That means they’re well overdue for something to break in a bad way. One comment stands out above the rest: They’ve forgotten about the part of…
This oral history of Goldeneye for N64 is really excellent if you’re a fan of the original. Multiplayer is what most Goldeneye fans remember when they think about what stuck them to the game for such a long time, but for me it was all the little challenges that added replayability to every level along the way. Here’s one of the ways to unlock cheats in the game: Clark: Finishing the…
As we approach the release of Xcode 8 and Swift 3, we face the inevitable task of upgrading our old Swift 2.x code to the new syntax in Swift 3, including the major reworking of Foundation and UIKit names that has become known as the Grand Renaming. If you’ve been through a major Swift version change before, you know the drill: Xcode will offer to convert your source automatically to the new…
We’re well into the betas of Xcode 8 which will contain the final release of Swift 3, hopefully set for release around the first couple weeks of September. With this next release of Xcode, we’re encouraged to update our Swift syntax to Swift 3 from 2.2 but - and this is unique to this major Xcode release so far - we’re not quite required to do so. There’s a single build…
A quick note today: People seemed interested at the ease in which we can currently make the Swift 2.2 compiler take 12+ hours to compile some basic code because of type inference. From this post by Matt Nedrich, we can see a simple example of code taking way too long to figure out what types should be used. let myCompany = [ "employees": [ "employee 1": ["attribute": "value"], "employee 2":…
@Javi briefly mentioned the Fabric approach to dealing with table views at the Swift user group meetup the other night, opting for an enum that represented the state of the table as loading, failed or loaded with an associated type (the data for the table view). Here’s a simple example: enum TableState { case Loading case Failed case Items([String]) } If you’re just using an array (or…
This is a little different than the creative code exercises we usually do here at That Thing in Swift, but here goes: All this talk about macOS had me thinking about what we’ll see at WWDC this year and when I read Brent’s reminder about the ever-present threat of bringing UIKit to the Mac, these ideas started to click together in unexpected ways. Brent and I have some different opinions on…
I do a lot of work where I have to set up views and view controllers for a large number of screens and I have to admit that I enjoy using Storyboards for most of it. I know it’s a polarizing subject with iOS developers and there are lots of specific instances where Storyboards don’t work or work poorly, but for the most part my process for using Storyboards is hassle-free.
April is here. I’ve got to admit that I haven’t been super productive on the side projects in the last couple weeks. My parents were in town at the end of March, a few new proper work projects have sprung up and I’ve been spending a few free hours here and there playing Fallout 4. Other than some tinkering with Swift, there’s not much progress on the active projects. I do…
On today’s episode of Various Tools Connected Together In a Way That May Only Be Useful For Me, I’ll discuss some customization I recently did for That Thing in Swift to get syntax highlighted images for image previews on Facebook, Twitter and Google. I love writing new stuff for That Thing in Swift , especially now that I’ve found a niche in what to write about and I’m…
Back in Objective-C, we prepared all of our view controller properties in viewDidLoad because that was our only option unless we wanted to subclass every element to provide custom initializers. Using some tricks in Swift, we can provide clear, readable initalization outside of viewDidLoad that makes our code easier to read and reason about. The old, bad way Here’s a traditional viewDidLoad…
This is turning into a bit of a weekly update during periods with lots of work which is OK, I think. If I’m doing a bunch of simultaneous projects it’s nice to have a mid-week checkup to see what we’re on-or-off course for but these days I’m doing a lot of contract Swift development and I try to keep my other projects to around an hour a day. I actually have a daily Coach.
March has definitely snuck up on me this year. Maybe partially because I have a lot of other work to do right now, days can be a bit of a slog to wake up, figure out which contract needs attention, build stuff all day, sleep, repeat. I definitely need to mix my days up a bit which was my intention when I said I was going to work out of some different locations a few weeks ago.
Here’s an hour-long livecoding video we did last week to make a basic table view app that downloads and parses JSON and builds a set of dynamic, expanding table view cells. Lots of helfup tips and tricks for working with Xcode and Swift are sprinkled throughout. The resulting code is available on Github. Want to be notified when livecoding is coming up? Follow @nickoneill on Twitter. Some…
I wanted to get one more update in before the end of February, luckily we have a leap day this year! I’m planning a live coding session for That Thing in Swift on Wednesday this week. I still have a few technical things to work out but I’m not committed to it being perfect, just good enough to get a sense of how much interest there is. I think it could be pretty cool.
It’s been too long! Time for some smaller project updates: I started and mostly completed a microproject I’ve had in mind for a while. A friend has a string of ~750 addressable LED lights (model APA102-C) around the top of his roof deck and they’re controlled by a Raspberry Pi SPI interface. Since all the LEDs are individually addressable, he wrote a bunch of Go to make different…
Success. Well, on par for success. I’ve archived both PermissionScope and Pantry after finishing the maintenance releases I aimed to complete. I feel great not having those two things on my plate and I’m confident that I can deflect any new changes that might come through until a later date. I don’t have a concrete plan for the next improvement to That Thing in Swift yet but…
Startups have improved on many UX aspects of takeout payments for places like your local coffee shop. Some of these improvements have been customer-facing like contactless payments and automatic tip selection, others are more business-focused like simpler ordering interfaces and better user management. Very few of these improvements have been implemented in for in-house restaurant payment.…