JavaScript → Декораторы в JavaScript из песочницы
С давних времён использую декораторы в JavaScript. Недавно увидел хабротопик про примеси, который натолкнул меня на мысль поделиться собственным опытом, ибо технологии немного похожие.
Реализации, предлагаемые по первым ссылкам в Google, работают не тем образом, как это работает в Python. Во многих статьях предлагается создать объект, заполнить его поля функциями и осуществлять вызовы отдекорированных через эти поля.
На первой странице есть несколько ссылок, где используются методы, сходные с моими,
Есть ещё много реализаций, но они мне неинтересны.
Расскажу наиболее правильную с моей точки зрения.
Итак, что такое декоратор?
Декоратор, это функция, которая добавляет функции-аргументу функционала.
Что меня не устраивает в известных реализациях?
Реализации, предлагаемые по первым ссылкам в Google, работают не тем образом, как это работает в Python. Во многих статьях предлагается создать объект, заполнить его поля функциями и осуществлять вызовы отдекорированных через эти поля.
На первой странице есть несколько ссылок, где используются методы, сходные с моими,
Есть ещё много реализаций, но они мне неинтересны.
Расскажу наиболее правильную с моей точки зрения.
Нормальный декоратор
Итак, что такое декоратор?
Декоратор, это функция, которая добавляет функции-аргументу функционала.
Алгоритмы → Среднеквадратичное приближение функций из песочницы
На днях нужно было написать программу, вычисляющую среднеквадратичное приближение функции, заданной таблично, по степенному базису — методом наименьших квадратов. Сразу оговорюсь, что тригонометрический базис я не рассматривал и в этой статье его брать не буду. В конце статьи можно найти исходник программы на C#.
JavaScript → Область видимости в JavaScript и «поднятие» переменных и объявлений функций
Вы знаете, какое значение выведет этот код на JavaScript?
var foo = 1;
function bar() {
if (!foo) {
var foo = 10;
}
alert(foo);
}
bar();
Delphi → Использование процедур и функций в Delphi из песочницы
Рано или поздно любому программисту потребляется использовать процедуры и функции. Все мы помним еще с паскаля, что там ничего нет сложного, но некоторые вещи обычно в книжках не описываются, хотя для грамотного составления программы требуется знать.
JavaScript → Пять способов вызвать функцию
Мне часто приходится сталкиваться с JavaScript-кодом, ошибки в котором вызваны неправильным понимаем того, как работают функции в JavaScript (кстати, значительная часть такого кода была написана мной самим). JavaScript — язык мультипарадигменный, и в нем имеются механизмы функционального программирования. Пора изучить эти возможности. В этой статье я расскажу вам о пяти способах вызова функций в JavaScript.
Twitter → Twitter дополнили социальным функционалом

Похоже на то, что руководство сервиса Twitter все же решило его социализировать, то есть сделать больше похожим на социальную сеть. В принципе, и так понятно, что Twitter — социальный ресурс, но раньше акцент все же делался на подписчиков и подписки, а не на общих знакомых и социальные связи в общем. Новый элемент интерфейса, добавленный в Twitter, теперь позволяет видеть, сколько у вас общих подписок и фолловеров с другим пользователем. Для того, чтобы увидеть изменения, достаточно открыть страничку другого твиттерянина, и сразу будет видна новая панелька в правой части.
PHP → Функции наносят ответный удар
В этом топике хочу рассказать о подходе, который эксплуатирую уже несколько лет.
Сразу предупрежу, если Вы истовый фанат ООП, огромных конструкций и монструозных диаграмм классов, не читайте.
Вкратце, суть концепции — это перенос части unix way в программирование на PHP.
А конкретно, концепции простых программ, выполняющих одну функцию.
Сразу предупрежу, если Вы истовый фанат ООП, огромных конструкций и монструозных диаграмм классов, не читайте.
Вкратце, суть концепции — это перенос части unix way в программирование на PHP.
А конкретно, концепции простых программ, выполняющих одну функцию.
Arduino → шпаргалка для Arduino
Решил сделать шпаргалку для Arduino :)
Чаще всего я подглядываю нумерацию выводов и pin mapping. Но решил вывести блоки и с основными функциями ардуино.
Результат под катом.
Чаще всего я подглядываю нумерацию выводов и pin mapping. Но решил вывести блоки и с основными функциями ардуино.
Результат под катом.
JavaScript → Перегрузка функций в JS
Как известно, в Javascript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
Пока пример выглядит не очень страшно, однако интерфейсов может со временем стать заметно больше, тогда функция станет плохочитаема. Посмотрим, что можно с этим сделать.
- // getRectangleArea(x1, y1, x2, y2) или
- // getRectangleArea(width, height)
- function getRectangleArea(x1, y1, x2, y2) {
- if(arguments.length==2) return x1*y1;
- return (x2-x1)*(y2-y1);
- }
* This source code was highlighted with Source Code Highlighter.Пока пример выглядит не очень страшно, однако интерфейсов может со временем стать заметно больше, тогда функция станет плохочитаема. Посмотрим, что можно с этим сделать.
Opera → Старые болезни и новые болячки Oper'ы
Доброго времени суток, дорогие Хабралюди!
Прочитав топик assuri, решил выплеснуть накопившееся. Постараюсь не делать каких-либо громких заявлений, а напишу, то что мне не удобно. Надеюсь найду толику понимая у Вас, %username%.
Прочитав топик assuri, решил выплеснуть накопившееся. Постараюсь не делать каких-либо громких заявлений, а напишу, то что мне не удобно. Надеюсь найду толику понимая у Вас, %username%.