Учебные материалы по Ruby On Rails

На русском языке

http://rusrails.ru/

Ruby on Rails TutorialsНа этом сайте выложены переводы официального руководства по Rails. Надеемся, эти руководства позволят вам немедленно приступить к использованию Rails и помогут разобраться, что и как в нем работает.

Переводы постоянно актуализируются и добавляются. Код проекта и тексты переводов открыты и размещены на Гитхабе. Желающим помочь всегда рады! Форкайте, предлагайте изменения, вносите их, отправляйте пул-реквесты!

На английском языке

https://rubyonrails.org/

Официальный сайт. Платформа веб-приложений, включающая все необходимое для создания веб-приложений на основе базы данных в соответствии с шаблоном Model-View-Controller (MVC).

Сервисы для автоматического форматирования JavaScript кода

BEAUTIFIER.IO (ex. jsbeautifier.org)

Украшает, распаковывает или деобфускирует JavaScript и HTML, делает JSON/JSONP читабельным и т. д.

Общие теги шаблона MODX

На этой странице перечислены наиболее часто используемые теги MODX Revolution в помощь любому, кто конвертирует макеты HTML/CSS в шаблоны MODX. Их часто называют «тегами» или «заполнителями» (а иногда и «переменными шаблона»), поэтому мы упоминаем эти термины здесь как помощь в поиске, хотя с технической точки зрения они не являются заполнителями или переменными шаблона: это теги MODX. Да, это может сбить с толку новичка, поэтому просто помните, что существуют разные виды этих тегов, каждый со своим назначением и названием. Заполнители задаются в коде и отображаются с тегами заполнителей. Переменные шаблона — это дополнительные поля содержимого ресурса, созданные пользователем. Их можно рассматривать как настраиваемые поля. Ни заполнители, ни переменные шаблона не устанавливаются ядром MODX заранее.

Теги поля содержимого ресурса по умолчанию

В MODX Revolution каждая страница всегда будет иметь следующие поля содержимого, которые вы можете использовать при создании своих шаблонов. За исключением идентификатора ресурса и родительского поля, все они предоставляются пользователем при редактировании ресурса и могут быть пустыми, если пользователь их не заполнил:

ЯрлыкОписаниеПример использования
[[*id]]Идентификатор ресурса страницы (устанавливается MODX при создании страницы.Часто используется в сочетании с синтаксисом ссылки, например <a href="[[~[[*id]]]]">Bookmark this page!</a>
[[*pagetitle]]Название страницы.<title>[[*pagetitle]]</title>
[[*longtitle]]Длинное название страницы<h1>[[*longtitle]]</h1>
[[*alias]]Асевдоним страницы.Используется для создания URL-адреса страницы.
[[*description]]Страница Описание<meta name="description" content="[[*description]]"/>
[[*introtext]]Поле «Вводный текст» (также известное как сводка).Часто используется Snippets для обобщения постов, например<div id="summary">[[*introtext]]</div>
[[*parent]]ID родительской страницы (если есть). Устанавливается MODX при создании страницы. Может быть изменен пользователем.Часто используется в сочетании с синтаксисом ссылки, например<a href="[[~[[*parent]]]]">Up to parent page</a>
[[*menutitle]]Заголовок, используемый, когда страница появляется в меню.Чаще всего используется сниппетами, такими как Wayfinder или pdoMenu, при динамическом построении меню .
[[*content]]Содержание страницы.<body>[[*content]]</body>

Другие общие теги

Эти теги представляют системные настройки, которые можно редактировать в меню «Система» -> «Настройки системы» .

ЯрлыкОписаниеПример использования
[[++site_url]]Содержит URL вашего сайта, например http://www.yoursite.com/Во многих CMS, которые полагаются на перезапись Apache, обычной практикой является включение базового тега в ваш HTML-заголовок: <base href="[[++site_url]]" />
[[++site_name]]Название сайта`

Источник: https://docs.modx.com/current/en/building-sites/tag-syntax/common

Как сгенерировать UUID в Drupal 8?

Чтобы сгенерировать UUID самостоятельно, понадобится сервис uuid:

$uuid = \Drupal::service('uuid');
$uuid_to_validate = $uuid->generate();
$uuid->isValid($uuid_to_validate);

Чтобы сгенерировать uuid с помощью drush:

sudo drush php-eval "echo \Drupal::service('uuid')->generate();"

Практическое владение языком SQL

Сайт поможет каждому, кто хочет приобрести или повысить свои навыки в написании операторов манипуляции данными языка SQL. Суть обучения состоит в том, что вы сами пишете операторы, которые должны вернуть или изменить данные, требуемые заданием. При этом в случае неправильного ответа вы сможете узнать, какие данные возвращает правильный запрос, а также увидеть, что вернул ваш запрос. Кроме того, есть возможность выполнять любые операторы DML к имеющимся базам данных, отключив опцию проверки. Упражнения имеют разный уровень сложности (от 1 до 5), который проставлен во втором столбце списка упражнений. Предлагаются упражнения на выборку данных (оператор SELECT) и упражнения на модификацию данных (операторы INSERT, UPDATE, DELETE и MERGE). По результатам решения задач на сайте ведется рейтинг участников. При этом упражнения на выборку разбиты на три этапа: первый (5 упражнений) без контроля времени на выполнение отдельного задания, второй (начиная с 6 упражнения) — с контролем времени на выполнение каждого задания. На третьем этапе, который называется оптимизационным и начинается с задачи 139, требуется не только правильно решить задачу, но и время выполнения запроса должно быть соизмеримым с временем выполнения авторского решения.

Упражнения первого этапа доступны без регистрации, причем задания можно решать в любом порядке. Для выполнения остальных упражнений требуется регистрация. Регистрация бесплатна, как и все остальные сервисы сайта. В третьем столбце списка упражнений будут отмечаться («OK») номера правильно выполненных упражнений для зарегистрировавшихся посетителей. Посетив наш сайт впоследствии, вам не нужно будет вспоминать, какие упражнения вами уже выполнены, а какие — нет. Исключение составляет обучающий этап. Участие в рейтинге обучающего этапа (включая отметки «ОК» решенных задач) является платным. Однажды зарегистрировавшись, вы впоследствии вводите логин и пароль, указанные при регистрации. При входе без авторизации система не будет отслеживать ваши успехи. Для авторизованных пользователей доступен форум, на котором можно обсудить решения предложенных упражнений.

Ссылка: https://www.sql-ex.ru/

Питонтьютор — бесплатный курс по программированию с нуля

Интерактивный учебник языка Питон. Учитесь, решая серьёзные задачи прямо в браузере.

Ссылка: http://pythontutor.ru/

Laby — изучайте программирование, играя с муравьями и паутиной

Ваш робот-муравей может быть запрограммирован на многих языках: OCaml, Python, C, C++, Java, Ruby, Lua, JavaScript, Pascal, Perl, Scheme, Vala, Prolog. Опытные программисты также могут добавить свой любимый язык.

Ссылка: https://sgimenez.github.io/laby/

Инструкция по включению JavaScript в браузере

В настоящее время почти все веб-страницы используют JavaScript, скриптовый язык программирования, который работает на веб-браузере посетителя. Это делает веб-страницы более функциональными, а если по каким-либо причинам JavaScript отключен, содержание или функциональность веб-страницы может быть ограничена или вовсе не возможна. Здесь вы можете найти инструкции о том, как включить (активировать) JavaScript в пяти наиболее распространенных веб-браузерах.

Ссылка на инструкцию: https://www.enable-javascript.com/ru/

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

Можно закодировать строку в побайтовом представлении, используя Encoding, например, UTF-8:

const string str = "Out of cheese error";
byte[] bytes = Encoding.UTF8.GetBytes(str);

Затем вернуть строковый объект .NET:

string strAgain = Encoding.UTF8.GetString(bytes);

Если, необходимо, чтобы представление было в виде серии ‘1’и ‘0’ символов это тоже возможно:

string binStr = string.Join("", bytes.Select(b => Convert.ToString(b, 2)));

Но необходимо подумать, зачем вы это делаете.

Кодировки берут абстрактную строку (в том смысле, что они являются непрозрачным представлением ряда кодовых точек Unicode) и отображают их в конкретную серию байтов. Байты бессмысленны (опять же, потому что они непрозрачны) без кодировки. Но с помощью кодировки их можно снова превратить в строку.

Например, у вас есть строка, содержащая ‘é’ и она не имеет представления ASCII, и поэтому определенно не может быть представлена ​​с использованием последовательности байтов ASCII, даже если она может мирно существовать в string-объекте .NET.

См. статью Джоэла Спольски для дальнейшего чтения.

Полный пример кода представлен ниже:

using System;
using System.Text;
using System.Linq;

namespace Test
{
	class Program
	{
		public static void Main(string[] args)
		{
			const string str = "Out of cheese error";
			byte[] bytes = Encoding.UTF8.GetBytes(str);
			string binStr = string.Join("", bytes.Select(b => Convert.ToString(b, 2)));
			string strAgain = Encoding.UTF8.GetString(bytes);
			Console.WriteLine(binStr);
			Console.WriteLine(str == strAgain);
			
			Console.Write("Press any key to continue . . . ");
			Console.ReadKey(true);
		}
	}
}