войти зарегистрироваться

Подкасты«Разбор полетов» — episode 7 — Чем заняться в следующем году

После продолжительного новогоднего застоя, c простуженными голосами я и коллега aib представляем вашему вниманию очередной седьмой выпуск популярного в узких кругах, разговорного IT-тематического подкаста «Разбор Полетов».
В этом выпуске:
прослушан 169 раз

Подкасты«Сделайте мне красиво!» Выпуск №34

Вашему вниманию очередной выпуск подкаста о веб-разработке «Сделайте мне красиво!»

Show notes:



Наши ссылки: RSS и лента на rpod.ru
прослушан 120 раз

JavaScriptИтераторы и генераторы на основе функций

Поддержка итераторов и генераторов в качестве языковых конструкций появилась в javascript только в версии 1.7, и об использовании этих чудесных вещей в браузерах еще долго можно будет только мечтать. Однако использовать итераторы и генераторы в виде паттернов проектирования в javascript можно уже сейчас, и более того, делать это достаточно легко, а иногда даже приятно :)

Разработка под Apple iOSО блоках и их использовании в Objective-C часть 3-ая

Так же как и в топике — «О блоках и их использовании в Objective-C часть 2-ая», мы продолжим говорить о преимуществах использования блоков на живых примерах.
Здесь мы рассмотрим удобства использования блоков при управлении последовательностью операций.

5. UIView анимации, последовательность анимаций.

Для начала напишем простенький пример, в котором мы будем двигать кнопку с помощью анимаций(без блоков). Затем поменяем порядок анимаций чтобы посмотреть, какие изменения потребуются в коде.

Разработка под Apple iOSО блоках и их использовании в Objective-C часть 2-ая

Продолжение топика — О блоках и их использовании в Objective-C часть 1-ая.

Многие из тех кто впервые сталкивается с блоками (или замыканиями), задают вопрос — «а зачем? Если и без них можно». Да можно. Но использование блоков имеет не мало преимуществ, и первое из них — существенная экономия на количестве кода, а следовательно и на времени написания и поддержке. Дальше буду говорить примерами.

Содержание:


1. Работа с контейнерами на примере NSArray.
2. Guards на примере UITableView.
3. Использование блоков вместо классов на примере scheduled операций.
4. Блоки вместо делегатов в UIAlertView.
5. UIView анимации, последовательность анимаций.
6. Асинхронные операции и управление ими. Переписываем пример с анимациями.

Разработка под Apple iOSО блоках и их использовании в Objective-C часть 1-ая

В OS X 10.6 и iOS 4.0 компания Apple анонсировала поддержку блоков, по сути являющиx собою замыкания. Дальше о блоках в контексте разработки под IOS, Objective-C (тоесть работа без gc).
Для использования блоков IOS ver. < 4.0 можно применить ESBlockRuntime или PLBlocks.

Кратко о теории


Экземпляр блока, тип блока и сам блоковый литерал обозначаются с помощью оператора ^, пример:

typedef int (^MyBlock)(int);

int multiplier = 7;
MyBlock myBlock = ^(int num) {
 return num * multiplier;
};


* This source code was highlighted with Source Code Highlighter.

или

int multiplier = 7;
int (^myBlock)(int) = ^(int num) {
  return num * multiplier;
};


* This source code was highlighted with Source Code Highlighter.

Вызов блока аналогичен вызову обычной сишной функции. Например, так:

myBlock( 3 )

* This source code was highlighted with Source Code Highlighter.

Главной особенностью блоков является их умение хранить контекст в котором они создавались. В примере выше «myBlock» всегда будет умножать число на 7. Как же это все работает?

Персональные блоги is_callable корректно работает с Closure (PHP 5.3)

is_callable и семейство функций call_user_func correctly нормально работают с замыканиями Closure (PHP 5.3) точно так же как с анонимными функциями.

PHPPHP Compressor Beta

Решил развлечься на выходных и написать вот такой вот небольшой php compressor (и obfuscator).

Основные функции.


Может переименовывать локальные переменные в функциях (включая аргументы), переименовывать функции и удалять лишние пробелы.

Возможные проблемы:

  • Некорректная работа с выражением вида $$a.
  • Возможна неправильная работа с классами (уже исправляю).

С нетерпением жду ваших отзывов!

GoogleОптимизация Javascript с помощью Google Closure Compiler

image
Google открыла исходные коды нескольких инструментов, которые использовались их сотрудниками при разработке таких проектов как Google Docs, Google Maps и GMail.

В числе этих инструментов имеется достаточно интересная штука, называемая Google Closure Compiler. Данная утилита минимизирует и оптимизирует javascript-код, за счет чего он начинает работать и загружаться быстрее.

Персональные блоги Эффектное создание объектов в Perl

Пару раз встречал оригинальные варианты создания объектов в любимом Perl и вздохи по поводу 6-ки, что там все проще, лучше, быстрее и т.п. Однако довольно симпатичные и совершенно безопасные конструкции можно городить и в «народной» пятерке. Используем классический вариант из учебника с замыканиями и горкой перца :)