RSSAmplifier

Blog

Umberto Raimondi's Blog

uraimo.comRSS feed ↗32 posts

Latest posts

A Long Overdue Update on Swift 5.0 For Raspberry Pi Zero/1/2/3

The current status of Swift 5.0 on ARM-based boards like the Raspberry Pis.

A Big Update on Swift 4.1.2 For Raspberry Pi Zero/1/2/3

The current status of Swift 4.1 on ARM-based boards like the Raspberry Pis.

A Small Update on Swift For Raspberry Pi Zero/1/2/3

The current status of Swift on ARM-based boards like the Raspberry Pis.

All about Concurrency in Swift - Part 2: The Future

Discussions on how concurrency should be handled natively in Swift will soon start, new paradigms will be introduced and a swifty approach to concurrency will be defined. This article is an introduction to these topics, it could be useful if you plan to contribute to swift-evolution or even if you just want to experiment with something new using the recommended opensource libraries.

All about Concurrency in Swift - Part 1: The Present

There are a few alternatives regarding how to handle concurrency from Swift, this article will discuss everything you have at your disposal right now, to prepare the ground to the next part of this series that will discuss what is likely to come next.

An Update on Swift 3.1.1 For Raspberry Pi Zero/1/2/3

The current status of Swift 3.1.1 on ARM-based boards like the Raspberry Pis.

Building a LISP from scratch with Swift

This article describes how you can build a simple LISP, based on the 1978 article 'A Micro Manual For LISP - Not The Whole Truth' with Swift, taking advantage where possible of the features the language offers.

Swift 3.0.2 For Raspberry Pi Zero/1/2/3

Swift for all the Raspberry Pi boards, built on Ubuntu16.04 for RaspberryPi 2/3 and on Raspbian for the original RaspberryPis (A,B,A+,B+).

Unowned or Weak? Lifetime and Performance

While the usual explanation that when dealing with retain cycles you should choose between unowned or weak considering references lifetime is by now well known, sometimes you are still in doubt about which one you should actually use between the two and if defensively using only weak references is a good idea. This article helps you choose which one to use discussion about object lifetimes and…

Recursive Tail Calls and Trampolines in Swift

The use of recursion can improve the overall design of your algorithms but it leaves you susceptible to stack overflows if the compiler is unable to perform specific optimizations. In this post we'll see what tail recursion and TCO are and how the use of trampolines can overcome the fact that we cannot rely on the Swift compiler performing tail call elimination.

Swift And C: Everything You Need to Know on Types, Pointers and more

Now that Swift is available on Linux and other OSes, there are even more situations where you could need to interact with C code from your Swift 3 application. This article will hopefully shed some light on the most non-obvious details and give you some practical examples and tips of how to interact with C APIs like the C standard library.

A Recap of the Swift Porting Efforts #2

Since the first installment of this series a few established ports have received updates and a few new things have finally landed on master. Let's recap what happened in the last month on the front of porting Swift on other platforms.

Swift 3.0 now available for all the ARMv6 RaspberryPi (1,Zero)

After the Swift 2.2 binaries, you can now download Swift 3.0 compiled for ARMv6 single board computers, all models of RaspberryPi 1 and the new Zero.

Swift available for all the ARMv6 RaspberryPi (1,Zero)

Swift compiled for ARMv6 single board computers, all models of RaspberryPi 1 and the new Zero.

A Short Swift GYB Tutorial

The GYB tool is used internally in Swift to simplify source files with many snippets of code that follow a common pattern. GYB provides some additional directives that are parsed by the tool to generate the final source files. This short tutorial describes how to use GYB in your own projects.

Dealing with Bit Sets in Swift

Swift provides a convenient set of functionalities for fixed size integers and binary operations but you'll soon discover that in some cases the language is a bit opinionated in regard to how those operations should be performed. This post explains some of the gotchas and describe Bitter, a Swift bit manipulation library.

A Recap of the Swift Porting Efforts #1

A lot has happened since Swift was made opensource and the community is every day more involved with every aspect of the language and platform, but porting the language to other platforms is where the community really shines. This post gives an overview of all the community porting efforts underway to support ARMv7/ARMv6, Android, FreeBSD, Windows.

10 Swift One Liners To Impress Your Friends

Following a programming meme of a few years ago, this post presents a few Swift one liners that solve common problems following a functional approach. Will some of your friends be impressed?

Xcode 7.2 and Swift 2.1.1 Released [Updated, XCode 7.2.1]

A new XCode version and a maintenance release of the Swift compiler are now available

Swift 3.0 Upcoming Changes

Swift is now finally opensource, this post introduces the features and modifications that will be available with release 3.0 of the language.

Experimenting with Swift 3 Sequences and Iterators

In this article, part of a series on Swift and the functional approach, we'll explore what we need to do to build our own sequences in Swift 3, discuss the differences between finite and infinite sequences and examine what we can do with them in a few example scenarios.

Error Handling: From Objective-C to Swift and Back

Swift introduces error handling constructs like do,try,catch and try?, in this, I hope, comprehensive article we'll discuss this new feature in detail, how it affects the base frameworks and how Swift modules with the new error handling can be integrated in legacy Objective-C applications.

Effective Method Swizzling in Swift

Despite the static nature of the language, it's still possible to perform method swizzling (runtime method implementation substitution) in Swift following a few simple rules.

Swift 3: Map and FlatMap Demystified

Swift is a language still slightly in flux, with new functionalities and alterations of behavior being introduced in every release. Much has already been written about the functional aspects of Swift and how to approach problems following a more functional approach. This short article will try to give a clear and complete explanation of how map and especially flatMap work for different types in…

Swift 2.1 Function Types Conversion: Covariance and Contravariance

With Swift 2.1 function types will support type conversion, discover covariance and contravariance and what this means for you

Swift 2.1 Released

The release 2.1 of Swift is now available

A Brief iOS9 UIStackView Guide

How to use the new iOS9 UIStackViews, all you need to know with a practical example project

From VIM Theme to Pygments CSS

A set of VIM themes converted to CSS to be used with Pygments

First steps in Scala: Implementing Ruby's Integer.times

Implementing Integer.times in Scala, really easy, but let's look at some of the generated code.

Configuring NGINX for Jekyll on Ubuntu

How to configure NGINX to host Jekyll on Ubuntu

Upgrading the ATI drivers and configuring OpenCL in Ubuntu

How to upgrade your ATI driver under Linux and verify that OpenCL is enabled and working.

HTC Magic ADB USB driver install instructions

If you diligently followed the android driver install instruction from the Android Developer site but your HTC Magic is still discovered only as an "HTC Android Phone USB Device" and an unknown device named "ADB" because the driver contained in the last SDK is not recognized, follow these steps.