Running OS X 10.10 Yosemite’s iTunes in LLDB

iTunes-512x512

With each version of iTunes, Apple tries to prevent people reverse-engineering it, in order to protect some sensitive stuff, involving DRMs, device management, etc. Different levels of protection are used in the iTunes binary, as well as in some private frameworks. Machine code for sensitive procedures is heavily [...]

Apple 1 Replica on Tumblr

a-one

A few updates on the Apple 1 Replica project, as things are getting serious… : ) I recently told my fellow fellow teammates at DigiDNA about my project. They found it awesome, and they kindly proposed me to sponsor it. So we decided to create a dedicated blog on Tumblr, to log everything related to it. My friend Vic [...]

Apple 1 Replica – Project Started

Unknown

Ok, the project finally started, even with the loss of my MacBook Pro, whose motherboard died… I’ve began looking at the original schematics and documentation to identify all components, beginning with the power supply section. For most components, identification is relatively easy. But of course, most of them [...]

Apple 1 Replica Project

a1

Ok, so here’s the next insane project. ^^ As an Apple fan, since the nineties, I’m collecting old Apple hardware. I’ve kept all my old and beloved machines, and purchased some others. The oldest I’ve got is an Apple //e. This machine was available in 1983. Obviously, this takes a lot of space, and [...]

Iconic – A Photographic Tribute

iconic

I received yesterday my copy of the «Iconic» book, by Jonathan Zufi. As the title says, it’s a «photographic tribute to Apple Innovation». The book consists of beautiful pictures of Apple’s hardware, from the Apple 1 to the latest Macs and iPhones/iPads. It’s really amazing. The book is just gorgeous, [...]

Vintage Computer Collection / Computer Nostalgia

apple-IIc-big

I sometimes feel very nostalgic while using my computer. I find it amazing how things changed in a decade. I remember how some people laughed at me, when I was young, because I had a Macintosh and because I couldn’t run the latest PC games… And I remember ignoring them, as I was already in love with those machines, [...]

Coding Style Guide

cgl

I just finished writing the coding style guide for XS-Labs projects. It covers coding conventions for C, C++, Objective-C and x86 assembly. The project is available on GitHub, so feel free to comment or fork the project to adapt it to your needs…

Code optimisations – Optimising memset()

cpu

In my free time, I’m writing an operating system called XEOS. As the system is written mainly in C, I’m also writing a C99 standard library. The last days, I wrote optimised versions of some C99 string functions, like strlen(), strchr() or memset(). This set of functions is usually used intensively in any C [...]

Manual on GitHub

icon_512x512

Back in the days, I released a Mac AppStore application called «Manual». It was a simple GUI front-end for the UNIX manual pages. Marty Turner contacted me on Twitter, because he wanted to know if the app was still available somewhere. As it wasn’t available anymore, he kindly proposed to maintain it. So I put the [...]

Strategies to support the new iOS7 UI

ios7-sdk

Now that Apple has revealed iOS 7, there’s no doubt that iOS developers around the world have a huge work ahead, to support the new user interface. Every iOS major version has many changes in the SDK. New concepts, new classes/frameworks to deal with, obsolete features, etc. So there’s usually always some work [...]

New filesystem security on iOS 7

icon-ios7

A few things caught my attention while analysing the new iOS 7 beta… Usually, when an iOS beta comes out, the first thing I do is to analyse the filesystem, to check for new stuff, like applications, frameworks, system services, changes in the filesystem layout, etc. Back in the days, I developed a tiny iOS app to [...]

WWDC 2013 – So what’s new?

wwdc2013

Well, a bunch of things… Ok, there’s no new iOS device… But I just don’t care. I personally don’t need a 16-core phone, with a 1Gb pixels camera. Do you (except for telling others you’ve got the biggest phone)? First of all, the new OSX Maverick looks awesome, and not only because the [...]

XS-Labs

xs

That’s it! Following my decision to close all eosgarden activities, here’s the new home for my personal OpenSource projects: www.xs-labs.com As said previously, I’ll now focus only on the development of the XEOS Operating System, and related projects. Enjoy!

Spring cleaning

trash

Ok folks, that’s it… A few days ago, I decided to close all my software development activities on my main site, eosgarden.com. It was a tough decision to make, as it implies the discontinuation of all previously published software. But I really needed to stop focusing on the past, and on software I originally developed [...]

Codeine – Diagnostics & Code completion

codeine

Since I announced Codeine, I mainly worked on live code diagnostics and code completion. Live diagnostics are now working well. I modified Codeine’s console area to provide live diagnostics, as well as the output console. The whole stuff now looks like this: On the right, you can select the output console, or the [...]

Announcing Codeine

codeine

I’m very pleased to announce the next software I’m working on: Codeine. Codeine is a full-featured code editor, runner and debugger for OS X, supporting C, C++ and Objective-C. It uses Clang/LLVM as compiler/linker toolchain, as well as for syntax highlighting, live diagnostics and code-completion. I always [...]

Apple vs the World (again)

ios6

iOS 6 is now close to release. Today, Apple made iOS 6 beta 4 available to registered developers. From a developer’s perspective, there’s quite a lot of changes. New APIs, new frameworks, changes in the default UI behavior, better iCloud support (let’s say so), etc. As usual you may say. It’s not [...]

Apple kills the FileSystem App

filesystem

A few month ago, I decided to update my `FileSystem` iPhone app, available on the AppStore since a few years now. The purpose of the App was to let you access (read-only) the complete iOS filesystem, displaying every directory, file, file contents, etc. Just like a Finder on OS X. When I started iOS development back then, [...]

Mac OS X Mountain Lion Screens

MountainLion

Installation Setup – Apple ID (1 of 2) Setup -Apple ID (2 of 2) Setup -iCloud Setup – Find My Mac Setup – Done Desktop Reminders Messages Notes Preferences – Notifications GameCenter X11 Preferences – Security Notifications Open panel – iCloud support Open panel – Local files [...]

Mixing C++ with C/Objective-C

molecule

When working on a software project, you may sometimes have to mix programming languages. It may be because you need to use some specific libraries, because of code portability needs, whatever. When coding a Mac OS X (or iOS) application, you are usually going to use Objective-C as main language. It’s not mandatory, [...]

Warning flags for Clang

bug

Below is the complete list of the warning flags I use with Clang, the C frontend for LLVM. I personally use those flags for all my production code, for C, C++ and Objective-C development. Basically, all warning flags are activated. I had to look at the Clang source code to find all of them. I also created a header file [...]

WebStart 1.3.0

WebStart

Version 1.3.0 of WebStart has just been released. Root directories for websites can now be chosen individually, making it easier to organize your files on your hard disk. The update is available free of charge from the integrated updater. A full installer is also available to download. Version 1.3.0 also includes a 14 days trial period. So just give it a try, I’m sure you won’t regret it! Enjoy!

Little apps on the Mac AppStore

app

I just published two little apps on the Mac AppStore. Both were successfully validated, and are available for purchase. The first one, named «AutoPurge» is a UI agent, placed in the menu bar, that automatically frees unused memory based on a specific user-defined time interval. It’s useful for Macs with low memory [...]

Unix manual pages

manual

I just released a little commercial application on the Mac AppStore. It’s a GUI front-end for the UNIX manual pages. It automatically searches your computer for all available manuals, and displays them in a nice way, ordered by sections. The following features are available: Live search for specific manual pages [...]

WebStart 1.2.0 released

WebStart

Today, I officially released version 1.2.0 of WebStart. This release fixes an annoying bug, introduced since Mac OS X 10.7.2. The virtual hosts were not accessible anymore from a web browser. It also adds support for PHP 5.4.0 (release candidate). Now, four version of PHP are available. Next releases will include custom [...]

Xcode – Build number from SVN

Build

All programs come with a version number, generally composed of a number for the major version, another one for the minor version, and a last one for the maintenance version. It may be also useful to add another number, called the «build» version, identifying more precisely the software’s version. Such a number is [...]

iCloud – Migration from MobileMe

icloud-01

Some screenshots presenting the migration process from a MobileMe account to an iCloud account.

C: const and static keywords

chip

Ok, once and for all, I’ll try to clarify to meaning of the ‘const’ and ‘static’ keywords in C (it applies to Objective-C and C++ too). I’m just tired of questions about this on StackOverflow. Objective-C programmers usually don’t think about C code while coding. I personally think [...]

New job

DigiDNA

I’ve been hired by DigiDNA, a swiss software company, based in Geneva. DigiDNA currently develops software for Mac  OS X, iOS (iPhone & iPad) and Windows. Here’s the current product line: DiskAid DiskAid is a tool for PC and Mac which enables the use of iPhone, iPad or iPod Touch as an external mass [...]

Book selection

book

The Essentials of Computer Organization And Architecture Linda Null, Julia Lobur Thoroughly Revised And Updated, The Essentials Of Computer Organization And Architecture, Second Edition Is A Comprehensive Resource That Addresses All Of The Necessary Organization And Architecture Topics Yet Is Concise Enough To Move Through [...]

GDB – Assembly debugging

skull

Here’s a little GDB trick, if you want to debug your program using assembly output. From a GDB session, type: display /i $pc break main The first line will tell GCC to output the assembly code. The second one will create a breakpoint on the main function. You can of course choose another symbol for the breakpoint. [...]

C – Function call stack on Windows

cables

For the XSFoundation project, I’ve coded an integrated debugger, that signals memory faults. On Mac OS X or Unix-like system, I can use the backtrace() function, from execinfo.h to retrieve a function call stack, when necessary. This way, when a fault occurs, the debugger can show you where the fault occurred. As [...]

The next big thing: XSFoundation

board

Long time since I haven’t posted here. I’m currently coding eosgarden’s next big thing. A project called XSFoundation. It consist of a portable C library. By portable, I mean it can run on POSIX compliant systems, such as Mac OS X, Linux, Unix, as well as Windows. A few time ago, I started an insane [...]

Face Detection on iPhone

FaceDetect

I’ve just released a example iPhone app that uses OpenCV to do face recognition. The OpenCV port for iOS is available on GitHub, as well as the example app. Enjoy!

Migration to GitHub

git

I’ve just migrated all eosgarden’s OpenSource projects from GoogleCode to GitHub. I must say I still prefer SVN over GIT, as a version control system. That said, that’s maybe because I got a strong experience with SVN, and not with GIT. For now, the cool thing about GIT is the local commits. You [...]

CPU 64Bits check

64Bits

I had to make a little Mac OS X application that check if the processor has a 64Bits instruction set or not. I made that for WebStart, as it only run on 64Bits machines, so users can test their own processor before downloading and buying the software. It’s not a great deal, since there are __x86_64__ and __i386__ [...]

WebStart – Mac OS X Lion

WebStart-Install

I just tested WebStart on Mac OS X 10.7 Lion, and it’s working like a charm… Enjoy!

WebStart – What’s next

WebStart

I’m currently working on the next release of WebStart. I plan to integrate support for the DynDNS service. That’s a feature of MAMP pro, and I was asked for such a feature. It will be for version 1.1, free upgrade for those with a 1.0 license code. Next steps will be support for the Trac SCM. I plan to add a [...]

OSX Fat Binaries

exec

Just a little reminder (also to myself)… Mac OS X support a lot of different processor architectures. From PPC to Intel, including ARM (for iOS), all of these with 32 or 64 bits instruction sets. When compiling a C file with GCC under Mac OS X, only the current CPU architecture will be compiled by default. For [...]

Finder Wallpaper

Finder

I guess I just coded enough for this night… So here’s a little wallpaper, for the Mac addicts around here. Remembers me the good old time of Mac OS 8.5, on my iMac G3! Enjoy…

About selling software

esellerate

As a programmer, I do love developing freeware, or OpenSource software. But sometimes, it’s just not an option. When you passed just too many days and nights coding, you’ll certainly think about selling your software. The question is how? Selling a software implies creating a web-shop, with credit-card support, [...]

Mac OS X Lion – Server Side

server

Server Stats Web Server Address Book Alerts Groups Hardware iCal Mail PodCast Profiles Sharing Time Machine Users VPN Wiki

Mac OS X Lion – Screens

Lion

Finder – All My Files Finder -Applications Finder -AirDrop Preferences – Internet Accounts Preferences -Disk Encryption AddressBook iCal iCal DashBoard Mail LaunchPad Expose  

Interview with Apple

Code

The interview is done! Two hours, with a SpringBoard Apps manager, and a GameKit manager, writing C code on a sheet of paper. Linked lists, hash tables, big O notation, search algorithms, bitwise operations… Everything on paper. It’s kinda hard! And I have to say I felt stupid some times… But they said I [...]

MWC – Barcelona

GSMA

Tomorrow morning, I’ll flight to Barcelona. I’ll be there till sunday. I don’t know if I’ll be able to attend the Mobile World Congress, but I’ll try eventually. On Friday, I’ve got a meeting with Apple. Job interview with 3 iOS engineers managers, plus a recruiter. Cross your fingers! [...]

WebStart Light

WebStart-Light

Today, I decided to create a light and free version of WebStart. It will only include Apache 2, MySQL 5.1, and PHP 5.3. Only one virtual host will be available by default (but you can still tweak the configuration files). No log file viewing, no configuration editing, no OpenLDAP, no easy website creation and management, [...]

WebStart installer is ready

WebStart-Install

Today, I ended the development of the WebStart custom installer. I’ve just tested the application on a fresh Mac OS X installation, and everything is working like a charm, out of the box. Now, I just need to finish writing the documentation, for the application and on the website, take a decision for the pricing, and [...]

WebStart announced!

WebStart

Today, I decided to announce WebStart, eosgarden’s major product. No release date has been fixed, but I’m very close to the end of the development. The main purpose of WebStart is to provide you with a workable web and database server. Therefore, it includes the Apache 2 HTTP server (with the PHP scripting [...]

A look at the ARM architecture

cpu

I must say I’m a big fan of the x86 architecture, and Intel processors, especially when writing assembly code. The instruction set on that type of processors is nice, there’s not too much registers… In one word: SISC. At the opposite, I always felt completely stupid with RISC processors. From the PPC [...]

WebStart

WebStart

Here’s a little preview of what’s coming next… WebStart is an webserver control application, including full-featured Apache, MySQL, OpenLDAP servers, as well as a complete development environment for OS X. The application was originally developed on Mac OS X 10.4, so I’m going to update it for 10.6, [...]

About compiler optimizations

G4

I came into some interesting stuff some time ago, while trying to detect performance issues in some ANSI-C software. Sometimes, while coding, it may be difficult to decide whether to use a recursive function or a loop, and if so, what kind of loop. The best example, is the factorial computation. That example is typically [...]

XCode Build Settings

xcode

For the curious, here are the build settings I use and recommend, when using XCode for Mac and iOS applications. Most of them activates the highest possible error reporting level. At first sight, it may seem it’s hard to code with those settings, but it really saves you a lot of time debugging your app. Most of the [...]

FileSystem for iPhone

FS

I’m about to release an iPhone app I created a (very) long time ago. It allows to browse through the whole iPhone file system, displaying files and directories, with infos and previews. I doubt such an app will be validated by the AppStore team, but who knows. I had to re-create the project with the new XCode 4, [...]

Next freeware: Siege GUI

siege

I’m now working on eosgarden’s next freeware: a GUI over the siege webserver load testing and benchmarking tool. Informations about siege can be found here: http://www.joedog.org/ Don’t know yet when this will be released, but stay tuned… : )

Minor updates

sw-update

Some minor updates to the eosgarden’s freeware line. PropEdit has been updated to version 1.0.1: Download page ConsoleGrowl has been updated to version 1.2.2: Download page No new feature. Those new releases contains only minor bugfixes.

Release: ProcessRenicer

AppStore-ScreenShot

Version 1.0 of ProcessRenicer has been released! You can download it from the eosgarden’s website for now, but the app has been submitted to MacUpdate and to the Mac AppStore as well. Enjoy!

Laws of simplicity

Simplicity

I recently read this amazing book by John Maeda, about simplicity. I highly recommend it to anyone, developers and designers. John Maeda is at the exact frontier of both worlds, touching excellence… He present’s what simplicity really is, or sould be, with ten laws to achieve it. The ten laws are: Reduce The [...]

NSLog in ANSI-C

Console

In Objective-C, NSLog is great to debug software. Similar functions can be used in C, with Mac OS X, by using the ASL – Apple System Log – library. ASL consists of routines providing an interface to the Apple System Log facility, which is intended to be a replacement for the SysLog API. It allows client [...]

Xeos: memory allocator & LLVM

Board

Today I’ve written the first lines of code for the Xeos memory allocator. For now, I won’t implement the malloc() set of functions in the C library, because I haven’t implemented the brk and mmap system calls. Doing this would surely be fun, but right now I need to code some other kernel stuff. So I [...]

VPS switch

Server

A few days ago, I received a mail from the swiss hosting company I usually work with. They told me the eosgarden’s website used too much resources on the shared server. O_o The traffic has indeed increased. About 300% more, based on Google analytics stats. A few apps on MacUpdate, a few tweets about the apps, and [...]

Job opportunity at Apple

Apple

Just woke up with a great news today! I’ve been contacted by a recruiter from Apple, asking me to send my resume. Maybe California is not so far away after all! It would be a great experience, both at the technical and human level. Hope to be able to give more news on the next weeks… By the way, the temperature [...]

Looking for a job

Eraser

I’ve now officially quitted my job as a mobile & web CTO. So I’m now looking for a new job, in Mac & iOS development, C / C++ development. If you’re interested, here’s a link to my full resume. Simply send me an email to get in touch!

Process Renicer

ProcessRenicer

Here’s a little preview of eosgarden’s next freeware: ProcessRenicer. Basically, it shows up the active processes, and adds the possibility to change to process nice value. For those who don’t know what the nice value is, here’s the description from Wikipedia: The name “nice” comes from [...]

C – Reverse string search

Letters

I just noticed that there is no strrstr() function in the standard C library. I needed that for a project, using ANSI-C. So I wrote it. Here’s the code, maybe it can be helpfull for someone else… : ) char * strrstr( char * s1, char * s2 ); char * strrstr( char * s1, char * s2 ) { char * ss1; char * sss1; char * [...]

Hello world: introducing eosgarden’s blog

pencil

Welcome to noxeos, the new eosgarden’s blog! I’ll write down here stuff related to the eosgarden’s activities, software development and releases, miscellaneous code related stuff, Mac & iOS development tips, etc. For the curious, the name noxeos comes from the latin word for night (nox) and the greek [...]