Как правильно записать CSV файл с utf-8 кодировкой в Windows

Кому приходилось работать с Windows, возможно вам знакома следующая проблема. Если записать обычный CSV файл c utf-8 кодировкой и затем открыть его в Excel, то вместо русских букв будут показаны кракозябры. Оказывается, чтобы исправить эту проблему в Windows к CSV файлу нужно добавлять последовательность символов, известную под названием BOM (Byte order mark). Ниже привожу пример […]

Поиск длины наибольшей общей подпоследовательности

Постановка задачи: Имеются две последовательности, необходимо найти длину наибольшей общей подпоследовательности (далее НОПП), которая входит в обе из исходных последовательностей. Для лучшего понимания определим, как относится эти понятия друг к другу. Если брать в качестве последовательностей простейший вариант – строки, как набор символов, то задача становится более наглядной. Например, для строки “ABCDEF” подпоследовательностями (ПП) являются […]

Установка Apache PHP MySQL (LAMP) в Ubuntu 14.04

В данной статье вы найдете подробное руководство установки и настройки LAMP веб сервера на базе Ubuntu. Lamp это сокращенное обозначение наиболее популярной связки серверного программного обеспечения, а именно Apache, MySQL, PHP (LAMP = Linux + Apache + MySQL + PHP). Наш LAMP сервер будет базироваться на Ubuntu 14.04, самой последней на сегодня версии убунту, обновления […]

Перебор массива элементов javascript

Для перебора элементов массива обычно используют стандартный цикл for: var arr = [1, 2, 3, 4]; for (var i=0; i < arr.length; i++) { console.log(arr[i]); } Если массив большой, то чтобы избежать дополнительной нагрузкой при обращении к свойству array.length при каждой итерации, то лучше определить длину массива заранее: var a = makeBigArray(); var aLength = […]

mysql узнать размер базы данных

Чтобы узнать размер базы данных в mysql, выполните запрос: SELECT table_schema “db name”, ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) “size MB” FROM information_schema.tables GROUP BY table_schema; в результате вы должны получить что-то в этом роде: +——————–+———+ | db name | size MB | +——————–+———+ | mydatabase1 | 3.2 | | mydatabase2 | 8.1 […]

Куки Google Analytics

Google Analytics является самым популярным инструментом для сбора статистики с сайтов. Какую информацию Google хранит в своих куках мало известно. Я провел некоторые исследования куков. С одной стороны Google дает полезное описание своих куков в документации, но там не сказано, что именно хранится в их куках. Google устанавливает от 4 до 6 различных куков с […]

JavaScript регулярные выражения

Регулярные выражения в JavaScript Регулярные выражения это шаблоны, которые используются для поиска строковых комбинаций в тексте. В JavaScript регулярные выражения также являются объектами. Эти шаблоны используются в методах exec и test для RegExp, и методах match, replace, search и split для String. В этой статье рассматриваются регулярные выражения JavaScript. Замечание. Регулярные выражения не доступны для […]

Обновление для уязвимости ASP.NET

На прошлой неделе я уже писал об уязвимости в ASP.NET. Мы активно работаем над выпуском обновления безопасности, которое решит проблему, и я сообщу, когда данное обновление будет доступно. Исправленное временное решение и дополнительный шаг URLScan В моей предыдущей статье (англ.) я рассмотрел временное решение, которое вы могли сразу применить на ваших сайтах и приложениях, чтобы не дать злоумышленникам воспользоваться […]

JavaScript: область видимости и замыкание

В данной статье я попытаюсь объяснить области видимости и замыкания в JavaScript, в чем многие испытавают трудности. Введение В сети довольно много статей, в которых пытаются объяснить области видимости и замыкания, но в общем, я бы сказал, что большинство из них не совсем понятны. Кроме того, в некоторых статьях предполагается, что вы программировали до этого на 15 других языках, хотя как […]

JavaScript таймеры с использованием функций и области видимости

JavaScript таймеры с использованием функций и области видимости Сегодня я хочу познакомить вас с таймерами в JavaScript и показать как использовать область видимости, чтобы ваша жизнь стала проще.   С чего мы обычно начинаем Если вы когда-либо программировали на JavaScript, то скорее всего свой первый таймер вы создавали примерно следующим образом (вполне вероятно, что точно также […]