<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Timac</title><link>https://blog.timac.org/</link><description>Recent content on Timac</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><copyright>Timac</copyright><lastBuildDate>Sun, 08 Dec 2024 10:00:00 +0100</lastBuildDate><atom:link href="https://blog.timac.org/index.xml" rel="self" type="application/rss+xml"/><item><title>Apple’s use of Swift and SwiftUI in iOS 18</title><link>https://blog.timac.org/2024/1208-state-of-swift-and-swiftui-ios18/</link><pubDate>Sun, 08 Dec 2024 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2024/1208-state-of-swift-and-swiftui-ios18/</guid><description>&lt;p>As with previous iOS versions, let&amp;rsquo;s analyze the built-in apps of iOS 18 to answer a few questions: How many binaries does iOS 18 contain? Which programming languages were used to develop these apps? How many apps are written in Swift? What percentage of apps use SwiftUI versus UIKit?&lt;/p></description></item><item><title>Apple’s use of AppKit, Catalyst, Swift and SwiftUI in macOS Sonoma</title><link>https://blog.timac.org/2023/1128-state-of-appkit-catalyst-swift-swiftui-mac/</link><pubDate>Tue, 28 Nov 2023 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2023/1128-state-of-appkit-catalyst-swift-swiftui-mac/</guid><description>&lt;p>Last month, I analyzed the programming languages and UI frameworks used to create iOS 17. This month, let&amp;rsquo;s analyze macOS from OS X El Capitan 10.11 to the latest macOS Sonoma 14 and answer a few questions:&lt;/p>
&lt;p>What is the total count of binaries within macOS Sonoma? Which programming languages are used to develop these apps? How many apps are written with Swift? How many apps are using Mac Catalyst and SwiftUI versus AppKit?&lt;/p></description></item><item><title>Apple’s use of Swift and SwiftUI in iOS 17</title><link>https://blog.timac.org/2023/1019-state-of-swift-and-swiftui-ios17/</link><pubDate>Thu, 19 Oct 2023 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2023/1019-state-of-swift-and-swiftui-ios17/</guid><description>&lt;p>Now that iOS 17 is available, let’s analyze its built-in apps to answer a few questions: How many binaries are in iOS 17? Which programming languages are used to develop these apps? How many apps are written with Swift? What is the percentage of apps using SwiftUI versus UIKit?&lt;/p></description></item><item><title>Charts in Markdown using Apache ECharts</title><link>https://blog.timac.org/2023/0627-charts-in-markdown-using-apache-echarts/</link><pubDate>Tue, 27 Jun 2023 06:00:00 +0100</pubDate><guid>https://blog.timac.org/2023/0627-charts-in-markdown-using-apache-echarts/</guid><description>&lt;p>With this blog approaching 15 years of existence, it was time to add support for the long overdue Dark Mode. As part of this update, I also made significant changes to the charts that help visualize the data in the different posts. The content of the posts, including this one, are written using Markdown, and processed using &lt;a href="https://gohugo.io">Hugo&lt;/a>, a popular open-source static site generator.&lt;/p></description></item><item><title>Apple’s use of Swift and SwiftUI in iOS 16</title><link>https://blog.timac.org/2022/1005-state-of-swift-and-swiftui-ios16/</link><pubDate>Wed, 05 Oct 2022 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2022/1005-state-of-swift-and-swiftui-ios16/</guid><description>&lt;p>iOS 16 was just released so let’s analyze its built-in apps. Like in the past years, I will try to answer a couple of questions: How many binaries are in iOS 16? Which programming languages are used to develop these apps? How many apps are written with Swift? What is the percentage of apps using SwiftUI versus UIKit?&lt;/p></description></item><item><title>Apple’s use of AppKit, Mac Catalyst and SwiftUI in macOS</title><link>https://blog.timac.org/2022/0818-state-of-appkit-catalyst-swiftui-mac/</link><pubDate>Thu, 18 Aug 2022 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2022/0818-state-of-appkit-catalyst-swiftui-mac/</guid><description>&lt;p>The WWDC 2019 had a major impact on the UI toolkit landscape: while the venerable AppKit APIs remained available, Apple removed the old Carbon APIs and introduced 2 brand new frameworks: Mac Catalyst and SwiftUI.&lt;/p>
&lt;p>Apple sporadically mentioned some apps built with these new UI toolkits. In this article, I try to bring a better overview of Apple’s use of AppKit, Mac Catalyst and SwiftUI in the different versions of macOS, from macOS Mojave to macOS Ventura.&lt;/p></description></item><item><title>Apple’s use of Swift and SwiftUI in iOS 15</title><link>https://blog.timac.org/2021/1219-state-of-swift-and-swiftui-ios15/</link><pubDate>Sun, 19 Dec 2021 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2021/1219-state-of-swift-and-swiftui-ios15/</guid><description>&lt;p>iOS 15 was released a few months ago in September 2021. In this article, I analyze the built-in apps composing iOS 15. How many binaries are in iOS 15? Which programming languages are used to develop these apps? How many apps are written with Swift? Has Apple adopted SwiftUI for some built-in apps?&lt;/p></description></item><item><title>SwiftLint for Swift Packages</title><link>https://blog.timac.org/2021/1003-swiftlint-for-swift-packages/</link><pubDate>Sun, 03 Oct 2021 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2021/1003-swiftlint-for-swift-packages/</guid><description>&lt;p>&lt;a href="https://realm.github.io/SwiftLint/">SwiftLint&lt;/a> is a great tool to enforce Swift style and conventions. Thanks to the Xcode Build Phases, integrating SwiftLint in an Xcode project is simple: a Build Phase automatically triggers &lt;code>swiftlint&lt;/code> when compiling your project.&lt;/p>
&lt;p>Sadly at the moment, you can&amp;rsquo;t easily integrate SwiftLint with Swift Packages: A Swift Package has no Build Phases and no way to automatically runs scripts.&lt;/p>
&lt;p>This article explains how to use a post action script in Xcode to automatically trigger SwiftLint afer a successful Swift Package compilation.&lt;/p></description></item><item><title>Mac App Store: Embedding a Command Line tool using paths as arguments</title><link>https://blog.timac.org/2021/0516-mac-app-store-embedding-a-command-line-tool-using-paths-as-arguments/</link><pubDate>Sun, 16 May 2021 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2021/0516-mac-app-store-embedding-a-command-line-tool-using-paths-as-arguments/</guid><description>&lt;p>A couple of months ago, I released a new app called &lt;a href="https://apps.apple.com/app/dependencies/id1538972026">Dependencies&lt;/a> on the Mac App Store. You can download and try it for free at &lt;a href="https://apps.apple.com/app/dependencies/id1538972026">https://apps.apple.com/app/dependencies/id1538972026&lt;/a>.&lt;/p>
&lt;p>In this article, I explain how I built the command line support and released it in the Mac App Store. Implementing this feature turned out to be tricky, mostly due to the lack of documentation on this specific subject. This post might be of interest if you are planning to add a Command Line tool to your app distributed on the Mac App Store.&lt;/p></description></item><item><title>Comparing iPhone OS 1.0 with iOS 14 using tree maps</title><link>https://blog.timac.org/2020/1122-comparing-iphone-os-with-ios-14-using-tree-maps/</link><pubDate>Sun, 22 Nov 2020 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2020/1122-comparing-iphone-os-with-ios-14-using-tree-maps/</guid><description>&lt;p>If you followed the recent Apple events, you probably saw a picture of the A14 and M1 dies… that got me thinking about what you would see if you could pass iOS under X-Rays…&lt;/p>
&lt;p>In my previous article about the &lt;a href="https://blog.timac.org/2020/1019-evolution-of-the-programming-languages-from-iphone-os-to-ios-14/">evolution of the programming languages from iPhone OS 1.0 to iOS 14&lt;/a>, I analyzed iOS based on the number of binaries and their programming languages. As I pointed out in this past post, the size of the binaries were not taken in account. In this new article, I look at iPhone OS 1.0 and iOS 14 from a size perspective using tree maps.&lt;/p></description></item><item><title>Evolution of the programming languages from iPhone OS 1.0 to iOS 14</title><link>https://blog.timac.org/2020/1019-evolution-of-the-programming-languages-from-iphone-os-to-ios-14/</link><pubDate>Mon, 19 Oct 2020 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2020/1019-evolution-of-the-programming-languages-from-iphone-os-to-ios-14/</guid><description>&lt;p>In my previous article about &lt;a href="https://blog.timac.org/2020/0927-state-of-swift-ios14/">Apple’s use of Swift and SwiftUI in iOS 14&lt;/a>, I counted the number of built-in apps in iOS using Swift and SwiftUI. Several readers asked if I could provide a percentage rather than an absolute number.&lt;/p>
&lt;p>In this new article, I will answer this question by measuring the total number of binaries in iOS. I will go one step further and also count the number of binaries using other programming languages: Objective-C, C++ and C.&lt;/p>
&lt;p>Finally to be as complete as possible, I ran this analysis on all major iOS releases, from iPhone OS 1.0 to iOS 14. This will provide a detailed overview of the evolution of the different programming languages over more than a decade of iOS development.&lt;/p></description></item><item><title>Apple’s use of Swift and SwiftUI in iOS 14</title><link>https://blog.timac.org/2020/0927-state-of-swift-ios14/</link><pubDate>Sun, 27 Sep 2020 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2020/0927-state-of-swift-ios14/</guid><description>&lt;p>Swift was introduced a couple of years ago at Apple&amp;rsquo;s 2014 WWDC. Over the years I analyzed iOS to measure how many built-in applications were using Swift. iOS 9 released in 2015 included a single application written with Swift: Calculator. Since then this number has grown with each iOS release: &lt;a href="https://blog.timac.org/2016/1101-apples-use-of-swift-in-ios-10-1-and-macos-10-12/">iOS 10.1&lt;/a>, &lt;a href="https://blog.timac.org/2017/1115-state-of-swift-ios11-1-macos10-13/">iOS 11.1&lt;/a>, &lt;a href="https://blog.timac.org/2018/0924-state-of-swift-ios12/">iOS 12.0&lt;/a> and finally &lt;a href="https://blog.timac.org/2019/0926-state-of-swift-ios13/">iOS 13.1&lt;/a>.&lt;/p>
&lt;p>iOS 14 is now available so let&amp;rsquo;s check how this number evolved since iOS 13. Apple announced SwiftUI during WWDC 2019, a year ago. In this article I will also try to measure which built-in apps are using this new UI framework.&lt;/p></description></item><item><title>Introducing Clatters for iOS</title><link>https://blog.timac.org/2020/0204-introducing-clatters-for-ios/</link><pubDate>Thu, 06 Feb 2020 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2020/0204-introducing-clatters-for-ios/</guid><description>&lt;img style="margin-left:auto; margin-right:auto;" src="clatters.png" />
&lt;p>Assiduous readers of this blog might have noticed a significant drop in the number of articles last year. Couldn&amp;rsquo;t I find any interesting subject? Was I getting lazy? Hell no!&lt;/p>
&lt;p>Today I am pleased to release &lt;a href="https://clatters.app">Clatters for iOS and iPadOS&lt;/a>. Clatters is an app to easily monitor in one place your brand, product or any other keyword on your favorite social networks - Reddit, HackerNews and even comments on the iOS App Store.&lt;/p></description></item><item><title>Apple’s use of Swift in iOS 13</title><link>https://blog.timac.org/2019/0926-state-of-swift-ios13/</link><pubDate>Thu, 26 Sep 2019 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2019/0926-state-of-swift-ios13/</guid><description>&lt;p>Swift was introduced at Apple&amp;rsquo;s 2014 WWDC and it is interesting to measure Apple’s own use of Swift in iOS over the years. iOS 9 released in 2015 included a single application written with Swift: Calculator. Since then the number of applications using Swift in iOS has grown each year with &lt;a href="https://blog.timac.org/2016/1101-apples-use-of-swift-in-ios-10-1-and-macos-10-12/">iOS 10.1&lt;/a>, &lt;a href="https://blog.timac.org/2017/1115-state-of-swift-ios11-1-macos10-13/">iOS 11.1&lt;/a> and &lt;a href="https://blog.timac.org/2018/0924-state-of-swift-ios12/">iOS 12.0&lt;/a>.&lt;/p>
&lt;p>Now that iOS 13.1 is available, let&amp;rsquo;s measure how many applications are using Swift this year.&lt;/p></description></item><item><title>Your own VPN server for 3€/month with built-in iOS and macOS support</title><link>https://blog.timac.org/2019/0428-your-own-vpn-server/</link><pubDate>Sun, 28 Apr 2019 08:00:00 +0100</pubDate><guid>https://blog.timac.org/2019/0428-your-own-vpn-server/</guid><description>&lt;p>Using a VPN is an obvious solution when you are connected to internet on an untrusted network. Instead of paying a subscription to a VPN service, I decided to create my own VPN server. It turns out that this is much simpler than I expected.&lt;/p>
&lt;p>In this article, I briefly explain what is a VPN and its advantages. I then explain how I built my own VPN server.&lt;/p></description></item><item><title>Analysis of the Nest app for iOS</title><link>https://blog.timac.org/2018/1211-analysis-of-the-nest-app-for-ios/</link><pubDate>Tue, 11 Dec 2018 08:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/1211-analysis-of-the-nest-app-for-ios/</guid><description>&lt;p>Lately, many people have wondered why some iOS apps were so huge. I asked myself this question and analyzed the Facebook application for iOS &lt;a href="https://blog.timac.org/2016/1018-analysis-of-the-facebook-app-for-ios/">v. 66.0 in 2016&lt;/a> and &lt;a href="https://blog.timac.org/2017/0410-analysis-of-the-facebook-app-for-ios-v-87-0/">v. 87.0 in 2017&lt;/a>.&lt;/p>
&lt;p>In this article, I dissect the &lt;a href="https://itunes.apple.com/app/nest/id464988855">Nest app (5.30.5) for iOS&lt;/a> released on 29.11.2018. There has been quite some speculations about this app in &lt;a href="https://twitter.com/gruber/status/1052577280864735233">a thread started by John Gruber on Twitter&lt;/a>:&lt;/p>
&lt;p>&lt;img src="Gruber.png" alt="">&lt;/p>
&lt;p>This post will answer some simple questions about this specific app:&lt;/p>
&lt;ul>
&lt;li>Which technologies are used?&lt;/li>
&lt;li>Why is the app so big?&lt;/li>
&lt;li>Would it be possible to reduce the app size?&lt;/li>
&lt;/ul></description></item><item><title>Deobfuscated libMobileGestalt keys (iOS 12)</title><link>https://blog.timac.org/2018/1126-deobfuscated-libmobilegestalt-keys-ios-12/</link><pubDate>Mon, 26 Nov 2018 08:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/1126-deobfuscated-libmobilegestalt-keys-ios-12/</guid><description>&lt;p>&lt;code>libMobileGestalt&lt;/code> is a private library in iOS that describes the capabilities of the device: system version, build version, device type, device features, status of the airplane mode, &amp;hellip;&lt;/p>
&lt;p>Apple obfuscates this information which makes it hard to know the capabilities of the device. In January 2017, I presented a method for &lt;a href="https://blog.timac.org/2017/0124-deobfuscating-libmobilegestalt-keys/">Deobfuscating libMobileGestalt keys&lt;/a>. At that time there were 673 known obfuscated keys and I managed to recover 564 out of the 673 keys (83%).&lt;/p>
&lt;p>Since this previous article, Apple has released 2 major iOS versions, and new obfuscated keys have been added. In this post I quickly recap what is &lt;code>libMobileGestalt&lt;/code> and provide the updated list of recovered keys.&lt;/p></description></item><item><title>Constraints on QuickLook plugins</title><link>https://blog.timac.org/2018/1119-constraints-on-quicklook-plugins/</link><pubDate>Mon, 19 Nov 2018 06:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/1119-constraints-on-quicklook-plugins/</guid><description>&lt;p>A QuickLook plugin on macOS 10.14 has several constraints to satisfy. If one of the limits is exceeded, the plugin will immediately be killed and no preview will be visible. Having such restrictions makes sense but they appear to be undocumented. This article addresses the lack of information about these constraints.&lt;/p></description></item><item><title>QuickLook plugin to visualize .car files (compiled Asset Catalogs)</title><link>https://blog.timac.org/2018/1112-quicklook-plugin-to-visualize-car-files/</link><pubDate>Mon, 12 Nov 2018 08:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/1112-quicklook-plugin-to-visualize-car-files/</guid><description>&lt;p>In a previous article, I &lt;a href="https://blog.timac.org/2018/1018-reverse-engineering-the-car-file-format/">reverse-engineered the .car file format&lt;/a> used to store the compiled assets of an Asset Catalog. I also demonstrated how to create a tool to manually parse such files. While this tool can extract a lot of information, it is cumbersome to use if you want to quickly see all the assets contained in a car file.&lt;/p></description></item><item><title>Reverse engineering the .car file format (compiled Asset Catalogs)</title><link>https://blog.timac.org/2018/1018-reverse-engineering-the-car-file-format/</link><pubDate>Thu, 18 Oct 2018 08:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/1018-reverse-engineering-the-car-file-format/</guid><description>&lt;p>An &lt;code>Asset Catalog&lt;/code> is an important piece of any iOS, tvOS, watchOS and macOS application. It lets you organize and manage the different assets used by an app, such as images, sprites, textures, ARKit resources, colors and data.&lt;/p></description></item><item><title>Apple’s use of Swift in iOS 12</title><link>https://blog.timac.org/2018/0924-state-of-swift-ios12/</link><pubDate>Mon, 24 Sep 2018 10:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/0924-state-of-swift-ios12/</guid><description>&lt;p>Two years ago I measured &lt;a href="https://blog.timac.org/2016/1101-apples-use-of-swift-in-ios-10-1-and-macos-10-12/">Apple’s use of Swift in iOS 10.1&lt;/a> and last year I counted &lt;a href="https://blog.timac.org/2017/1115-state-of-swift-ios11-1-macos10-13/">how many applications were using Swift in iOS 11.1&lt;/a>.&lt;/p>
&lt;p>This year I&amp;rsquo;m analyzing iOS 12, released by Apple this month.&lt;/p></description></item><item><title>VPNStatus, a replacement for macOS builtin VPN Status</title><link>https://blog.timac.org/2018/0719-vpnstatus/</link><pubDate>Thu, 19 Jul 2018 19:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/0719-vpnstatus/</guid><description>&lt;p>In this post I present VPNStatus, an application that replicates some functionalities of macOS built-in VPN status menu:&lt;/p></description></item><item><title>macOS VPN architecture from System Preferences down to nesessionmanager</title><link>https://blog.timac.org/2018/0717-macos-vpn-architecture/</link><pubDate>Tue, 17 Jul 2018 19:00:00 +0100</pubDate><guid>https://blog.timac.org/2018/0717-macos-vpn-architecture/</guid><description>&lt;p>macOS 10.13 contains a built-in VPN client that natively supports &lt;code>L2TP over IPSec&lt;/code> as well as &lt;code>IKEv2&lt;/code>.&lt;/p>
&lt;p>In this post I describe some parts of the internal architecture of the macOS VPN client. This information will be used in a following article to build an application that replicates some functionalities of the VPN status in the menu bar. This application will also allow to auto connect to an IKEv2 VPN service, something that is currently not possible on macOS.&lt;/p></description></item><item><title>Apple’s use of Swift in iOS 11.1 and macOS 10.13.1</title><link>https://blog.timac.org/2017/1115-state-of-swift-ios11-1-macos10-13/</link><pubDate>Wed, 15 Nov 2017 08:00:00 +0100</pubDate><guid>https://blog.timac.org/2017/1115-state-of-swift-ios11-1-macos10-13/</guid><description>&lt;p>A year ago I analyzed how many built-in apps in iOS 10.1 and macOS 10.12 were using Swift: &lt;a href="https://blog.timac.org/2016/1101-apples-use-of-swift-in-ios-10-1-and-macos-10-12/">Apple’s use of Swift in iOS 10.1 and macOS 10.12&lt;/a>.&lt;/p>
&lt;p>How many built-in apps are using Swift in iOS 11.1 and macOS 10.13.1? Let&amp;rsquo;s find it out!&lt;/p></description></item><item><title>Swift: Banning force unwrapping optionals</title><link>https://blog.timac.org/2017/0628-swift-banning-force-unwrapping-optionals/</link><pubDate>Wed, 28 Jun 2017 20:15:03 +0000</pubDate><guid>https://blog.timac.org/2017/0628-swift-banning-force-unwrapping-optionals/</guid><description>&lt;p>In this article, I discuss the dangers of force unwrapping and how to avoid forced unwraps.&lt;/p></description></item><item><title>Facebook.app for iOS [v. 88.0] cleans up duplicates</title><link>https://blog.timac.org/2017/0415-facebook-app-for-ios-v-88-0-cleans-up-duplicates/</link><pubDate>Sat, 15 Apr 2017 06:37:08 +0000</pubDate><guid>https://blog.timac.org/2017/0415-facebook-app-for-ios-v-88-0-cleans-up-duplicates/</guid><description>&lt;p>This post follows up the &lt;a href="https://blog.timac.org/2017/0410-analysis-of-the-facebook-app-for-ios-v-87-0">Analysis of the Facebook.app for iOS [v. 87.0]&lt;/a>.&lt;/p></description></item><item><title>Analysis of the Facebook.app for iOS [v. 87.0]</title><link>https://blog.timac.org/2017/0410-analysis-of-the-facebook-app-for-ios-v-87-0/</link><pubDate>Mon, 10 Apr 2017 05:56:24 +0000</pubDate><guid>https://blog.timac.org/2017/0410-analysis-of-the-facebook-app-for-ios-v-87-0/</guid><description>&lt;p>In this article, I analyze the version 87.0 of the Facebook.app for iOS.&lt;/p></description></item><item><title>Deobfuscating libMobileGestalt keys</title><link>https://blog.timac.org/2017/0124-deobfuscating-libmobilegestalt-keys/</link><pubDate>Tue, 24 Jan 2017 19:36:48 +0000</pubDate><guid>https://blog.timac.org/2017/0124-deobfuscating-libmobilegestalt-keys/</guid><description>&lt;p>&lt;code>/usr/lib/libMobileGestalt.dylib&lt;/code> is a private library which provides an API to retrieve the capabilities of the iOS device, as well as some runtime information: system version, build version, device type, current status of the airplane mode, &amp;hellip;&lt;/p></description></item><item><title>mach_portal: Improve amfid patch to support fat binaries</title><link>https://blog.timac.org/2016/1221-mach_portal-improve-amfid-patch-to-support-fat-binaries/</link><pubDate>Wed, 21 Dec 2016 19:27:01 +0000</pubDate><guid>https://blog.timac.org/2016/1221-mach_portal-improve-amfid-patch-to-support-fat-binaries/</guid><description>&lt;p>Ian Beer did an incredible work with his iOS 10.1.1 exploit. The &lt;code>mach_portal&lt;/code> proof of concept gives you a root shell on iOS 10.1.1. You can read more about it here:&lt;/p>
&lt;p>&lt;a href="https://bugs.chromium.org/p/project-zero/issues/detail?id=965">https://bugs.chromium.org/p/project-zero/issues/detail?id=965&lt;/a>&lt;/p>
&lt;p>While playing with it, I discovered that the amfid patch was only supporting thin arm64 binaries. I did not find a fix online so here is my solution.&lt;/p></description></item><item><title>Testing if an arbitrary pointer is a valid Objective-C object</title><link>https://blog.timac.org/2016/1124-testing-if-an-arbitrary-pointer-is-a-valid-objective-c-object/</link><pubDate>Thu, 24 Nov 2016 19:48:38 +0000</pubDate><guid>https://blog.timac.org/2016/1124-testing-if-an-arbitrary-pointer-is-a-valid-objective-c-object/</guid><description>&lt;p>Let&amp;rsquo;s say you pick a random pointer. Can we know if it points to a valid Objective-C object? Of course without crashing&amp;hellip; Well there is no simple solution. In this post I give a solution for 64-bit architectures. The code provided has only been tested on macOS 10.12.1 and iOS 10.1.1 with the modern Objective-C runtime.&lt;/p></description></item><item><title>Apple’s use of Swift in iOS 10.1 and macOS 10.12</title><link>https://blog.timac.org/2016/1101-apples-use-of-swift-in-ios-10-1-and-macos-10-12/</link><pubDate>Tue, 01 Nov 2016 19:07:41 +0000</pubDate><guid>https://blog.timac.org/2016/1101-apples-use-of-swift-in-ios-10-1-and-macos-10-12/</guid><description>&lt;p>Swift has been announced at the WWDC 2014, more than 2 years ago. Most of the sample code projects from Apple are now written in Swift. But does Apple use Swift in iOS 10.1 and macOS 10.12.1?&lt;/p></description></item><item><title>Analysis of the Facebook.app for iOS</title><link>https://blog.timac.org/2016/1018-analysis-of-the-facebook-app-for-ios/</link><pubDate>Tue, 18 Oct 2016 19:27:50 +0000</pubDate><guid>https://blog.timac.org/2016/1018-analysis-of-the-facebook-app-for-ios/</guid><description>&lt;p>Did you ever wonder why the Facebook.app for iOS is such a big download? This post tries to give some answers. The version 66.0 (released on 7 October 2016) was analyzed on an iPad Air 2 (64-bit).&lt;/p></description></item><item><title>Accessing the Temperature Unit setting in iOS 10</title><link>https://blog.timac.org/2016/0926-accessing-temperature-unit-setting-in-ios-10/</link><pubDate>Mon, 26 Sep 2016 18:28:04 +0000</pubDate><guid>https://blog.timac.org/2016/0926-accessing-temperature-unit-setting-in-ios-10/</guid><description>&lt;p>In iOS 10 Apple added a new dedicated setting for Temperature Unit in the Settings.app under &lt;code>General &amp;gt; Language &amp;amp; Region &amp;gt; Temperature Unit&lt;/code> . It lets you switch your preferred unit between Fahrenheit and Celsius:&lt;/p></description></item><item><title>Dump decrypted mach-o apps</title><link>https://blog.timac.org/2016/0804-dump-decrypted-mach-o-files/</link><pubDate>Thu, 04 Aug 2016 20:22:04 +0000</pubDate><guid>https://blog.timac.org/2016/0804-dump-decrypted-mach-o-files/</guid><description>&lt;p>In a previous post &lt;a href="https://blog.timac.org/2016/0723-cryptedhelloworld-app-with-encrypted-mach-o-sections">CryptedHelloWorld: App with encrypted mach-o sections&lt;/a>, I created a simple macOS app &lt;code>CryptedHelloWorld&lt;/code> with its &lt;code>(__TEXT, __text)&lt;/code> section encrypted. The section is decrypted by a &lt;a href="https://blog.timac.org/2016/0716-constructor-and-destructor-attributes">constructor function&lt;/a>.&lt;/p>
&lt;p>This post explains how to dump the decrypted app. A common way is to attach the app with a debugger (GDB, LLDB) and manually dump the decrypted memory to disk.&lt;/p></description></item><item><title>Mail.app plugin compatibility for macOS Sierra (10.12)</title><link>https://blog.timac.org/2016/0727-mail-app-plugin-compatibility-for-macos-sierra-10-12/</link><pubDate>Wed, 27 Jul 2016 20:05:14 +0000</pubDate><guid>https://blog.timac.org/2016/0727-mail-app-plugin-compatibility-for-macos-sierra-10-12/</guid><description>&lt;p>Mail.app in macOS 10.11 and earlier used to check the plugins compatibility using the &lt;code>SupportedPluginCompatibilityUUIDs&lt;/code> key in the plugin&amp;rsquo;s Info.plist. For example a Mail plugin would only be compatible with macOS 10.11.6 if its Info.plist contained the following:&lt;/p></description></item><item><title>CryptedHelloWorld: App with encrypted mach-o sections</title><link>https://blog.timac.org/2016/0723-cryptedhelloworld-app-with-encrypted-mach-o-sections/</link><pubDate>Sat, 23 Jul 2016 11:09:03 +0000</pubDate><guid>https://blog.timac.org/2016/0723-cryptedhelloworld-app-with-encrypted-mach-o-sections/</guid><description>&lt;p>In a previous post ( &lt;a href="https://blog.timac.org/2016/0716-constructor-and-destructor-attributes">constructor and destructor attributes&lt;/a> ), I described the constructor attribute and mentioned software protection as a possible use case:&lt;/p>
&lt;blockquote>
&lt;p>A constructor attribute could be used to implement a software protection. You could encrypt your executable with a custom encryption and use a constructor function to decrypt the binary just before it is loaded.&lt;/p>
&lt;/blockquote>
&lt;p>In this post I describe such a protection with an example.&lt;/p></description></item><item><title>constructor and destructor attributes</title><link>https://blog.timac.org/2016/0716-constructor-and-destructor-attributes/</link><pubDate>Sat, 16 Jul 2016 18:55:40 +0000</pubDate><guid>https://blog.timac.org/2016/0716-constructor-and-destructor-attributes/</guid><description>&lt;p>GCC (and Clang) supports constructor and destructor attributes:&lt;/p>
&lt;pre>&lt;code class="language-bash">__attribute__((constructor))
__attribute__((destructor))
&lt;/code>&lt;/pre></description></item><item><title>Blowfish operations with key size longer than 448 bits in macOS 10.11.5 / iOS 9.3.2</title><link>https://blog.timac.org/2016/0710-blowfish-operations-with-key-size-longer-than-448-bits-in-macos-10-11-5-ios-9-3-2/</link><pubDate>Sun, 10 Jul 2016 11:10:15 +0000</pubDate><guid>https://blog.timac.org/2016/0710-blowfish-operations-with-key-size-longer-than-448-bits-in-macos-10-11-5-ios-9-3-2/</guid><description>&lt;p>Until macOS 10.11.4 and iOS 9.3.1 CommonCrypto/corecrypto supported Blowfish operations with key sizes longer than 448 bits. Starting with macOS 10.11.5 and iOS 9.3.2 this is no longer the case: the minimum and maximum key sizes are now enforced (respectively &lt;code>kCCKeySizeMinBlowfish&lt;/code> 8 bytes and &lt;code>kCCKeySizeMaxBlowfish&lt;/code> 56 bytes).&lt;/p></description></item><item><title>State Preservation and Restoration Debug Logs</title><link>https://blog.timac.org/2016/0708-state-preservation-and-restoration-debug-logs/</link><pubDate>Fri, 08 Jul 2016 20:08:34 +0000</pubDate><guid>https://blog.timac.org/2016/0708-state-preservation-and-restoration-debug-logs/</guid><description>&lt;p>The State Preservation and Restoration system is well documented here: &lt;a href="https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforImplementingYourApp/StrategiesforImplementingYourApp.html#//apple_ref/doc/uid/TP40007072-CH5-SW2">Preserving Your App’s Visual Appearance Across Launches&lt;/a>.&lt;/p>
&lt;p>But what is not well known is that there is a secret preference to enable debug logs.&lt;/p></description></item><item><title>Identifying the type of build (Build, Archive) at compile time in Xcode</title><link>https://blog.timac.org/2016/0623-identifying-the-type-of-build-build-archive-at-compile-time-in-xcode/</link><pubDate>Thu, 23 Jun 2016 19:23:31 +0000</pubDate><guid>https://blog.timac.org/2016/0623-identifying-the-type-of-build-build-archive-at-compile-time-in-xcode/</guid><description>&lt;p>Let&amp;rsquo;s say you want to have a different behavior in your app depending on whether you build it in Xcode or you perform an Archive. And you want this behavior to be done at compile time. Note that the use of different configurations is not what is wanted.&lt;/p></description></item><item><title>Programmatically lock the screen</title><link>https://blog.timac.org/2016/0605-programmatically-lock-the-screen/</link><pubDate>Sun, 05 Jun 2016 20:09:25 +0000</pubDate><guid>https://blog.timac.org/2016/0605-programmatically-lock-the-screen/</guid><description>&lt;p>This article proposes a technic to programmatically lock the screen.&lt;/p></description></item><item><title>Disable swipe to delete in Mail.app on OS X 10.11</title><link>https://blog.timac.org/2016/0510-disable-swipe-to-delete-in-mail-app-on-os-x-10-11/</link><pubDate>Tue, 10 May 2016 19:04:34 +0000</pubDate><guid>https://blog.timac.org/2016/0510-disable-swipe-to-delete-in-mail-app-on-os-x-10-11/</guid><description>&lt;p>OS X 10.11 &amp;lsquo;El Capitan&amp;rsquo; added a new feature to Mail.app &lt;code>Swipe to manage your inbox&lt;/code>:&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Swipe to manage your inbox.&lt;/strong>&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Now you can take care of your email with a swipe, just like on your iOS devices. Need to triage your inbox? Swipe right to mark an email as read or unread, or swipe left to delete. You’ll be focused on what’s important in no time.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="MailSwipeToDelete.png" alt="Swipe To Delete">&lt;/p>
&lt;p>I find this new feature extremely annoying as I keep triggering it by accident. Sadly it seems that there is no preference (even secret preference) to disable this feature. But the good news is that Mail.app supports plugins.&lt;/p></description></item><item><title>Checking if Reduced Motion is enabled on iOS 7</title><link>https://blog.timac.org/2014/0520-checking-if-reduced-motion-is-enabled-on-ios-7/</link><pubDate>Tue, 20 May 2014 20:04:05 +0000</pubDate><guid>https://blog.timac.org/2014/0520-checking-if-reduced-motion-is-enabled-on-ios-7/</guid><description>&lt;p>Apple introduced in iOS 7.0.3 a setting to reduce motion ( &lt;a href="http://support.apple.com/kb/HT5595">http://support.apple.com/kb/HT5595&lt;/a> ) : Settings -&amp;gt; General -&amp;gt; Accessibility -&amp;gt; Reduce Motion&lt;/p>
&lt;p>&lt;img src="ReducedMotion.png" alt="Reduced Motion Setting">&lt;/p>
&lt;p>Sadly there is no public API to know if the user enabled &amp;ldquo;Reduce motion&amp;rdquo;.&lt;/p></description></item><item><title>QuickLook plugin to preview .strings files</title><link>https://blog.timac.org/2014/0325-quicklook-plugin-to-preview-strings-files/</link><pubDate>Tue, 25 Mar 2014 20:51:38 +0000</pubDate><guid>https://blog.timac.org/2014/0325-quicklook-plugin-to-preview-strings-files/</guid><description>&lt;p>OS X and iOS use .strings files for localized text strings as described in the &lt;a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/LoadingResources/Strings/Strings.html#//apple_ref/doc/uid/10000051i-CH6%22">String Resources Documentation&lt;/a>:&lt;/p></description></item><item><title>Detecting the iOS device hardware architecture (32-bit/64-bit)</title><link>https://blog.timac.org/2013/1009-detecting-the-ios-device-hardware-architecture-32-bit64-bit/</link><pubDate>Wed, 09 Oct 2013 19:03:30 +0000</pubDate><guid>https://blog.timac.org/2013/1009-detecting-the-ios-device-hardware-architecture-32-bit64-bit/</guid><description>&lt;p>In a previous post I explained &lt;a href="https://blog.timac.org/2013/1001-detecting-if-an-app-runs-in-a-32-bit-or-64-bit-ios-simulator">how to detect if an app runs in a 32-bit or 64-bit iOS Simulator&lt;/a>. It was not explaining how to detect if an iOS app runs on a 32-bit or 64-bit iOS device. This post aims at giving a generic method that can detect all cases:&lt;/p></description></item><item><title>Detecting if an app runs in a 32-bit or 64-bit iOS Simulator</title><link>https://blog.timac.org/2013/1001-detecting-if-an-app-runs-in-a-32-bit-or-64-bit-ios-simulator/</link><pubDate>Tue, 01 Oct 2013 18:52:23 +0000</pubDate><guid>https://blog.timac.org/2013/1001-detecting-if-an-app-runs-in-a-32-bit-or-64-bit-ios-simulator/</guid><description>&lt;p>With Xcode 5, it is now possible to compile an application for armv7 and/or arm64.&lt;/p>
&lt;p>You can compile an application as 32-bit and/or as 64-bit and you can run this application in a 32-bit or 64-bit iOS Simulator:&lt;/p></description></item><item><title>Using AddressSanitizer with Xcode 4.6.1</title><link>https://blog.timac.org/2013/0410-using-addresssanitizer-with-xcode-4-6-1/</link><pubDate>Wed, 10 Apr 2013 18:51:12 +0000</pubDate><guid>https://blog.timac.org/2013/0410-using-addresssanitizer-with-xcode-4-6-1/</guid><description>&lt;p>Clang 3.3 now supports AddressSanitizer. Here is the description from the &lt;a href="http://clang.llvm.org/docs/AddressSanitizer.html">Clang 3.3 documentation&lt;/a>:&lt;/p></description></item><item><title>Simple code injection using DYLD_INSERT_LIBRARIES</title><link>https://blog.timac.org/2012/1218-simple-code-injection-using-dyld_insert_libraries/</link><pubDate>Tue, 18 Dec 2012 17:25:28 +0000</pubDate><guid>https://blog.timac.org/2012/1218-simple-code-injection-using-dyld_insert_libraries/</guid><description>&lt;p>In the following article I will describe a simple method to inject code into executables on Mac OS X 10.8 using the DYLD_INSERT_LIBRARIES environment variable.&lt;/p></description></item><item><title>Marre d’être inscrit aux newsletters car sur les listes électorales consulaires ?</title><link>https://blog.timac.org/2012/0330-marre-detre-inscrit-aux-newsletters-car-sur-les-listes-electorales-consulaires/</link><pubDate>Fri, 30 Mar 2012 10:34:34 +0000</pubDate><guid>https://blog.timac.org/2012/0330-marre-detre-inscrit-aux-newsletters-car-sur-les-listes-electorales-consulaires/</guid><description>&lt;p>Vous aussi vous êtes inscrit sur les listes électorales consulaires et vous en avez marre d&amp;rsquo;être inscrit, sans votre accord, aux newsletters de tous les candidats et partis ?&lt;/p></description></item><item><title>StuffIt ContextualMenu for MacOSX 10.6</title><link>https://blog.timac.org/2010/0921-stuffit-contextualmenu-for-macosx-10-6/</link><pubDate>Tue, 21 Sep 2010 07:21:59 +0000</pubDate><guid>https://blog.timac.org/2010/0921-stuffit-contextualmenu-for-macosx-10-6/</guid><description>&lt;p>&lt;a href="http://www.smithmicro.com/">Smith Micro Software&lt;/a> released &lt;a href="http://www.stuffit.com/mac-deluxe.html">StuffIt Deluxe® 2011&lt;/a> this week. If you don&amp;rsquo;t know StuffIt Deluxe®, it is described like this:&lt;/p>
&lt;blockquote>
&lt;p>The StuffIt Deluxe® package gives you all the features you need to backup, share, archive, encrypt and shrink your photos, music, and other documents without compromising quality. StuffIt&amp;rsquo;s advanced technology specializes in the compression of MP3, PDF and graphics files with no quality loss. Shrink documents up to 98% of their original size. Use StuffIt to free-up space on your computer and to fit more compressed files onto CD/DVDs or other drives.&lt;/p>
&lt;/blockquote></description></item><item><title>Implementing a Service on 10.6</title><link>https://blog.timac.org/2010/0727-implementing-a-service-on-10-6/</link><pubDate>Tue, 27 Jul 2010 08:11:03 +0000</pubDate><guid>https://blog.timac.org/2010/0727-implementing-a-service-on-10-6/</guid><description>&lt;p>In this post I talk on how to write a Service for MacOS X 10.6. If you don&amp;rsquo;t know what is a Service, Apple describes it here &lt;a href="http://www.apple.com/macosx/refinements/">http://www.apple.com/macosx/refinements/&lt;/a>:&lt;/p></description></item><item><title>Cornichon</title><link>https://blog.timac.org/2010/0317-cornichon/</link><pubDate>Wed, 17 Mar 2010 06:26:59 +0000</pubDate><guid>https://blog.timac.org/2010/0317-cornichon/</guid><description>&lt;p>Cornichon is a powerful tool you can use to dynamically profile Mac OS X applications on the system and track the process&amp;rsquo; performance over time.&lt;/p></description></item><item><title>Determining the running kernel mode on 10.6</title><link>https://blog.timac.org/2010/0306-determining-the-running-kernel-mode-on-10-6/</link><pubDate>Sat, 06 Mar 2010 10:21:25 +0000</pubDate><guid>https://blog.timac.org/2010/0306-determining-the-running-kernel-mode-on-10-6/</guid><description>&lt;p>It might be useful in some cases to know if the MacOS kernel is running in the 32-bit or 64-bit (K64) mode. This is useful for example if you write an application like &amp;lsquo;System Profiler&amp;rsquo; that displays the details of the currently running system:&lt;/p></description></item><item><title>‘Open in 32-bit mode’ – ‘Open using Rosetta’</title><link>https://blog.timac.org/2010/0130-open-in-32-bit-mode-open-using-rosetta/</link><pubDate>Sat, 30 Jan 2010 15:03:18 +0000</pubDate><guid>https://blog.timac.org/2010/0130-open-in-32-bit-mode-open-using-rosetta/</guid><description>&lt;p>As you know, it is possible to force an &lt;a href="http://developer.apple.com/legacy/mac/library/documentation/MacOSX/Conceptual/universal_binary/">Universal Binary&lt;/a> (ppc, i386, x86_64) to run in 32-bit mode (i386) even if the machine could run x86_64 binaries.&lt;/p></description></item><item><title>PICT support in 64-bit app</title><link>https://blog.timac.org/2010/0120-pict-support-in-64-bit-app/</link><pubDate>Wed, 20 Jan 2010 08:16:04 +0000</pubDate><guid>https://blog.timac.org/2010/0120-pict-support-in-64-bit-app/</guid><description>&lt;p>&lt;a href="http://developer.apple.com/legacy/mac/library/documentation/Carbon/Reference/QuickDraw_Ref/">QuickDraw&lt;/a> &lt;em>is the legacy 2D drawing engine for Macintosh computers&lt;/em> and was deprecated in Tiger (10.4) but is still available for 32-bit applications on 10.4, 10.5 and 10.6. 64-bit applications can&amp;rsquo;t use QuickDraw yet and Apple recommends to switch to other technologies like Quartz 2D.&lt;/p></description></item><item><title>Intel 64-bit summary</title><link>https://blog.timac.org/2010/0108-intel-64-bit-summary/</link><pubDate>Fri, 08 Jan 2010 21:03:46 +0000</pubDate><guid>https://blog.timac.org/2010/0108-intel-64-bit-summary/</guid><description>&lt;p>Since people are confused regarding Intel 64-bit, here is a brief summary of what can run on which Intel processor.&lt;/p></description></item><item><title>Enigme d’Einstein et erreur de traduction</title><link>https://blog.timac.org/2010/0103-enigme-deinstein-et-erreur-de-traduction/</link><pubDate>Sun, 03 Jan 2010 11:12:58 +0000</pubDate><guid>https://blog.timac.org/2010/0103-enigme-deinstein-et-erreur-de-traduction/</guid><description>&lt;p>&lt;em>This post is written in french and talks about a bad translation in the &amp;ldquo;Einstein&amp;rsquo;s Puzzle&amp;rdquo;.&lt;/em>&lt;/p>
&lt;p>L&amp;rsquo;énigme d&amp;rsquo;Einstein (aussi connue sous le nom de &amp;ldquo;l&amp;rsquo;énigme des 5 x 5&amp;rdquo;) est un jeu de logique. Son nom vient du fait qu&amp;rsquo;il aurait été inventé par Albert Einstein alors qu&amp;rsquo;il était enfant. Cependant ce jeu est aussi parfois attribué à Charles Lutwidge Dodgson.&lt;/p></description></item><item><title>Embedded computers in aircrafts</title><link>https://blog.timac.org/2009/0927-embedded-computers-in-aircrafts/</link><pubDate>Sun, 27 Sep 2009 16:24:40 +0000</pubDate><guid>https://blog.timac.org/2009/0927-embedded-computers-in-aircrafts/</guid><description>&lt;p>I am back from vacations and had a 11 hours flight with &lt;a href="http://www.air-austral.com/">AirAustral&lt;/a>. On board each seat has an embedded computer. With this computer, you can watch movies, play games, &amp;hellip;&lt;/p></description></item><item><title>Automatic Backtraces</title><link>https://blog.timac.org/2009/0906-automatic-backtraces/</link><pubDate>Sun, 06 Sep 2009 16:21:06 +0000</pubDate><guid>https://blog.timac.org/2009/0906-automatic-backtraces/</guid><description>&lt;p>Here are different solutions to display automatically a backtrace when entering a specific function in your application. As an example we will take the following program. It&amp;rsquo;s a really simple program: the main function calls the function &lt;code>function1&lt;/code> which prints a string.&lt;/p></description></item><item><title>getrlimit and randomness</title><link>https://blog.timac.org/2009/0806-getrlimit-and-randomness/</link><pubDate>Thu, 06 Aug 2009 19:50:56 +0000</pubDate><guid>https://blog.timac.org/2009/0806-getrlimit-and-randomness/</guid><description>&lt;p>To determine the maximum number of files your application can open, there is a function getrlimit() available.&lt;/p></description></item><item><title>Finder – No Comment</title><link>https://blog.timac.org/2009/0527-finder-no-comment/</link><pubDate>Wed, 27 May 2009 13:27:17 +0000</pubDate><guid>https://blog.timac.org/2009/0527-finder-no-comment/</guid><description>Really?</description></item><item><title>‘newMovieDontInteractWithUser’ flag</title><link>https://blog.timac.org/2009/0214-newmoviedontinteractwithuser-flag/</link><pubDate>Sat, 14 Feb 2009 10:52:20 +0000</pubDate><guid>https://blog.timac.org/2009/0214-newmoviedontinteractwithuser-flag/</guid><description>&lt;p>Some QuickTime functions take a &amp;lsquo;short flags&amp;rsquo; as parameter, for example &lt;code>NewMovieFromHandle&lt;/code> or &lt;code>NewMovieFromDataRef&lt;/code>:&lt;/p></description></item><item><title>Major issue in SimplePing</title><link>https://blog.timac.org/2008/1120-major-issue-in-simpleping/</link><pubDate>Thu, 20 Nov 2008 08:25:20 +0000</pubDate><guid>https://blog.timac.org/2008/1120-major-issue-in-simpleping/</guid><description>&lt;p>The &lt;a href="http://beta.devworld.apple.com/samplecode/SimplePing/listing3.html">SimplePing sample&lt;/a> from Apple can fail to perform a ping request (ICMP).&lt;/p></description></item><item><title>Programmatically break into GDB</title><link>https://blog.timac.org/2008/0824-programmatically-break-into-gdb/</link><pubDate>Sun, 24 Aug 2008 20:42:41 +0000</pubDate><guid>https://blog.timac.org/2008/0824-programmatically-break-into-gdb/</guid><description>&lt;p>You may want to stop into the debugger if something bad happened while executing your program. The easier way to do that is to have a breakpoint always set and to run your program in the debugger.&lt;/p>
&lt;p>But sometimes you want to break even if there are no breakpoint. For example you know that something is wrong now and your program will crash later.&lt;/p></description></item><item><title>Breakpoint conditions with GDB</title><link>https://blog.timac.org/2008/0808-breakpoint-conditions-with-gdb/</link><pubDate>Fri, 08 Aug 2008 07:13:48 +0000</pubDate><guid>https://blog.timac.org/2008/0808-breakpoint-conditions-with-gdb/</guid><description>&lt;p>When debugging your application, you use breakpoints. The program will return control to GDB every time it reaches a breakpoint you set. This may not be desirable if you have breakpoint on a method that is called many times and you want to break only with certain values passed to that method. GDB provides several ways to do conditional breakpoints that I&amp;rsquo;ll try to explain.&lt;/p></description></item><item><title>Ignoring a SSL certificate when using a webserver</title><link>https://blog.timac.org/2008/0723-ignoring-a-ssl-certificate-when-using-a-webserver/</link><pubDate>Wed, 23 Jul 2008 19:14:07 +0000</pubDate><guid>https://blog.timac.org/2008/0723-ignoring-a-ssl-certificate-when-using-a-webserver/</guid><description>&lt;p>What happens when you try to connect to an HTTPS webserver which has an invalid SSL certificate? For example when the hostname of the website is not the same as the one in the SSL certificate.&lt;/p></description></item><item><title>libMallocDebug</title><link>https://blog.timac.org/2008/0719-libmallocdebug/</link><pubDate>Sat, 19 Jul 2008 16:39:20 +0000</pubDate><guid>https://blog.timac.org/2008/0719-libmallocdebug/</guid><description>&lt;p>Here is a little description on how to use libMallocDebug for developers and QA people. It seems not many people know about it.&lt;/p></description></item></channel></rss>