JavaScript → Самовызывающийся конструктор Джона Резига и размышление о том, почему это решение не прижилось
Настала пора мысленно вернуться на четыре с небольшим года назад ко блогозаписи «Simple “Class” Instantiation» из блога Джона Резига, прославленного создателя необыкновенно удобной библиотеки jQuery. И вернёмся.Однако же, так как я вовсе не вижу её в результатах поиска на Хабрахабре по слову «Resig», то поневоле приходится думать, что эту полезную блогозапись никто не удосужился перевести (или хотя бы пересказать) за четыре прошедших года — мне придётся, стало быть, самостоятельно пересказать блогозапись Резига прежде, чем я исполню моё главное намерение: поразмыслить вслух, почему же предложенный Резигом способ решения указанной им проблемы так и не сделался общераспространённым. И перескажу. (Сам этот пересказ ужé был бы полезен читателю, даже кабы я к нему ничего от себя не прибавил. А я прибавлю.)
Шестого декабря 2007 года Резиг рассмотрел, что получается, когда в джаваскрипте используется операция «new» для создания объекта (в языках с классами мы сказали бы «экземпляра класса»):
function User(first, last){
this.name = first + " " + last;
}
var user = new User("John", "Resig");
Резиг справедливо подметил, что для начинающих программистов на джаваскрипте не вполне очевидно, что появление «this» в коде функции указывает на то, что перед нами конструктор объекта. (Я от себя в скобках прибавлю: если функция находится в недрах некоторой библиотеки, то это обстоятельство нуждается также и в документировании — а не то пользователь библиотеки не многим будет отличаться от новичка: исходный код с телом функции читают не все, тем более что он нередко применяется в минифицированном, не читаемом виде.)
Поэтому, рассудил Резиг, рано или поздно
var name = "Resig";
var user = User("John", name);
// здесь переменная «user» не определена
// БОЛЕЕ ТОГО: значение «name» теперь ужé не «Resig»!
if ( name == "John Resig" ) {
// фигассе!…
}
Гаджеты. Устройства для гиков → ProtoSnap — интересный «конструктор» для начинающего электронщика

Сайт sparkfun на днях представил интересный проект, ProtoSnap, который представляет собой нечто вроде конструктора для любителей электроники, правда, не для профи, а для новичков. Это обучающий комплект, который позволяет начинающему электронщику практиковаться в создании различных устройств и модулей. По словам разработчиков, такой комплект идеально подходит для студентов, изобретателей, инженеров разного рода. В общем, для всех, кто неравнодушен к электронике, и желает самостоятельно собрать что-нибудь эдакое. В рамках проекта разработано три вида комплектов ProtoSnap.
JavaScript → Создание объектов в Javascript из песочницы
Гибкость Javascript позволяет создавать объекты множеством способов. Но как это нередко случается, разнообразие таит в себе множество подводных камней. Из этой статьи Вы узнаете о том, как разглядеть и обогнуть эти опасные рифы.
Веб-разработка → Апрельские азбучные истины в «Smashing Magazine»
Вот и подходит к концу весенний месяц апрель. За этот месяц в «Smashing Magazine» появились две небезынтересные статьи, полные истин более или менее азбучных. И так как иногда хочется перечитывать и азы, чтобы не упустить из вида и сознания ничего существенного, то я вам эти статьи порекомендую.
«Seven Javascript Things I Wish I Knew Much Earlier In My Career» — статья о том, как сочинять код джаваскриптов, чтобы как можно менее утруждать себя. Вместо конструкторов Object() и Array() использовать краткую запись, вместо условий записывать тернарный оператор«a? b: c», по возможности пользоваться встроенной сортировкою и обработкою вместо своей самописной, применять JSON и делегировать события, и так далее. Всё это — с примерами кода.
«Maps In Modern Web Design: Showcase and Examples» — статья об употреблении географических карт на сайтах. Никакого кода, зато масса красивых иллюстраций картографического и геоинформационного характера с подтекстом: делайте так, и сайт ваш будет красив и удобен.
«Seven Javascript Things I Wish I Knew Much Earlier In My Career» — статья о том, как сочинять код джаваскриптов, чтобы как можно менее утруждать себя. Вместо конструкторов Object() и Array() использовать краткую запись, вместо условий записывать тернарный оператор
«Maps In Modern Web Design: Showcase and Examples» — статья об употреблении географических карт на сайтах. Никакого кода, зато масса красивых иллюстраций картографического и геоинформационного характера с подтекстом: делайте так, и сайт ваш будет красив и удобен.
Вы виделикогда-нибудь, как выглядит карта покрытия 2G на сайте «Билайна» в Краснодарском крае и Адыгее? Уверен: если бы создатели этого сайта читали «Smashing Magazine», то у них бы получилось чуточку лучше. (Я уж не говорю про их же страницу сети 3G, где вообще нельзя ничего понять о покрытии.)
Старое железо → Электронный конструктор (ЭКОН-02 vs Знаток)
Как то разговорились с коллегой по работе об электронных конструкторах, оказалось у него дома на полках пылится Экон-02. В моем детстве такого счастья не было и я очень захотел, чтобы у моего сына был какой то аналог Экон-02.
НЛО прилетело и опубликовало эту надпись здесь.
Социальные сети → Сети. Такие разные конструкторы
Немного больше недели назад на Хабре вышла статья про социальные конструкторы , но в ней почему-то было рассказано только про два из них- Taba и Ning. Почему-то казалось, что таких конструкторов больше, чем два=) А ведь можно еще брать и социальные сети, которые могут выполнять функцию конструктора – тогда их будет гораздо больше, чем два. Проведя некоторое количество времени и вспомнив социальные сети, которые когда-либо видела, получается интересная картина. Все социальные площадки, с помощью которых можно объединить людей вокруг какой-той темы, сделать свое сообщество или группу, в общем, можно условно разделить на три основных блока: 1) потребительские сети 2) корпоративные сети и 3) сети для бизнеса.
Гаджеты. Устройства для гиков → Электрическая машина за $500
Все мы прекрасно помним чудесные разработки многомилионной компании Tesla. Суперкар, в будущем седан.
Но не только в России есть мастера на все руки. Механик на пенсии из Калифорнии Роберт Ландж создал свою электрическую машину за $500.

Но не только в России есть мастера на все руки. Механик на пенсии из Калифорнии Роберт Ландж создал свою электрическую машину за $500.

Железо → Транзистор из человеческих ДНК
Пару лет назад американский биолог Пол Ротмунд обнаружил, что молекулы ДНК обладают способностью к самосборке в различные правильные геометрические формы — треугольники, квадраты, звёздочки и т.д. (работа Ротмунда в PDF). Это действительно интересное открытие (оно вошло в список 12 самых важных научных открытий 2006 года) теоретически позволяет сделать из нашего ДНК нечто вроде конструктора «Лего».

Практическая реализация такой возможности не заставила себя долго ждать.

Практическая реализация такой возможности не заставила себя долго ждать.
C++ → Безопасные конструкторы
A::A(int x) : b(x) {}Или хранить их по ссылке:
A::A(int x) { b = new B(x); }Существует множество «за» и «против» для каждого из подходов, но в этой заметке мне бы хотелось сосредоточиться на вопросах обработки исключений.