Альтернативный Форум

— этот форум работает с 03 октября 2005 года. ️‍🔥️‍🔥
(#1)
Старый 19.10.2007
Релиз Smalta SQL v0.1b



Smalta SQL – простой и логически понятный язык запросов.
Язык создан в студии «Смальта»
Работы над языком ведутся с 29.09.2007. Первая бета версия вышла 17.10.2007.
Smalta SQL состоит из набора функций для упрощения и оптимизации программного кода Вашего сайта. Главным достоинством языка является работоспособность на хостингах без поддержки MySql.
Smalta SQL устанавливается персонально для каждого сайта, путём подключения исполняемых файлов.
Благодаря Smalta SQL можно значительно упростить и оптимизировать основные часто используемые функции и повысить работоспособность и стабильность работы сайта.

Данной руководство поможет начинающим программистам и каждому, кто желает изучить синтаксис языка Smalta SQL и сделать сайт с использованием данной технологии.

Если у Вас есть предложения по усовершенствованию языка, необходимость в определённых функциях, или же Вы нашли ошибку, Вы можете связаться с разработчиком с помощью:
E-mail: SergeyRembo@yandex.ru
ICQ: 259-158-399
JID: Rembo@jabber.mit.ru
Web: http://cms.smalta.net
http://smalta.net

Все пожелания будут учтены и соответствующие изменения и дополнения (если их возможно реализовать) будут внесении в последующие версии.



Данная тема создана для сбора критики и предложений по усовершенствованию языка.

Версия языка: 0.1b
Дата релиза: 17.10.2007
Cборка от: 19.10.2007

В сборку включено:
Операторов: 8
Дополнительно: документация

Ссылка на архив: http://af.net.ru/attachment.php?atta...1&d=1192801208

Документация и описание отдельно: http://af.net.ru/attachment.php?atta...1&d=1192801212


Вообщем жду предложений и комментариев.
..........................
smalta.net

Последний раз редактировалось ForumRoot; 20.10.2007 в 21:46.
Rembo Rembo вне форума
Программист
Rembo Первый уровень
 
Аватар для Rembo
 
Регистрация: 31.05.2006
Сообщений: 443 шт.
Карма: 2 бал.
Ответить с цитированием
(#2)
Старый 19.10.2007
Re: Релиз Smalta SQL v0.1b

Для тех кто в танке.

Есть известная БД MySQL со своей системой запросов и хранения информации. SSQL (Smalta SQL) это собственная система запросов, для работы с сайтами. Достойная альтернатива известному гиганту.

Скоро получим второй патент на разработку. Ура.
..........................
никогда не верьте этим людям
ForumRoot ForumRoot вне форума
администратор форума
ForumRoot Второй уровеньForumRoot Второй уровеньForumRoot Второй уровеньForumRoot Второй уровеньForumRoot Второй уровеньForumRoot Второй уровеньForumRoot Второй уровеньForumRoot Второй уровень
 
Аватар для ForumRoot
 
Регистрация: 03.10.2005
Сообщений: 1,030 шт.
Карма: 1086 бал.
Ответить с цитированием
(#3)
Старый 20.10.2007
Re: Релиз Smalta SQL v0.1b

Посмотрел.
Что понравилось:
- Идея сама по себе. Для небольших проектов с невысокими требованиями по скорости
вполне может подойти.

Что не понравилось:
- Реляция отсутствует как класс - впрочем оно и понятно, работаем с локальным файлом.
- Интерпретатор языка (SSQL) в интерпретаторе (PHP) - скорость страдает
- Работа с файлом в ФС вместо специализированной БД - скорость страдает

Что хотелось бы видеть:
- Простую работу с другими (сложными) форматами БД (скажем, XML-файлами)
..........................
Устал - умри!
Когда государство от тебя что-то хочет, оно называет себя Родиной.
All above is just IMHO.
DEV DEV вне форума
Присматривается
DEV Первый уровень
 
Аватар для DEV
 
Регистрация: 10.02.2007
Сообщений: 52 шт.
Карма: 10 бал.
Ответить с цитированием
(#4)
Старый 21.10.2007
Re: Релиз Smalta SQL v0.1b

Спасибо за критику, очень благодарен!
На счёт скорости, сейчас работаю в этом направлении, придумал что-то вроде хеширования, т.е долго будет грузится только при первом разе, далее результаты запросов будут браться из хеша и сохранятся туда естественно. Потребует чуть больше места на хосте, но скорость возрастёт.
Сейчас тестирую на больших файлах. На маленьких разница почти не заметна, на больших разница в 3 раза.
Т.е если первая обработка с выводом 1000 строк занимала 0.07 то сейчас первая загрузка 0.11 а последующие 0.02, что меня и радует.
На счёт xml, я не особо знаю этот язык, возможно если изучу его особенности впихну функции для работы и с ним.

на счёт
Цитата:
- Интерпретатор языка (SSQL) в интерпретаторе (PHP) - скорость страдает
Можно было бы конечно что нибудь подумать, но язык опирается на давно отлаженные и заточенные функции php, просто использует их рационально

У меня в планах до релиза 1.0 сделать ещё больше операторов, повысить скорость, расширить синтаксис (вложенные операторы). Думаю для патента хватит...дальше перевести cms ну а там посмотрим в каком направлении двину.
..........................
smalta.net
Rembo Rembo вне форума
Программист
Rembo Первый уровень
 
Аватар для Rembo
 
Регистрация: 31.05.2006
Сообщений: 443 шт.
Карма: 2 бал.
Ответить с цитированием
(#5)
Старый 22.10.2007
Re: Релиз Smalta SQL v0.1b

господа программисты!
Вы допустили одну логическую ошибку: то, что вы предлагаете - это действительно альтернатива для людей не обладающих хостингом с поддержкой СУБД. Надо сказать, что это, как правило нубы, которые не видят смысла выделить 500-600 рЭ за 6 месяцев на покупку самого обычного хостинга с поддержкой мускул. А эти самые новички не будут разбираться с вашим языком и будут вынуждены доплатить личшние 2-3 сотни за поддержку СУБД.
Но как теория - это очень полезный материал!
ulter
Гости форума
 
Сообщений: n/a шт.
Ответить с цитированием
(#6)
Старый 23.10.2007
Re: Релиз Smalta SQL v0.1b

Хорошо, теперь для всех:
Данный язык разрабатывался для Smalta CMS и был выложен в паблик для тестирования.
Если не приживётся чтож, будем пользоваться только мы.
Кто не хочет может не пользоватся. Мы никого не принуждаем и не заставляем. Нравится MySql - пожалуйста. Нам привычнее свои разаботки.

Кстати на счёт нубов не соглашусь. Начинающие программисты да и просто люди для которых это хобби не будут платить 500-600р за хостинг, т.к как таковой он им не нужен.
..........................
smalta.net
Rembo Rembo вне форума
Программист
Rembo Первый уровень
 
Аватар для Rembo
 
Регистрация: 31.05.2006
Сообщений: 443 шт.
Карма: 2 бал.
Ответить с цитированием
(#7)
Старый 23.10.2007
Re: Релиз Smalta SQL v0.1b

1. Полностью поддерживаю DEV. Проблемы со скоростью.
2. Нет поддержки визуальных средств разработки баз (пока ещё)
..........................
[URL="http://lamobot.mif33.info"]
[/URL]
Lamobot Lamobot вне форума
Обосновался
Lamobot Первый уровень
 
Аватар для Lamobot
 
Регистрация: 06.02.2006
Сообщений: 158 шт.
Карма: 0 бал.
Ответить с цитированием
(#8)
Старый 23.10.2007
Re: Релиз Smalta SQL v0.1b

В принципе проблемы со скоростью были понятны, т.к работать быстрее чем MySql язык не будет.
Суть его в другом. Как правильно заместил DEV "Для небольших проектов с невысокими требованиями по скорости вполне может подойти.", т.к изначально создавался и писался для Smalta CMS, чтобы уменьшить и оптимизировать код.
..........................
smalta.net
Rembo Rembo вне форума
Программист
Rembo Первый уровень
 
Аватар для Rembo
 
Регистрация: 31.05.2006
Сообщений: 443 шт.
Карма: 2 бал.
Ответить с цитированием
(#9)
Старый 21.01.2008
Re: Релиз Smalta SQL v0.1b

Ух, тяжелые выдались месяцы, но достигнут колосальный прогресс.
Начну попорядку:
1. После месяцы кропотливой работы по переписыванию ядер всех основных проектов, в SSQL появились некоторые полезные и очень приятные особенности, такие как кеш, расширенный и гибкий синтаксис, вложенные операторы...и....ПОДДЕРЖКА XML!!!!!!!!!!
2. До v0.9b осталось совсем не много(решил не зависать не бетах, т.к уже всё почти готово, одна бета, пару релиз контидатов, пре релиз и финалку думаю можно будет выпускать в свет): переписать основные модули и по возможности добавить ещё с десяток, обновить документацию.

Теперь по порядку о новых возможностях:
1. Кеш.
Идея вынужденная, и реализована в целях попытки уменьшения времени. Кеш можно отключить, при работе с кешем на статическом сайте время потраченное на обработку запросов уменьшается до времени загрузки данных из кеша, т.к фукнции парсинга даже не подключаются.
2. Расширенный и гибкий синтаксис
Это собственно то, над чем я сижу последние несколько дней и наконец-то почти закончил.
Несколько примеров:
Код:
"LOAD 'mobile.db' FORMAT 0#1#2:'#' AS firma#id#cost AND 'config.xml' TYPE XML ENCODING 'windows-1251'"
Собственно небольшой запросик на загрузку двух файлов, один как текстовая база, другой xml.
Первое время расширенный синтаксис может казаться не удобным, покажу как можно переделать данный запрос используя новые возможности
PHP код:
//Давайте возьмём один массив и напихаем туда всякой нужной нам информации
$info=array("file"=>"mobile",
      "file_ext"=>"db",
      "first_id_patch1"=>"FIR",
      "first_id_patch2"=>"MA",
      "encoding"=>"windows",
      "windows"=>"windows-1251"
    );
//теперь немножно переделаем запрос и подключим наш массив в 3-й необязательный аргумент:
print_r(ssql_query("LOAD {[PARAMS_ARR>>file].[PARAMS_ARR>>{file_ext}]} FORMAT 0#1#2:'#' AS (strtolower,{[PARAMS_ARR>>first_id_patch1][PARAMS_ARR>>first_id_patch2]})#id#cost AND 'config.xml' TYPE XML ENCODING [PARAMS_ARR>>[PARAMS_ARR>>encoding]]",false,$info)); 
В итоге на экране будет:
Код:
Array
(
    [0] => Array
        (
            [firma] => SonyEricsson
            [id] => Z800
            [cost] => 9840
        )

    [1] => Array
        (
            [firma] => Nokia
            [id] => N90
            [cost] => 19690
        )

    [2] => Array
        (
            [firma] => Nokia
            [id] => N80
            [cost] => 21829
        )
.....................

    [999] => Array
        (
            [firma] => Philips
            [id] => Xenium 9@9s
            [cost] => 0
        )

    [load] => Array
        (
            [template] => Array
                (
                    [0] => Array
                        (
                            [@attributes] => Array
                                (
                                    [maxCnt] => 2
                                    [useCache] => 
                                )

                        )

                    [1] => Array
                        (
                            [@attributes] => Array
                                (
                                    [explodeCnt] => 3
                                    [use] => 3
                                )

                            [@value] => 1
                        )

                )

            [flags] => Array
                (
                    [format] => Array
                        (
                            [template] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [explodeCnt] => 2
                                            [use] => 2
                                        )

                                    [@value] => flags
                                )

                            [flags] => Array
                                (
                                    [as] => Array
                                        (
                                            [@attributes] => Array
                                                (
                                                    [useCache] => 
                                                )

                                        )

                                )

                        )

                )

        )
В конце xml, но об этом чуть позже.....
3. Вложенные операторы
Собственно внутри запроса могут быть ещё запросы, например когда нужно вставить не просто элемент массива или значение, а результат какого либо действия, например объединения массивов, то это можно сделать так:
Код:
(array_merge_recursive,~!LOAD 'mobile.db' FORMAT ALL:'#' AS firma#id#cost!~,~!LOAD 'file1.xml' TYPE XML ENCODING 'windows-1251'!~)
4. Поддержка XML
Поддерживается генерация валидного кода из xml в массив и обратная, файлы выглядят следующим образов:
Код:
Исходный файл (файл полученный из массива аналогичен)
<?xml version="1.0" encoding="windows-1251" standalone="yes"?>
<units>
<load>
  <template maxCnt="2" useCache="false"/>
  <template explodeCnt="3" use="3">true</template>
  <flags>
  	<format>
		<template explodeCnt="2" use="2">flags</template>
		<flags>
			<as useCache="false"/>
		</flags>
	</format>
  </flags>
 </load>
</units>

Получившейся массив:
[load] => Array
        (
            [template] => Array
                (
                    [0] => Array
                        (
                            [@attributes] => Array
                                (
                                    [maxCnt] => 2
                                    [useCache] => 
                                )

                        )

                    [1] => Array
                        (
                            [@attributes] => Array
                                (
                                    [explodeCnt] => 3
                                    [use] => 3
                                )

                            [@value] => 1
                        )

                )

            [flags] => Array
                (
                    [format] => Array
                        (
                            [template] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [explodeCnt] => 2
                                            [use] => 2
                                        )

                                    [@value] => flags
                                )

                            [flags] => Array
                                (
                                    [as] => Array
                                        (
                                            [@attributes] => Array
                                                (
                                                    [useCache] => 
                                                )

                                        )

                                )

                        )

                )

        )
Стоит заметить что для удобства слова true,false,null заменяюццо на соответствующие константы.
Далее с таким массивом можно работать с использованием обычных SSQL функций.

Собственно пока всё что хотел сказать....остальное увидите в следующей бете...Планирую до 4-го февраля, но как получится, не обещаю.
..........................
smalta.net
Rembo Rembo вне форума
Программист
Rembo Первый уровень
 
Аватар для Rembo
 
Регистрация: 31.05.2006
Сообщений: 443 шт.
Карма: 2 бал.
Ответить с цитированием
(#10)
Старый 15.02.2008
Re: Релиз Smalta SQL v0.1b

Сообщаю результат на сегодняшний день:
Собственно все модули переписаны, дописаны 5 новых, осталось дело за документацией, до чего из за учёбы не доходят руки....и появилась небольшая проблемка, это время...из за расширенного синтаксиса оно значительно увеличилось на маленьких файлах, т.е время обраотки xml файла в 1000 строками примерно равно времени с 10 строками.

Представляю Вашему внимаю запрос, которые загружает все необходимые файлы и параметры движка smalta cms
Код:
LOAD '".SM_MODULES_DIR."/modules".SM_BASE_EXT."' TYPE XML ENCODING 'windows-1251',
	WHERE [VALUES>>@attributes>>enabled]==true,
	ARRAY KEY AS ARRAY KEYSTPL 	
								'paths>>config'#
								'paths>>opts'#
								'paths>>unit'#
								'paths>>lang'#
								'paths>>tpls_cfg'
					 VALUESTPL 
					 			{".SM_MODULES_DIR."/KEY/configs/config.xml}#
								{".SM_MODULES_DIR."/KEY/configs/opts.xml}#
								{".SM_MODULES_DIR."/KEY/configs/unit.xml}#
								{".SM_SKINS_DIR."/".SM_DEFAULT_SKIN."/languages/".SM_DEFAULT_LANG."/KEY.xml}#
								{".SM_SKINS_DIR."/".SM_DEFAULT_SKIN."/templates/configs/KEY.xml},
	EXEC CYCLE (implode,'\'&\'',[VALUES>>paths]) RETURN TYPE,
	EXEC CYCLE 	~!
					LOAD `\'[VALUES]\'` TYPE XML ENCODING 'windows-1251'
				!~ RETURN TYPE,
	EXEC CYCLE 	~!
					SET {params_arr>>params_list} MERGE ~!
															GET `\'[KEYS]>>tpls_cfg\'`,
															WHERE [VALUES>>@attributes>>static]==true,
															ARRAY 'static' AS ARRAY KEYSTPL '[VALUES>>@attributes>>action]>>[VALUES>>@attributes>>type]>>KEY' VALUESTPL {VALUE}
														!~
				!~ RETURN VOID,
	FORMAT tpls_cfg#opts AS 	~!
									GET \'[KEYS]>>tpls_cfg\',
									WHERE [VALUES>>@attributes>>static]!=true
								!~#
								~!
									GET \'[KEYS]>>lang\',WHERE [VALUES>>@attributes>>view]!=false
								!~ 
		AND 0 KEY functions 
		AND functions AS '".SM_MODULES_DIR."/KEY/functions/main/functions".SM_SCRIPT_EXT."',
	EXEC CYCLE ~!
					WHERE (file_exists,[VALUES>>functions])==true,
					EXEC (include,[VALUES>>functions]) RETURN VOID
				!~ RETURN VOID 
		AND CYCLE ~!
					GET \'[KEYS]>>opts\',
					EXEC (define,'SM_ST_(strtoupper,[KEYS])',[VALUES>>@value]) RETURN VOID
				!~ RETURN VOID
..........................
smalta.net
Rembo Rembo вне форума
Программист
Rembo Первый уровень
 
Аватар для Rembo
 
Регистрация: 31.05.2006
Сообщений: 443 шт.
Карма: 2 бал.
Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Joomla 1.5.12 [Wojmamni Ama Woi] - релиз безопасности. BlackCherry Мусорное ведро 0 11.10.2009 08:32
Joomla 1.5.11 [Vea] - релиз безопасности. BlackCherry Мусорное ведро 0 11.10.2009 08:32
Смоки Мо - новый релиз Paramore Файлообменник 15 23.02.2008 12:18

Powered by vBulletin® Version 3.8.11 PL4;
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd;
Оператор обработки ПДн - ИП Алексеев А.С.;
ИНН: 333411310227; ОГРН: 307333419200050;
тел. +7 (4922) 49-42-22, legal@smalta.net;
Часовой пояс GMT +3, время: 02:25.
Любые сообщения на Альтернативном Форуме — являются субъективным отражением реальности, написавших их авторов и публикуются без предварительной модерации. Администрация форума не принимает на себя ответственность за содержание таких материалов. В рамках функционирования форума осуществляется хранение ограниченного набора данных: имя пользователя, адрес электронной почты, IP-адрес (в момент входа) и cookie для поддержки сессии. Метаданные пользователей обрабатываются и направляются в уполномоченные органы только при наличии официального запроса в порядке, установленном законодательством РФ. В случае выявления противоправного контента, пожалуйста, направляйте уведомление через кнопку «Жалоба» или форму обратной связи.
ИКС