Как стать автором
Обновить
22
0
Anthony Shoumikhin @shoumikhin

Software Engineer

Отправить сообщение

Юнит-тесты в Cocoa

Время на прочтение5 мин
Количество просмотров11K
Ниже описаны основы использования OCUnit — фреймворка для создания юнит-тестов, интегрированного в Xcode. Чтобы наглядно попробовать описываемые вещи, код можно скачать сразу. Писал до эпохи Xcode 4, поэтому картинки немного устарели.

Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии5

Перенаправление функций в Mach-O библиотеках

Время на прочтение13 мин
Количество просмотров8.7K
В предыдущей статье был описан метод перехвата вызовов для разделяемых библиотек ELF. А сейчас мы посмотрим как сделать то же самое с библиотеками в формате Mach-O.

Вкратце напомню ситуацию. Имеем программу под Mac OS X, которая пользуется множеством сторонних динамически-компонуемых библиотек, которые, в свою очередь, также пользуются функциями друг друга.

Задача следующая: перехватить вызов некоторой функции из одной библиотеки к другой, и в обработчике вызвать оригинал.

Как обычно, нетерпеливые могут все скачать и попробовать прямо сейчас.
Решение и много картинок
Всего голосов 37: ↑32 и ↓5+27
Комментарии14

Пример Makefile

Время на прочтение7 мин
Количество просмотров74K
Написание makefile иногда становится головной болью. Однако, если разобраться, все становится на свои места, и написать мощнейший makefile длиной в 40 строк для сколь угодно большого проекта получается быстро и элегантно.

Внимание! Предполагаются базовые знания утилиты GNU make.
Читать дальше →
Всего голосов 126: ↑118 и ↓8+110
Комментарии59

Objective-C с нуля

Время на прочтение23 мин
Количество просмотров434K
У любого желающего писать программы для продукции фирмы Apple в жизни наступает такой момент, когда ему приходиться изучить новый язык программирования — Objective-C. Когда-то этот счастливый момент постиг и меня. А чтобы лучше запомнить основные особенности этого языка, решил законспектировать свои мысли во время осмысления его документации, которыми и делюсь с вами.
Читать дальше →
Всего голосов 163: ↑155 и ↓8+147
Комментарии61

Перенаправление функций в разделяемых ELF-библиотеках

Время на прочтение22 мин
Количество просмотров34K
Все мы пользуемся динамически-компонуемыми билиотеками. Их возможности поистине великолепны. Во-первых, такая библиотека загружается в физическое адресное пространство только один раз для всех процессов. Во-вторых, можно расширять функционал своей программы, подгружая дополнительную библиотеку, которая и будет этот функционал обеспечивать. И все это без перезапуска самой программы. А еще решается проблема обновлений. Для динамически компонуемой библиотеки можно определить стандартный интерфейс и влиять на функционал и качество своей основной программы, просто меняя версию библиотеки. Такие методы повторного использования кода даже получили название «архитектура plug-in’ов». Но топик не об этом.

Кстати, нетерпеливые могут все скачать и попробовать прямо сейчас.

Осторожно, много текста!
Всего голосов 81: ↑75 и ↓6+69
Комментарии30

Отличия сетевых вызовов Windows и Linux

Время на прочтение4 мин
Количество просмотров21K
image
Во многом совместимые на уровне исходных кодов модели сокетов от Berkeley и Microsoft, на практике оказываются не такими уж кросплатформенными.

Рассмотрим некоторые хитрые различия в их реализации, которые обнаружились при написании кросплатформенного RPC для перенаправления сетевых вызовов некоторого процесса в одной ОС на другую ОС.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Seattle, Washington, США
Зарегистрирован
Активность