+38 (067) 901-63-22

Корзина

0 товара(ов) на сумму
0 грн.

Февраль 2009 — К2®, Рудюк Сергей Анатольевич

Актуальность кросс-платформенности

Вот уже несколько клиентов работают не на Windows. У нескольких компьютеры с MacOS, у некоторых КПК с различными другими операционными системами, да и у меня самого Linux и Windows. Получается, всё больше и больше людей отходят от технологий Microsoft и всё более актуальным становится реализация программных решений на кросс-платформенных технологиях.

12.02.09, 8:47

Ajax - полезные ссылки

В процессе работы с Ajax накопилось некоторое количество полезных ссылок:

http://visualjquery.com/ - документация по JQuery в удобном виде.

http://getfirebug.com/ - помощник для отладки скриптов в firefox.

http://www.stilbuero.de/jquery/tabs/#fragment-27 - плагины для создания табов.

http://www.rsdn.ru/article/inet/jQuery.xml - Использование jQuery на рус. яз.

http://interface.eyecon.ro/demos/?page=demos - примеры различных эффектов.

http://code.google.com/p/gwt-ext/ - открытая библиотека различных эффектов.

http://www.ibm.com/developerworks/ru/library/j-aja... - статья Работа с Google Web Toolkit.

http://www.ajaxplanet.ru/google-web-toolkit-manual... - не большое руководство по использованию Google Web Toolkit совместно с PHP.

http://www.miniajax.com/ - Ссылки с большим количеством разных Ajax - библиотек.

http://fancy.klade.lv/ - FancBox - библиотека для вывода больших изображений в Ajax-стиле.

http://ajaxian.com/archives/facebook-style-input-b... - Мощные поля в Ajax-стиле. Так же, то сайт с огромным количеством библиотек на Ajax.

12.02.09, 8:46

Орфография на интернет-страницах

Т.к. вопрос достаточно часто встречается, решил поместить его на блоге.

Взято из сайта webscript.ru: http://webscript.ru/stories/01/06/22/4814617

12.02.09, 8:46

Hostpro - провайдер с лимитами, не дающими нормально работать сайтам

Вот в очередной раз столкнулся с тем, что за красивой рекламой прячется плохая поддержка и высокие риски.

Так, например, столкнулся с таким провайдером, как Hostpro. Данный провайдер в рекламе пишет о не больших стоимостях хостинга 3-5$/мес за 100Мб дискового пространства.

Но, как оказалось, не всё так просто...

Для одного заказчика, мне пришлось воспользоваться услугами данной компании.

Записал маленький скрипт - на несколько байт, который просто обращается к серверу и выводит картинку.

Всё работало некоторое время нормально. Когда, вдруг в один прекрасный момент домен полностью отключили.

Как оказалось в процессе исследования ситуации отключили из-за того, что "скрипт сильно нагружает сервер". 5% в кратко-временном времени. И, что они отключают скрипты, если они потребляют более 5% процессорного времени или 256Кб памяти...

Такую нагрузку может создать любой скрипт. И тем более, любой более или менее посещаемый сайт....

Т.е. получается любой мало-мальски посещаемый сайт может быть отключен без предупреждения!!!

Это не правильно!

Т.к.:

1. Ведь вместо 100 Мб дискового пространства мой скрипт использует всего несколько кб. Т.е. не используется по крайней мере 99,9% дискового пространства! А дисковое пространство - это ведь тоже деньги.

2. Я не использую почту. А почта ведь тоже создаёт значительную нагрузку!

3. Расчёты хост-про не правильны. Т.к. 5%, на которые они показывают - это 5% одного виртуального процессора. Т.е. если у Вас 2 процессора у которых 4 ядра, то получится 8 виртуальных процессоров. И 5% - это 5% нагрузки на виртуальный процессор, а не на процессор в целом и тем более не сервер. Т.е. по сути моя нагрузка в этом случае - это 5/8 = 0,625% от всего сервера. Что нужно признать ну очень мизерная цифра.

4. Всесто того, чтоб бороться со своими клиентами, лучше бы оптимизировали свою систему.

У них до сих пор используется 1 уровневая система веб-сервера. А это очень не эффективно! Давно пора было переделать на 2-х уровневую систему веб-сервера nginx-apache!!!

Словом, очень не рекомендую кому-либо работать с Hostpro. Т.к. "скупой платит дважды", а с Hostpro Вы заплатите ещё больше...

12.02.09, 8:46

Рекомендации по разработке дизайна

Вот решил изложить некоторые рекомендации по разработке дизайна, т.к. дизайнеры часто повторяют одни и те же ошибки.

1. Каждый блок - законченная смысловая структура. Т.е. теги в ограничивающие блок должны начинаться в блоке и в нём заканчиваться. Ни в коем случае, теги, которые относятся к какому-то из блоков не должны находиться в других блоках.

2. Все изображения должны находиться в отдельной папке. Папка должна называться images. Ни в коем случае, не i или ещё какое-то одно-буквенное название...

3. Все пути к файлам должны быть относительными.

4. Логотип - чаще всего является ссылкой на начло сайта. Т.е. ссылкой на '/'

... Логотип...

5. Все стили - в отдельном файле стилей, который называется styles.css или style.css.

6. Не забывайте включать в дизайн все блоки, которые должны быть на сайте. Например, часто на сайте есть авторизация, значит в дизайне она тоже должна быть. Так же часто есть: поиск, карта сайта, меню (верхнее, левое, нижнее), смена страниц, полоса навигации (хлебная крошка), логотип, центральная часть (контент, каталог товаров и т.п.), новости, последние новости, анонсы, полоса прокрутки страниц, и т.п.

7. Лучше использовать div, а не таблицы для расположения блоков. Т.к. div обладает большей свободой, чем таблицы.

8. Название стилей должно быть осмысленным. Название полей, форм и т.п. тоже осмысленные.

9. Не забывайте заключать формы в тег для форм - form.

10. Кнопки должны быть кнопками, а не ссылками.

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

Например, обязательно необходимо назначать стили:

h1, h2, h3, h4, h5, h6, body, a, a:hover и т.п.

12. В стилях используйте комментарии.

13. Теги, закрывающие должны быть под тегами открывающими. Форматируйте корреткно текст.

14. Если грузится для стиля фоновое изображение для стиля, то вначале грузите простой фон, а потом, следующим захом - стиль с изображением.

15. Используйте по-максимуму стили по-умолчанию.

Например, если идёт заголовок страницы, используйте тег
, а не указывайте отдельный div или класс для ячейки.

16. Форматируйте текст в стилях.
Не пишите так:
#knopka { background:url(/user/templates/alerta/images/fonsubmit.gif); background-repeat:repeat-x; border-color:#0f1324; border:none; color:#fff; font-size:11px; font-family:arial, verdana, sans-serif; font-weight:bold; text-align:center; padding-bottom:5px; padding-left: 6px; padding-right: 6px; padding-top:4px; height:23px; margin-top:1px;}

Лучше пишите так:
#knopka {
background: url(/user/templates/alerta/images/fonsubmit.gif);
background-repeat:repeat-x;
border-color:#0f1324;
border:none;
color:#fff;

font-size:11px;
font-family:arial, verdana, sans-serif;
font-weight:bold;
text-align:center;

padding-bottom:5px;
padding-left: 6px;
padding-right: 6px;
padding-top:4px;

height:23px;
margin-top:1px;
}

Т.е. каждый отдельный тег - в отдельной строке и с некоторым отступом. При завершении смысловой группы можно отступать строчку.

17. Если пункты меню должны выделяться, то обязательно это должно быть показано в дизайне и в порезке. То же касается других смысловых элементов, например, хлебной крошки.

18. Если вы делаете стили для много-уровневого меню и т.п., корректно применяйте индексы стилей. Т.е. так, чтоб можно это было запрограммировать потом с наименьшими трудо-затратами.

Пример:
#menu a{ text-decoration: none; color:#1c144d;}
#menu2 a:hover{color:#d8354a;}
#menu1 a:hover{color:#d8354a;}
Это не правильно. Т.к. menu 3-х уровневое, а первый уровень меню - без индекса.
Более правильно:
#menu1 a{ text-decoration: none; color:#1c144d;}
#menu3 a:hover{color:#d8354a;}
#menu2 a:hover{color:#d8354a;}

19. Всегда проверяйте дизайн на нескольких основных бразурах: Internet Explorer 6, Opera 9 и выше, FireFox 3, Safary.

20. Не применяйте не стандартные шрифты. Тестируйте на машинах с минимально-установленными компонентами. Так, например, шрифт Arial Narrow не существует, если не установлен MsOffice. Поэтому, не рекомендуется его использовать.

21. Всегда устанавливайте цвет фона в Body, т.к. на некоторых браузерах можно указывать цвет фона для body по умолчанию. Поэтому, если Вы не укажете фон, будет срабатывать цвент по умолчанию, а он не всегда такой, как нужно для дизайна...
Так же не забывайте указывать цвет посещённых ссылок. Т.к. стили для них тоже указываются в браузерах.

22. Ссылки на другие сайты должны открываться в новом окне.
Например:
RS™
Это не правильно, т.к. открывается в том же окне, где находится сайт.

Правильно писать так:
RS™ 

12.02.09, 8:45

Концепция локализации в системе Корпорация 2

В Корпорации 2 CMS созданы компоненты для локализации приложения.

Компонента называется translate.

translate - компонента реализующая непосредственно перевод.

lang_bar - компонента для вывода перечня языков в котором можно переключиться.

В основном классе Корпорации внесены 3 свойства, связанных с переводом (локализацией):

public $lang='ru'; // Текущий язык публичной части

public $lang_adm='ru'; // Текущий язык админ-части

public $langs=array('ru','ua', 'en'); // Доступные языки

Соответственно, данные переменные можно указывать в основном конфигурационном файле: config_main.php

Для каждой компоненты есть папка lang в ней сохраняются файлы с массивами переводов.

Например:

/lang/ua/index.php - файл перевода для украинского языка.

Его содержимое:

defined( '_VALID_CORP' ) or die( 'Прямой вызов запрещён' );

$this->msg=array(

array('login_label', 'Логін'),

array('password_label' , 'Пароль'),

array('reg_label' , 'Реєстрація'),

array('forg_label' , 'Згадати пароль'),

array('hello_label' , 'Ласкаво просимо'),

array('exit_btn' , 'Вихід')

);

В компоненте, в которой реализовывается перевод создаётся класс перевода:

function CMain()

{

$GLOBALS["c"]->ins_comp_file("translate/main_class.php");

$this->trans=new translate($application);

$this->trans->get_msg('auth');

}

В шаблоне, используются вместо названий латинское обозначение выражения, например:

// Шаблон формы авторизации

$GLOBALS["myauth"]->auth_form='


















<%login_label%>:





<%password_label%>:

<%reg_label%> | <%forg_label%>

Перед тем, как вывести информацию на экран, переводим её:

echo $this->trans->tr($this->auth_form);

На данный момент, пример применения перевода можно просмотреть в компоненте авторизации auth.

12.02.09, 8:43

Импорт новостей через RSS в системе Корпорация 2 CMS

В системе Корпорация создано несколько новых компонент:

rss_grabber - грабитель RSS-новостей.

pages - компонента для смены страниц.

Так же усовершенствована работа компоненты новостей news для работы с большим количеством новостей.

Пример использования компоненты импорта новостей, вывода списка новостей и прокрутки страниц Вы можете просмотреть на тестовом сайте:

http://image.corp2.net/news/allnews/

12.02.09, 8:43

Проблема вставки кавычек в insert

В украинском языке часто в качестве апострофа вставляют одинарную кавычку.

Данный символ используется в SQL-запросах, как результат - не верное срабатывание SQL-запросов. Для того, чтоб SQL-запрос корректно воспринимался необходимо вместо 1 кавычки ставить 2 одинарных кавычки. В этом случае, в базу данных будет записана корректно 1 кавычка.

В Корпорации 2, чтобы не было конфликта с кавычками данная ситуация обрабатывается в командах кодирования/декодирования информации.

Таким образом, получается:

$GLOBALS["c"]->ec('Текст') - кодирует из кодировки сайта в кодировку базы данных, а так же заменяет одинарные кавычки на двойные, чтоб корректно срабатывал SQL, если есть одинарные кавычки в тексте.

$GLOBALS["c"]->dc('Текст') - декодирует из кодировки сайта в кодировку базы данных, а так же заменяет одинарные кавычки на двойные, чтоб корректно срабатывал PHP и Java-скрипт, если есть одинарные кавычки в тексте.

Так же сделаны 2 ф-ции, которые просто кодируют и декодируют информацию, но не заменяют кавычки. Эти функции пишутся так:

$GLOBALS["c"]->ec_simple('Текст') - кодирует из кодировки сайта в кодировку базы данных.

$GLOBALS["c"]->dc_simple('Текст') - декодирует из кодировки сайта в кодировку базы данных.

12.02.09, 8:43

Сохранение текстовой информации в Корпорации 2

Часто приходится сохранять текстовую информацию в файл.

Программисты порой этот процесс реализуют довольно запутанными способами, хотя на самом деле он может занимать всего несколько строк (а в Корпорации 2 - 1 строку).

echo 'Записываемый файл: '.$filename.'

';

if (is_writable(trim($filename))) { // Убеждаемся что файл доступен и существует для записи.

$savesize=file_put_contents(trim($filename), $text_data);

}else {

echo "Файл $filename недоступен для записи";

}

return $savesize;

Сохраненеие в Корпорации 2:

$GLOBALS["c"]->save_textfile('Название файла','Текст, который хотим сохранить в файл');

12.02.09, 8:42

Корпорация 2009

В начале 2009 года мы планируем выпустить релиз нашего продукта Корпорация 2.

В качестве примера работы системы, на данном релизе предполагается выложить несколько сложных демонстрационных интернет-магазинов.

Так же планируется перевод всех программных продуктов на работу в системе Корпорация 2.

12.02.09, 8:41