Pull to refresh

PowerShell: проверка совмещения имен БЭМ-сущностей на одном HTML-узле

Website development *Programming *PowerShell *Regular expressions *
Tutorial

При написании HTML-страницы по методологии БЭМ («Блок, Элемент, Модификатор») БЭМ-сущности привязываются к узлам HTML-дерева. В предыдущих статьях я рассматривал, как можно выполнить в скрипте на языке PowerShell проверку правильности написания названий БЭМ-сущностей по отдельности с помощью регулярных выражений.

В этой статье рассмотрено, какие есть правила для совмещения нескольких имен БЭМ-сущностей на одном узле HTML-дерева и как соблюдение этих правил можно проверить в скрипте на языке PowerShell. Приведены иллюстрации фрагментов результатов работы скрипта в разных случаях, при обнаружении разных ошибок.

Читать далее
Total votes 3: ↑3 and ↓0 +3
Views 401
Comments 0

Вебинар «Как упростить хранение данных и организовать бесконечно масштабируемый источник» 25 сентября от Mail.ru Group

VK corporate blog Database Administration *Data storage *Data storages *


Количество данных растет ежесекундно, традиционные решения для хранения давно не справляются с такими объемами информации. Если вам нужно хранить петабайты фото- и видеоконтента, бэкапов приложений, статического контента лендингов и сайтов, то возникает вопрос: где разместить и как обрабатывать полученные данные? При этом важно, чтобы процесс хранения и обработки был надежным, быстрым и удобным, то есть автоматизированным.

25 сентября на вебинаре «Как упростить хранение данных и организовать бесконечно масштабируемый источник c помощью S3» мы расскажем, как сделать работу с данными проще и удобнее, снизить нагрузку на текущие мощности и обеспечить бесконечные возможности для масштабирования. Присоединяйтесь!
Подробнее о вебинаре
Total votes 3: ↑3 and ↓0 +3
Views 842
Comments 0

Вебинар «Как построить современную сетевую инфраструктуру» 17 декабря от Mail.ru Group

VK corporate blog System administration *Virtualization *Cloud computing *Cloud services *


С чего начать, если вы хотите построить высокоэффективную, гибкую и безопасную инфраструктуру в облаке? Первый шаг — это правильная настройка работы сети.

17 декабря приглашаем вас принять участие в вебинаре «Первые шаги при подключении к облаку, или Все, что нужно знать о настройке сети», где мы расскажем, как построить современную сетевую инфраструктуру.

Мы разберем все этапы настройки виртуальной сети, обеспечение удаленного доступа, безопасности и отказоустойчивости на уровне инфраструктуры, а также что необходимо сделать для правильного распределения сетевой нагрузки.

Присоединяйтесь!
Подробнее о вебинаре
Total votes 7: ↑7 and ↓0 +7
Views 716
Comments 0

Подарю квартиру на Тверской!

Lumber room


Какое редкое и желанное объявление, не правда ли?

В новой версии сети поисковых сайтов «Маршруты Города» у зарегистрированных пользователей появилась новая возможность – бесплатно давать любые объявления, связанные с конкретным адресом в городе, например, о недвижимости: снять квартиру, сдать в аренду офис, купить дом или даже подарить земельный участок.

Кроме того, ты можешь добавить на карту любой объект: достопримечательность, свой универ, офис или, например, спортплощадку. Кнопки «Как сюда доехать?» и «Как отсюда уехать?» помогут тебе и твоим друзьям найти оптимальный маршрут к нужному месту в Москве, Санкт-Петербурге и Екатеринбурге.

Добавленные объекты и объявления будут отображаться на сайте Наш.Русавтобус. Кроме того, все добавленные социально-значимые городские объекты, лучшие фотографии, а также часть объявлений будут отображаться и на интерактивной карте городских поисковых сервисов при выдаче маршрутов возле точек отправления и назначения.

Кстати, чем больше объектов и красивых фотографий города ты добавишь, и чем выше их оценят твои Попутчики — тем больше у тебя шансов для продвижения в проекте «Наш Русавтобус», которые откроют для тебя новые возможности. Какие именно? Подробности в следующих анонсах!

Разработчики проекта приглашают всех оценить его новые возможности и будут благодарны за предложения по улучшению сервиса.

Счастливого пути!
Total votes 58: ↑38 and ↓20 +18
Views 383
Comments 21

Business Objects

Lumber room
Хочу разобраться и обсудить, насколько выгодна «Доменная модель» (Domain Model) архитектуры WEB-приложений (в частности PHP), с различной точки зрения. Какие вы видите в ней недостатки, приемущества и что можно ей противопоставить.
Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 2.6K
Comments 4

Эффектное создание объектов в Perl

Lumber room
Пару раз встречал оригинальные варианты создания объектов в любимом Perl и вздохи по поводу 6-ки, что там все проще, лучше, быстрее и т.п. Однако довольно симпатичные и совершенно безопасные конструкции можно городить и в «народной» пятерке. Используем классический вариант из учебника с замыканиями и горкой перца :)
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 472
Comments 7

Создание объектов в Javascript

JavaScript *
Sandbox
Гибкость Javascript позволяет создавать объекты множеством способов. Но как это нередко случается, разнообразие таит в себе множество подводных камней. Из этой статьи Вы узнаете о том, как разглядеть и обогнуть эти опасные рифы.
Читать дальше →
Total votes 133: ↑119 and ↓14 +105
Views 64K
Comments 68

Ненормальный 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);

И ещё один дисклеймер. Я ни в коем случае не призываю оформлять исходный код таким образом и даже прошу никогда так не делать. Но, ситуации в жизни бывают разные и, возможно, окажется полезным уметь читать разные монстроидальные конструкции. Врага, как говорится, нужно знать в лицо. Но, тем не менее некоторые ингредиенты этой кашки могут оказаться весьма полезными в определённых ситуациях.
Читать дальше →
Total votes 75: ↑46 and ↓29 +17
Views 2.5K
Comments 49

CoffeeScript: Классы

Website development *Ruby *JavaScript *CoffeeScript *
Tutorial
CoffeeScript: Classes

В ECMAScript пока отсутствует понятие «класс», в классическом понимании этого термина, однако, в CoffeeScript такое понятие есть, поэтому сегодня мы рассмотрим этот вопрос очень подробно.


Содержание:

1. Основные понятия
2. Члены класса
   2.1. Метод constructor
   2.2. Открытые члены класса
   2.3. Закрытые члены класса
   2.4. Защищенные члены класса
   2.5. Статические члены класса
   2.6. Оператор => (fat arrow)
3. Наследование
4. Дополнительная литература

Читать дальше →
Total votes 44: ↑40 and ↓4 +36
Views 21K
Comments 15

HyperActive Record – недо-ORM на CodeIgniter

Website development *PHP *CodeIgniter *

Общее описание


HyperActive Record – это надстройка над классом DB для фреймворка CodeIgniter 2.0 и выше, позволяющая получать значения полей связанных с записью объектов по внешним ключам (foreign keys) без дополнительного описания связей и данных. Такая недо-ORM
На гитхабе
Страница библиотеки
Зачем это надо и что оно умеет?
Total votes 13: ↑10 and ↓3 +7
Views 4.8K
Comments 31

Четыре паттерна вызова функций в JavaScript

JavaScript *Programming *
Translation
Язык JavaScript был представлен как язык функционального программирования. Причина заключается в том, что функции в JS не просто разделяют логику на операционные блоки, функции являются объектами первого класса, способными создавать другие объекты. Подобная зависимость от функций одновременно является как сильной стороной, так и настоящим проклятием этого языка. Сильная сторона заключается в том, что язык, обладая подобными особенностями, становится легковесным и быстрым (каким JavaScript изначально и видели его создатели). Однако если вы не знаете что делаете — однозначно ждите беды.

Я предлагаю посмотреть на паттерны вызова функций, а точнее на то, как значительно изменяется результат в зависимости от выбранного паттерна. Также мы рассмотрим как ведет себя this, в зависимости от способа вызова функции.

Итак, существует четыре пути вызова функций:

  • Вызов метода — Method Invocation
  • Вызов функции — Function Invocation
  • Вызов конструктора — Constructor Invocation
  • Вызов apply и call — Apply And Call Invocation

Читать дальше →
Total votes 63: ↑43 and ↓20 +23
Views 43K
Comments 51

20 и 1 примочка Javascript, которые я никак не могу запомнить

Abnormal programming *Website development *JavaScript *
Translation
Статья описывает особенности Javascript ES3, которые имеют свойство забываться. Одни из них — странности языка, а другие просто свойства, которые, по-моему, труднозапоминаемы. Я постарался собрать здесь не те из них, по которым можно дать просто ссылку на описание языка (как по различиям между apply и call), а о которых мало сказано в руководствах.

Прежде чем начать, хочу уточнить 3 момента, которые я не стараюсь доказать этой статьёй:

1. Я не говорю, что эти особенности забываются всеми или что они такие по сути. Я их нахожу трудными лично для меня (например, забываются детали, если их не освежать в памяти). Они могут быть лёгкими для вас. Тем не менее, думаю, что этот сборник может быть полезен не только мне.
Читать дальше →
Total votes 56: ↑27 and ↓29 -2
Views 20K
Comments 32

Выразительный JavaScript: Структуры данных: объекты и массивы

JavaScript *Programming *
Translation

Содержание




Два раза меня спрашивали: «Скажите, м-р Бэббидж, а если вы введёте в машину неправильные данные, получится ли правильный ответ?». Непостижима та путаница в головах, которая приводит к таким вопросам.

Чарльз Бэббидж, «Отрывки из жизни философа» (1864)


Числа, булевские значения и строки – кирпичики, из которых строятся структуры данных. Но нельзя сделать дом из одного кирпича. Объекты позволяют нам группировать значения (в том числе и другие объекты) вместе – и строить более сложные структуры.

Написание программ, которым мы до сего момента занимались, сильно затруднял тот факт, что они работали только с простыми данными. Эта глава добавит вам в инструментарий понимание структур данных. К её концу вы будете знать достаточно для того, чтобы начать писать полезные программы.

Глава пройдётся по более-менее реалистичному примеру программирования, вводя понятия по мере необходимости. Код примеров будет строиться из функций и переменных, которые мы определяли ранее.
Читать дальше →
Total votes 30: ↑29 and ↓1 +28
Views 144K
Comments 12

Выразительный JavaScript: Тайная жизнь объектов

JavaScript *Programming *
Translation

Содержание




Проблема объектно-ориентированных языков в том, что они тащат с собой всё своё неявное окружение. Вам нужен был банан – а вы получаете гориллу с бананом, и целые джунгли впридачу.

Джо Армстронг, в интервью Coders at Work


Термин «объект» в программировании сильно перегружен значениями. В моей профессии объекты – стиль жизни, тема священных войн и любимое заклинание, не теряющий своей магической силы.

Стороннему человеку всё это непонятно. Начнём же с краткой истории объектов как концепции в программировании.
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Views 79K
Comments 5

Краткий конспект по языку JavaScript

JavaScript *
Tutorial
Я —.NET разработчик. Но в последнее время всё чаще сталкиваюсь с JavaScript. Причём, процентах в 50 случаев я что-то на нём пишу, в остальных 50 — разбираюсь с чужим кодом, да ещё и прошедшим через минификацию, а иногда и обфускацию. В этой статье захотелось поделиться теми моментами, которые мне показались важными для понимания языка и эффективной работы с ним. Тут не будет ничего нового или неизвестного для людей, уже имевших дело с языком, и не будет чего-то такого, чего нельзя найти в других источниках. Для меня статья будет полезна как способ лучше разобраться в предмете, для читателей, я надеюсь, — как повод освежить знания.

Брендан Айк упоминал, что JavaScript был создан за 10 дней. Думаю, идея вынашивалась дольше. Как бы то ни было, язык получился и с тех пор только набирает популярность. Особенно после появления AJAX.

JavaScript — язык со слабой динамической неявной типизацией, автоматическим управлением памятью и прототипным наследованием.

JavaScript состоит из трёх обособленных частей:

  • ядро (ECMAScript),
  • объектная модель браузера (Browser Object Model или BOM),
  • объектная модель документа (Document Object Model или DOM).


В статье, в основном, пойдёт речь о ядре. Конечно, в примерах кода будут использоваться элементы DOM и BOM, но заострять на них внимание не буду.
Читать дальше →
Total votes 75: ↑65 and ↓10 +55
Views 109K
Comments 20

Сад JavaScript: Объекты

JavaScript *Programming *
Translation

Введение


Сад JavaScript – коллекция документации по самым странным особенностям языка JavaScript. Тут собраны советы по тому, как избежать распространённых ошибок и малозаметных багов, а также проблем с быстродействием и неправильного стиля программирования.

Это не учебник по языку. Предполагается, что вы уже предварительно знаете язык. Для обучения языку рекомендую воспользоваться этим великолепным переводом чудесной книги "Выразительный JavaScript".
Читать дальше →
Total votes 34: ↑18 and ↓16 +2
Views 18K
Comments 22

Рендер в текстуру с использованием Three.js

Plarium corporate blog JavaScript *Programming *Development of mobile applications *Game development *
Translation
Всё, что вы рендерите в Three.js, по умолчанию отображается на экране. Зачем вообще нужен рендеринг, если нельзя увидеть результат? Оказывается, затем, чтобы собрать данные, прежде чем они выведутся на экран (и, следовательно, будут утеряны). Это намного упрощает применение эффектов постобработки, таких как коррекция/искажение цветов и размытие изображения, а также очень полезно для шейдерных эффектов. Такой прием называется рендеринг в текстуру или рендеринг в буфер кадра. Конечный результат сохраняется в текстуре, которую затем можно отобразить на экране. В этой статье я покажу, как это делается, на конкретном примере рендеринга анимированного куба на поверхность другого анимированного куба.


Читать дальше →
Total votes 11: ↑9 and ↓2 +7
Views 12K
Comments 4

Краткий справочник информатики

Programming *Perfect code *Designing and refactoring *Haskell *ООP *

Область ИТ растёт, и легко заблудиться в зоопарке подходов, фреймворков и технологий, которые громко заявляют о своей "новизне" и "эффективности". Но за обёрткой обычно скрываются старые добрые идеи, заново "изобретённые" в другом контексте. В итоге распространяется не самая простая и эффективная, а самая разрекламированная реализация. Разработчики не успевают вдумчиво произвести выбор из-за постоянного недостатка времени, а менеджеры выбирают самое распространённое, чтобы снизить риски при поиске разработчиков.


Для себя я стараюсь свести используемый в индустрии термин или технологию к простому определению или наглядному примеру. Предлагаю справочник, очень краткий, и поэтому неполный и не претендующий на точность.

Читать дальше →
Total votes 19: ↑8 and ↓11 -3
Views 5K
Comments 64

Разбираемся с объектами в JavaScript

Wirex corporate blog JavaScript *Programming *
Translation
В этом материале автор — фронтенд-разработчик — сделал обзор основных способов создания, изменения и сравнения объектов JavaScript.


Объекты — одно из основных понятий в JavaScript. Когда я только приступил к их изучению, они показались мне довольно простыми: всего лишь пары ключей и значений, как и описывалось в теории.

Лишь спустя некоторое время я начал понимать, что тема гораздо сложнее, чем я полагал. И тогда я стал изучать информацию из разных источников. Некоторые из них давали хорошее представление о предмете, но увидеть всю картину целиком я смог не сразу.

В этом посте я попытался охватить все аспекты работы с объектами в JS, не вдаваясь слишком глубоко в отдельные подробности, но и не упуская важные детали, которые помогут вам понять предмет и почувствовать себя увереннее во время его дальнейшего изучения.

Итак, давайте начнем с основ.

Объект


Объект в JavaScript — это просто набор свойств, каждое из которые представляет собой пару ключ-значение. Обратиться к ключам можно с помощью точечного (obj.a) или скобочного обозначения (obj['a']).

Помните, что скобки следует использовать, если ключ:

  • не является допустимым JavaScript-идентификатором (в нем есть пробел, тире, начинается с цифры...)
  • является переменной.

Одно из свойств, которое объекты в JS получают при создании, называется Prototype, и это очень важное понятие.
Читать дальше →
Total votes 22: ↑16 and ↓6 +10
Views 19K
Comments 7
1