Показаны сообщения с ярлыком ошибки. Показать все сообщения
Показаны сообщения с ярлыком ошибки. Показать все сообщения

Решение найдено. (ex: Нужна помощь коллективного разума)

потому что мой уже трещит по швам :).

Неведомая фигня происходит на моем компе. У меня есть вот такая программка:

// a.c
#include 

int main (int argc, char** argv) {
  FILE* f = fopen("x", "w");
  fprintf(f, "Hello!\n");
  printf("Hello!\n");
  fclose(f);
}

Компилирую, запускаю:

a.exe > y

— файл "y" создается, а "x" — нет.

Windows 7, компилятор mingw (Visual Studio C++ тоже пробовал).

И такая хрень происходит с любым моим C'шным скомпилированным кодом — файлы не создаются. Потом вдруг рррраз, создались! А потом снова не создаются.

Update: Спасибо Лехе aka "Android", решение найдено. Это был Avast, мать его. Стоит выключить его файловый экран, все работает, включаю - перестает. И, блин, хоть бы он голос подал, что ему моя программа подозрительна. Так нет, он молча все делает - без намека на проблему. И, как пишут на форумах, эта проблема с Avast не только у меня появилась после его обновления до версии 7.

Как определить плохого заказчика? По следам вебинара «Как построить хорошие отношения с заказчиками»

Спасибо всем, кто пришел меня послушать, и, конечно же Сергею Бережнову, что пригласил меня выступить!

Запись уже обработана, Сергей в ближайшее время обещал выложить.

Как и обещал, публикую несколько полезных ссылок, а также свой check-list для определения потенциально «плохого» заказчика.

Полезные ссылки по теме

Семь признаков плохого заказчика

  1. Неадекватно жадный.
  2. Fixed-price проекты c размытым функционалом и оплатой по факту выполнения.
  3. Низкая доступность заказчика по ходу работы с последующим появлением в конце разработки со словами «нет, это совсем не то».
  4. Не готов к уступкам.
  5. Ограничивает взаимодействие с ключевыми людьми в проекте со своей стороны.
  6. Изначально не доверяет.
  7. Считает достаточным вкратце формализовать задачу и закончить разговор словами «Ну вы же профессионал, сами все должны понимать, к тому же мы вам СТОЛЬКО платим».

Семь признаков хорошего заказчика

  1. Понимает, что хорошая работа стоит хороших денег.
  2. Знает, что из низкой цены, качества и скорости разработки можно выбрать только два пункта.
  3. Ежедневно доступен для связи и охотно идет на контакт.
  4. Регулярно участвует в обсуждениях по проекту.
  5. Не занимается микроменеджментом.
  6. Изначально обладает высоким уровнем доверия.
  7. Как правило, из западных компаний и работает по адекватному процессу.

MySQL — потерянные буквы 'ш' и 'И' — решение

Недавно пришлось восстанавливать сайт на Wordpress, и дамп MySQL'ной базы оказался дважды перекодирован из Windows-1251 в UTF-8. После того, как я его перекодировал взад, оказалось, что из русского текста пропали две буквы: 'ш' и 'И' — на их месте стояли кракозябылы.

Порылся в сети — оказалось, что бага известная и периодически случающаяся. И большей частью с ней борются, практически, вручную, по крайней мере мне не удалось найти никакого скрипта, который бы я мог использовать для решения этой проблемы. В итоге, я написал свой :).

Скачать: SHI-convert.zip (1 Кб).

Скрипт будет работать, скорее всего, только для двойного преобразования Windows-1251 → UTF-8. Результат работы скрипта — текст в UTF-8 с поставленными на место буквами 'ш' и 'И'.

Шлите ваши комментарии :).

<?php
/**
    Восстанавливатель текстов, подвергшихся двойной перекодировки  
    из Windows-1251 в UTF-8. Казалось бы, что сложного в том, чтобы 
    сделать обратное преобразование? Однако, проблема в том, что 
    по неизвестным причинам в исходном тексте теряются две буквы: 
    'ш' и 'И'. 

    Особенно часто этот глюк встречается при экспорте базы из MySQL 
    при криво настроенных свойствах кодировки таблиц и экспорта.

    Как использовать:

    php SHI-converter.php {имя файла} > {имя нового файла}


    Комментарии, предложения, замечания? 
    http://outcorp-ru.blogspot.com/2011/08/mysql.html
    
    Copyleft, Стас Давыдов и Outcorp, 2011. 
    stas@motivateme.ruhttp://stasdavydov.comhttp://outcorp-ru.blogspot.com/
*/

define("DEBUG"FALSE);

function 
get_bytes($str) {
    
$len strlen($str);
    
$bytes '';
    for(
$i 0$i $len$i++) {
        
$bytes .= sprintf('%2X'ord($str[$i]));
        if (
$i $len 1)
            
$bytes .= ' ';
    }
    return 
$bytes;
}

function 
fix_bytes(&$str$start 0$len 0) {
    if (
ord($str[$start $len]) == 0xD0) {
        
$str[$start $len 1] = chr(0x98);
    } else if (
ord($str[$start $len]) == 0xD1) {
        
$str[$start $len 1] = chr(0x88);
    } else {
        
$str[$start $len] = ' ';
    }

}

function 
fix_string(&$s) {
    
$converted = @iconv('utf-8''windows-1251'$s);
    if (
strlen($converted) > 0) {
        
$converted iconv('windows-1251''utf-8'$converted);
        
$sub strlen($converted);
        
$start strpos($s$converted);

        if(
DEBUG)
            echo 
$converted;

        if(
DEBUG) {
            echo 
'['.get_bytes(substr($s$start $sub)).']'."\n";
        }

        
fix_bytes($s$start$sub);

    } else {
        if (
DEBUG)
            echo 
'['.get_bytes($s).']'."\n";

        
fix_bytes($s);
    }
}

if (
$_SERVER['argc'] != 2) {
    echo 
'Usage: '.pathinfo(__FILE__PATHINFO_FILENAME).".php <name of file to recover>\n";
    exit;
}

$filename $_SERVER['argv'][1];

$str file_get_contents($filename);
$utf8str iconv('utf-8''windows-1251'$str);
foreach(
preg_split('/( |\t)/'$utf8str) as $s) {
    while(! 
mb_check_encoding($s'utf-8')) {
        
fix_string($s);

        if (
DEBUG)
            echo 
$s."\n";
    }

    if (! 
DEBUG)
        echo 
$s.' ';
}
?>