суббота, 9 апреля 2011 г.

Escape-последовательность в C++

Символьная константа состоит из символа, заключенного в одиночные кавычки (апострофы), как, например, 'х'. Значением символьной константы является численное значение символа в машинном наборе символов (алфавите). Символьные константы считаются данными типа int.
Некоторые неграфические символы, одиночная кавычка ' и обратная косая \, могут быть представлены в соответствие со следующей таблицей escape-последовательностей:
 символ новой строки              NL(LF)        \n
 горизонтальная табуляция         NT            \t
 вертикальная табуляция           VT            \v
 возврат на шаг                   BS            \b
 возврат каретки                  CR            \r
 перевод формата                  FF            \f
 обратная косая                   \             \\
 одиночная кавычка (апостроф)     '             \'
 набор битов                      0ddd          \ddd
 набор битов                      0xddd         \xddd
Escape-последовательность \ddd состоит из обратной косой, за которой следуют 1, 2 или 3 восьмеричных цифры, задающие значение требуемого символа. Специальным случаем такой конструкции является \0 (не следует ни одной цифры), задающая пустой символ NULL. Escape-последовательность \xddd состоит из обратной косой, за которой следуют 1, 2 или 3 шестнадцатеричных цифры, задающие значение требуемого символа. Если следующий за обратной косой символ не является одним из перечисленных, то обратная косая игнорируется. (с)

среда, 6 апреля 2011 г.

Запуск приложения с аргументами в XCode

Если у вас непреодолимое желание, чтобы ваше приложение запускалось с аргументами, например, с аргументом "--kill_them_all", то вам следует сделать это:
Project->Edit Active Executable "..."
В окне настройки выбрать Arguments и добавить нужный аргумент.

воскресенье, 3 апреля 2011 г.

Lua, lua, lua

Исключением в довольно свободном синтаксисе Lua является правило, по которому нельзя переходить на новую строку непосредственно перед символом '(' в вызове функции. Это ограничение позволяет избежать некоторой двусмысленности в языке. Если вы напишите

a = f
(g).x(a)


Lua трактует эту запись как выражение a = f(g).x(a). Поэтому, если вам нужно 2 выражения, вы должны добавить точку с запятой между ними. Если вы действительно хотите вызвать f, вам необходимо убрать переход на новую строку перед (g).


Lua приятный и чистый язык. (c) 
:)

Цитаты разных человеков №2

  • [Плохое] имя метода сродни предвыборным обещаниям политиков. Вроде о чем-то оно говорит, но если задуматься – непонятно о чем @ С. Макконнелл
  • Очень часто люди не знают чего хотят, пока ты не покажешь им это @ Стив Джобс
  • Perl – The only language that looks the same before and after RSA encryption. @ Keith Bostic
  • Всегда выбирайте самый трудный путь — там вы не встретите конкурентов @ Шарль де Голль
  • Руководить – это значит не мешать хорошим людям работат @ Петр Капица
  • При достаточном количестве глаз все ошибки лежат на поверхности @ Линус Торвальдс
  • Две вещи, изменившие миp, были созданы в Беpкли: LSD и Unix. Вряд ли это случайное совпадение @ Jeremy S. Anderson
  • Простота – необходимое условие прекрасного @ Лев Николаевич Толстой
  • Лучше промолчать и показаться дураком, чем раскрыть рот и развеять все сомнения @ Марк Твен

суббота, 2 апреля 2011 г.

Quite Interesting №1

Эзотерические языки программирования +


Хакерская ценность +
Google Scribe, который напишет за тебя книгу +

"Вдохновляющие логотипы со смыслом" +

Смешной язык программирования INTERCAL +
В INTERCAL есть 5 операторов — 2 бинарных и 3 унарных. Впрочем, в некотором смысле все операторы бинарны, поскольку все они оперируют с двоичным представлением аргументов, но эта игра слов уводит нас в сторону от изложения.
Quine в программировании
Компьютерная программа, которая выдаёт на выходе точную копию своего исходного текста.

Препроцессор в XCode

Позволит вам избежать добавления, например, "#define ya bog" в тысячи исходных файлов.
В настройках таргета:
А также:
"If you have multiple targets or projects that use the same prefix file, use Preprocessor Macros Not Used In Precompiled Headers instead, so differences in your macro definition don't trigger an unnecessary extra set of precompiled headers." (c)

среда, 30 марта 2011 г.

Переводы №1 (Назад, к основам)

Перевод интересной статьи Джоэля Спольски о неэффективности применения функций strcat, malloc, об алгоритме маляра Шлемиэля и о том, что не стоит использовать XML для хранения больших объёмов данных.

Кто такой Шлемиэль? Это персонаж из старого анекдота:

Маляр Шлемиэль подрядился красить пунктирные осевые линии на дорогах. В первый день он получил банку краски, поставил её на дорогу, и к концу дня покрасил 300 метров осевой линии. "Отлично!" сказал прораб, "быстро работаешь!" -- и заплатил ему копейку.

На следующий день Шлемиэль покрасил 150 метров. "Мда, это, конечно, не так здорово, как вчера, но приемлемо." -- сказал прораб и заплатил ему копейку.

На следующий день Шлемиэль покрасил 30 метров. "Всего лишь 30!" заорал прораб. "Это никуда не годится! В первый день было в десять раз больше! В чём дело?"

"Ничего не могу поделать," -- говорит Шлемиэль. "Каждый день я ухожу всё дальше и дальше от банки!"


суббота, 26 марта 2011 г.

Цитаты разных человеков

  • Если вы не можете объяснить что-то шестилетнему ребёнку, значит, вы сами этого не понимаете © Эйнштейн
  • Если бы строители возводили здания так, как программисты пишут программы, первый же дятел уничтожил бы мировую цивилизацию © Джеральд Вайнберг
  • Если для понимания того, что происходит, нужно увидеть реализацию, это не абстракция © Ф. Дж. Плоджер
  • Есть два способа разработки проекта приложения: сделать его настолько простым, чтобы было очевидно, что в нём нет недостатков, или сделать его таким сложным, чтобы в нём не было очевидных недостатков © C. A. R. Hoare
  • Работая над проблемой, я никогда не думаю о красоте. Я думаю только о решении проблемы. Но если полученное решение некрасиво, я знаю что оно неверно © R. Buckminister Fuller
  • Интерфейсы классов должны быть полными и минимальными © Scott Meyers
  • Я никогда не встречал человека, желающего читать 17 000 страниц документации, а если бы встретил, то убил бы его, чтобы он не портил генофонд © Джозеф Костелло
  • Требования подобны воде. Опираться на них легче, если они заморожены 
  • Не стоит недооценивать важность метафор. Метафоры имеют одно неоспоримое достоинство: описываемое ими поведение предсказуемо и понятно всем людям. Это сокращает объём ненужной коммуникации, способствует достижению взаимопонимания и ускоряет обучение. По сути метафора - это способ осмысления и абстрагирования концепций, позволяющий думать в более высокой плоскости и избегать низкоуровневых ошибок © Фернандо Дж. Корбати