Веб-разработка → Google запустила сайт для разработчиков: JavaScript vs. Dart

Google сделала очередной шаг для популяризации языка Dart, который позиционируется поисковым гигантом как замена JavaScript. Компания запустила для разработчиков промо-сайт Dart Synonym, облегчающий сравнение синтаксических конструкций обоих языков, удобно расположив примеры кода в двух столбцах и великодушно поставив JavaScript на первое место. Сами примеры охватывают весьма широкий диапазон: он начинается от объявлений переменных, затрагивает такие темы как работу с массивами, строками, манипуляцию с DOM, и заканчивается объектно-ориентированным программированием, так что сайт, в принципе, может служить быстрым справочником и по Dart и по JavaScript.
Стоит напомнить, что официальная презентация Dart была проведена совсем недавно — 10 октября 2011 года.
[Dart Synonym]
JavaScript → Ненормальный Javascript
В этом топике я хочу рассказать о необычных конструкциях js, а так же на наглядных примерах разобрать некоторые моменты, связанные с объектами и вызовами методов, которые, при использовании нетривиального синтаксиса могут вызывать вопросы у почти всех начинающих использовать js.
Цель топика (и сразу же дисклеймер) — помочь начинающим не впадать в кататонический ступор при виде чего-то вроде
И ещё один дисклеймер. Я ни в коем случае не призываю оформлять исходный код таким образом и даже прошу никогда так не делать. Но, ситуации в жизни бывают разные и, возможно, окажется полезным уметь читать разные монстроидальные конструкции. Врага, как говорится, нужно знать в лицо. Но, тем не менее некоторые ингредиенты этой кашки могут оказаться весьма полезными в определённых ситуациях.
Цель топика (и сразу же дисклеймер) — помочь начинающим не впадать в кататонический ступор при виде чего-то вроде
user[(os[((user.microsoft_adept ? microsoft : apple).system || "linux")].install_carma <= user.carma) ? "install" : "cant_install"](os[((user.microsoft_adept ? microsoft : apple).system || "linux")].name);
И ещё один дисклеймер. Я ни в коем случае не призываю оформлять исходный код таким образом и даже прошу никогда так не делать. Но, ситуации в жизни бывают разные и, возможно, окажется полезным уметь читать разные монстроидальные конструкции. Врага, как говорится, нужно знать в лицо. Но, тем не менее некоторые ингредиенты этой кашки могут оказаться весьма полезными в определённых ситуациях.
Программирование → О вреде синтаксического сахара
О чём речь? Конечно, использование синтаксического сахара не приводит к синтаксическому диабету, но он может мешать вам думать. Это может звучать странно, учитывая, что синтаксический сахар призван облегчить нам жизнь: обернуть в интуитивные обёртки операции над абстракциями, сделать программы легко читаемыми, да и просто симпатичными. Однако, всякий инструмент, который направляет нашу мысль одновременно удерживает её на этом направлении.
UNIX → Подсветка синтаксиса Midnight Commander: добавляем свой синтаксис
Всем хорош exim но его конфигурация не похожа ни на что соответственно и подсветка в нем скучно-серая (см.ниже)и чтобы исправить эту досадную ошибку решено было покопаться в недрах гугла на предмет Midnight commander syntax highlight.
Краткий конспект поисков представлен ниже
Краткий конспект поисков представлен ниже
Веб-разработка → Стандарты синтаксиса шаблонизаторов. Первые шаги
Для затравки и предметного обсуждения нужна точка отсчета. В шаблонизаторе нас интересуют поддерживаемые типы конструкций, способ их обрамления, какие-то возможности (препросмотр без компиляции).
Основные типы конструкций для управления выводом в шаблоне:
Уже этих конструкций с лихвой достаточно, чтобы реализовать большинство проектов. И само собой мы их видим почти в каждом шаблонизаторе, с теми или иными отличиями и особенностями. Но давайте поразмыслим, какие в теории возможности они должны позволять использовать, и как эти реализации должны выглядеть в идеале.
Основные типы конструкций для управления выводом в шаблоне:
- Переменные.
- Условные операторы.
- Операторы циклов.
- Инклуды, блоки.
- Наследование.
Уже этих конструкций с лихвой достаточно, чтобы реализовать большинство проектов. И само собой мы их видим почти в каждом шаблонизаторе, с теми или иными отличиями и особенностями. Но давайте поразмыслим, какие в теории возможности они должны позволять использовать, и как эти реализации должны выглядеть в идеале.
C++ → Синтаксис объявления указателей на функции в С++
Когда я только начинал использовать С++, то всё время забывал синтаксис определения указателей на функции и особенно указателей на функции члены.
Позже узнал об одном небольшом lifehack'e, который помог мне избавиться от того что-бы держать в голове синтаксис определения указателей на ф-ции. Правда чуть позже этот всё само как-то осело у меня в голове и даже стало очевидно.
На днях показывал этот lifehack одному программисту и решил поделиться им здесь.
Позже узнал об одном небольшом lifehack'e, который помог мне избавиться от того что-бы держать в голове синтаксис определения указателей на ф-ции. Правда чуть позже этот всё само как-то осело у меня в голове и даже стало очевидно.
На днях показывал этот lifehack одному программисту и решил поделиться им здесь.
PostgreSQL → Указание Windows путей в выражениях PostgreSQL
Не так уж и много выражений существует в диалекте SQL от Postgres'а, требующих в качестве аргумента путь файловой системы. С ходу могу назвать пару:
- CREATE TABLESPACE…
- CREATE FUNCTION… (в случае динамической загрузки функций на языке C)
Разработка → Идеальный (несуществующий) синтаксис для проверки входных данных
Допустим, мы должны совершить некое действие, если входные данные верны, а если не верны — выдать соответствующие ошибки. Код будет примерно такой:
Работает? Работает. Но это некрасиво — условия повторяются дважды (если добавится еще одно условие, придется переписывать первый if). Что ж, попробуем по-другому:
if ($_POST['agree'] && $_POST['age'] >= 18)
{
register_user();
}
else
{
if (!$_POST['agree'])
{
echo 'not_agree!';
}
if (!($_POST['age'] >= 18))
{
echo 'too_young!';
}
}Работает? Работает. Но это некрасиво — условия повторяются дважды (если добавится еще одно условие, придется переписывать первый if). Что ж, попробуем по-другому:
Хабрахабр → Голосование за карму — ошибка в тултипе
Запрещено голосовать за карму, чаще чем один раз в 5 минут. Запятая после «чаще», а не перед.