Re[4]: Windows - failure story
От: hattab  
Дата: 06.03.09 15:50
Оценка:
Здравствуйте, serg baburin, Вы писали:

SB>Для тех кому влом качать, галерея скриншотов:


SB>1. Запускаем:

SB>

SB>2. Подписываемся на форумы:

SB>

SB>3. Пишем сообщение:

SB>

SB>4. Любуемся на оутбокс:

SB>

SB>5. Отсылаем:

SB>

SB>6. Падаем...

SB>

SB>7. продолжаем падение:

SB>

Скриншоты в жыпеге, ррррррррр
Re[6]: Windows - success story!
От: serg baburin Россия  
Дата: 11.03.09 02:12
Оценка: 39 (3)
Здравствуйте, serg baburin, Вы писали:

s> Да фигня — появится свободное время и отдебажу его (мож он просто собрался криво).

Вобщем, похоже предположение о кривости сборки потвердилось. Видимо не подружились "кутяшный" mingw и мой msys. Пересобрал я это дело под QT4.5 + VC2008 — после небольшой правки исходников: <sys/time.h> + gettimeofday + storage\IStorage как-то умудрился посраться с IStorage из objidl.h.... — короче, все собралось и работает. Забирать здесь rev.150 [~9.1Mb].
Не забываем про настройку mysql и создание хранилища. Если mysql был поднят под windows (очевидно в целях изврата ) и при синхронизации avalon`а вылетает что-то типа:

— то в my.ini комментируем строку:
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

И перезапускаем сервис.
Да, чуть не забыл — подсветки пока кода нет. И прикручивать её под вин я ещё не пробовал. Идея взять уже собранный под windows source-highlight и положить в path успехом не увенчалась — он зараза падает.

Скриншот авалона работающего под вин:
avalon 1.0b rev 150

Re[7]: Windows - success story!
От: Anton Batenev Россия https://github.com/abbat
Дата: 11.03.09 04:15
Оценка: 6 (1)
Здравствуйте, serg baburin, Вы писали:

s> Пересобрал я это дело под QT4.5 + VC2008 — после небольшой правки исходников: <sys/time.h> + gettimeofday


fixed r153

s> storage\IStorage как-то умудрился посраться с IStorage из objidl.h....


я даже знаю как, fixed r152

s> Если mysql был поднят под windows (очевидно в целях изврата ) и при синхронизации avalon`а вылетает что-то типа:


А вот тут неизвестно чья проблема. "Виновники торжества", коих оказывается 4 человека, имеют ориджин длиной ровно 255 символов (с количеством байт от 255 до 477), что полностью укладывается в схему БД (хотя надо попробовать прописать эти режимы и посмотреть как отреагирует MySQL).
avalon 1.0b rev 153
Re[8]: Windows - success story!
От: serg baburin Россия  
Дата: 11.03.09 11:53
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>fixed r153

Оперативненько. Только вот #ifndef WINDOWS — этим от VC2008 (2003/2005) не отделаешься Лучше перестраховаться, скажем так:

#if defined( __WIN32__ ) || defined( _WIN32 ) || defined( WIN32 )|| defined(WINDOWS)
#define AVALON_PLATFORM_WIN32
#endif

#ifndef AVALON_PLATFORM_WIN32

#include <sys/time.h>


А в остальном собирается на ура — avalon_r153

AB>А вот тут неизвестно чья проблема. "Виновники торжества", коих оказывается 4 человека, имеют ориджин длиной ровно 255 символов (с количеством байт от 255 до 477), что полностью укладывается в схему БД (хотя надо попробовать прописать эти режимы и посмотреть как отреагирует MySQL).

Не знаю, но вдумчивое гугление на тему "mysql error 1406" показывает кучу матов в сторону mysql под win и кодировок.

Re[9]: Windows - success story!
От: Anton Batenev Россия https://github.com/abbat
Дата: 11.03.09 16:56
Оценка:
Здравствуйте, serg baburin, Вы писали:

s> Оперативненько. Только вот #ifndef WINDOWS — этим от VC2008 (2003/2005) не отделаешься Лучше перестраховаться, скажем так:


А для Windows х64 это будет работать? А то что-то за пару лет я уже отвык от этих "кульбитов".

s> Не знаю, но вдумчивое гугление на тему "mysql error 1406" показывает кучу матов в сторону mysql под win и кодировок.


Проверил. Воспроизводится до момента, пока не увеличил длину поля с 255 до 258 символов. За одним исправил скрипт создания базы и несколько потенциальных ошибок (для тех, у кого все работает, требуется только пересборка программы).

З.Ы. Есть где-нибудь оф документация какие длины полей в реальности у исходной базы?
avalon 1.0b rev 153
Re[10]: Windows - success story!
От: serg baburin Россия  
Дата: 11.03.09 18:20
Оценка: 12 (1)
Здравствуйте, Anton Batenev, Вы писали:

AB>А для Windows х64 это будет работать? А то что-то за пару лет я уже отвык от этих "кульбитов".

Для компиляторов от MS и mingw64, как правило, достаточно анализировать дефайн _WIN32 — т.к. при сборке под x64 он будет объявлен совместно с _WIN64. В mingw также используются дефайн __WIN32__. Для других x64 компиляторов — не уверен. Т.е. для идентификации того, что собирам под какую-то виндоус вполне достаточно будет написать:

#if defined( __WIN32__ ) || defined( _WIN32 ) || defined( _WIN64 )
#define AVALON_PLATFORM_WINDOWS
#endif


Можно пойти другим путём:

#if defined ( _MSC_VER ) || ( __MINGW32__ ) || (__MINGW64__) || (__BORLANDC__) 
#define AVALON_PLATFORM_WINDOWS
#endif


т.е. смотреть каким компилятором собираем — вин компилятор или нет (см. Pre-defined Compiler Macros). Я бы выбрал первый путь — он надежней (а то мало ли кто-то будет собирать каким-нибудь Comeau C++ ).

Re[7]: Windows - success story!
От: Anton Batenev Россия https://github.com/abbat
Дата: 13.03.09 10:43
Оценка: 18 (1)
Здравствуйте, serg baburin, Вы писали:

s> Да, чуть не забыл — подсветки пока кода нет. И прикручивать её под вин я ещё не пробовал. Идея взять уже собранный под windows source-highlight и положить в path успехом не увенчалась — он зараза падает.


В r162 добавилась возможность использования подсветки синтаксиса при помощи Highlight.js. Поскольку это просто JavaScript, то задача подключения может существенно упроститься (да и выглядит приятнее всех остальных).

Вот только меня несколько смущает необходимость указывать полные пути к .js и .css и непонятно как это будет работать под Windows (см. parser.cpp:381-397). Можешь проверить?
avalon 1.0b rev 162
Re[8]: Windows - success story!
От: serg baburin Россия  
Дата: 13.03.09 13:48
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB> В r162 добавилась возможность использования подсветки синтаксиса при помощи Highlight.js.

Интересная штуковина.

AB> Вот только меня несколько смущает необходимость указывать полные пути к .js и .css и непонятно как это будет работать под Windows (см. parser.cpp:381-397). Можешь проверить?

Собрал, настоил согласно мануалу, проверил — не работает

Кроме того при переходе от сообщения к наблюдаются дикие тормоза. Более детально что к чему и почему посмотрю на следующей неделе.
avalon 1.0b rev 162

Re[8]: Windows - success story!
От: serg baburin Россия  
Дата: 15.03.09 21:34
Оценка: 12 (1)
Здравствуйте, Anton Batenev, Вы писали:

AB> Вот только меня несколько смущает необходимость указывать полные пути к .js и .css и непонятно как это будет работать под Windows (см. parser.cpp:381-397). Можешь проверить?


Не работает, ибо нужно писать "file:///", т.е. вот так будет работать везде:

Index: parser.cpp
===================================================================
--- parser.cpp (revision 163)
+++ parser.cpp (working copy)
@@ -390,9 +390,9 @@
//result += "<link rel='stylesheet' title='Zenburn' href='file:" + path + "/highlight/styles/zenburn.css'>";
//result += "<link rel='stylesheet' title='Visual Studio' href='file:" + path + "/highlight/styles/vs.css'>";
//result += "<link rel='stylesheet' title='Ascetic' href='file:" + path + "/highlight/styles/ascetic.css'>";
— result += "<link rel='stylesheet' title='Magula' href='file:" + path + "/highlight/styles/magula.css'>";
+ result += "<link rel='stylesheet' title='Magula' href='file:///" + path + "/highlight/styles/magula.css'>";

— result += "<script src='file:" + path + "/highlight/highlight.pack.js'></script>";
+ result += "<script src='file:///" + path + "/highlight/highlight.pack.js'></script>";
result += "<script>hljs.initHighlightingOnLoad();</script>";
}

Собранная под виндоус ревизия 163 с этим фиксом здесь
avalon 1.0b rev 163

Re[9]: Windows - success story!
От: serg baburin Россия  
Дата: 15.03.09 22:04
Оценка:
Здравствуйте, serg baburin, Вы писали:

s> Не работает, ибо нужно писать "file:///", т.е. вот так будет работать везде:

Fix to fix: для таблицы стилей этого не нужно — т.е. достаточно:
-     result += "<script src='file:" + path + "/highlight/highlight.pack.js'></script>";
+     result += "<script src='file:///" + path + "/highlight/highlight.pack.js'></script>";
avalon 1.0b rev 163

Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.