Новые меры по борьбе с пиратами



Как всем известно, пиратство сейчас процветает полным ходом. Сложно найти человека, который не использовал бы хоть какой-то пиратский софт. Я думаю, каждый скачивал хотя бы раз какой-нибудь трек из интернета, не заплатив за него положенной стоимости, и я в том числе. Недавно в сети появились первые финальные образцы нового закона о борьбе с пиратской продукцией, которые предусматривают тот факт, что, к примеру, в аэропорту у вас могут взять на проверку ваш любимый iPhone или ноут, с пиратской виндой, и проверить, не содержится ли в нем ворованного контента, а телефон, залоченный когда-то под оператора, просто отнять и уничтожить.


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

Идиома RAII — захват ресурса есть инициализация

RAII – идиома, получившая широкое распространение благодаря создателю С++ Бьярну Страуструпу, и расшифровывается как “Resource Acquisition is Initialization” – захват ресурса есть инициализация.

Идиома очень простая и кратко описывается следующим образом: в конструкторе объект получает доступ к какому либо ресурсу (например, открывается файл или устанавливается соединение по сети к базе данных) и сохраняет описатель ресурса в закрытый члена класса, а при вызове деструктура этот ресурс освобождается (закрывается файл или соединение к БД). При объявлении объекта данного класса на стеке происходит и его инициализация с вызовом конструктора, захватывающий ресурс. При выходе из области видимости объект выталкивается из стека, но перед этим вызывается деструктор объекта, который и освобождает захваченный ресурс.

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

Как я делал две цены в webasyst

В один прекрасный день после запуска сайта на базе Webasyst Shop-Scrypt, появилась задача сделать две цена для товаров — оптовую и розничную. Обладая небольшими, чуть ли не нулевыми, знаниями программирования было решено перерыть рунет в поисках готового решения. Но как оказалось позже, проще самому было написать чем достучаться до пользователей десятков форумов и блогов.

Просидев два дня в изучении кода скрипта, были внесены следующие изменения:

-розничная цена осталась без изменения
-оптовая цена была загружена в «ячейку» старая цена
-были созданы группы покупателей: опт и розница

Для отображения оптовой цены, пользователя достаточно перетянуть в группу покупателей «Опт», заранее соданную, и все готово!


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

Cнятие и установка дампа в MySQL (mysqldump) — tips & tricks

В теории


В теории все просто — MySQL из коробки имеет утилиту mysqldump, которая позволяет снять копию базы в виде набора SQL инструкций.

В реальности все гораздо хуже. Дело в том, что mysqldump криво работает с кодировками, отличными от Latin1. Тоесть экспортировать базу в UTF8 следуя официальной документации (man mysqldump), тоесть с указанием --default-character-set=utf8, и импортировать ее потом обратно — не представляется возможным. Кодировка будет битая в следствии «двойного преобразования», выполняемого утилитой mysqldump — пруфлинк

Собственно, по ссылке выше есть и рецеп. Суть его в том, что нужно экспортировать базу и затем импортировать ее в Latin1 вне зависимости от того, какая реально кодировка используется. При этом конечно нужно вычестить из *.sql файл инструкции SET NAMES…

Еще один важный момент, который следует учесть. Как правило мы снимаем дамп базы с именем A и пытаемся накатить его на базу с именем B. Соответственно, возможны коллизии из за того, что в созданном после экспорта файле в SQL запросах и командах СУБД будет присутствовать упоминание A. Нужно заменить все вхождения A на B, ниже под катом будет пример как это сделать средствами VIM.


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

Основы программирования от любителя для любителей



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


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

13 советов владельцам сайтов

За прошедшую неделю пролетало достаточно много качественных, конструктивных и полезных статей про ошибки, которые допускают владельцы сайтов. Дамы собрать все эти ценные советы вместе + конечно же добавить своего, а не искать их по всему Хабру я решил сделать эту статью-подборку. Думаю, собранная в этом топике информация будет полезна как владельцам сайтов, так и людям, которые только думают о создании сайта.

Что касается сайтов, то их классифицировать можно по-разному. И для каждой тематике нужно применять свои правила и законы. Однако, есть ряд моментов, которые подходят сайтам всех разновидностей.


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

Соревнования по программированию. Где можно показать себя?

Недавно Facebook анонсировал свое соревнование по прогрммированию: Hacker Cup. Я ждал, что статья о нем на хабре появится сразу, но нет, поиск по такому запросу возвращает пустой результат.

Тогда я сделал поиск по запросу TopCoder Open и Google Code Jam, и, как и ожидалось, увидел только несколько статей с результатами соревнований. Значит надо заполнить эту нишу и написать статью о том, что же такое соревнования по программированию, с чем их едят, и как ты, дорогой хаброюзер, можешь в них поучаствовать, и что тебе это даст.

Я расскажу исключительно о так называемом «спортивном» программировании.

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

Регистрация компании на Кипре

Тема про регистрации оффшорных компаний вызвала интерес у хабраобщества, поэтому расскажу — как можно зарегистрировать компанию на Кипре.

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

Польза от регистрации компании именно на Кипре — Евросоюз, с 2009 года Кипр исключен из списка оффшоров ЦБ РФ, низкий процент налога на прибыль по Европе.

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

Перестановка символьных значений местами без использования промежуточной переменной в PHP

Вводная



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

Есть несколько вариантов такой перестановки: «Перестановка через XOR», «Перестановка через арифметические вычитание и сложение», не буду приводить их здесь полностью, любопытные могут воспользоваться ссылкой в конце текста.

Собственно созерцание этих алгоритмов навело меня на мысль о возможности перестановки строковых (символьных) значений.
Читать дальше →

Бытовое програмирование

Наверно каждый задумывался сколько будет 356+452? На решение этого задания в среднем уходит до 3ех минут.

Многие школьники (8+ классов) не умеют находить корни уравнения x2-7x+10=0 (в уме), я уже не говорю о 2x2-14x+20=0. Как решить эту проблему с минимальными затратими? Все очень просто: компьютер мне в руки!


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