Попалась большая mysql база в cp1251, которую нужно залить в PostgreSQL в utf8

Не знаю откуда в 2014 коду берутся люди, которые используют cp1251, но эти извращенцы еще существуют.

В общем, чтобы залить mysql базу в постгрес, в нормальной кодировке, я сделал так —

Файл kp.sql — исходная база.

iconv -f CP1251 -t UTF-8 kp.sql >kp_utf8.sql # сконвертим в utf8 текст дампа

cat kp_utf8.sql|sed s/cp1251_general/utf8_unicode/g |sed s/cp1251/utf8/g > kp_utf8_fix.sql # пофиксим cp1251

В консоли mysql —

create database kp;
use kp;
source kp_utf8_fix.sql; # заливаем дамп

Ок. Теперь выгружаем дамп для заливки в постгрес. Отдельно схему и данные:


mysqldump -u root -p --compatible=postgresql --no-data --default-character-set=utf8 kp -r kp_postgres.sql
mysqldump -u root -p --compatible=postgresql --no-create-db --no-create-info --default-character-set=utf8 kp -r kp_postgres_data.sql

Теперь нужно поправить схему для соответствия типа колонок в постгресе. Можно ручками или спец. утилитой.
Я воспользовался утилитой — SQLFairy
В убунте она находится в пакете libsql-translator-perl

Фиксим дамп схемы:


sqlt -f MySQL -t PostgreSQL kp_postgresql.sql > kp_pg_schema_fixed.sql

Загружаем схему в постгрес —

psql -h server -d databasename -U username -f kp_pg_schema_fixed.sql # server, databasename, username ставите свои.

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

Теперь нужно загрузить данные. MySQl выгружает в режиме совместимости с PostgreSQL но не совсем в совместимом режиме =).
Поэтому в файл kp_postgres.sql вначале добавляем строки:

SET standard_conforming_strings = 'off';
SET backslash_quote = 'on';

Если дамп большой (как был у меня), то проще всего сделать так:

(echo 'SET standard_conforming_strings = 'off';
SET backslash_quote = 'on';
'; cat kp_postgres.sql) > kp_pg_data_fixed.sql

Ок дамп готов, загружаем в постгрес.


psql -h server -d databasename -U username -f kp_pg_data_fixed.sql # server, databasename, username ставите свои.

PostgreSQL при загрузке будет сыпать HINTы — пофиг на них. Загружается очень медленно, но для меня это было не принципиально.

Усе.

Сервис поиска видео роликов

Сделал еще один сервис поиска видероликов.
Сервис не пропустит ни одного трендового видео в интернете! В этом его основная фишка — поиск лучших видео роликов в Интернет.

 

 

Впечталение от Винды

Вчера первый раз за последние 5 лет столкнулся с виндой «лицом к лицу». Это было в учебном заведении. Секретарю нужно было распечатать документ (а судя по ее действиям, она еще тот чайник), а принтер не работал. Она попросила меня посмотреть.
Я потыкал мышкой куда помнил — ничего не получилось. Впечатления — крайне неудобная система. Все тормозит. В логах неинформативные сообщения, что с принтером сделалось и куда смотреть — не понятно. Ну да ладно, я не спец. по виндоузам.

Больше всего мне понравилось наблюдать как эту проблему пытался решить другой, оказавшийся в кабинете человек.
Он сказал, что все починит и тут я привожу несколько фраз и действий «профессионального пользователя виндоуз»:

Ох у вас тут ничего не установлено! Пустой компьютер.
Че-то принтера не видно в «установленных программах».
Так, а может ему порт в настройках поменять на COM1? (тут я фыркнул).
Я вам отключил обновление виндоус, чтобы компьютер не тормозил.
Перезагрузка — 3-4 раза.
Удаление/установка/переустановка драйвера принтера.
Предложил подключить, стоявшим рядом ксерокс вместо принтера.

? много чего еще, что я не запомнил =). За 1.5 часа принтер так и не починил, но когда я уходил он его еще ковырял.

Разборки с Самарагаз, долг за газ от предыдущего собственника

В очередной раз мне пришлось выступать в роли «адвоката» =).
Привожу текст письма по поводу разборок с долгом за газ от предыдущего собственника квартиры. Может кому нибудь пригодится. (Правда я подключился не на начальной стадии, а уже на стадии писанины в прокуратуру).
?так текст:

Прокурору Самарской области
Кабалоеву М.А.

Копия:
УФАС по Самараской области

Копия:
Генеральному директору
ОАО «Самарагаз»
Сапрыкину А.В.

От _______________,
проживающей по адресу:
___________________
___________________

Заявление

В октябре 2011 года я приобрела комнату по адресу _____________________________________ (см. приложение №1 — копия договора купли продажи, приложение №2 — копия свидетельства о государственной регистрации права). Предыдущий собственник утаил от меня информацию о образовавшейся, на момент приобретения комнаты, задолженности за газ.
В соответствии со ст. 391 ГК РФ перевод должником своего долга на другое лицо должен быть оформлен в письменной форме (требование соблюдается при наличии рассмотренного условия в договоре либо если составлено дополнительное соглашение) и согласно п.1 статьи 391 ГК РФ, допускается лишь с согласия кредитора. Подобных соглашений мною составлено не было. Согласие кредитора (ОАО «Самарагаз») получено не было.
В январе 2012 года я заключила договор на газоснабжение с ОАО «Самарагаз» (см. приложение № 3 — копия договора на газоснабжение).
В феврале 2012 года, мне поступил звонок из ОАО «Самарагаз», в котором мне сообщили, что у меня существует задолженность за газ в размере __________ (_____________) рублей, которая перешла на меня с предыдущего собственника.
Согласно ст. 153 ЖК РФ — «Обязанность по внесению платы за жилое помещение и коммунальные услуги возникает у собственника жилого помещения с момента возникновения права собственности на жилое помещение».
В феврале мною было написано письмо на имя начальника СЭГХ-1 филиала «Самарагаз» ______________________ (Письмо зарегистрировано в Самарагаз вх. номер __________________), с просьбой разобраться в данной ситуации.
В марте 2012 года я получила ответ на свое из ОАО «Самарагаз» с отказом в списании задолженности за газ и давлением на меня в следующей части текста письма — «__письмо поскипано______» (см. приложение № 4 — копия письма из ОАО «Самарагаз» от ________).
В ответ на это письмо я изложила свои аргументы более подробно (см. приложение №5 — письмо в филиал ОАО «Самарагаз»). Письмо было зарегистрировано (вх. номер _________________).
С написания последнего письма прошло уже 2 месяца а ответ из ОАО «Самарагаз» так и не получен.
Пользуясь своим монопольным положением и в нарушение ГК РФ, ОАО «Самарагаз» требует от меня погашения чужой задолженности и игнорирует мое письмо. Хочу также отметить, что данное разбирательство затянулось уже на 4 месяца и негативно сказывается на моем здоровье.
В связи с вышеизложенным прошу разобраться и дать письменный ответ на мое заявление в установленный законом срок.
Приложения:
список приложений поскипан

Кидалово от tx2.ru, обман, не платят деньги

Собственно сабж. На 2 аккаунтах в этой партнерке зависло 7000 рублей — не выплачивают, саппорт молчит.
Вот такие вот дурачки =)

UPD:

Сегодня пришло письмо —

Уважаемые участники сети tx2.ru. Наша система приостанавливает работу. В связи с чем, просим вас до конца недели снять коды с сайтов. Заработанные средства будут постепенно выведены всем участникам после проверки всех сайтов. Все вопросы можно задавать через внутренюю систему сообщений.

Результаты конкурса трех праздников

Мы учавствовали в конкурсе 3-х праздников — от Grattis совместно с WebEffector и форумом Webmasters.

По части конкурса от WebEffector мы заняли 1-ое место во всех трех номинациях. (Результаты можно посмотреть тут).
Продвигаемый сайт — http://stost.ru/.

Кому интересно увидеть немного сухой статистики:

  • посещаемость сайта stost.ru. (до 23 февраля счетчик LI стоял не на всех страницах).
  • заработок от партнерской программы с аудио поздравлениями Grattis — более 100 000 рублей.
  • Поздравления с днем святого Валентина — 0.242 млн. посетителей, позиция — топ2.
  • Поздравления с 23 февраля 0.298 млн. посетителей — топ3
  • Поздравления с 8 марта 0.548 млн. посетителей  — топ4 (был топ2, только pozdrav залез в последний момент).

За продвижение эффектор нам вернул 5т.р.

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

Основной упор был сделан на miralinks.ru и gogetlinks.net. + Социальные сервисы rotapost.ru и др.

 

По колено в ПХП, или история одного переезда

Так случилось, что мне достался один сайт написанный на PHP для размещения на нашем сервере. У этого проекта были некоторые недостатки. Первая и основная проблема с которой я столкнулся это то, что часть PHP файлов была закодирована программой Zend Optimizer. Это такая гавеная программа, которая позволяет шифровать другие гавеные программы на PHP. Если вам стыдно показать свой код заказчику, то смело проходите по ссылке выше.

Ой. Подумал я и написал авторам сайта просьбу выдать исходники без зондазенда. Авторы любезно ответили, что исходников без зенда у них нет. Но есть исходники старого проекта но со старым дизайном. Чудесно правда? В этот момент я слегка фаломорфировал, но решил на время сдержаться и не стал писать авторам сего чуда, все что я о них думаю. Особено меня удивил факт того, что товарищи использовали шаблонизатор smarty, и дизайн вроде как должен быть исключительно в шаблонах. Но видимо что такое MVC, VCS и PHP фрэймворки они слышали только очень отдаленно.

Решение первое и очевидное — поставить Zend Guard (бывший Zend Optimizer). Поставив на сервер Zend Guard и открыв сайт в браузере я увидел надпись, которая сулила мне новые развлечения — код был закодирован в старой версии Zend Optimizer’a и с PHP 5.3+ он не работает. Погуглив на эту тему я обнаружил, что единственное решение — перекодировать файлы новой версией Zend Guard’a, что для меня было несколько затруднительно в виду отсутствия исходных текстов. Обратившись к разработчикам я получил ответ — пользуйтесь хостингом на котором стоит Zend Optimizer и даже получил пару ссылок на таких хостеров. Я спросил, а что мы будем делать когда все хостеры откажутся от PHP версии ниже 5.3? Ответом на этот вопрос была тишина.

Решение второе и единственно правильное — восстановление исходников. Я запросил старую версию сайта, которую мне (слава богу) прислали. Воспользовавшись сервисом http://www.showmycode.com/ я восстановил файлы, которые изменились при переходе на новый дизайн. Но сайт после этого работал с глюками. Просмотрев исходный код (и фаломорфировав во второй раз), я нашел пару ошибок в коде. Сначала я подумал на товарищей, что они специально внесли эти глюки, но как оказалось впоследствии, сервис http://www.showmycode.com/ восстанавливает код не очень хорошо, по пути теряя части скрипта. В купе с таким языком как PHP, который даже при отсутствии кусков текста в исходниках продолжал работать не выдавая никаких ошибок! (тут я офигел в третий раз, окончательно и безповоротно), задача восстановления сайта  представлялась мне «потрясающе интересной».

Окунувшись с головой в чудесный мир PHP, и «замечательного» самописного фрэймворка X-CUBE, на котором работал сайт, я начал понемного ковырять палочкой index.php, базу и другие куски фрэймворка. После 2-х часов этого жизнеутверждающего занятия, обмотав кусками изоленты index.php мне удалось запустить сайт в рабочем состоянии.

Если тебе, дорогой читатель, интересно узнать об авторах сего чудного PHP-фрэймворка, состоящего из быдлокода ровно на 98.55%, то ты можешь обратиться в студию СВМ, и заказать у них сайт. Господа из этой чудесной студии подарят тебе чудесный проект состоящий из кусков PHP слепленых в занимательный клубок, который возможно в браузере будет выглядеть как сайт.

В заключение несколько бесплатных советов для студии СВМ (http://swmstudio.ru/, СамараВебМастер).

Читать далее

Загранпаспорт, гагарина 66а, Самара

Отдал документы на получение загранника старого образца в УФМС.
Сначала хотел через госуслуги, но анальное подтверждение аккаунта через почту, до сих пор находится в начальной стадии. (А все из-за чуда под названием Почта России).
В итоге решил подать документы сам, на старый образец.
Необходимые документы для получения старого загранника находятся здесь — http://www.ufms63.ru/oldzp
Там же можно скачать анкету и заполнить. Если вы не идиот то ничего вам не вернут и все заполните с первого раза. Ничего сложного там нет. Кроме того при приеме документов разрешают делать небольшие исправления.

?так о самой подаче документов:
Начитавшись об очередях, я пришел в отделение УФМС на гагарина 66а к 8 утра. (В тот день они начинали работать в 9). Около здания собралась уже небольшая стайка желающих подать документы (человек 8). В течении 5 минут подошло еще человек 20. Т.е. пришел бы я на 5 минут попозже — стоял бы в очереди до вечера =).
В 9 открывают здание УФМС и выстраивается очередь в терминал для получения талончика в электронную очередь. Мне достался номер 517.
Сначала я думал, что буду 17-м и из этого можно расчитать время когда меня примут. Но как выяснилось позже эти номера идут не по порядку т.к. туда вклиниваются посетители в другое окно (возможно на биометрический паспорт). Т.е. Номера на табло могут меняться так: 512->513->517. Но примерно до 15-го номера они обычно идут плотно.
?з-за неравномерности номеров можно пропустить свою очередь. (Что, кстати, я и сделал, когда был там первый раз).

Продолжим. После получения номера я съездил домой и вернулся примерно через час (к 11-ти). Моя очередь подошла в 12-10. На обслуживание одного человека тратилось в среднем 15 минут.
Передо мной подавали документы бабулька с дедулькой. Анкеты у них были заполнены от руки, и прямо перед окошком они ее исправляли (по просьбе приимающей девушки).
Вообще я видел как завернули документы только от одной бабульки.