<commit_before>-- phpMyAdmin SQL Dump
-- version 4.4.14
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1
-- Время создания: Янв 12 2016 г., 20:00
-- Версия сервера: 5.6.26
-- Версия PHP: 5.6.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- База данных: `tips`
--

-- --------------------------------------------------------

--
-- Структура таблицы `languages`
--

CREATE TABLE IF NOT EXISTS `languages` (
  `id` int(5) unsigned NOT NULL,
  `title` text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;

--
-- Дамп данных таблицы `languages`
--

INSERT INTO `languages` (`id`, `title`) VALUES
(1, 'C/C++'),
(2, 'CSS'),
(3, 'HTML'),
(4, 'JavaScript'),
(5, 'PHP'),
(6, 'SQL');

-- --------------------------------------------------------

--
-- Структура таблицы `tips_block`
--

CREATE TABLE IF NOT EXISTS `tips_block` (
  `id` int(11) NOT NULL,
  `id_tips` int(11) NOT NULL,
  `id_type` int(11) NOT NULL,
  `texts` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Структура таблицы `tips_name`
--

CREATE TABLE IF NOT EXISTS `tips_name` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `creates` datetime DEFAULT NULL,
  `users` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Структура таблицы `tips_type`
--

CREATE TABLE IF NOT EXISTS `tips_type` (
  `ID` int(11) NOT NULL,
  `types` varchar(50) NOT NULL,
  `info` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `languages`
--
ALTER TABLE `languages`
  ADD PRIMARY KEY (`id`);

--
-- Индексы таблицы `tips_block`
--
ALTER TABLE `tips_block`
  ADD PRIMARY KEY (`id`);

--
-- Индексы таблицы `tips_name`
--
ALTER TABLE `tips_name`
  ADD PRIMARY KEY (`id`);

--
-- Индексы таблицы `tips_type`
--
ALTER TABLE `tips_type`
  ADD PRIMARY KEY (`ID`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `languages`
--
ALTER TABLE `languages`
  MODIFY `id` int(5) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT для таблицы `tips_block`
--
ALTER TABLE `tips_block`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT для таблицы `tips_name`
--
ALTER TABLE `tips_name`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT для таблицы `tips_type`
--
ALTER TABLE `tips_type`
  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
<commit_msg>I add to sql DB tamles articles<commit_after>-- phpMyAdmin SQL Dump
-- version 4.4.14
-- http://www.phpmyadmin.net
--
-- Хост: 127.0.0.1
-- Время создания: Янв 16 2016 г., 09:05
-- Версия сервера: 5.6.26
-- Версия PHP: 5.6.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- База данных: `tips`
--

-- --------------------------------------------------------

--
-- Структура таблицы `articles`
--

CREATE TABLE IF NOT EXISTS `articles` (
  `id` int(6) unsigned NOT NULL,
  `title_id` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `title` text COLLATE utf8_unicode_ci NOT NULL,
  `author` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
  `article` text COLLATE utf8_unicode_ci NOT NULL,
  `created_up` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `updated_up` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `revisions` int(10) unsigned DEFAULT NULL
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Дамп данных таблицы `articles`
--

INSERT INTO `articles` (`id`, `title_id`, `title`, `author`, `article`, `created_up`, `updated_up`, `revisions`) VALUES
(1, 'C/C++', 'Основне про С++', 'Balyuk9	 ', 'Усі програми, які ми знаємо записуються у пам’яті, як набір команд для процесора. А процесор може розуміти тільки двійкову форму запису, тобто числа 1 і 0.  Отже, програми також повинні бути записані у цій формі. Раніше так і програмували, записували код у двійковій формі, але це було важко і було вирішено замінити де-які команди англійськими словами. Це настала нова епоха програмування Assembler. І для того, щоб процесор його розумів, потрібно було перевести цю програму в двійкову форму. Цей етап називався Трансляцією. Assembler - мова низького рівня. Пізніше були створенні мови високого рівня (до них також належить C++). Їх особливістю є те, що вони сильно наближенні до звичайної мови, якою ми спілкуємося. А етап переводу в двійкову форму назвали компіляція. Отже, ви вже знаєте для чого компіляція. Її порівнюємо із працею перекладача, адже ЦП не знає наших мов (надіємося, що в майбутньому його навчать ). Йдемо далі. Взагалі мов програмування є багато. Ми будемо вивчати C++. С++ -- це мова програмування високого рівня. Вона була створена у 1979  Б''ярном Страуструпом і називалася «Сі з класами». Пізніше, у 1983 вона була перейменована у С++. У 1990-х роках С++ стала однією з найуживаніших мов програмування загального призначення. Мову використовують для системного програмування, розробки програмного забезпечення, написання драйверів, потужних серверних та клієнтських програм, а також для розробки розважальних програм таких як відео ігри. С++ суттєво вплинула на інші, популярні сьогодні, мови програмування: С# та Java. Так як і наша мова, мова програмування має такі ж складові (букви, слова, речення, знаки пунктуації), але вони називаються по-іншому (не має значення як, ми ж не будемо здавати іспит в інституті ). Отже, нам потрібно складати твори (як у школі ). А як складати, ми будемо вчити довго і весело. В любому навчанні головне, щоб було весело і коротко, тоді буде краще запам’ятовуватись  Для того, щоб писати нообхідно завантажити Інтегроване середовище розробки, з ним набагато легше писати програми. Я пораджу вам Dev C++ (я особисто нею користуюся).', '2016-01-15 16:12:10', '2016-01-15 17:07:42', 0),
(2, 'C/C++', 'Знайомимося з робочим місцем DevC++', 'Balyuk9	 ', 'Доброго дня. Минулого разу я опублікував статтю Основне про C++. Я сьогодні ж поговоримо про робоче місце де ми будемо писати наші програми і розв''язувати задачі. Нашим інтегрованим середовищем розробки буде Dev C++. Завантажити його можна ось тут. І так ось скриншот інтерфейса програми:    1.Основна частина Основна частина програми. В якій і буде записуватися весь алгоритм. 2.Вікно компілятора Компілятор- буде запускати вашу програму, а в вікні компілятора будуть показуватися помилки через які програме не запустилася(можливо і таке). Натиснувши на помилку у вікні компілятора рядок коду в якому є це помилку виділиться червоним кольором. 3.Панель задач Як і у всіх програмах тут є панель задач. За допомогою якої можна створювати файл,вмикати компілятор і багато іншого. Створювати новий проект(файл), відкривати/закривати проекти(файли) 4. Список відкритих програм Список відкритих програм показує скільки є відкритих програм.DevC++ є найпоширинішим компілятор тому що він найбільш зручний і має українські мову інтерфейсу. Про інші можливості DevC++ я буду розповідати в наступних уроках. Матеріал взятий з сайту Програмування мовою С++', '2016-01-15 16:12:10', '2016-01-15 17:07:47', 0),
(3, 'Java', 'Перша програма на мові Java', 'admin	 ', 'Цю програму можна написати у простому текстовому редакторі, відкомпілювати "javac <шлях до файлу>HelloWorld.java" і запустити у командній стрічці за допомогою команди "java <шлях до файлу>HelloWorld". Після компілювання у тому ж місцезнаходженні, де знаходився файл HelloWorld.java, створюється новий файл HelloWorld.class. Якщо у вас ще не встановлено компілятора Java, то вам слід прочитати статтю про підготовку до написання программ на Java.   Щоб написати цю програму в середовищі розробки, потрібно створити новий проект (в Eclipse це File->New->Java Project, в NetBeans це File->New Project...->Java Application), в якому створюється новий файл (в Eclipse це File->New->Class, в NetBeans це New File...->Java Class) із назвою “HelloWorld.java”. Важливо, щоб усі файли Java мали ту ж назву (великі та малі латинські літери та цифри, без прогалин між собою, враховуючи регістр), що й головний виконавчий клас у програмному коді. В  нашому випадку головний клас називається HelloWorld у файлі HelloWorld.java (файл із вихідним кодом Java). Потім вихідний код компілюється (в Eclipse це Run->Run(Run->Debug), в NetBeans це Run->Run File). Якщо код написаний без помилок, то програма запуститься у вбудованій консолі, якщо ж наявні помилки, то налагоджувач середовища опише їх та вкаже номер стрічки розміщення помилки. Після успішного компілювання на екрані у консолі висвітлиться напис Hello World! Написаний вище вихідний код починається не із власне робочого коду, а опису (коментарів) програми. В коментарях пишеться призначення програми, описується її робота і/або робота окремих частин. В даному випадку застосовуються два види коментарів. Перший вид починається із символів // і закінчується натисканням клавіші Enter, тобто після переходу на наступну стрічку дія  // припиняється. Другий вид починається із символів /* і може продовжуватися як завгодно довго, поки не зустрінуться символи закінчення коментарю — */. Все, що написано у коментарях, ігнорується компілятором і призначене тільки для читання програмістам. Ключове слово class оголошує новий клас із ім’ям HelloWorld. Всі програми, написані мовою Java, діють за допомогою класів, які є програмними вмістилищами. Кожен клас починається із символу { і закінчується символом }. Все, що знаходиться між фігурними дужками, належить до тіла класу. У класі HelloWorld оголошується метод main() із декількома ключовими словами, значення яких на даному етапі важко пояснити (якщо коротко і загально, то public робить метод доступним за межами класу, static дозволяє використовувати метод без створення його об’єкту, void вказує на те, що метод не повертає результатів своєї роботи). Метод — це окремий блок коду в класі, який здійснює певні операції на даними. Він теж починається і закінчується фігурними дужками({}), що визначають межі його тіла. Метод main() у мові Java призначений для запуску програми. Методи мають одну особливість — їхня назва обов’язково має закінчуватися дужками —(). У дужках пишуть параметри — дані, які приймає метод для обробки. Коли дужки пишуться разом, це означає, що метод не приймає ніяких параметрів. В даному коді метод main() приймає параметри командної стрічки String args[], зміст якої на даному етапі ми не будемо пояснювати, просто знайте, що це певний параметр переданий в метод. В наступній стрічці коду метод  System.out.println() виводить на екран напис Hello World! (якщо загально і коротко, то System — це клас, який надає доступ до системи; змінна-член  out — це вихідний потік, пов’язаний із консоллю (командною стрічкою); а метод println() виводить набрану стрічку в консоль). Щоб вивести текстову стрічку в консоль, її потрібно взяти в лапки(" та "), тоді Java буде сприймати набраний текст як власне текстову стрічку, а не як набір даних.', '2016-01-15 16:30:01', '2016-01-15 17:13:29', 0),
(4, 'Java', 'Підготовка до написання програм для Java', 'admin', 'Перш, ніж почати писати мовою Java, спочатку потрібно зрозуміти в загальних рисах створення програми. Кожна програма Java пишеться, з допомогою клавіатури, програмістом, але сам код ніякої “цінності” для комп’ютера не має, для нього це набір текстових символів. Щоб написаний мовою Java код перетворити на вказівки для комп’ютера (власне на програму), потрібен компілятор (перетворювач, перекладач). Компілятор зчитує вихідний код і перетворює його в набір команд, зрозумілий для комп’ютера й для операційної системи, якою ви користуєтеся (Windows, Linux, Mac OS, Android...).   Компілятор для Java називається JDK (Java Development Kit). JDK має різні версії, найкраще, звичайно, використовувати найновішу (JDK 8). Завантажити його можна на сайті www.oracle.com. Він містить все, що потрібно для створення повноцінних програм, постачається із відкритим кодом і є безкоштовним. Щоб створити програму за допомогою JDK, достатньо мати простий текстовий редактор і вміти працювати у командній стрічці (білі букви на чорному тлі). Якщо ви вибрали такий шлях, то для написання потрібно зробити  три умови: 1. Написати вихідний код у текстовому редакторі. 2. Перекомпілювати (перетворити) код у програму в командній стрічці (наприклад, написавши в ній javac pruklad.java, це створить новий скомпільований файл з назвою pruklad.class). 3. Запустити програму в командній стрічці (наприклад java pruklad).   Але для зручнішого програмування створені інтегровані середовища програмування (IDE - Integrated Development Environment). Вони включають в себе багато застосунків, які спрощують написання та перетворення коду: 1. Містять вбудований редактор для написання вихідного коду. 2. Дозволяють “на місці” компілювати програми, не заходячи у командну стрічку. 3. Містять налагоджувач — перевіряють написаний код і показують наявні (якщо вони є) помилки у ньому. 4. Виділяють команди, оператори, класи, числа та інше... різними кольорами для більшої наочності та читабельності коду. І це далеко не всі зручності, які надає вам середовище розробки. Найбільш розповсюдженішими IDE для Java є NetBeans (IDE від творців Java, завантажити можна на netbeans.org) та Eclipse (завантажити можна на www.eclipse.org/downloads). Вони є кросплатформними, можна встановити на Windows, Linux, Mac OS, Solaris.', '2016-01-15 16:30:01', '2016-01-15 17:16:13', 0),
(5, 'Html', 'Урок1. Переваги HTML5', 'admin2015', 'Перш, ніж почати писати мовою Java, спочатку потрібно зрозуміти в загальних рисах створення програми. Кожна програма Java пишеться, з допомогою клавіатури, програмістом, але сам код ніякої “цінності” для комп’ютера не має, для нього це набір текстових символів. Щоб написаний мовою Java код перетворити на вказівки для комп’ютера (власне на програму), потрібен компілятор (перетворювач, перекладач). Компілятор зчитує вихідний код і перетворює його в набір команд, зрозумілий для комп’ютера й для операційної системи, якою ви користуєтеся (Windows, Linux, Mac OS, Android...).   Компілятор для Java називається JDK (Java Development Kit). JDK має різні версії, найкраще, звичайно, використовувати найновішу (JDK 8). Завантажити його можна на сайті www.oracle.com. Він містить все, що потрібно для створення повноцінних програм, постачається із відкритим кодом і є безкоштовним. Щоб створити програму за допомогою JDK, достатньо мати простий текстовий редактор і вміти працювати у командній стрічці (білі букви на чорному тлі). Якщо ви вибрали такий шлях, то для написання потрібно зробити  три умови: 1. Написати вихідний код у текстовому редакторі. 2. Перекомпілювати (перетворити) код у програму в командній стрічці (наприклад, написавши в ній javac pruklad.java, це створить новий скомпільований файл з назвою pruklad.class). 3. Запустити програму в командній стрічці (наприклад java pruklad).   Але для зручнішого програмування створені інтегровані середовища програмування (IDE - Integrated Development Environment). Вони включають в себе багато застосунків, які спрощують написання та перетворення коду: 1. Містять вбудований редактор для написання вихідного коду. 2. Дозволяють “на місці” компілювати програми, не заходячи у командну стрічку. 3. Містять налагоджувач — перевіряють написаний код і показують наявні (якщо вони є) помилки у ньому. 4. Виділяють команди, оператори, класи, числа та інше... різними кольорами для більшої наочності та читабельності коду. І це далеко не всі зручності, які надає вам середовище розробки. Найбільш розповсюдженішими IDE для Java є NetBeans (IDE від творців Java, завантажити можна на netbeans.org) та Eclipse (завантажити можна на www.eclipse.org/downloads). Вони є кросплатформними, можна встановити на Windows, Linux, Mac OS, Solaris.', '2016-01-15 16:35:19', '2016-01-15 17:18:44', 0),
(6, 'Html', 'Урок2. Підтримка тегів HTML5 в браузерах', 'admin2015', 'Невеличка стаття, як продовження попереднього уроку, для того, щоб ми знали, які теги HTML5 підтримують браузери і відповідно ми могли б їх застосовувати. Зразу відмічу, що всі популярні браузери в тій чи іншій мірі підтримують теги HTML5, от тільки в більшій мірі, а інші - меншій.   Переглянути пітримку тегів HTML5 в різних браузерах можна в російській Вікіпедії (в українській, на жаль, нічого такого не знайшов) за назвою "Сравнение браузеров (HTML5)". Але там інформація трохи застаріла, бо вже вийшли нові версії браузерів. Тому я раджу користуватись англійськими сайтами, наприклад, The HTML5 test. На сайті показує теги, які підтримує ваш браузер, оцінка вашого браузера щодо підтримки і іншу статистичну інформацію. В цьому сайті нам цікава насамперед сторінка з порівнянням браузерів - Compare browsers. Тут можна вказати браузери,які необхідно порівняти за іхньою підтримкою нових тегів. Виходить доволі зручний список, по якому можна визначити чи слід застосовувати цей чи інший тег, щоб він відображався усюди добре. Думаю в найближчі часи всі браузери перейдуть на цілковиту підтримку HTML5, а поки нам слід слідкувати за тегами, які ми використовуєм.)', '2016-01-15 16:35:19', '2016-01-15 17:18:53', 0),
(7, 'JavaScript', 'Деякі JavaScript розробники рівніші від інших', '  rodionon', 'Я розмовляв зі своїм старим другом близько року назад. Він зазначив, що він був єдиним у своїй групі із близько 20 програмістів, який писав JavaScript таким чином, щоб виключити забруднення глобальними змінними. Це просто найпростіший з прикладів. Багато людей, які називають себе JavaScript програмістами, не знайомі з основами. І це сьогодні. Уявіть собі, що буде через три-п''ять років.\r\n\r\nІ не забувайте, що багато чого з оснащення для підтримки профілювання і витоку пам''яті знаходиться всього лише в зародковому стані. Якщо у вас є ці навички сьогодні, і ви добре представлені на ринку, то ви вже розумієте, що багато чого з того, що я говорю тут вірно.', '2016-01-15 17:42:27', '2016-01-15 17:42:27', NULL),
(8, 'JavaScript', 'Зріють і фреймворки', '  rodionon', 'Нова версія Angular у роботі і Aurelia в якості альтернативи. Комерційні продукти, такі як Scencha’s EXTjs. Node.js для програмування на стороні сервера. І інші ... Ніхто не може сказати, що це занадто складно - розробити реальний додаток, що використовує JavaScript. Я впевнений, що, якби я захотів, я міг би написати десктоп додаток, який працював би, не використовуючи нічого, крім JavaScript. Ох. Зачекайте. Це вже було зроблено. (Visual Studio Code для тих, хто спав для цього оголошення.)\r\n\r\nНасправді, поки я писав останній параграф, я почав розробляти десктоп додаток, що використовує HTML з Bootstrap і Angular для представлення слоїв і C# в основному для доступу до даних. Так, я знаю, що я міг би зробити все це в JavaScript, якщо б хотів, але я працюю з тим, що найбільш знайоме зараз. Прошу вибачення шанувальників XAML.', '2016-01-15 17:42:27', '2016-01-15 17:42:27', NULL),
(9, 'CSS', 'Створення CSS3 нотатки без використання зображень', 'Q-Bart', 'В даному випадку я використав його для відображення цитати <NAME>. Ви можете використати інший текст.\r\n\r\nHTML\r\n\r\nДавайте поглянемо, на HTML код для нашого стікера. Нам потрібен тег blockquote для тексту нотатки, і тег cite в ньому. Також ми використовуємо тег i для створення «шпильки» та div контейнер для позиціонування.\r\n\r\n<div class="quote-container">\r\n  <i class="pin"></i>\r\n  <blockquote class="note yellow">\r\n     We can''t solve problems by using the same kind of thinking we used when we created them.\r\n    <cite class="author"><NAME></cite>\r\n  </blockquote>\r\n</div>\r\nCSS стилізація\r\n\r\nТепер необхідно додати трохи CSS стилів. \r\nПерш за все, потрібен красивий шрифт! Я вибрав Satisfy\r\n\r\n@import url(http://fonts.googleapis.com/css?family=Satisfy);\r\nЗараз необхідно трішки стилізувати контейнер і надати йому position:relative для того, щоб мати можливість редагувати «шпильку» і нотатку відносно нього.\r\n\r\nБазовий CSS стиль для нотатки – простий: змінити шрифт, збільшити відступ поля (padding) і додати тінь. Наприкінці ми також зробимо вирівнювання cite з правого боку та трішки збільшимо margin відступ.\r\n\r\n.quote-container {\r\n  margin-top: 50px;\r\n  position: relative;\r\n}\r\n\r\n.note {\r\n  color: #333;\r\n  position: relative;\r\n  width: 300px;\r\n  margin: 0 auto;\r\n  padding: 20px;\r\n  font-family: Satisfy;\r\n  font-size: 30px;\r\n  box-shadow: 0 10px 10px 2px rgba(0,0,0,0.3);\r\n}\r\n\r\n.note .author {\r\n  display: block;\r\n  margin: 40px 0 0 0;\r\n  text-align: right;\r\n}\r\nТепер можна додати окремий клас для кольору і реалізації обертання.\r\n\r\n.yellow {\r\n  background: #eae672;\r\n  -webkit-transform: rotate(2deg);\r\n  -moz-transform: rotate(2deg);\r\n  -o-transform: rotate(2deg);\r\n  -ms-transform: rotate(2deg);\r\n  transform: rotate(2deg);\r\n}\r\nДодавання «шпильки»\r\nТепер залишилось лише додати нашу «шпильку»! Ми будемо використовувати псевдоелементи :befor та :after.\r\n\r\nПерш за все, давайте додамо трохи позиціонування і створимо металевий стержень шпильки.\r\n\r\n\r\n.pin {\r\n  background-color: #aaa;\r\n  display: block;\r\n  height: 32px;\r\n  width: 2px;\r\n  position: absolute;\r\n  left: 50%;\r\n  top: -16px;\r\n  z-index: 1;\r\n}\r\n\r\nДалі, використовуючи CSS3 градієнти та тінь, ми зробимо голівку шпильки і додамо їй тінь.\r\n\r\n.pin:after {\r\n  background-color: #A31;\r\n  background-image: radial-gradient(25% 25%, circle, hsla(0,0%,100%,.3), hsla(0,0%,0%,.3));\r\n  border-radius: 50%;\r\n  box-shadow: inset 0 0 0 1px hsla(0,0%,0%,.1),\r\n              inset 3px 3px 3px hsla(0,0%,100%,.2),\r\n              inset -3px -3px 3px hsla(0,0%,0%,.2),\r\n              23px 20px 3px hsla(0,0%,0%,.15);\r\n  content: '''';\r\n  height: 12px;\r\n  left: -5px;\r\n  position: absolute;\r\n  top: -10px;\r\n  width: 12px;\r\n}\r\nІ нарешті, ми створимо і змістимо тінь металевої частини шпильки.\r\n\r\n.pin:before {\r\n  background-color: hsla(0,0%,0%,0.1);\r\n  box-shadow: 0 0 .25em hsla(0,0%,0%,.1);\r\n  content: '''';\r\n  height: 24px;\r\n  width: 2px;\r\n  left: 0;\r\n  position: absolute;\r\n  top: 8px;\r\n\r\ntransform: rotate(57.5deg);\r\n  -moz-transform: rotate(57.5deg);\r\n  -webkit-transform: rotate(57.5deg);\r\n  -o-transform: rotate(57.5deg);\r\n  -ms-transform: rotate(57.5deg);\r\n\r\n  transform-origin: 50% 100%;\r\n  -moz-transform-origin: 50% 100%;\r\n  -webkit-transform-origin: 50% 100%;\r\n  -ms-transform-origin: 50% 100%;\r\n  -o-transform-origin: 50% 100%;\r\n}', '2016-01-15 17:57:58', '2016-01-15 17:57:58', NULL),
(10, 'CSS', 'Веселощі з CSS лічильниками', 'Q-Bart', 'Базовий лічильник\r\n\r\nОсь це – простий приклад пагінації сторінки:\r\n\r\n\r\nЦифри, які ви бачите, не прописані в HTML. Вони генеруються, за допомогою CSS:\r\n\r\nbody {\r\n    counter-reset: pages; /* ініціалізація лічильника */\r\n}\r\n\r\na {\r\n    counter-increment: pages; /* збільшення лічильника */\r\n}\r\n\r\na::before {\r\n    content: counter(pages); /* відображення лічильника */\r\n}\r\nВластивості лічильника застосовуються по мірі того, як зустрічається відповідний елемент(в даному випадку a) в документі. Спершу зустрічається елемент body – відбувається ініціалізація лічильника(pages). Тоді зустрічаються a елементи – кожен один збільшується і виводиться.\r\n\r\nМножинні лічильники\r\n\r\nМожна використовувати кілька лічильників, застосовуючи унікальні назви для них. Цей приклад демонструє два різних лічильники: sections та boxes.\r\n\r\n\r\nВідповідний CSS:\r\n\r\nbody {\r\n    counter-reset: sections boxes;\r\n}\r\n\r\nsection {\r\n    counter-increment: sections;\r\n}\r\n\r\nsection::before {\r\n    content: ''Section '' counter(sections);\r\n}\r\n\r\n.box {\r\n    counter-increment: boxes;\r\n}\r\n\r\n.box::before {\r\n    content: counter(boxes, upper-roman);\r\n}\r\nТут ви можете побачити синтаксис для ініціалізації двох лічильників в одному рядку(2). І для того, щоб виглядало особливо стильно, лічильник для boxes виводиться у вигляді римських цифр(upper-roman - рядок 18). Повний список варіантів відображення лічильника є такий самий, як і list-style-type (детальніше)\r\n\r\nПідрахунок вибраних елементів\r\n\r\nЗараз ми підійшли до найцікавішого. Властивості лічильника можуть міститися у псевдо-елементі, наприклад :checked. Це дозволяє лічильникам реагувати на вибір користувача через прапорці. Приклад, що показує кількість елементів, вибраних користувачем:\r\n\r\n\r\nЦей CSS майже не відрізняється від наших попередніх прикладів. Єдиною відмінністю є збільшення лічильника в псевдо-елементі (input:checked) і відображення лічильника у виділеному для цього елементі( .total )', '2016-01-15 17:57:58', '2016-01-15 17:57:58', NULL),
(11, 'PHP', 'Yii Framework. Старт. Урок 1', 'bieloborodov ', 'Всім привіт.\r\nСьогодні я хочу почати невеликий курс з використання, напевно, одного з найпопулярніших фреймоворків PHP\r\n- Yii Framework.\r\n\r\nКілька років тому, коли я заглибився в PHP, і програмував на процедурному коді,\r\nмені всі говорили: "Ілля, пора тобі фреймворк освоїти", а я в ніяку, завжди себе переконував,\r\nщо мені ще рано. Через пів року, я був змушений вибрати фреймворк. Перечитавши десятки статей та відгуків\r\nя зупинився саме на Yii. Після тижневого розбору, і спроб зробити щось розумне - я пошкодував про те,\r\nщо почав в цьому розбиратися аж тільки зараз.\r\n\r\nМабуть, я не буду розписувати всі переваги Yii Framework і те, чому ваш вибір повинен бути саме Yii. Я просто залишу це\r\nпосилання тут https://uk.wikipedia.org/wiki/Yii.\r\n\r\nІ так, почнемо!\r\n\r\nСьогодні ми спробуємо встановити фреймворк і запустити наш перший додаток.\r\nТак, саме "встановити", просто завантаженням і перенесенням вихідного коду в папку з вашим проектом тут не обійтися\r\n(На перший погляд страшнувато, і я навіть закинув цю справу на декілька днів :D).\r\n\r\nНасправді нічого складного, давайте спробуємо.\r\nПереходимо на офіційний сайт http://www.yiiframework.com/download/, гортаємо нижче, і завантажуємо Yii 1.1.\r\nЧому не Yii 2? На другу версію фреймворка в інтернеті мало документації, нам цілком підійде Yii 1.1.\r\n\r\nУ завантаженому архіві є тека"framework" - вона нам і потрібна, давайте перенесемо її в наш проект.\r\nДалі саме цікаве, давайте відкриємо термінал (або командний рядок) і пропишемо в ній наступне:\r\n\r\nРОЗТАШУВАННЯ_ПРОЕКТА/framework/yiic webapp РОЗТАШУВАННЯ_ПРОЕКТА\r\nУ першій половині запиту ми звертаємося до файлу yiic, у другій половині ми вказуємо місце, куди\r\nрозгорнути наш yii-додаток.\r\n\r\nУ мене це виглядає так\r\n\r\n/Applications/1web/yiilessons/framework/yiic webapp/Applications/1web/yiilessons/\r\nТермiнал\r\n\r\nтиснемо ENTER і бачимо наступне питання:\r\n\r\nCreate a Web application under ''/Applications/1web/yiilessons''? (Yes | no)\r\nТермiнал\r\n\r\nПишемо "yes" і знову тиснемо ENTER. Вуаля!', '2016-01-15 18:05:05', '2016-01-15 18:05:05', NULL),
(12, 'PHP', 'Супроводження PHP MVC сайтів дуже витратне', 'adadadda4', 'Вирішив перекласти статтю, яка трапилася мені після роботи над огидним сайтом на огидному Yii, в якому логіка роботи програми розмазалась по всім трьом літерам із абревіатури MVC, в якому було багато схожого коду, який робив майже однакові речі, в якому було страшно міняти HTML-код будь-якої форми, бо потім могло виявитися, що форма використовується ще в трьох місцях (хоча, на мою думку, не повинна була). А також в якому всі моделі - це просто зборище функцій для роботи з БД, які відносяться до певної частини сайту.\r\n\r\nПостійно доводилося перемикатися між багатьма відкритим файлами і тримати в голові що, де, і на якому етапі додається в результуючий HTML документ. Хоча нічого космічного там не відбувалося, і всі ці додаткові сутності виступали як зайвий багаж.\r\n\r\nРобота з таким сайтом у всіма улюбленому Sublime text додавала ще більше роздратування.\r\n\r\nЯ в основному працюю над web програмами, написаними на PHP і MySQL, і написаними давно. Зазвичай початковий розробник недоступний, тому я мушу зрозуміти код, для того щоб виправити вади чи додати нові можливості.\r\n\r\nПротягом тривалого часу, більшість PHP програм над якими мені доводилося працювати були написані в класичному PHP стилі:\r\n\r\nURL для кожної сторінки;\r\nPHP і HTML (і JavaScript) перемішані між собою;\r\nбізнес логіка і представлення змішані в одному й тому ж файлі.\r\nДекілька років тому я почав бачити більше коду в MVC стилі, написаного на таких фреймворках як: Zend, Symfony, Laravel, CodeIgniter тощо. \r\nЯ думав, що це добре, і що супроводжувати PHP код, написаний на MVC фреймворках буде легше. Проте все виявилося якраз навпаки. Особисто для мене, програму в класичному PHP стилі легше зрозуміти і реструктуризовувати, навіть якщо вона деградувала в спагеті–код з PHP і HTML. Легше працювати над класичним PHP, навіть над погано написаним, тому що все що тобі потрібно знати, для того щоб слідувати потоку запит–відповідь, - знаходиться в одному місці і читається зверху донизу. Що ж до MVC, то зрозуміти логіку роботи, яка стоїть за ним з усім цим багажем ООП, який MVC зазвичай тягне за собою, на порядок важче; і MVC/OOP код не обов’язково вищої якості, або ж його легше обслуговувати чи він більш надійний.', '2016-01-15 18:05:05', '2016-01-15 18:05:05', NULL),
(13, 'SQL', 'SQL-Урок 1. Мова SQL. Основні поняття.', '_', 'Для того, щоб почати вивчати SQL нам потрібно спочатку зрозуміти, що таке база даних.\r\n\r\n1. Що таке База Даних?\r\n\r\nБаза даних (БД) — впорядкований набір логічно взаємопов''язаних даних, що використовуються спільно, та зберігаються в одному місці. Якщо коротко, то найпростіша БД це звичайна таблиця з рядками та стовпцями у якій зберігається різного роду інформація (прикладом може слугувати таблиця в Excel). Так, часто, з БД нероздільно пов''язують Системи управління базами даних (СУБД), які надають функціонал для роботи з БД. Мова SQL якраз і є частиною СУБД, яка здійснює керування інформацією в БД. Ми будемо вважати БД набором звичайних таблиць, які зберігаються в окремих файлах.\r\n\r\n2. Що таке SQL?\r\n\r\nОтже, переходимо до SQL.\r\n\r\nSQL - проста мова програмування, яка має небагато команд і якій може навчитися будь-який бажаючий. Розшифровується як Structured Query Language - мова структурованих запитів, яка була розроблена для роботи з БД, а саме, щоб отримувати/добавляти/змінювати дані, мати можливість опрацьовувати великі масиви інформації та швидко отримувати структуровану та згруповану інформацію. Є багато варіантів мови SQL, але у них всіх основні команди майже однакові. Також існує і багато СУБД, але основними з них являються: Microsoft Access, Microsoft SQL Server, MySQL, Oracle SQL, IBM DB2 SQL, PostgreSQL та Sybase Adaptive Server SQL. Щоб працювати з SQL кодом, нам потрібна буде одна з вище перелічених СУБД. Для навчання ми будемо використовувати СУБД Microsoft Access.\r\n\r\nSQL як і інші мови програмування має свої команди (оператори), за допомогою яких віддаються вказівки для вибірки даних. Щоб розглянути як працюють оператори SQL, ми будемо використовувати уявну БД з інформацією про реалізовану продукцію:', '2016-01-15 18:08:07', '2016-01-15 18:08:07', NULL),
(14, 'SQL', 'SQL-Урок 2. Вибірка даних (SELECT)', '_', 'Найпершим та найголовнішим оператором в SQL являється SELECT. З його допомогою ми можемо відбирати необхідні нам поля з даними в таблиці.\r\n\r\n1. Вибірка окремих полів.\r\n\r\nSELECT Product FROM Sumproduct\r\n\r\n\r\n\r\nБачимо, що наш SQL запит відібрав колонку Product з таблиці Sumproduct.\r\n\r\n2. Вибірка кількох полів.\r\n\r\nПрипустимо, нам необхідно вибрати назву та кількість реалізованого товару. Для цього просто перераховуємо необхідні поля через кому:\r\n\r\nSELECT Product, Quantity FROM Sumproduct\r\n\r\n\r\n\r\n3. Вибірка всіх стовпців.\r\n\r\nЯкщо ж нам необхідно отримати всю таблицю зі всіма полями, тоді просто ставимо знак зірочка (*):\r\n\r\nSELECT * FROM Sumproduct\r\n\r\n\r\n\r\nВітаю, Ви зробили перші SQL запити.\r\n\r\nPS. Всі оператори в SQL нечутливі до регістру, тому ви можете їх писати як великими буквами, так і маленькими (як правило, їх прийнято писати великими буквами, щоб розрізняти від назв полів та таблиць). Назви же таблиць та полів є навпаки чутливими до регістру та мають писатися точно як в БД.', '2016-01-15 18:08:07', '2016-01-15 18:08:07', NULL);

-- --------------------------------------------------------

--
-- Структура таблицы `languages`
--

CREATE TABLE IF NOT EXISTS `languages` (
  `id` int(5) unsigned NOT NULL,
  `title` text COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Дамп данных таблицы `languages`
--

INSERT INTO `languages` (`id`, `title`) VALUES
(1, 'C/C++'),
(2, 'CSS'),
(3, 'HTML'),
(4, 'Java'),
(5, 'JavaScript'),
(6, 'PHP'),
(7, 'SQL');

-- --------------------------------------------------------

--
-- Структура таблицы `tips_block`
--

CREATE TABLE IF NOT EXISTS `tips_block` (
  `id` int(11) NOT NULL,
  `id_tips` int(11) NOT NULL,
  `id_type` int(11) NOT NULL,
  `texts` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Структура таблицы `tips_name`
--

CREATE TABLE IF NOT EXISTS `tips_name` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `creates` datetime DEFAULT NULL,
  `users` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- --------------------------------------------------------

--
-- Структура таблицы `tips_type`
--

CREATE TABLE IF NOT EXISTS `tips_type` (
  `ID` int(11) NOT NULL,
  `types` varchar(50) NOT NULL,
  `info` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `articles`
--
ALTER TABLE `articles`
  ADD PRIMARY KEY (`id`);

--
-- Индексы таблицы `languages`
--
ALTER TABLE `languages`
  ADD PRIMARY KEY (`id`);

--
-- Индексы таблицы `tips_block`
--
ALTER TABLE `tips_block`
  ADD PRIMARY KEY (`id`);

--
-- Индексы таблицы `tips_name`
--
ALTER TABLE `tips_name`
  ADD PRIMARY KEY (`id`);

--
-- Индексы таблицы `tips_type`
--
ALTER TABLE `tips_type`
  ADD PRIMARY KEY (`ID`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `articles`
--
ALTER TABLE `articles`
  MODIFY `id` int(6) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=15;
--
-- AUTO_INCREMENT для таблицы `languages`
--
ALTER TABLE `languages`
  MODIFY `id` int(5) unsigned NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=8;
--
-- AUTO_INCREMENT для таблицы `tips_block`
--
ALTER TABLE `tips_block`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT для таблицы `tips_name`
--
ALTER TABLE `tips_name`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT для таблицы `tips_type`
--
ALTER TABLE `tips_type`
  MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

{'fraction_non_alphanumeric': 0.10953329778576039, 'fraction_numerical': 0.025061038924592372, 'mean_word_length': 4.225692916849978, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 25, 'https://': 1, 'lorem ipsum': 0, 'www.': 7, 'xml': 0}, 'pii_count': 2, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 7, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4728663', 'n_tokens_mistral': 15479, 'n_tokens_neox': 18283, 'n_words': 4408}