Samuel Goodwin

96 posts Samuel Goodwin
  1. Making a Date Server With SwiftNIO

    Apple just released SwiftNIO. A framework for low-level asynchronous IO in Swift. It was based on a familiar called Netty (which fun fact is written by one of the devs now working on SwiftNIO at Apple). When I heard the presentation to announce the library at try!Swift Tokyo this year, it sounded super familiar. The rationale for the library was similar to when Node.js was announced by Ryan Dahl. SwiftNIO has already been integrated into web frameworks like Vapor, so you can benefit for free if you're using the latest in your server-side Swift projects. For many web projects, you probably won't need to use SwiftNIO directly, but if you're doing something different like the sort of things you'd use websockets for and want to use Swift, this is the framework for you. There is some sample code included in the git repository, but I thought a tutorial

    Samuel Goodwin swift
  2. The 30 Day Music Challenge you're going to do

    Why Sometimes a cheesy random challenge helps can help you get out of your rut and start something new. I propose we do exactly that. All of you who play/sing music: record yourself playing every day for 30 days. Put the videos on Instagram. The time limit Instagram imposes (max 1 minute) will help to make this doable since you can't spend the afternoon trying to get a whole song perfect on camera. I don't care what instrument you use or how good you are. Sing, strum, blow, whatever you've got. The point of this is to get over mental barriers to recording. So if you record and publish, you win. This isn't about getting the perfect take or having the best ever recording quality, this is about showing up. I figure if you do this every day, your recordings will improve on their own even if you don't

    Samuel Goodwin music
  3. Wacky JSON

    In Swift, turning JSON content from a file or a server into structs or classes in code is much friendlier now that we have the Encodable and Decodable protocols. For simple cases you need to write almost no code and can quickly get on to something else. For example, if you see this: { "posts": [ "this is a tweet maybe", "this is something political", "I'm angry about something", "I made something cool" ] } You can decode it with very little code: struct PostPage: Decodable { let posts: [String] } let data = // Get this JSON from a file or the internet or your imaginination let decoder = JSONDecoder() let page = try docoder.decode(PostPage.self, from: data) This is all great for most cases, but what happens when API-makers stop being polite and things get real? What if your JSON looks like this: { "posts"

    Samuel Goodwin swift
  4. Hiring And Retaining

    I've heard from a great many companies here in the Netherlands (and elsewhere) that hiring and retaining engineers is super difficult. Here are some things to consider to make things easier for your company: Is your company involved in the right communities? If you're looking for, let's say, Ruby developers, you're going to need to be involved in Ruby communities. Here are some ways to get in: Send your engineers to local meetups. Like Appsterdam here in Amsterdam, Cocoaheads near you, and so on. Send your engineers to conferences. Send your engineers to at least one conference a year, even if it's just a nearby one. Not only does this get you exposure for your company, a policy like this can be the difference between someone choosing to apply for your company or not. Encourage your engineers to speak. If you can send them to a conference and they get

    Samuel Goodwin
  5. Core Data Performance

    Last year I spoke at PragmaConf in Italy and the video of my talk is now available:

    Samuel Goodwin speaking