Подкасты → «Разбор полетов» — episode 7 — Чем заняться в следующем году
После продолжительного новогоднего застоя, c простуженными голосами я и коллега aib представляем вашему вниманию очередной седьмой выпуск популярного в узких кругах, разговорного IT-тематического подкаста «Разбор Полетов».
В этом выпуске:
В этом выпуске:
прослушан 169 раз
Подкасты → «Сделайте мне красиво!» Выпуск №34
Вашему вниманию очередной выпуск подкаста о веб-разработке «Сделайте мне красиво!»
Наши ссылки: RSS и лента на rpod.ru
Show notes:
- О node.js по-русски
- Список полезных ресурсов про node.js
- Современная, в духе микроблогинга, инкарнация ZenGarden
- Пара слов про closure
- Немножко новостей : kratko.js и pdf.js
- Мозилла о DOM-элементах
- Отличный доклад про анимацию (transitions, svg..)
Наши ссылки: 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. Асинхронные операции и управление ими. Переписываем пример с анимациями.
Многие из тех кто впервые сталкивается с блоками (или замыканиями), задают вопрос — «а зачем? Если и без них можно». Да можно. Но использование блоков имеет не мало преимуществ, и первое из них — существенная экономия на количестве кода, а следовательно и на времени написания и поддержке. Дальше буду говорить примерами.
Содержание:
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.
Экземпляр блока, тип блока и сам блоковый литерал обозначаются с помощью оператора ^, пример:
или
Вызов блока аналогичен вызову обычной сишной функции. Например, так:
Главной особенностью блоков является их умение хранить контекст в котором они создавались. В примере выше «myBlock» всегда будет умножать число на 7. Как же это все работает?
Для использования блоков 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) точно так же как с анонимными функциями.
PHP → PHP Compressor Beta
Решил развлечься на выходных и написать вот такой вот небольшой php compressor (и obfuscator).
Может переименовывать локальные переменные в функциях (включая аргументы), переименовывать функции и удалять лишние пробелы.
С нетерпением жду ваших отзывов!
Основные функции.
Может переименовывать локальные переменные в функциях (включая аргументы), переименовывать функции и удалять лишние пробелы.
Возможные проблемы:
- Некорректная работа с выражением вида $$a.
- Возможна неправильная работа с классами (уже исправляю).
С нетерпением жду ваших отзывов!
Google → Оптимизация Javascript с помощью Google Closure Compiler

Google открыла исходные коды нескольких инструментов, которые использовались их сотрудниками при разработке таких проектов как Google Docs, Google Maps и GMail.
В числе этих инструментов имеется достаточно интересная штука, называемая Google Closure Compiler. Данная утилита минимизирует и оптимизирует javascript-код, за счет чего он начинает работать и загружаться быстрее.
Персональные блоги → Эффектное создание объектов в Perl
Пару раз встречал оригинальные варианты создания объектов в любимом Perl и вздохи по поводу 6-ки, что там все проще, лучше, быстрее и т.п. Однако довольно симпатичные и совершенно безопасные конструкции можно городить и в «народной» пятерке. Используем классический вариант из учебника с замыканиями и горкой перца :)