7 правил изучения английского языка от A.J. Hoge

Послушайте этого человека. Его довольно легко понять со средним английским. У него хорошая дикция. Он все четко выговаривает, чтобы было понятно даже новичкам. Перед каждым видео будет короткое содержание о содержании.

 

Правило №1: Изучайте английские фразы, а не отдельные слова.

В чем сила фраз?

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

2. Когда вы изучаете фразу вы изучаете еще и грамматику.

Например, John hates icecream. - Тут мы уже используем s в конце для третьего лица. Когда вы используете фразы постепенно грамматика непроизвольным образом откладывается в голове. С другой стороны, если будете изучать только отдельные слова, то грамматику вам нужно будет еще вспоминать и держать в голове, потому-что грамматические правила не применяются к отдельным словам.

 

Читать дальше >

Конспект про паттерны проектирования

Автором данных картинок и описаний я не являюсь. Решил коротко для себя собрать часто используемые паттерны тут. Для более глубокого изучения обращайтесь к оригинальному ресурсу https://refactoring.guru

Стратегия

Очень часто используемый паттерн. Его можно везде встретить. Например, Абстрактная фабрика, Фабричный метод основываются на паттерне стратегия.

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

Применимость

  • Когда вам нужно использовать разные вариации какого-то алгоритма внутри одного объекта.
  • Когда у вас есть множество похожих классов, отличающихся только некоторым поведением.
  • Когда вы не хотите обнажать детали реализации алгоритмов для других классов.
Читать дальше >

Основные команды Linux Ubuntu

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

Узнать ядро:

uname -a

Команда lsb_release предназначена для вывода информации о текущей версии дистрибутива Ubuntu.

lsb_release -a

Получить информацию о процессоре и архитектуре можно так:

lscpu
Читать дальше >

Переменные среды Linux

Переменные среды являются заполнителями для данных, которые могут быть изменены. У каждого пользователя есть свои переменные среды с разными значениями, которые определяют его рабочую среду. Например, каждый пользователь обычно имеет свой собственный домашний каталог, поэтому содержимое переменной среды HOME различается для каждого пользователя в системе. Программа, которая должна знать домашний каталог пользователя, может обращаться к переменной HOME, чтобы получить эту информацию. Чтобы увидеть переменные среды введите следующее:

test@ubuntu:~$ env
Читать дальше >

Команды Linux

Kernel version: uname -a
Lists the directory content: ls
Print the path of the current directory: pwd
Displays the username of the current user: whoami

Читать дальше >

Cпособы хранения деревьев в реляционной БД

Существует 4 основных способа хранения деревьев в реляционной БД:

Adjacency List 

Matherialized Path - полный путь до узла хранится в виде строки типа 0035.0993.7324.1256 (т.е. узел верхнего уровня содержит строку 0035, узел второго уровня - строку 0035.0993 и т.д.)

Nested Set - для каждого узла хранятся 2 числа: левый и правый индексы. Причём левый индекс узла меньше левого индекса любого потомка этого узла, а правый индекс соответственно больше.

Читать дальше >

Vagrant

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

Читать дальше >

DRY, DIE, KISS, SOLID, YAGNI

DRY — расшифровывается как Don’t Repeat Youself — не повторяйся, также известен как DIE — Duplication Is Evil — дублирование это зло. Этот принцип заключается в том, что нужно избегать повторений одного и того же кода. Лучше использовать универсальные свойства и функции.

KISS — Keep It Simple, Stupid — не усложняй! Смысл этого принципа программирования заключается в том, что стоит делать максимально простую и понятную архитектуру, применять шаблоны проектирования и не изобретать велосипед.

Читать дальше >

Советы по улучшению кода

На авторство советов я не претендую. Просто решил собрать случаи которые для меня показались интересными.

Читать дальше >

Ubuntu 12.04 Установка Webalizer

Установка на Ubuntu 12.04 или 14.04 инструмента для анализа логов веб сервера Webalizer.

Установка Webalizer

sudo apt-get install webalizer

Первичная настройка Webalizer

sudo nano /etc/webalizer.conf

В первую очередь необходимо убедитсья в корректности следующих параметров:

LogFile определяет лог-файл, который будет анализироваться. Если он не задан тут, или в командной строке, то вводом будет считаться STDIN. Если имя лог-файла заканчиватся на '.gz', то он будет распакован на лету архиватором gzip, по мере чтения.

LogFile /var/log/apache/access.log.1

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

OutputDir /var/www/webalizer

Запуск Webalizer

webalizer -q -o [директория для вывода] [анализируемый лог]

webalizer -q -o ./ test-site.net_access.log
Читать дальше >