Настраиваем EmberJS для работы с REST-api

В этой статье постараюсь изложить действия, которые необходимо выполнить, чтобы заставить EmberJS работать с базовым REST-api. Для многих популярных реализаций REAST-api для Ember уже имеются готовые расширения (например, django-rest-adapter для Django и DRF), так что, если есть возможность выбора, то сначала сначала стоит посмотреть в сторону готовых решений.

Read more...

Упрощаем Sass используя амперсанд (&)

Амперсанд (&) - замечательный знак. Это древний символ, лигатура латинского "Et", объединяющий слова, фраз и мысли. В наши дни & получил более широкое применение, но все равно сохраняет свое оригинальное значение "и", "так же, как и", "тоже".

В контексте Sass, & представляет собой ссылку на родительский селектор определяемого блока, что позволяет селектору ссылаться на самого себя внутри определения. Это означает, что псевдоселекторы, одноуровневые селекторы и прочие подобные штуки можно сгруппировать вместе с остальными определениями, использующими данный селектор. & - мощное орудие для организации и расширения Sass.

Read more...

Добавляем уникальное (unique) поле к существующей модели в Django

Добавление нового уникального поля к существующей модели Django (при условии, что оно не может быть пустым) не самая простая задача. В чем проблема? Представим, что мы создаем миграцию, в которой добавляем уникальное поле, скажем, uuid. Наша модель после изменений выглядит так:

import uuid
from django.db import models

class MyUUIDModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    # остальные поля

Создаем миграцию при помощи makemigrations и пробуем её применить. Что получается?

Read more...

Три способа определить класс в JavaScript

С точки зрения синтаксиса, JavaScript очень гибкий объектно-ориентированный язык программирования. В этой статье вы найдете 3 способа определить и создать экземпляр объекта. И даже если вы уже выбрали себе предпочтительный метод, знание альтернатив поможет разобраться в чужом коде.

Важно отметить, что в JavaScript нет классов. Чтобы имитировать функционал классов могут быть использованы функции, но в целом JavaScript - бесклассовый язык. Все является объектом. И когда дело доходит до наследования, то объекты наследуют от объектов, а не классы от классов, как в "класс"-ических языках.

Read more...

Установка node v4 на Ubuntu 12.04

Добавляем репозиторий с соответствующей версией node и выполняем установку:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280
sudo apt-add-repository 'deb https://deb.nodesource.com/node_4.x precise main'
sudo apt-get update
sudo apt-get install nodejs

Read more...

Как отключить встроенную клавиатуру ноутбука в Ubuntu

Иногда возникает ситуация, когда необходимо вручную (программно) отключить встроеннуюу клавиатуру ноутбука. В моем случае - у меня стал западать пробел, нести ноут в сервисный центр не было времени, а разбираться самостоятельно, с учетом что ноутбук - Aser Aspire S3 - "слим", с не самой простой компоновкой, не рискнул.

Read more...

Как вручную установить cookie в chrome

Для того, чтобы вручную установить определенный cookie в chrome можно воспользоваться расширением (например, EditThisCookie). Ео если не стоит глобальной задачи управления куками, а необходимо просто одноразово добавить определенную запись, то подойдет простая однострочная команда на JavaScript, которую необходимо выполнить в консоли.

Read more...