понеділок, 16 листопада 2009 р.

Leg Magic

Интересный тренажер придумали Американцы. Простой и не большой, но позволяет натренировать основные группы мышц. Название тренажера - Leg Magic.

вівторок, 3 листопада 2009 р.

Linux Ubuntu 9.10 на нашем сервере

На нашем сервере обновлена операционная система Linux Ubuntu 9.10. Релиз данной операционной системы вышел 29 октября 2009 года. Таким образом, у нас на сервере установлено самое новое программное обеспечение.

понеділок, 2 листопада 2009 р.

Усиление системы безопасности в Корпорации 2

В системе Корпорация 2 проведено ряд работ по усилению системы безопасности. Теперь, пользователь не сможет получить доступ к информации, если не обладает на это прав даже при наличии прямой ссылки на контент.

Релиз системы Корпорация 2

Хоть система Корпорация 2 уже работает на многих десятках сайтов, тем не менее, мы еще не выпустили "релиз системы". Предположительно, релиз системы выйдет в начале 2010 года. К этому времени, будет создана целая сеть наших сайтов, переделаны все сайты, работающие на системе Корпорация 2 с компонент 1 на компоненты 2, а так же будет создано целый ряд демонстрационных сайтов, на которых пользователи смогут получить представление о системе.

Так же пердполагается в рамках сервиса Корпорация 2 добавить еще 1 сервер на другой площадке. Данный сервер будет размером 4 юнита с 24 высоко-скоростными винчестерами, большим количеством оперативной памяти и 2-мя много-ядерными высоко-скростными процессорами.

Компонента Корпорации 2 "слайдшоу"

Мы выпустили новую компоненту Слайд-шоу. Теперь, есть возможность создавать слайд-шоу прямо на сайте. Причем, администраторы сайта могут сами изменять на нем фотографии, добавлять и удалять их.

Слайд-шоу может выводиться в режиме слайд-шоу или переключаться в режим фотогаллереи.

При вставке фотографий, они автоматически масштабируются.

Новая компонента "Облако тегов"

Мы создали новую компоненту "Облако тегов" для системы Корпорация 2. С помощью этой компоненты, можно создавать быстро облака тегов.

По аналогии, как это реализовано на сайте Спортлайф: http://sportlife.net.ua

ЧПУ в системе Корпорация 2

В системе Корпорация 2 реализован механизм ЧПУ. Теперь, динамические ссылки выглядят так же, как статические интернет-страницы. Это способствует лучшей индексации сайтов поисковыми системами.

Обработка ошибки 404

Теперь, при возникновении ошибки 404 не выдается сообщение Apache или nginx о том, что отсутствует страница, а корректно возвращается заголовок 404 ошибки и для пользователей выводится карта сайта, чтоб они могли быстро найти интересующую их информацию.

Система Корпорация 2 теперь умеет сама себя обновлять

Теперь система Корпорация 2 имеет встроенный модуль само-обновления. Причем, система построена так, что и модуль само-обновления обновляется и сама система обновляется. Модуль обновления и сама система Корпорация построены на одном и том-же загрузчике. Т.е. фактически, модуль обновления - это тоже программа Корпорация 2.

Обновление идет через 80 порт. Т.е. через протокол http. Таким образом, обновление происходит даже тогда, когда порты закрыты.

Кроме того, история изменений программы Корпорация 2 теперь выводится в виде интернет-страницы: /grid/92dbac969b63515a213d0580345af5c5/igroupid/{CEE14ACB-D8CD-4D65-9DC7-6132127F5E87}/index.html

Граббер rss-новостей теперь работает в фоновом режиме

Теперь, граббер новостей работает в фоновом режиме. Благодаря чему не задерживается загрузка интернет-страницы.

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

Мы не боимся терабайтных баз данных!

База данных Корпорации 2 достигла 46 ГБайт. При этом, работа происходит без видимого торможения. По сути, на сегодняшнее время мы не боимся огромных баз данных, т.к. разработаны специальные механизмы работы с большим количеством данных, которые используются нами для крупных проектов. Кроме того, есть еще запас методов масштабирования скорости системы и ускорения работы сервера базы данных.

Сегодня, мы уже разработали методологию для работы с базами данных на много-терабайт. Эту технологию постепенно мы внедряем в жизнь в нашем сервисе Корпорация 2.

Нужно признать, что такое не возможно было реализовать на базе данных Firebird. Когда в 2007 году мы тестировали программные решения на Firebird, то столкнулись с тем, что в нем гига-байтные базы данных работают достаточно медленно, т.к. там отсутствовали те механизмы, которые есть в Postgresql для работы с большим количеством данных. На практике, наши базы данных в Firebird не превышали 10 Гб в тестовом режиме, а в реальном, составляли только около 1 Гб.

В Postgresql мы уже сегодня имеем реальный проект, в котором база данных достигла 46 Гб. И знаем, что без проблем можем достигнуть и большего объема!

Правила для прав

В процессе работы с системой, мы пришли к такой схеме определения прав:

Различаем 2 глобальные ситуации:
1. Ни одной записи в правах нет.
2. Есть права.

Теперь, что получаем:
1.а. Если я супер админ, то получаю все права ко всем сайтам
1.б. Если я админ *, то я получаю права к тем сайтам, которые перечислены в пользователях.
1.в. Остальные пользователи - только просмотр.
2. а. Если я супер-админ, то я вижу все и могу менять все.
2. б. Если я админ, то я могу изменять то, что написано в правах.

Переменные окружения Postgresql для Корпорации 2

При работе в Postgresql системой Корпорация 2 формируются пользовательские переменные окружения. Поэтому, в конфигурационном файле postgresql.conf должна быть прописана строчка:
custom_variable_classes = 'usrvar'

Системой Корпорация 2, устанавливаются такие переменные окружения:
usrvar.myuserid='; # id пользователя
usrvar.myusername='; # Имя пользователя
usrvar.myroleid='; # id пользователя
usrvar.myrolename='; # Имя прав
usrvar.magid='; # id магазина

Чтоб установить переменную окружения из скрипта необходимо выполнить команду:
select set_var('myusername', 'rudjuk');

Чтоб сосчитать:
select get_var('myusername');

Перевод всех сайтов системы Корпорация 2 на базу данных Postgresql

Мы начали перевод всех сайтов, работающих на системе Корпорация 2 на работу с базой данных Postgresql. Этим предполагается повысить пропускную способность сайтов, а так же повысить масштабируемость системы в целом.

Проекты, которые будут переведены на Postgresql в первую очередь (те, которые уже работают на компонентах 2):
1. Энергия С.В.О.
2. Аквалюкс, Классик-люкс.
3. Citygroup.
4. SendAll.
5. VOtpuske.
6. Инспекция Держтехнагляда.

Проекты, которые будут переделаны с компонент 1 на компоненты 2:
1. Алерта.
2. Имидж.
3. Имрад.
4. Кулиса.
5. Lightnight.
6. Makeit.
7. Richire.

Проекты, которые будут переведены из других систем или представлений:
1. Casadaconfraria (переводится из статического вида в динамический).
2. Сайт Корпорации 2: corp2.net (Переводится из системы Битрикс в систему Корпорация 2).

Перевод всех сайтов системы Корпорация 2 на базу данных Postgresql

Мы начали перевод всех сайтов, работающих на системе Корпорация 2 на работу с базой данных Postgresql. Этим предполагается повысить пропускную способность сайтов, а так же повысить масштабируемость системы в целом.

Проекты, которые будут переведены на Postgresql в первую очередь (те, которые уже работают на компонентах 2):
1. Энергия С.В.О.
2. Аквалюкс, Классик-люкс.
3. Citygroup.
4. SendAll.
5. VOtpuske.
6. Инспекция Держтехнагляда.

Проекты, которые будут переделаны с компонент 1 на компоненты 2:
1. Алерта.
2. Имидж.
3. Имрад.
4. Кулиса.
5. Lightnight.
6. Makeit.
7. Richire.

Проекты, которые будут переведены из других систем или представлений:
1. Casadaconfraria (переводится из статического вида в динамический).
2. Сайт Корпорации 2: corp2.net (Переводится из системы Битрикс в систему Корпорация 2).

Поддержка PostgreSQL в Корпорации 2

Итак, в качестве основной базы данных мы будем использовать - PostgreSQL. Но, при этом, все равно тестироваться и работать должно будет в MySQL и Firebird.
Поэтому, в необходимо приходить к стандартам, которые устроит как MySQL так и PostgreSQL.

Рассмотрим для примера запрос:
select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON,
MK.MARKA_ID MARKA_ID,MK.VID_ID, MK.ZAV_NOMER ZAV_NOMER, MK.DVIG_NOMER DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD, MK.SER_SVID SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE, MK.DATE_UPDATE, MK.ID_REGION_KOD ID_REGION_KOD, MK.ID_RAJON ID_RAJON, MK.ID_VID, MK.ID_KOD_F, MK.NAME_ORG NAME_ORG, MK.NAME_VID NAME_VID, MK.UPPER_ZAV_NOMER, MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_
OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP from MTP_KARTA MK

left join TBLREGIONS R
on MK.ID_REGION_KOD=R.ID_REGION_KOD
left join MTP_ORG MO
on (MK.ID_KOD_F=MO.ID_KOD_F)
and (MK.ID_REGION_KOD=MO.ID_REGION_KOD)
where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null)
and(MK.NAME_ORG like '%трактор%')
order by MARKA_ID


limit 0, 50

Данный запрос прекрасно работает в MySQL, но совершенно не работает в PostgreSQL.

Чтоб работаело и там и там нужно писать на подобии:
select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON,
MK.MARKA_ID as MARKA_ID,
MK.VID_ID,
MK.ZAV_NOMER as ZAV_NOMER,
MK.DVIG_NOMER as DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD,
MK.SER_SVID as SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE,
MK.DATE_UPDATE, MK.ID_REGION_KOD as ID_REGION_KOD,
MK.ID_RAJON as ID_RAJON, MK.ID_VID, MK.ID_KOD_F,
MK.NAME_ORG as NAME_ORG,
MK.NAME_VID as NAME_VID, MK.UPPER_ZAV_NOMER,
MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP

from MTP_KARTA MK

left join TBLREGIONS R
on MK.ID_REGION_KOD=R.ID_REGION_KOD
left join MTP_ORG MO
on (MK.ID_KOD_F=MO.ID_KOD_F)
and (MK.ID_REGION_KOD=MO.ID_REGION_KOD)
where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null)
and(MK.NAME_ORG like '%трактор%')
order by MARKA_ID

limit 50 offset 10

В чем отличие ?
1. Псевдоним поля задается через as: MK.ZAV_NOMER as ZAV_NOMER
2. В Limit указывается
не: limit 10,50
а: limit 50 offset 10
Такие конструкции работают как в mysql, так и в postgresql. У меня есть подозрение, что они есть стандартом SQL, т.е. вероятность срабатывания и в других серверах высокая.

Поддержка языков в системе Корпорация

Поддержка языков в системе Корпорация реализуется в соответствии со стандартом ISO 639-1.
Вот таблица языков и их префиксов:



Выберите интересующий Вас раздел:



язык ↓ ISO 639-1 ↓ ISO 639-2 ↓ ISO 639-3 ↓ ГОСТ 7.75–97 ↓ цифровой код ↓
Абазинский — — abq аба 005
Абхазский ab abk abk абх 010
Авадхи — awa awa авд 012
Аварский av ava ava ава 014
Авестийский ae ave ave аве 016
Адангме — ada ada ада 018
Адыгейский — ady ady ады 020
Азербайджанский az aze aze азе 025
Аймара ay aym aym айм 026
Акан ak aka aka ака 027
Аккадский — akk akk акк 028
Албанский sq alb/sqi sqi алб 030
Алеутский — ale ale але 033
Алтайский — alt alt алт 035
Амхарский am amh amh амх 040
Английский en eng eng анг 045
Арабский ar ara ara ара 050
Аравакский — arw arw арв 051
Арамейский — arc arc аре 052
Арапахо — arp arp арп 053
Армянский hy/am arm/hye hye/axm/xcl/am арм 055
Ассамский as asm asm аса 060
Ассирийский — — aii асе 065
Афарский aa aar aar афа 068
Африкаанс af afr afr афр 070
Африхили — afh afh афх 073
Ахвахский — — akv ахв 074
Ачехский — ace ace аче 076
Ачоли — ach ach ачо 077
Балийский — ban ban бал 078
Баса — bas bas бас 084
Баскский eu baq/eus eus бак 085
Башкирский ba bak bak баш 086
Беджа — bej bej бед 087
Белорусский be bel bel бел 090
Бемба — bem bem бем 097
Бенгальский bn ben ben бен 100
Бикольский — bik bik бик 103
Бини — bin bin бин 104
Бирманский my bur/mya mya бир 105
Бислама bi bis bis бис 107
Болгарский bg bul bul бол 115
Брауи — bra bra бра 117
Бретонский br bre bre бре 120
Бугийский — bug bug буг 123
Бурятский — bua bua бур 125
Бходжпури — bho bho бхо 126
Ваи — vai vai ваи 127
Валлийский cy cym/wel cym вал 130
Варай — war war вар 131
Вашо — was was ваш 132
Венгерский hu hun hun вен 133
Венда ve ven ven вед 134
Вепсский — — vep веп 135
Воламо — wal wal воа 136
Волапюк vo vol vol вол 137
Волоф wo wol wol воф 138
Вьетнамский vi vie vie вье 140
Га — gaa gaa гаа 142
Гавайский — haw haw гав 143
Гагаузский — — gag гаг 145
Гайо — gay gay гай 146
Галисийский gl glg glg гал 147
Ганда lg lug lug ган 148
Гереро hz her her гер 149
Геэз — gez gez гез 151
Гилбертский — gil gil гил 152
Нидерландский (Голландский) nl dut/nld nld нид 495
Гонди — gon gon гон 153
Готский — got got гот 154
Гребо — grb grb грб 155
Греческий (новогреческий) el ell/gre ell гре 157
Грузинский ka geo/kat kat гру 158
Гуджарати gu guj guj гуд 165
Гаэльский gd gla gla гэл 170
Дакота — dak dak дак 173
Даргинский — — dag дат 175
Датский da dan dan дат 178
Делавэрский — del del дел 179
Дзонг-кэ dz dzo dzo дзо 183
Дивехи (Мальдивский) dv div div див 180
Динка — din din дин 181
Диула (Дьюла) — dyu dyu диу 182
Догри — doi doi дои 184
Древнегреческий — grc grc дрг 186
Древнеегипетский — egy egy дре 187
Дуала — dua dua дуа 190
Дунганский — — dng дун 191
Еврейско-арабский — jrb jrb еар 192
Еврейско-персидский — jpr jpr епе 193
Зенагский — zen zen зен 194
Зулу zu zul zul зул 195
Зуньи — zun zun зун 196
Ибанский — iba iba иба 197
Иврит he heb heb ивр 198
Игбо ig ibo ibo ибо 199
Идиш yi yid yid иди 202
Илоко — ilo ilo ило 203
Ингушский — inh inh инг 205
Индонезийский id ind ind инд 210
Интерлингва ia ina ina ина 215
Интерлингве ie ile ile ине 216
Инуктитут iu iku iku инк 217
Инупиак ik ipk ipk инп 218
Ирландский ga gle gle ирл 220
Исландский is ice/isl isl исл 225
Испанский es esl/spa spa исп 230
Итальянский it ita ita ита 235
Ительменский — — itl ите 240
Йоруба yo yor yor йор 245
Кабардино-черкесский — kbd kbd каа 250
Кабильский — kab kab каб 251
Кави — kaw kaw кат 252
Каддо — cad cad кад 254
Казахский kk kaz kaz каз 255
Каннада kn kan kan кан 265
Калмыцкий kl kal kal кал 260
Камба — kam kam кам 263
Канури kr kau kau кау 267
Караимский — — kdr каи 270
Каракалпакский — kaa kaa кал 275
Карачаево-балкарский — krc krc као 280
Карельский — krl krl кас 285
Кариб — car car кар 288
Каталанский ca cat cat кат 290
Качинский — kac kac кач 293
Кашмири ks kas kas каш 294
Кечуа qu que que кеч 300
Кикуйю ki kik kik кик 302
Киньяма kj kua kua кия 303
Киргизский — — kyr кир/кыр 305
Китайский zh chi/zho zho кит 315
Коми kv kom kom кои 320
Конго kg kon kon кон 326
Конкани — kok kok кок 327
Коптский — cop cop коп 328
Корейский ko kor kor коо 330
Корнский kw cor cor кор 332
Корсиканский co cos cos кос 334
Корякский — — kpy коя 335
Коса xh xho xho коа 340
Кпелле — kpe kpe кпе 341
Крик — mus mus крк 344
Крымско-татарский — crh crh кры 347
Кумыкский — kum kum кум 349
Курдский ku kur kur кур 350
Кусайе — — ksg кус 353
Кутенаи — kut kut кут 354
Кхаси — kha kha кха 357
Кхмерский km khm khm кхм 360
Ладино — lad lad лад 363
Лакский — — lbe лак 370
Ламба — lam lam лам 373
Лаосский lo lao lao лао 375
Латинский la lat lat лат 380
Латышский lv lav lav лаш 385
Лахнда — lah lah лах 387
Лезгинский — lez lez лез 390
Лингала ln lin lin лин 395
Литовский lt lit lit лит 400
Лози — loz loz лоз 402
Луба-катанга lu lub lub луб 404
Луисеньо — lui lui луи 406
Лунда — lun lun лун 407
Луо (Кения и Танзания) — luo luo луо 408
Люксембургский lb ltz ltz люк 409
Магахи — mag mag маг 410
Мадурский — mad mad мал 411
Майтхили — mai mai май 412
Макассарский — mak mak мак 414
Македонский — mac/mke mke маа 415
Малагасийский mg mlg mlg млг 418
Малайский ms may/msa msa маз 420
Малаялам — mal mal мал 425
Мальтийский mt mlt mlt млт 430
Мандинго — man man май 432
Манипури — mni mni мни 433
Маори mi mao/mri mri мао 437
Маратхи mr mar mar мар 440
Марвари — mwr mwr мвр 443
Марийский (черемисский) — chm chm мач 445
Маршалльский mh mah mah маш 446
Масаи — mas mas мас 447
Менде — men men мен 451
Микмак — mic mic мик 452
Минангкабау — min min мин 453
Моей[1] — mos mos мое 466
Мокшанский — mdf mdf мок 455
Молдавский mo mol mol мол 460
Монго — lol lol мог 462
Монгольский mn mon mon мои 463
Мохаук — moh moh мох 467
Навахо nv nav nav нав 470
Нанайский (гольдский) — — gld нан 471
Науру na nau nau нау 472
Ндебеле северный nd nde nde нде 473
Ндебеле южный nr nbl nbl нбл 474
Ндунга ng ndo ndo нду 475
Неварский — new new нев 478
Неидентифицированный — und und унд 480
Немецкий de deu/ger deu нем 481
Ненецкий (юрако-самоедский) — — yrk нен 482
Непальский ne nep nep неп 485
Нзима — nzi nzi нзи 487
Нивхский (гиляцкий) — — niv нив 490
Нидерландский средневековый — dum dum нис 496
Ниуэ — niu niu ниу 498
Ногайский — nog nog ног 505
Норвежский no nor nor нор 506
Ньоро — nyo nyo ньо 508
Ньямвези — nym nym ням 509
Ньянджа ny nya nya нян 510
Ньянколе — nyn nyn нья 512
Нюнорск (новонорвежский) nn nno nno нно 513
Оджибве oj oji oji одж 515
Окситанский oc oci oci оке 517
Оромо om orm orm орм 522
Оседжи — osa osa осе 523
Осетинский os oss oss ост 524
Палау — pau pau пал 526
Пали pi pli pli пли 527
Пампанга — pam pam пам 528
Пангасинан — pag pag паг 529
Пенджабский pa pan pan пан 530
Папьяменто — pap pap пап 533
Персидский язык fa fas/per fas пер 535
Пехлевийский — pal pal пех 537
Польский pl pol pol пол 540
Понапе — pon pon пон 542
Португальский pt por por пор 545
Пушту ps pus pus пуш 550
Пьемонтский roa pms
Раджастхани — raj raj рад 555
Разных семей языки — mul mul мул 556
Раротонга — rar rar рар 557
Ретороманский rm roh roh рет 560
Руанда rw kin kin кин 304
Румынский ro ron/rum ron рум 565
Рунди rn run run рун 567
Русский ru rus rus рус 570
Самаритянский арамейский — sam sam сам 577
Самоанский sm smo smo смо 578
Санго sg sag sag саг 579

Поддержка PostgreSQL в Корпорации 2

Итак, в качестве основной базы данных мы будем использовать - PostgreSQL. Но, при этом, все равно тестироваться и работать должно будет в MySQL и Firebird.
Поэтому, в необходимо приходить к стандартам, которые устроит как MySQL так и PostgreSQL.

Рассмотрим для примера запрос:
select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON,
MK.MARKA_ID MARKA_ID,MK.VID_ID, MK.ZAV_NOMER ZAV_NOMER, MK.DVIG_NOMER DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD, MK.SER_SVID SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE, MK.DATE_UPDATE, MK.ID_REGION_KOD ID_REGION_KOD, MK.ID_RAJON ID_RAJON, MK.ID_VID, MK.ID_KOD_F, MK.NAME_ORG NAME_ORG, MK.NAME_VID NAME_VID, MK.UPPER_ZAV_NOMER, MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_
OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP from MTP_KARTA MK

left join TBLREGIONS R
on MK.ID_REGION_KOD=R.ID_REGION_KOD
left join MTP_ORG MO
on (MK.ID_KOD_F=MO.ID_KOD_F)
and (MK.ID_REGION_KOD=MO.ID_REGION_KOD)
where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null)
and(MK.NAME_ORG like '%трактор%')
order by MARKA_ID


limit 0, 50

Данный запрос прекрасно работает в MySQL, но совершенно не работает в PostgreSQL.

Чтоб работаело и там и там нужно писать на подобии:
select MK.KARTA_ID, MK.P_BALANS, MK.P_VLASN, MK.P_ZALOG, MK.P_UGON,
MK.MARKA_ID as MARKA_ID,
MK.VID_ID,
MK.ZAV_NOMER as ZAV_NOMER,
MK.DVIG_NOMER as DVIG_NOMER, MK.NSHAS, MK.YEAR_PROD,
MK.SER_SVID as SER_SVID, MK.DATA_SVID, MK.SER_ZNAK, MK.DATE_NUM, MK.KOD_F, MK.KOD_USER, MK.OLD_ID, MK.DATA_EDIT, MK.DATE_INSERT, MK.DATE_DELETE, MK.IS_DELETED, MK.DATE_COMPILE,
MK.DATE_UPDATE, MK.ID_REGION_KOD as ID_REGION_KOD,
MK.ID_RAJON as ID_RAJON, MK.ID_VID, MK.ID_KOD_F,
MK.NAME_ORG as NAME_ORG,
MK.NAME_VID as NAME_VID, MK.UPPER_ZAV_NOMER,
MK.UPPER_DVIG_NOMER, MK.UPPER_NSHAS, MK.UPPER_SER_SVID, MK.UPPER_SER_ZNAK, MK.DATA_SPISAN, MK.ADDR_ORG, MK.P_REG, MK.DATA_FIRST_REG, MK.D_OLDSVID, MK.N_OLDSVID, MK.YEAR_SVID, MK.YEAR_NUM, MK.YEAR_SPISAN, MK.YEAR_FIRST_REG,MK.YEAR_OLDSVID, MK.DATA_BALANS, MK.REGION_BALANS, MK.RAJON_BALANS, R.REGION_NAME, MO.KOD_EDRPO, MO.N_PASSP

from MTP_KARTA MK

left join TBLREGIONS R
on MK.ID_REGION_KOD=R.ID_REGION_KOD
left join MTP_ORG MO
on (MK.ID_KOD_F=MO.ID_KOD_F)
and (MK.ID_REGION_KOD=MO.ID_REGION_KOD)
where (MK.MARKA_ID<>') and (MK.DATA_SPISAN is null)
and(MK.NAME_ORG like '%трактор%')
order by MARKA_ID

limit 50 offset 10

В чем отличие ?
1. Псевдоним поля задается через as: MK.ZAV_NOMER as ZAV_NOMER
2. В Limit указывается
не: limit 10,50
а: limit 50 offset 10
Такие конструкции работают как в mysql, так и в postgresql. У меня есть подозрение, что они есть стандартом SQL, т.е. вероятность срабатывания и в других серверах высокая.

Поддержка языков в системе Корпорация

Поддержка языков в системе Корпорация реализуется в соответствии со стандартом ISO 639-1.
Вот таблица языков и их префиксов:



Выберите интересующий Вас раздел:



язык ↓ ISO 639-1 ↓ ISO 639-2 ↓ ISO 639-3 ↓ ГОСТ 7.75–97 ↓ цифровой код ↓
Абазинский — — abq аба 005
Абхазский ab abk abk абх 010
Авадхи — awa awa авд 012
Аварский av ava ava ава 014
Авестийский ae ave ave аве 016
Адангме — ada ada ада 018
Адыгейский — ady ady ады 020
Азербайджанский az aze aze азе 025
Аймара ay aym aym айм 026
Акан ak aka aka ака 027
Аккадский — akk akk акк 028
Албанский sq alb/sqi sqi алб 030
Алеутский — ale ale але 033
Алтайский — alt alt алт 035
Амхарский am amh amh амх 040
Английский en eng eng анг 045
Арабский ar ara ara ара 050
Аравакский — arw arw арв 051
Арамейский — arc arc аре 052
Арапахо — arp arp арп 053
Армянский hy/am arm/hye hye/axm/xcl/am арм 055
Ассамский as asm asm аса 060
Ассирийский — — aii асе 065
Афарский aa aar aar афа 068
Африкаанс af afr afr афр 070
Африхили — afh afh афх 073
Ахвахский — — akv ахв 074
Ачехский — ace ace аче 076
Ачоли — ach ach ачо 077
Балийский — ban ban бал 078
Баса — bas bas бас 084
Баскский eu baq/eus eus бак 085
Башкирский ba bak bak баш 086
Беджа — bej bej бед 087
Белорусский be bel bel бел 090
Бемба — bem bem бем 097
Бенгальский bn ben ben бен 100
Бикольский — bik bik бик 103
Бини — bin bin бин 104
Бирманский my bur/mya mya бир 105
Бислама bi bis bis бис 107
Болгарский bg bul bul бол 115
Брауи — bra bra бра 117
Бретонский br bre bre бре 120
Бугийский — bug bug буг 123
Бурятский — bua bua бур 125
Бходжпури — bho bho бхо 126
Ваи — vai vai ваи 127
Валлийский cy cym/wel cym вал 130
Варай — war war вар 131
Вашо — was was ваш 132
Венгерский hu hun hun вен 133
Венда ve ven ven вед 134
Вепсский — — vep веп 135
Воламо — wal wal воа 136
Волапюк vo vol vol вол 137
Волоф wo wol wol воф 138
Вьетнамский vi vie vie вье 140
Га — gaa gaa гаа 142
Гавайский — haw haw гав 143
Гагаузский — — gag гаг 145
Гайо — gay gay гай 146
Галисийский gl glg glg гал 147
Ганда lg lug lug ган 148
Гереро hz her her гер 149
Геэз — gez gez гез 151
Гилбертский — gil gil гил 152
Нидерландский (Голландский) nl dut/nld nld нид 495
Гонди — gon gon гон 153
Готский — got got гот 154
Гребо — grb grb грб 155
Греческий (новогреческий) el ell/gre ell гре 157
Грузинский ka geo/kat kat гру 158
Гуджарати gu guj guj гуд 165
Гаэльский gd gla gla гэл 170
Дакота — dak dak дак 173
Даргинский — — dag дат 175
Датский da dan dan дат 178
Делавэрский — del del дел 179
Дзонг-кэ dz dzo dzo дзо 183
Дивехи (Мальдивский) dv div div див 180
Динка — din din дин 181
Диула (Дьюла) — dyu dyu диу 182
Догри — doi doi дои 184
Древнегреческий — grc grc дрг 186
Древнеегипетский — egy egy дре 187
Дуала — dua dua дуа 190
Дунганский — — dng дун 191
Еврейско-арабский — jrb jrb еар 192
Еврейско-персидский — jpr jpr епе 193
Зенагский — zen zen зен 194
Зулу zu zul zul зул 195
Зуньи — zun zun зун 196
Ибанский — iba iba иба 197
Иврит he heb heb ивр 198
Игбо ig ibo ibo ибо 199
Идиш yi yid yid иди 202
Илоко — ilo ilo ило 203
Ингушский — inh inh инг 205
Индонезийский id ind ind инд 210
Интерлингва ia ina ina ина 215
Интерлингве ie ile ile ине 216
Инуктитут iu iku iku инк 217
Инупиак ik ipk ipk инп 218
Ирландский ga gle gle ирл 220
Исландский is ice/isl isl исл 225
Испанский es esl/spa spa исп 230
Итальянский it ita ita ита 235
Ительменский — — itl ите 240
Йоруба yo yor yor йор 245
Кабардино-черкесский — kbd kbd каа 250
Кабильский — kab kab каб 251
Кави — kaw kaw кат 252
Каддо — cad cad кад 254
Казахский kk kaz kaz каз 255
Каннада kn kan kan кан 265
Калмыцкий kl kal kal кал 260
Камба — kam kam кам 263
Канури kr kau kau кау 267
Караимский — — kdr каи 270
Каракалпакский — kaa kaa кал 275
Карачаево-балкарский — krc krc као 280
Карельский — krl krl кас 285
Кариб — car car кар 288
Каталанский ca cat cat кат 290
Качинский — kac kac кач 293
Кашмири ks kas kas каш 294
Кечуа qu que que кеч 300
Кикуйю ki kik kik кик 302
Киньяма kj kua kua кия 303
Киргизский — — kyr кир/кыр 305
Китайский zh chi/zho zho кит 315
Коми kv kom kom кои 320
Конго kg kon kon кон 326
Конкани — kok kok кок 327
Коптский — cop cop коп 328
Корейский ko kor kor коо 330
Корнский kw cor cor кор 332
Корсиканский co cos cos кос 334
Корякский — — kpy коя 335
Коса xh xho xho коа 340
Кпелле — kpe kpe кпе 341
Крик — mus mus крк 344
Крымско-татарский — crh crh кры 347
Кумыкский — kum kum кум 349
Курдский ku kur kur кур 350
Кусайе — — ksg кус 353
Кутенаи — kut kut кут 354
Кхаси — kha kha кха 357
Кхмерский km khm khm кхм 360
Ладино — lad lad лад 363
Лакский — — lbe лак 370
Ламба — lam lam лам 373
Лаосский lo lao lao лао 375
Латинский la lat lat лат 380
Латышский lv lav lav лаш 385
Лахнда — lah lah лах 387
Лезгинский — lez lez лез 390
Лингала ln lin lin лин 395
Литовский lt lit lit лит 400
Лози — loz loz лоз 402
Луба-катанга lu lub lub луб 404
Луисеньо — lui lui луи 406
Лунда — lun lun лун 407
Луо (Кения и Танзания) — luo luo луо 408
Люксембургский lb ltz ltz люк 409
Магахи — mag mag маг 410
Мадурский — mad mad мал 411
Майтхили — mai mai май 412
Макассарский — mak mak мак 414
Македонский — mac/mke mke маа 415
Малагасийский mg mlg mlg млг 418
Малайский ms may/msa msa маз 420
Малаялам — mal mal мал 425
Мальтийский mt mlt mlt млт 430
Мандинго — man man май 432
Манипури — mni mni мни 433
Маори mi mao/mri mri мао 437
Маратхи mr mar mar мар 440
Марвари — mwr mwr мвр 443
Марийский (черемисский) — chm chm мач 445
Маршалльский mh mah mah маш 446
Масаи — mas mas мас 447
Менде — men men мен 451
Микмак — mic mic мик 452
Минангкабау — min min мин 453
Моей[1] — mos mos мое 466
Мокшанский — mdf mdf мок 455
Молдавский mo mol mol мол 460
Монго — lol lol мог 462
Монгольский mn mon mon мои 463
Мохаук — moh moh мох 467
Навахо nv nav nav нав 470
Нанайский (гольдский) — — gld нан 471
Науру na nau nau нау 472
Ндебеле северный nd nde nde нде 473
Ндебеле южный nr nbl nbl нбл 474
Ндунга ng ndo ndo нду 475
Неварский — new new нев 478
Неидентифицированный — und und унд 480
Немецкий de deu/ger deu нем 481
Ненецкий (юрако-самоедский) — — yrk нен 482
Непальский ne nep nep неп 485
Нзима — nzi nzi нзи 487
Нивхский (гиляцкий) — — niv нив 490
Нидерландский средневековый — dum dum нис 496
Ниуэ — niu niu ниу 498
Ногайский — nog nog ног 505
Норвежский no nor nor нор 506
Ньоро — nyo nyo ньо 508
Ньямвези — nym nym ням 509
Ньянджа ny nya nya нян 510
Ньянколе — nyn nyn нья 512
Нюнорск (новонорвежский) nn nno nno нно 513
Оджибве oj oji oji одж 515
Окситанский oc oci oci оке 517
Оромо om orm orm орм 522
Оседжи — osa osa осе 523
Осетинский os oss oss ост 524
Палау — pau pau пал 526
Пали pi pli pli пли 527
Пампанга — pam pam пам 528
Пангасинан — pag pag паг 529
Пенджабский pa pan pan пан 530
Папьяменто — pap pap пап 533
Персидский язык fa fas/per fas пер 535
Пехлевийский — pal pal пех 537
Польский pl pol pol пол 540
Понапе — pon pon пон 542
Португальский pt por por пор 545
Пушту ps pus pus пуш 550
Пьемонтский roa pms
Раджастхани — raj raj рад 555
Разных семей языки — mul mul мул 556
Раротонга — rar rar рар 557
Ретороманский rm roh roh рет 560
Руанда rw kin kin кин 304
Румынский ro ron/rum ron рум 565
Рунди rn run run рун 567
Русский ru rus rus рус 570
Самаритянский арамейский — sam sam сам 577
Самоанский sm smo smo смо 578
Санго sg sag sag саг 579

Функция для запрета доступа не администраторам

Для того, чтоб нельзя было отредактировать содержимое без авторизации, введя только точный URL на страницу редактирования, в Корпорации 2 была введена ф-ция check_admin.
Пример её использования:
if ($GLOBALS["c"]->check_admin()){
$_GET["edit"]=true;
$GLOBALS["c"]->ins_comp('fckeditor');
}

Корпорация 2. Начало изучения (для программистов).

На сервере, все проекты находятся в папке /d2/c/.
/d2/c/corp2 - тестовая версия Корпорации 2.
/d2/c/corp2_stable - последняя стабильная версия Корпорации 2.
/d2/c/projs - различные проекты, созданные с помощью системы Корпорация 2.

Во многих каталогах находится файл desc - это описание каталогов или компонент.
/d2/c/projs/desc - описание проектов, которые находятся в каталоге proj.
/d2/c/corp2/corp2/includes/main/desc - основные принципы работы системы Корпорация2.
/d2/c/corp2/corp2/components/desc - перечень компонент системы Корпорация 2 и краткое описание их назначения.

Самый основной файл, загружающий все компоненты:
/d2/c/corp2/corp2/includes/main/corp_runner.php

Переводы компонент находятся в папке lang (в ней они сгруппированы по обозначению языка, например: ua, ru, en).

Компоненты
Стандартные компоненты находятся по адресу:
/d2/c/corp2/corp2/components/

Каждая компонента находится в своём каталоге.
И состоит из 2-х частей:
main_class.php - программная часть компоненты. Класс, который делает всю работу.
main.php - шаблон компоненты. В нём задаются в основном свойства для класса, объявленного в файле main_class.php.
Шаблонов можно создавать не ограниченное количество штук. В этом случае, они размещаются в папке templates компоненты.

Функция для запрета доступа не администраторам

Для того, чтоб нельзя было отредактировать содержимое без авторизации, введя только точный URL на страницу редактирования, в Корпорации 2 была введена ф-ция check_admin.
Пример её использования:
if ($GLOBALS["c"]->check_admin()){
$_GET["edit"]=true;
$GLOBALS["c"]->ins_comp('fckeditor');
}

Корпорация 2. Начало изучения (для программистов).

На сервере, все проекты находятся в папке /d2/c/.
/d2/c/corp2 - тестовая версия Корпорации 2.
/d2/c/corp2_stable - последняя стабильная версия Корпорации 2.
/d2/c/projs - различные проекты, созданные с помощью системы Корпорация 2.

Во многих каталогах находится файл desc - это описание каталогов или компонент.
/d2/c/projs/desc - описание проектов, которые находятся в каталоге proj.
/d2/c/corp2/corp2/includes/main/desc - основные принципы работы системы Корпорация2.
/d2/c/corp2/corp2/components/desc - перечень компонент системы Корпорация 2 и краткое описание их назначения.

Самый основной файл, загружающий все компоненты:
/d2/c/corp2/corp2/includes/main/corp_runner.php

Переводы компонент находятся в папке lang (в ней они сгруппированы по обозначению языка, например: ua, ru, en).

Компоненты
Стандартные компоненты находятся по адресу:
/d2/c/corp2/corp2/components/

Каждая компонента находится в своём каталоге.
И состоит из 2-х частей:
main_class.php - программная часть компоненты. Класс, который делает всю работу.
main.php - шаблон компоненты. В нём задаются в основном свойства для класса, объявленного в файле main_class.php.
Шаблонов можно создавать не ограниченное количество штук. В этом случае, они размещаются в папке templates компоненты.

Настройка языка в Корпорации 2 CMS

За настройку основных параметров в системе Корпорация 2 отвечает файл config_main.php
Пример содержимого файла:
$this->site_name="Наш сайт";
$this->site_url="http://corp2.net/";
$this->lang_adm='ua';
$this->langs=array('ua');
$this->lang='ua';
?>

За язык по умолчанию отвечает переменная:
$this->lang='ua';

За список возможных языков на сайте:
$this->langs=array('ua');

За язык по умолчанию административной части:
$this->lang_adm='ua';

Наши новые работы

Мы выпустили несколько новых работ.

1. Сайт спортивных клубов Sportlife: http://sportlife.net.ua/

Данный сайт был полностью переделан из системы Joomla в систему Корпорация 2. Теперь, на нём показывается информация не по 1 клубу, а по всей сети спортклубов Sportlife.

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

2. Сайт Leg-Magic. http://leg-magic.org.ua/

Данный сайт переделан из статического состояния в систему Корпорация 2. Теперь, администраторы сайта могут в любой момент менять информацию на нём.

3. Сайт компании Элком-Сервис: http://dohodtut.com/

Не большой, но красивый интернет-магазин.

4. "Інспекція державного технічного нагляда ": http://idtn.corp2.net/

Огромное комплексное программное решение на базе системы Корпорация 2.

В данном случае, сайт - это лишь верхушка айсберга. В данном проекте реализованы все возможности системы Корпорация. Это возможности разграничения прав доступа между пользователями, прикладная система для учета всей сельско-хозяйственной техники в Украине, веб-система для учета всей сельско-хозяйственной техники в Украине. Распределенная база данных на более 500 узлов и много, много другого.

Linux Ubuntu 9.10

Уже традиционно, 29 октября вышла очередная версия Linux Ubuntu 9.10. Так, что качайте, обновляйтесь. Это уже стабильная версия и ею можно пользоваться.

Добавление кодеков в Linux Ubuntu

В Linux Ubuntu добавить кодеки очень легко. Для этого, необходимо выполнить команду:

aptitude install ubuntu-restricted-extras

Так же могут понадобиться команды:

sudo aptitude install gstreamer0.10-plugins-ugly gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-bad gstreamer0.10-plugins-bad-multiverse gstreamer0.10-ffmpeg

и

sudo aptitude install totem-xine ffmpeg libxine-extracodecs

Можно так же поставить плеер smplayer:

apt-get install smplayer

apt-get install smplayer-themes

Устанавливаем коммерческие кодеки:

wget http://www.medibuntu.org/sources.list.d/intrepid.list --output-document=/etc/apt/sources.list.d/medibuntu.list

Добавляем ключи:

sudo apt-get update
sudo apt-get install medibuntu-keyring
sudo apt-get update

И теперь установим сами кодеки. Для пользователей 32-битных систем:
sudo apt-get install w32codecs libdvdcss2

Для обладателей 64-битных версий дистрибутива:
sudo apt-get install w64codecs libdvdcss2

Если вы хотите так же установить расширение MPlayer для браузера Mozilla Firefox, введите следующую команду:
sudo apt-get install mozilla-mplayer



Информацию нашел по адресу:
http://bobrdobr.ru/rvo7

Postgresql: Промышленная разработка баз данных

Вот наткнулся на интересный курс обучения по Postgresql: http://www.scribd.com/doc/4951644/PostgreSQL-9-10

Повысилась устойчивость сервера Postgresql, после добавления дополнительных 8 Гб оперативной памяти

После добавления 8 Гб оперативной памяти, ощутимо повысилась производительность сервера. Теперь, даже при вакууме full, когда идет блокировка таблиц, не происходит тайм-аутов и перерывов в работе с базой данных.

Настройка доступной оперативной памяти в Linux Ubuntu для PostgreSQL

При добавлении оперативной памяти на сервере до 10 Гб, возникла необходимость, чтоб эта память реально использовалась Postgresql, т.к. по умолчанию использовалась только малая часть памяти.

Это делается таким образом:

echo 8589934592 >/proc/sys/kernel/shmall
echo 8589934592 >/proc/sys/kernel/shmmax

или в файле /etc/sysctl.conf прописываются строки:
kernel.shmall = 8589934592
kernel.shmmax = 8589934592

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

vm.swappiness=10

swappiness имеет значение от 0 до 100 и представляет собой процент использования виртуальной памяти.

Для того, чтоб применить изменения, не забудьте выполнить команду:

sudo /sbin/sysctl -p

В данном случае, выделяется приложениям 8 Гб, остальная часть идет на нужны операуионной системы.

Полезные статьи по теме:

http://sysdba.org.ua/ustanovka/oracle/ustanovka-oracle-10g-redaktsii-express-i-enterprise-v-ubuntu-8.04.html

http://postgrestips.blogspot.com/

Добавление оперативной памяти на сервере titan

На сервере titan добавлено 8 Гб оперативной памяти. Теперь, на этом сервере установлено 10 Гб оперативной памяти. Это первый и последний "апгрейд" данного сервера. В дальнейшем, будет покупаться большой сервер 4-5 юнитов с огромным количеством высоко-скоростных винчестеров и высоко-скоростными процессорами.

Некоторые соображения по поводу тегов

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

... текст счетчика


Для повышения вероятности выхода на Вашу страницу, стоит к ссылкам дописывать комментарии, например:
Форум LEG MAGIC

Надписи кириллицей в компоненте рисования графиков на PHP - pChart

Столкнулся с проблемой вывода кириллицы в компоненте pChart. Вместо русских и украинских букв - выводилась абракадабра. Полез в интернет, на форумах для решения этой проблемы пишут объемные процедуры перекодировки... А проблема ведь не большая - нужно просто из ANSI-кодировки перекодировать в UTF8...

Я решил же эту проблему 1 стандартной командой перекодировки:
iconv('cp1251', 'utf-8', 'Мой текст')

Так, например, для вывода легенды на графике в pChart получилось нечто похожее на:
$this->DataSet->SetSerieName(iconv('cp1251', 'utf-8', 'Мой текст'),"Serie1");

Добавление оперативной памяти на сервере titan и ввод в эксплуатацию нового сервера для Украины

После 18 сентября, планируется добавление оперативной памяти на сервере titan, который используется на данный момент для наших проектов. Мы планируем добавить максимально возможное (без выбрасывания существующей памяти) количество оперативной памяти на данном сервере - 4 планки по 2 Гб, т.е. 8 Гб. В результате, на этом сервере будет 10 Гб. Больше этот сервер не будет усиливаться, т.к. больше уже некуда.

К концу года, мы планируем ввод нового усиленного сервера для потребителей из Украины. Новый сервер планируется разместить на другой площадке - на площадке Воли-Кабель. Размер сервера будет 5 юнитов. Данный сервер будет обладать максимальным количеством много-ядерных процессоров, которые можно разместить в 5 юнитах, максимальным количеством оперативной памяти и большим количеством высоко-скоростных и объемных винчестеров. Предполагается в 5 юнитов вместить максимальную производительность и пропускную способность сервера.

Новый сервер, конечно, будет под управлением Linux Ubuntu и сервера базы данных Postgresql. На нем будет работать 2-х уровневая система веб-сервера. Сервер базы данных MySQL, вероятно на новом сервере не будет устанавливаться, т.к. для наших проектов мы используем только Postgresql.

Этот сервер будет решать задачи автоматизации крупных предприятий, а так же выводить интернет-страницы, построенные на системе Корпорация 2.

Проблемы с count, limit и offset в Postgresql

Postgresql - очень мощная база, но, она бывает тормозит там, где такая простая база, как MySQL работала быстро.

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

Но, постоянно возникает проблема с offset. Похоже, придется делать числовое поле и построить по нему индекс, чтоб выборки производить именно по индексированному полю. Но, это тоже ведь частичное решение... Ведь последовательность записей в запросе может отличаться...

Что печально, так это то, что подобные запросы буквально "летали" в MySQL...

Вот пример ссылок, где рассматриваются подобные проблемы:

http://gray-hemp.blogspot.com/2008/09/offset-limit.html

Советы по работе с Postgresql

Ссылки на некоторые советы по Postgresql:

http://www.opennet.ru/tips/sml/32.shtml

Проблемы с count, limit и offset в Postgresql

Postgresql - очень мощная база, но, она бывает тормозит там, где такая простая база, как MySQL работала быстро.

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

Но, постоянно возникает проблема с offset. Похоже, придется делать числовое поле и построить по нему индекс, чтоб выборки производить именно по индексированному полю. Но, это тоже ведь частичное решение... Ведь последовательность записей в запросе может отличаться...

Что печально, так это то, что подобные запросы буквально "летали" в MySQL...

Вот пример ссылок, где рассматриваются подобные проблемы:

http://gray-hemp.blogspot.com/2008/09/offset-limit.html

Интересный способ сравнения одинаковости баз в двух таблицах на разных серверах

Для сравнения двух таблиц в двух базах данных на разных серверах можно воспользоваться формированием значения по md5.

Например: select md5(array_send(array(select B from A order by 1))) as md5;

Сайт о Корпорации 2 переведен полностью на систему Корпорация 2

Сегодня, мы выложили новую версию нашего сайта. Он сделан полностью на системе Корпорация 2. А систему Битрикс выкинули куда подальше...

Нужно признать, что в Корпорации 2 и проще работать и во много раз быстрей, чем в том же Битрикс... То, на что ушло при построении сайта на Битрикс около недели-нескольких недель на Корпорации 2 было сделано за 1 день!

Снятие из продаж программ не на базе Корпорации 2

Мы снимаем из продаж все программы, которые разработаны не на базе Корпорация 2. Т.к. эти программные продукты считаем устаревшими и их поддержкумы уже не производим. Снимаются из продаж:

- Все продукты, разработанные на базе Корпорация 1.

- Программа Расчет и проектирование шкафов.

- Программа Экзамен.

- Программа Autofill.

- Программа VDoc.

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

Мы боремся за качество наших услуг, поэтому не можем позволить себе продавать устаревшее (пусть даже и рабочее) программное обеспечение.

Самый мощный сервер баз данных - Postgresql

Компания Yahoo утверждает, что ей удалось побить мировой рекорд, создав самую большую и нагруженную базу данных в мире!

Объём запущенной год назад базы данных достиг 2 петабайт. Система создана для аналитических целей, в ней хранится история поведения веб-пользователей (утверждается, что в месяц сохраняются данные о полумиллиарде пользователей). Помимо прочего, интернет-гигант заявляет, что это не только самая большая БД в мире, но ещё и самая нагруженная — в сутки в ней регистрируются данные о 24 млрд событиях.
Постгрес!
А теперь самое интересное. Управляет этим монстром модифицированный PostgreSQL. Это — результат покупки компании-стартапа Mahat Technologies, изначально работающей с самой развитой СУБД с открытым кодом PostgreSQL. Код «Постгреса» был модифицирован для работы с такими огромными объёмами информации (одно из самых крупных изменений: ориентация на по-колоночное хранение вместо традиционного построчного, что замедляет запись на диск, но обеспечивает лучшую скорость доступа к данным для аналитических целей). Положительный результат налицо: некоторые таблицы в базе содержат триллионы строк, которые не просто лежат мёртвым грузом на дисках, но могут быть запрошены и обработаны стандартным SQL, в стандартной ACID-совместимой среде.

Инженеры Yahoo ожидают рост до 5 петабайт к следующему году. И они готовы к такому росту. Для сравнения: редко встречаются БД уровня предприятия объёмом более десятков терабайт. Например, одна из самых больших публично известных БД в мире — база данных налоговой службы США «весит» всего лишь 150 терабайт. Компания EBay заявляет, что работает с системами, обрабатывающими 10 млрд строк в сутки, при этом суммарный объём данных в этих системах составляет 6 петабайт, а объём данных у самой большой из систем — около 1.4 петабайт.

Стоит понимать, что речь идёт именно о СУБД и БД построенных на них. Есть хранилища данных с ещё более впечатляющим объёмами, но при этом данные в них практически недоступны для анализа и обработки. К примеру, Всемирный центр данных о климате в Гамбурге обладает хранилищем в более чем 6 петабайт данных, сохранённых на магнитной ленте, при этом в «активном» состоянии находятся «лишь» 220 терабайт данных (которые обслуживаются СУБД под управлением Linux, см. PDF).

«PostgreSQL продолжает активно развиваться, подтверждая звание самой развитой СУБД из открытых, — комментирует представитель компании «Постгресмен» Николай Самохвалов. — В прошлом году инженеры Sun показали всему миру, что PostgreSQL не уступает в производительности Oracle. На недавно прошедшей в Канаде международной конференции PGCon2008 представители NASA рассказали о своём опыте использования PostgreSQL для работы с большими базами данных из области наблюдения за климатом. Опыт Yahoo — очередное яркое подтверждение зрелости PostgreSQL. И это очень приятная новость для всех нас, жаль лишь, что, насколько я знаю, Yahoo пока не планирует делиться своими наработками с сообществом.»

Новость взята из http://habrahabr.ru/blogs/postgresql/26289/

Снятие из продаж программ не на базе Корпорации 2

Мы снимаем из продаж все программы, которые разработаны не на базе Корпорация 2. Т.к. эти программные продукты считаем устаревшими и их поддержкумы уже не производим. Снимаются из продаж:

- Все продукты, разработанные на базе Корпорация 1.

- Программа Расчет и проектирование шкафов.

- Программа Экзамен.

- Программа Autofill.

- Программа VDoc.

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

Мы боремся за качество наших услуг, поэтому не можем позволить себе продавать устаревшее (пусть даже и рабочее) программное обеспечение.

Мы разрабатываем сайты только на базе сервиса Корпорация 2.

С сегодняшнего дня, мы делаем сайты только в на Корпорации 2 и только в рамках сервиса Корпорация 2.

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

Мы разрабатываем сайты только на базе сервиса Корпорация 2.

С сегодняшнего дня, мы делаем сайты только в на Корпорации 2 и только в рамках сервиса Корпорация 2.

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

Переход на фиксированную цену в USD

Учитывая "экономический кризис", мы переводим фиксацию цен с евро на USD.

Корпорация 2.0.0.66

Вышла новая версия системы Корпорация 2.
Некоторые изменения этой системы:
* Система в целом.
* Ведение истории версий системы Корпорация.
* Возможность указания проекта по умолчанию для пользователя.
* Возможность указания предприятия по умолчанию для пользователя.
* Возможность указания нескольких проектов, которые имеет право видеть пользователь.
* Возможность указания нескольких компаний, с которыми имеет право работать пользователь.
* Разделение во всех таблицах доступа в разрезе проекта.
* Во всех таблицах предусмотреть пометку на удаление.
* Во всех таблицах предусмотреть возможность "отключения" записи (активность записи).
* Разделение прав доступа между программистами в истории изменений системы Корпорация.
* Вывод лога даже при большом количестве информации. Реализовать различные мощные
фильтры для анализа лога.

* PHP
* Фотогаллерея.
* Возможность вывода видео-проигрывателя и медиа-плеера.
* Возможность прикрепления файла к любому справочнику.
* Возможность закачки большого количества фотографий в систему.
* Сжатие фотографий в зависимости от указанных настроек.
* Каскадный вызов конфигурационных файлов.
* Ведение лога авторизаций, регистраций и разлогиниваний.
* Возможность подробного ведения лога - внесение sql-запросов в лог.
* Измерение времени загрузки страниц и SQL-запросов. Сохранение времени в логах.
* Оптимизация скорости работы фотогаллереи и проверки администраторских прав.
* Подправить статистику входа в систему.
* Фиксировать подробную информацию в логе.
* Исправлено определение реального ip-адреса.

Корпорация 2.0.0.66

Вышла новая версия системы Корпорация 2.
Некоторые изменения этой системы:
* Система в целом.
* Ведение истории версий системы Корпорация.
* Возможность указания проекта по умолчанию для пользователя.
* Возможность указания предприятия по умолчанию для пользователя.
* Возможность указания нескольких проектов, которые имеет право видеть пользователь.
* Возможность указания нескольких компаний, с которыми имеет право работать пользователь.
* Разделение во всех таблицах доступа в разрезе проекта.
* Во всех таблицах предусмотреть пометку на удаление.
* Во всех таблицах предусмотреть возможность "отключения" записи (активность записи).
* Разделение прав доступа между программистами в истории изменений системы Корпорация.
* Вывод лога даже при большом количестве информации. Реализовать различные мощные
фильтры для анализа лога.

* PHP
* Фотогаллерея.
* Возможность вывода видео-проигрывателя и медиа-плеера.
* Возможность прикрепления файла к любому справочнику.
* Возможность закачки большого количества фотографий в систему.
* Сжатие фотографий в зависимости от указанных настроек.
* Каскадный вызов конфигурационных файлов.
* Ведение лога авторизаций, регистраций и разлогиниваний.
* Возможность подробного ведения лога - внесение sql-запросов в лог.
* Измерение времени загрузки страниц и SQL-запросов. Сохранение времени в логах.
* Оптимизация скорости работы фотогаллереи и проверки администраторских прав.
* Подправить статистику входа в систему.
* Фиксировать подробную информацию в логе.
* Исправлено определение реального ip-адреса.

Обновление программного обеспечения на сервере rudjuk

Мы обновили программное обеспечение на сервере. В связи с чем на днях около часа не работали сайты. Теперь, на сервере установлена новейшая версия операционной системы Linux Ubuntu 9.04 и новейшие пакеты программного обеспечения.

Проблема пользователей в много-сайтовых и много-магазинных системах

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

В системах Битрикс и Юкос один и тот же пользователь - пользователь на все сайты.
Таким образом, пользователь зарегистрированный на одном сайте, считается, что уже существует в другом сайте и из-за этого может не впускать в тот другой сайт. И более того, не позволяет зарегистрировать пользователя, т.к. он уже "есть в системе". Что создает определенные проблемы.

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

Linux Ubuntu 9.04

На днях вышел новый релиз Linux Ubuntu 9.04. Решил обновиться и посмотреть, что нового.
Закачка обновлений заняла около 2-х часов. Когда закачивалось, можно было спокойно работать. Лишь после того, как начали распаковываться пакеты, пришлось выйти из программ, т.к. стали замняться библиотеки. Распаковка и окончательная установка заняла около часа. Нужно признать, что даже в момент установки можно было заниматься некоторыми своими делами на компьютере. Что нужно признать, гораздо лучше, чем при переустановке Windows.

Скорость загрузки новой Linux Ubuntu не сказал бы, что выше стала (может из-за того, что у меня запущено много сервисов). Зато вот дизайн несколько улучшили.

В этой версии стала поставляться новая версия Wine (правда и в более старых можно уже его ставить). Данная реализация Wine уже стала "понимать" анимированные курсоры, а так же расширела маски текстур. В результате, 3D-приложения стали работать еще более корректно. По сути, так же, как в Windows.

В Linux Ubuntu 9.04 стал поставляться новый Open Office 3. Так же обновились другие пакеты, такие, как MySQL.

Проблема возникла лишь с vmware. Но, она достаточно просто решилась переустановкой vmware workstation на последюю версию.

Нетбук Acer Aspire One

Недавно, купил себе новый нетбук - Acer Aspire One.
Нужно признать, что данный нетбук меня приятно удивил.
Во первых, у него идет 2 батареи. Одна тянет где-то на 2 часа, другая - на 4,5 часа.
Во вторых с ним идет лицензионный Windows и лицензионный Work. Но, к сожалению, не идут эти пакеты на компактах. Т.к. я хотел поставить Linux Ubuntu в качестве основной ОС.
В третьих - винчестер 160Гб. Для нетбука - это совсем не плохо.
В четвертых, процессор оказался двойной. На графике рисует 2 диаграммы - для 2-х процессоров. Как следствие - высокая скорость работы. Значительно выше, чем подобный нетбук от MSI.
И самое приятное - это цена около 350$.

К этому нетбуку без проблем подключился беспроводный 3G интернет от PeopleNet. Прекрасно подключилась сеть, а так же внение устройства, например внешний винчестер на 1ТБайт.
Такой нетбук - не заменимая вещь в командировках и на отдыхе, когда нужно уезжать далеко от своих краев.
Некоторые ругают нетбуки за малые размеры. Но, этот недостаток является одновременно преимуществом. Ведь на нетбуке можно спокойно работать и в транспорте, а с ноутбуком - не совсем это делать удобно. Кроме того, следствие малого размера - малый вес. Нетбук весит около 1 Кг. А это значительно меньше 3,5 - 12 кг различных ноутбуков.

Один существенный недостаток Acer Aspire One - он легко пачкается. Это потому, что поверхность его глянцевая и стоит один раз прикоснуться к ней для того, чтоб оставить отпечаток пальцев, который прекрасно смотрится на данной поверхности :)

В целом, впечатление от этой модели хорошее. Я получил то устройство, которое хотел и немного лучшее. Оно быстро и бесшумно работает, плохо греется и удобно в дороге, а так же как устройство дополнителняющее персональный компьютер.

vmware и Linux Ubuntu 9.04

При установке новой версии Linux Ubuntu 9.04 пришлось полностью переустановить виртуальную машину vmware на последнюю версию.
Я установил версию VMware-Workstation-6.5.2-156735.x86_64.bundle. Нужно признать, что исчез один неприятный глюк. Раньше не работали клавиши управления курсором (не на цифровой части) и крайняя клавиша Enter. Теперь же все заработало, т.к. весь вывод передается виртуальной машине. Единственно, нужно не забывать, что если хотите что-то выполнить в Linux, то обязательно нужно теперь нажать кнопку Ctrl+Alt для того, чтоб передать управление мышью и клавиатурой Linux.

Настройка NetworkManager в Linux Ubuntu 8.10

В Linux Ubuntu 8.10 появилось новое средство NetworkManager 0.7
Многие ругаются на то, что данное средство "глючит". Но, нужно признать, что оно достаточно стабильно работает, как для версии 0.7.
Более того, оно сильно упрощает работу с сетевыми устройствами и при правильном управлении способно упростить подключения к сетям.

Если вы обновили операционную систему до версии 8.10, тогда Вам наверняка нужно удалить файл: /etc/network/interface
Иначе, NetworkManager может не заметить сетевые устройства и не включиться в работу. Т.е. работа просто будет производиться по-старому, как было принято до версии 8.04 включительно.
Удалите этот файл и перезагрузите Linux. После этого, в списке устройств в NetworkManager должны быть видны Ваши сетевые устройства.

Если у Вас настройки по DHCP, тогда они автоматически подхватятся и ничего донастраивать не нужно будет. Если же у Вас чётко прописаны ip-адреса, тогда:
- дважды щёлкните на сетевом интерфейсе.
- Уберите галочку Системная настройка.
- Перейдите в Параметры IPv4.
Выберите метод Вручную, укажите адрес компьютера, маску, шлюз, серверы DNS.
- Переименуйте соединение.
Например, eth0 на my eth0.
- Нажмите ок :)

Эти операции произведите со всеми устройствами, у которых параметры не подхватываются по DHCP.

После того, как Вы все указали, закройте окно интерфесов NetworkManager и перезагрузите Linux Ubuntu.
После перезагрузки Linux найдет снова сетевые устройства и добавит их в список (например, eth0), но останутся и Ваши устройства. Приоритет у устройств найденных системой окажется выше. Поэтому, их нужно отключить.
Для этого, щелкаете на появившихся устройствах и убираете только галочку Системная настройка.
После того, как отключите все не нужные системные интерфейсы, подколючите настроенные Вами интерфейсы (просто щелкните на трее NetworkManager и выберите устройства, которые хотите активировать) или просто перезагрузите Linux.
После этого, должны подхватываться Ваши настройки и не сбиваться системными настройками Linux.

Риторический вопрос о лицензиях Windows

У меня есть ноутбук с лицензионным Windows. Долгое время я работал на нём.
Но, сейчас я окончательно созрел на то, чтоб поставить вместо Windows - Linux Ubuntu 8.10.
Т.к. те возможности, которые я получу в результате, мне нужны и их проще реализовать на Linux, чем на Windows. А Windows, если нужно, можно оставить в виде виртуальной машины... Тем самым получаются все возможности Windows + большие возможности Linux...
Таким образом у меня в скором времени 100% компьютеров будут работать на Linux Ubuntu 8.10.
Конечно, не все компании могут такое. Для такого перехода нужно привыкнуть к новой ОС, а так же набраться опыта использования Linux...
Данный опыт у меня есть. Так, что если кому-то нужно могу предоставить в качестве дополнительной услуги.

Конечно, возникает риторический вопрос, зачем я тратил на лицензию Windows при покупке ноутбука... Ведь, это как минимум 100-150$ в цене. Теперь, когда есть ноуты с Линукс этого делать не нужно будет...

Риторический вопрос о лицензиях Windows

У меня есть ноутбук с лицензионным Windows. Долгое время я работал на нём.
Но, сейчас я окончательно созрел на то, чтоб поставить вместо Windows - Linux Ubuntu 8.10.
Т.к. те возможности, которые я получу в результате, мне нужны и их проще реализовать на Linux, чем на Windows. А Windows, если нужно, можно оставить в виде виртуальной машины... Тем самым получаются все возможности Windows + большие возможности Linux...
Таким образом у меня в скором времени 100% компьютеров будут работать на Linux Ubuntu 8.10.
Конечно, не все компании могут такое. Для такого перехода нужно привыкнуть к новой ОС, а так же набраться опыта использования Linux...
Данный опыт у меня есть. Так, что если кому-то нужно могу предоставить в качестве дополнительной услуги.

Конечно, возникает риторический вопрос, зачем я тратил на лицензию Windows при покупке ноутбука... Ведь, это как минимум 100-150$ в цене. Теперь, когда есть ноуты с Линукс этого делать не нужно будет...

Изменение цен на регистрацию доменов

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

Установка Linux Ubuntu из Flash

В netbook-ах чаще всего нет привода DVD или CD. Вместо этого, предусмотрены разъёмы USB. Поэтому, если у Вас возникнет желание переустановить операционную систему, то придётся ставить Linux Ubuntu из Flash.
Как это делается, я нашел в статье по адресу: http://rus-linux.net/lib.php?name=MyLDP/install/Ubuntu8.10-on-USB.html

Впечатления о MSI WindPC U90 B

Купил новый компьютер: MSI WindPC U90 B
Это нетбук с несколько большими возможностями, чем обычно в нетбуках (гораздо больше, чем обычно винчестер).

Вот его характеристики:

MSI Wind весит приблизительно 1 кг, что идеально для использования вне помещений. В новую эру Интернета пользователям требуется эффективное Интернет-соединение для личного и профессионального использования. Компания MSI предлагает новый ноутбук Wind, который отвечает потребностям современного человека, будучи более легким, удобным и обладающим увеличенным временем работы от батареи. Кроме того ноутбук MSI Wind оснащается интерфейсом Bluetooth 2.0 и веб-камерой с разрешением 1.3 мегапикселя.

* Экран: 8.9" (1024×600)
* Процессор: Intel Atom N270 (1.6GHz)
* Объём оперативной памяти: 512 MB
* Тип оперативной памяти: DDR2 667 МГц
* Жесткий диск: 120 Gb
* Видеокарта: Интегрированное в чипсет видеоядро
* Чипсет материнской платы: i945GSE + ICH7M
* Беспроводные технологии: Wi-Fi, Bluetooth 2.0
* Дополнительно: 0.3 MPix Web-Camera
* Коммуникационные возможности и порты ввода-вывода: 3×USB 2.0; VGA; RJ-45; Mic-In; Headphone; Card Reader 4in1
* Внутренняя аудиосистема: HD Audio, стереодинамики
* Устройство управления курсором: Touchpad
* Время работы от батареи и характеристики питания: Батарея Li-Ion 3 cell, 2200 мАч.
* Время автономной работы до 3 часов
* Размеры (Ш×Г×В): 260×180×19-31.5 мм
* Вес: 1 кг

И это за стоимость 325 у.е.


Нужно признать, что не плохая вещь.

Но, нужно учитывать, что т.к. это нетбук, то в нём нет cd или dvd-привода. Т.е. если Вы захотите что-то установить, то нужно будет ставить из внешнего DVD/CD-привода или по сети.


В комплект входит Linux SUSE 10. Несколько староватая версия Linux, но с достаточно большим количеством пакетов. К сожалению, на винчестер дистрибутив полностью не скинули, поэтому, его нужно будет скидывать с CD или DVD по локальной сети или с внешнего устройства, т.к. при настройке может затребовать доступ к дистрибутиву.


Кроме того, по умолчанию стоит разрешение монитора до 800х600. Но, в характеристики его на самом деле больше: 1024х600. Для того, чтоб работать с таким разрешением Вам придётся указать, что монитор у Вас 1024х600, а не тот, который по умолчанию - 800х600.


Linux SUSE понравилась, но нужно признать, что версия несколько старовата, не видит сразу новые устройства. Например, новые модемы PeopleNet. Поэтому, я решил заменить на Linux Ubuntu 8.10. Который установил с помощью Flash.


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

Установка Linux Ubuntu из Flash

В netbook-ах чаще всего нет привода DVD или CD. Вместо этого, предусмотрены разъёмы USB. Поэтому, если у Вас возникнет желание переустановить операционную систему, то придётся ставить Linux Ubuntu из Flash.
Как это делается, я нашел в статье по адресу: http://rus-linux.net/lib.php?name=MyLDP/install/Ubuntu8.10-on-USB.html

Выбор нового средства разработки для прикладной части Корпорации 2

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

Java - не подходит тоже. Задачи, которые ставятся иногда, не вполне подходят для java. Да и сам Java может быть не установлен на компьютерах.

Net и Mono - был под некоторым вопросом. Но, рассмотрев все за и против, я понял, что это не то, что нужно.

Оставался язык C, в частности, CPP. Но, по нему ну очень мало информации...
Но, тут я увидел QT4. И изучив материалы, понял, что это то, что нужно!
Во первых, это кросс-платформенный продукт. Во вторых есть бесплатная IDE, работающая на разных платформах. В третьих, это средство широко используется в Linux и давно положительно себя зарекомендовало. В четвёртых, прекрасно документировано и о нём много много документации и живых примеров. А в пятых, это язык c. А это значит, что если чего-то нет, можно дополнить другими библиотеками.

Полезные ссылки по библиотеке QT4:
http://www.qtsoftware.com/products - сайт разработчика QT 4.
http://www.qtsoftware.com/qt-in-use - примеры работ на QT 4.
http://www.opennet.ru/docs/RUS/qt4_intro/ - программирование в QT 4.
http://symmetrica.net/qt4/- программирование в QT 4.
http://sector.ynet.sk/qt4-tutorial/ - для начинающих.
http://doc.trolltech.com/4.0/ - большое количество примеров и описаний.
http://www.google.com.ua/search?hl=ru&q=qt4&start=10&sa=N - информация в Google о библиотеке QT4.

Борьба с автоматическим добавлением слешей в PHP

В PHP по умолчанию, автоматически добавляются слеши для экранирования символов кавычек. Как результат, может нарушиться логика работы программ, а значит, перестать работать сайты.
Для того, чтоб Ваши программы на Корпорации 2 работали предсказуемо, нужно в .htaccess прописать:
php_flag magic_quotes_gpc 0
php_flag magic_quotes_runtime 0

Полезная статья по экранированию кавычек: http://www.shram.kiev.ua/hacker/php/kavichki.shtml

Борьба с автоматическим добавлением слешей в PHP

В PHP по умолчанию, автоматически добавляются слеши для экранирования символов кавычек. Как результат, может нарушиться логика работы программ, а значит, перестать работать сайты.
Для того, чтоб Ваши программы на Корпорации 2 работали предсказуемо, нужно в .htaccess прописать:
php_flag magic_quotes_gpc 0
php_flag magic_quotes_runtime 0

Полезная статья по экранированию кавычек: http://www.shram.kiev.ua/hacker/php/kavichki.shtml

Життя після 1С та BAS: Великий огляд українського ринку ERP-систем та реальних альтернатив у 2026 році

На початку 2026 року історія з 1С та BAS в Україні остаточно перестала бути темою про звичку, інерцію чи бухгалтерський комфорт. Вона перейш...