Я создал эту тему, для тех, кто может и, желательно, любит программировать. Неважно, на чём, не важно что - лишь бы было желание.
Сам пишу програмки на Ассемблере, Вижл Бейсик, немного на Делфи. Не чужд серверным скриптам.
Есть куча программко-недоделок. Имеется микро-ось. В ближайшее время думаю её продолжить.
Мля, Фантом, уважуха! Программер - это тру! Я тока на Паскале и немного C умею, ну там html, и Бейсик конечно. Мечтаю Ассемблер выучить, да чот никак не возьмусь...
Си - это руль! Весь Юних на Си стоит.
Паскаль, поскольку не детище мастдая - тоже уважаю.
Как-никак Вынь 3.11 именно на нём написан!!!
Более того, одна австралийская фирмочка в инете выложила ось на Паскале.
Видевшие, говаривают, заметно тормозит, но не виснет.
Бейсик фриварный имею, сам себя компилит.
Хоть и Бейсик, а это уже круто!
Ассемблер, это конечно, сила.
Или сразу мощь почувствовал, или слаб. Сам в плане асма - не ас, но динамически ДЛЛ подключить и кусок памяти у жирной винды оттяпать - смогу запросто.
Эффект по скорости примерно в 1,5 раза С++ превосходит.
В объёме кода - раз в 20. Любо-дорого посмотреть.
Хотя, асм - для больших проектов - дорог.
Соотношение затрат Ассемблер-Бейсик как 30 к 1.
Смотрю на весь форум, аж на тащусь.
Каждый раз страница весом кило в 150 перекачивается.
В связи стем, что я из-под МегаФона выхожу - накладно, знаете ли.
Появилась у меня мысля - может клиент для форума сделать?
Один раз пост закачался, и если изменений не было - этот пост больше не качается. Опять же, авторизацию можно сделать автоматическую. Мессаджы перед персылкой туда-сюда можно упаковывать в zip-архив. Трафик на сервере сократится раз в 3...6 думаю. А скорость возрастёт раза в 2,5.
Какие будут предложения, товарищи модераторы/сисопы?
Я началу я обомлел, когда в зоне .com - увидел форум Черняховска.
Потом увидел приписку - GZIP включен. Во, думаю! Продвинутые челы.
А дальше пошли минусы на минусе.
> Сделано триал-версией.
Вот ведь безобразие какое! А когда срок триала истечёт чёго модер делать будет? Опять к новому хостеру в ноги падать?
По поводу упаковки тоже весьма сомнения меня берут.
Страница ответа по счётчику - 50 314 байт.
По ощущению - именно столько оно и грузилось.
А в теле страницы вот эта гадость висит:
>/*
>* Cascading Style Sheet(CSS 467), for Invision Power Board 2.0.0
>* Author: James A. Mathias, admin@leihu.com, http://www.1lotus.com
>* Copyright: 2004 Invision Power Services, all rights reserved
>*
>* All style attributes in alpha-numeric order starting from 0
>*
>* Red Style by Chris "priestx" Wallace, http://twol-gamers.org
>*/
Далее по тексту куча подобных комментов.
И что самое, на мой взгляд неверное - скрипт содержится в странице на стороне клиента.
Ну зачем светить внутренности сервера перед неумным, но предприимчивым юзверем?
Почему бы уж тогда админам и сисопам свои имена не прописать? ))
И свои скриптовые вставки на языке тумба-ямба не делать? ))
> Ды йопт! Я слышал, что во многих программах и играх самые узкие места,
> жружие много памяти и процессорного времени, на асме пишут.
Вспомнию молодость бесшабашную. ZX-Spectrum - мечта идиота!
Каково было моё удивление, когда прога в бинарнике выполнялось в 58 раз быстрее, чем аналогичная на встроенном Бейсике!!!
> А ты сможешь? Такой, чтобы по типу фидошных программ было, типа Fips или
> чего-нибудь такого (но не по интерфейсу, а по принципам работы!!!):
C трудом могу предположить что такое Фипсь, но сделать могу многое.
> включил клиент, он связался с сервером, закачал обновлённые/изменённые
> посты, картинки (и чтобы была опция их выключить)
Как бы к этому и клоню!
> отключился, ты в оффлайне всё прочитал, ответил, снова включил инет и
> мессаг сами на форум запостились. Хотя тут проблема модерирования
> встанет...
Да нормальные люди так и делают. )))
Проблема модерирования надумана - консоль модера в клиент встроить без проблем можно. По паролю и откроется. ))
> А на форуме она и так автоматическая, тока при авторизации в первый раз надо
>указать "запомнить меня", и фсё буит круто.
Типа, тперь уже прошарил, но если кукисы удалятся, тогда как быть?
Или винду перставить?
>Дык их вроде и так GnuZIP'ом пакует кажись. Хотя всё равно очень толстый
> траффик получается, не знаю почему.
Ни хрена он не упаковывается!
Винда не понимает GZIP!
Если хостинг не Юниксовый, тогда очень даже можно поробовать.
Если нет - придётся согласовывать запросы и ответы.
Потребуется помощь перловщика на стороне сервера.
> Так возьмёшься клиент написать? Было бы здорово!
Прям такой энтузиазм.
У меня пока очень много вопросов по серверу.
А писать вполне возмусь. Пора Черняховск поднимать с жопы на ноги. ))
> Можешь проверить: нажми на главной странице "очистить кукисы", потом
> залогинься - всё будет ОК.
Кто бы сомневался. Но всё роавно - мелкое неудобство.
> Твою мать! А что же делать?
Г-ЗИПу линуксоиды придумали. Вполне возможно, как протокол эти самые линуксоиды и реализовали под винду. А может и не дошли руки. В инете примочку искать нада.
> Блин,я тож! И грузится форум о-о-чень долго >:(,приходится Оперой
> ходить! А она траффик жрёт Однозначно накладно.
Я Оперой уже года 2 гуляю.
Как раз Опера - самый реактивный браузер из испытанных: Ослик, Опера, Мозилла, Файрфокс, Конкуэрор.
И как траффик?Ты её специально настраиваешь?
2Fantom:Thank's
Отмечаюсь тута.
НВ связи с тем, шо на пхоруме щас редко особо на мя не рассчитывайте, но... ))
В обсчем Си (Вижуал),Паскаль, Бэйс, ПХП+Мускул, ХТМЛ и всякого другого по мелочи ))
Короче, с целевой платформой, можно сказать определились. Си, Паскаль, Барсик. И почему я не удивлён?
Что касается сервера http://www.chernyahovsk.com/ - траффик идёт вообще по дурному. От меня - мобила - северо-западный GSM - Питер - Стокгольм - Лондон - Россия.
В общей сложности - 16 серверов!!!
Апач-сервер 1.3 на сервере Агава.ру. Юникс.ПХП - 4.3.9 (дырявый сильно). ФронтПейдж(!!!!) 5.02. Среднее время запроса - 900 миллисекунд.
Вот такой расклад. Кто возьмётся сервер поковырять?
После переезда форума, имхо, он стал ещё более тормознутый. %)))
По всему видать, переконвертация базы прошла с внедрением дополнительных таблиц. %)))
Ей Богу, аж на страшно....
> Да не было там никаких доп таблиц Ладно, коменты повырезал все
> лишние, но особого прироста не видно
Вторая фаза ускорения - это заменить следующие вещи:
** }
**
** .activeuserposting a:link,
** .activeuserposting a:visited,
** .activeuserposting a:active,
** .activeuserposting
** {
Почему бы альясы не изобразить вот так:
{
.apsp a:link
.apsp A:vstd
}
Сокращение траффика, думаю, процентов 10 будет
Что касается, таблиц - конечно они там не возьмутся. ))
> Вопрос - как злопыхатель это отредактирует?
Как, как? В блокноте. )))
>И еще - как примерно эта самая sql инъекция работает? Я читал, что при ее
>помощи из базы достаются хэши всех паролей, и как следствие можно
>попасть
>в админку форума без особых проблем, а там уже накуролесить.
SQL-инъекция работает на базах данных на движке MySQL. Главная ошибка заключается в том, что есть глюк в обработке SQL-запросов, например непарный символ ' . В резудьтате ответная реакция сервера попросту говоря неадекватная. Можно запрос сформировать таким образом, что все таблицы вывалятся наружу. Подобрать из списка таблиц - таблицу паролей админов - плёвое дело.
Сейчас этот текст будет передан методом POST или GET. (не прямой SQL-запрос). Но судя по полям, которые передаются - это именно так.
Открываем в блокноте исходный текст страницы, правим парочку функций, на предмет недопустимого параметра (вплоть до непечатных символов), вводим один несуществующий элемент, ну и матюка можно добавить - для крысоты. Считай - сервак завален. ))
> Не я этот форум писал, это разработчики так захотели. Да и стили у
> нас только для скинов сделаны, так редактировать и создавать новые
> гораздо удобнее, нежели тоже самое лопатить в каждом пхппшнике
> который надо раскрасить.
Опять подход неверный. Тема, графика, типовые компоненты, типа того окна ввода, которого я пишу сейчас этот ответ - всё должно быть сделано в форме инклудов. Я не спец по ПХП, но на 110% уверен - ПХП поддерживает инклуды.
Такой инклуд скачивается один раз, и не не в форме запроса - forum/index.php?act=Post&CODE=02&f=11&t=402, так браузер никогда не будет знать, что большая часть информации будет закачиваться заново, а в виде повторного включения. Если будет знать - качать второй раз не будет.
Собственно каскадный стиль - так и задумывался. Описывается отдельно - используется везде.
> Логично
А теперь прикинь, сколько траффика можно сохранить если оставлять на сервере вот это:
<script type="text/javascript">
<!--
var ipb_var_st = "0";
var ipb_lang_tpl_q1 = "Введите номер страницы, на которую желаете перейти";
var ipb_var_s = "";
var ipb_var_phpext = "php";
var ipb_var_base_url = "http://www.chernyahovsk.com/forum/index.php?";
var ipb_input_f = "11";
var ipb_input_t = "402";
var ipb_input_p = "";
var ipb_var_cookieid = "";
var ipb_var_cookie_domain = "";
var ipb_var_cookie_path = "/";
//-->
</script>
Кстати здесь глюк - после тега <!-- идёт скрипт который должен выполняться на сервере!!!!
<script type="text/javascript">
<!--
var MessageMax = "";
var Override = "";
var dontpassgo = 0;
MessageMax = parseInt(MessageMax);
if ( MessageMax < 0 ){
MessageMax = 0;
}
function emo_pop(){
window.open("index.php?act=legends&CODE=emoticons&s=","Legends","width=250,height=500,resizable=yes,scrollbars=yes");
}
function bbc_pop(){
window.open("index.php?act=legends&CODE=bbcode&s=","Legends","width=700,height=500,resizable=yes,scrollbars=yes");
}
function attach_pop(url){
window.open("http://www.chernyahovsk.com/forum/index.php?s=&act=Post&CODE=20&"+url,"Attachments","width=500,height=400,resizable=yes,scrollbars=yes");
}
function CheckLength(){
MessageLength = document.REPLIER.Post.value.length;
message = "";
if (MessageMax > 0){
message = "Сообщение: Максимально допустимая длина " + MessageMax + " символов.";
}
else{
message = "";
}
alert(message + " Вами использовано " + MessageLength + " символов.");
}
function ValidateForm(isMsg){
MessageLength = document.REPLIER.Post.value.length;
errors = "";
// Check for remove attachments
if ( document.REPLIER.removeattachid.value > 0 ){
okdelete = confirm("Вы действительно хотите удалить этот файл?");
if ( okdelete == true ){
return true;
}
else{
document.REPLIER.removeattachid.value = 0;
return false;
}
}
if (isMsg == 1){
if (document.REPLIER.msg_title.value.length < 2){
errors = "Необходимо ввести заголовок письма";
}
}
if (MessageLength < 2){
errors = "Вы должны ввести текст сообщения!";
}
if (MessageMax !=0){
if (MessageLength > MessageMax){
errors = "Максимально допустимая длина " + MessageMax + " символов. Текущие символы: " + MessageLength;
}
}
if (errors != "" && Override == ""){
alert(errors);
return false;
}
else{
document.REPLIER.submit.disabled = true;
return true;
}
}
function removeattach(id){
if ( id != "" ){
var Override = 1;
document.REPLIER.removeattachid.value = id;
}
}
// IBC Code stuff
var text_enter_url = "Введите полный URL ссылки";
var text_enter_url_name = "Введите название сайта";
var text_enter_image = "Введите полный URL изображения";
var text_enter_email = "Введите e-mail адрес";
var text_enter_flash = "Введите полный URL для Flash.";
var text_code = "Использование:
> Вопрос - а куда это все вставлять нужно? Как я понял, это вставляется в
> один из форумных шаблонов, но в какой именно?
Немного лирики.
1. Всего загрузилось файлов с этой страницей целиком - 183 кило.
2. Графика - 93 кило.
3. index.htm - 68 кило(!!!)
4. Скрипты - 21 кило(!!!)
Графика, допустим, у меня в Опере один раз скачалась и стоп-машина на неделю.
Фиг с ей.
Index.htm - ну это жирный зверь!!!! Через хтмл+фреймы - всё тоже самое можно сделать в кило 15 максимум!!!
А уж скрипты..... Они должны на сервере оставаться.
Теперь оптичках.
Я не силён по *никсам.
Я тебе по мастдаевски раскажу, а принцип - непонятно кто у кого содрал.
В странице, которая отправляет данные на сервак, из активного содержимого, теоретически, должно быть только вот это:
[форма, которая отправляет данные - штатное средство для всего Веба]
<form action="forum/index.php" method="post>
...... много всяких элементов, например.....
<input type=text name="password" value="">
<input type=submit name="SendData" value="Отправить пароль">
..... далее форма закрывается.....
</form>
И НИКАКОГО КОДА НА СТОРОНЕ КЛИЕНТА!!!!
Скрипт, на нормальном сервере занимает может 0,01% выделенного 1 кванта машинного времени из 1000.
Т.е. вставок такого типа:
<script language="Phyton">
.........
</script>
быть не должно.
Например в Бейсике, кроме того, возможно такая бодяга:
<script language="VBScript" Runat="Server">
Команда RUNAT предписывает скрипту выполняться на сервере, а не у клиента.
В этом смысле, Ява отдыхает.
Но не решает проблему - скриытие кода, и передача данных.
Я там уже выше указал, что код есть, который предназначен вообще для сервера, но непонятно почему - передаётся коленту. Полезность его, разумеется - ноль.
А проблема решается следующим образом.
Используются скрипты с указателем на то, что это серверный сценарий:
<!-#INCLUDE FILE="ScriptCheker"->
Приведённый синтаксис для Вжик Скрипт Басик.
Для ПХП может отличаться.
Т. е. все проверки так можно проводить на сервере. Пересылаются только данные.
Если приспособить фреймы - можно динамически данные дописывать, а не гонять за ново. Даже так CGI можно заметно сократить. Ну а exe-клиент - это вообще мило будет.
Но потребуется поддержка со стороны сервера.
> Если хочешь, могу тебе просто пароли дать необходимые, сам посмотришь
> rolleyes: Я сам в этом разбираюсь только поверхностно, а чтобы понять
> надо время...
Поверь мне на слово - сам яв этом тоже не сильно разбираюсь. И мне тоже нужно время. А его нет.
На счёт пароли, пока не надо, всё равно я очень занят, и заниматься прям сейчас не буду. Вот в отпуск пойду, тогда поковыряюсь.
Я в принципе понял, что ты хотел сказать, и задумка конечно отличная, но моих познаний в пхп явно недостаточно, чтобы такие штуки делать. А если траффик жалко - в самом низу форума есть ссылочка "УПРОЩЕННАЯ ВЕРСИЯ", там все не такое красиво - но экономия траффика вдвое идет, а то и больше. Самым жирным ее недостатком является то, что в ней нет формы ответа. Т.е. почитать можно, но ответить никак. Да и картинок нету.
Через 10 минут:
зы Нашёлся мод Спасибо за напоминание! Теперь из упрощенной версии можно сообщения оставлять, а также логинится и выходить с форума.
Всего - 79 килобайт.
Графика - 18 кило.
Каскадные стили - 3 кило.
Индекс.хтм - 60 кило.
----------
Да. Это уже лучше.
Вообще, если двигло у форума не студенты первокурсники писали - названия модулей и папок должны быть в венгерской нотации - "говорящей".
Да и дока, тоже должна быть. Если не в рпм, то на сайте кодеров - точно.
Перечитываю тут Кернигана и Ричи. В 1 главе пример по подсчёту слов, букв и строк в набираемом тексте. Прмер ОЧЕНЬ красивый. На Бейсике, где-то похожее можно сделать, но нет той законченности и красивости , как в С. Паскаль тоже такие вещи позволяет делать. Но. Слова, типа begin и end меня раздражают. Куда логичнее выделять группу операторов как в С - {....}. Коротко и понятно. Ещё одно маленькое неожидонное открытие, которое я сделал. Оказывается, по умолчания GNU C++ генерит 16-битный код!!! Видимо, есть специальная деректива в пакете DJGPP для включения 32-битного кода. Хотя, где-то я читал, для этого специально заточен пакет MinGW. Тоже на базе GNU C++.
Не перестаю удивляться убогости кода в Винде.
На С++ мессадж_бокс занимает 69 килобайт!!!
На масме - 1600 байь.
Честное слово, я даже не представляю ЧЕГО туда можно напихать, чтобы так раздуть код.
Всё больше склоняюсь к той мысли, что если всё сделать поч еловечески ось, типа винды влезет в 60...70 метров.
А ещё больше удивлюяюсь, как Менует влазит на флопарь, да ещё 400 кило свободных остаются. Ось может быть http-сервером, есть кулькулятор, тетрис, шахматы, irc-чат, компилятор(!!!), скины\шкурки, браузер слаб - но тоже есть.
Мона музычку послушать, а мона и трёхмерную заставку запустить.
вот не поверю после этого, что виндовозы и интеловцы не имеют секретного соглашения по сдиранию бабок с юзверей. ))))
От вопроса Осей к вопросу собсна программирования.
У меня в августе будет более-менее достаточно свободного времени.
Я вот что подумал...
В самом начале была упомянута идея написания клиента для форума.
И идея мне эта понравилась. Я даже несколько удивлен что на нее мало кто обратил внимание.
Так вот...
Предлагаю взятся за написание клиента для форума.
Это полюбому расширит возможности пользователя потому что закачав все лишь раз потом будут докачиваться только новые посты и не нужно будет по 200 раз закачивать уже прочитанные.
Кроме всего остального - просмотр сообщений в оффлайне, что в браузере осуществить, согласитесь, довольно напряжно.
Если кому понравилась моя идея пишите сюда, в ПМ, на мыло jmikle@mail.ru или оставляйте мессаги в аське: 9693934
Из всего этого чаще всего проверяется естесна е-майл.
То, чего я не знаю и что, скорее всего потребуется: Вижуал Бэйсик и Дельфи
Знаю относительно хорошо ПХП+Мускул, немного Си. Остальное вряд ли потребуется
Спасибо за внимание.
Знать ПХП достаточно.
Я вполне знаю Вижл Бейсик - прост, туп и быстр.
Письмо на мыло - я тебе отправил. Вопрос остался только в типе сервера.
Впрочем, ПХП по барабану - он и в Африке ПХП.
Такжне есть чисто организационный вопрос - а позволит ли админ сервака исполняемые скрипты ваять?.
Вот и добрался в Кернигане и Ричи до шаманства. )))
Язык Си мощный, но этого недостаточно.
Вот пример такого шаманства:
> A[I] = I++;
Ну вот непонятно совершенно, то будет на выходе. Всё зависит от компилятора.
Нифига себе переносимость!!!!
Далее по тексту идут примеры того, как можно сократить код.
И это из оперы, когда благими намерениями дорога вымощена в ад. ))
Всё таки я предпочитаю - один оператор - одна строка. Максимум смысла и комментариев, в ущерб краткости.
В этом плане - ассемблер вряд ли что заменит. ))
Скажу я.
Так как я существо ленивое и буду заниматься (как я понял) как раз запросами на форум (то есть самым геморроем), то мне нужны сорцы пхорума - раз, пиво и сардельки - два.
Второго чем больше тем лучше
И не забывайте что нужно для начала стрелкануццо в Черняховске.
Вернее это было бы неплохо.
Начало августа, я, ты и Фантом, может быть Шнапс с Фростом, может ещё кто. Обсудим. ДАЙ НОМЕР МОБИЛЫ!!! В РМ!
Моб. будет тока на след. неделе.
Фигасе вы тут умные... Тогда к вам вопрос... По сайту как таковому, а не только форуму... Как на серваке настроить прелоад всей страницы, дабы она частями не грузилась... Просто не очень хочется "трахаться" с каждой отдельной страницей...
[Brutall]
> О! Всё-таки решили взяться за это в высшей степени полезное дело? ОК!
Да я вроде как и не отказывался.
> Фантом, что требуется от меня как от Админа? Или мож тебе права
> админские нужны, чтобы тут поковырять всё, или так обойдёшься?
Мне права не нужны - АйсМан подвязался на стороне сервера шкодить. Вот ему и давай.
[ICEMan]
> Скажу я.
> Так как я существо ленивое и буду заниматься (как я понял) как раз
> запросами на форум (то есть самым геморроем),...
Да ладно тебе цену набивать. Самый гемморой, в дырявой Винде клиенту состряпать База данных на серваке уже есть. И запросы к ней в сорцах посмотреть можно. А мне придётся базу с нуля косячить. ))
> то мне нужны сорцы пхорума - раз, пиво и сардельки - два.
> Второго чем больше тем лучше
СОРЦЫ, я думаю, БрутАлл тебе подгонит, сардельки/пиво - сам ищи. :Ь
[Brutall]
> Начало августа, я, ты и Фантом, может быть Шнапс с Фростом, может ещё
> кто. Обсудим. ДАЙ НОМЕР МОБИЛЫ!!! В РМ!
Встречаться в реале это не возбраняется, но сила программерского дзена уже будет не та. ))
Я честный человек, скрывать мне нечего: 8-911-488-69-77
[Moonwalker]
> Фигасе вы тут умные... Тогда к вам вопрос... По сайту как таковому, а не
> только форуму... Как на серваке настроить прелоад всей страницы, дабы
> она частями не грузилась... Просто не очень хочется "трахаться" с каждой
> отдельной страницей...
Вставляешь код на стороне клиента - грузить это, это и это, пока юзверь рассматривает голых тёток на первой странице. А потом ,при нажатии на кнопку - страница не грузиться будет, а подниматься с диска юзверя. Юзверь в ауте. ))
Спасибо за умный ответ ))) И вообще, проверь личку!!!
Сейчас загляну. Не успел свои ошибки исправить - уже кто-то прочитал. Во млин, дожился!
А мне сорцы не нада.
Мне проще самому и сервак, и клиент нарисовать. ))
Обсудить по любому нада.
Протоколы входа, обмена, обновления данных/клиента, закачка файлов/изображений, ворд-фильтр, штрафы, списки, авто-контроль...
Разднлов куча. Придётся ВСЁ согласовывать и документировать.
Для почину вкладываю нулевой билд клиента форума.
))
Какие-то простые вещи начну делать сам. Типа, ввода пароля при запуске клиента.
Шустро вы... может меня подождете? )))
Шнапс в Чернихе
Скоро подтянется весь народ
Тогда все и обсудим
Жду полного собрания банды в августе
А фигли ждать?
Кнопочки рюшечки и так нарисовать можно. Совместная работа - это только протокол.
3 билд клиента. Мультидокументный!
А у меня нихрена не работае. Тока история открывается, и всё. Ни одной конопочки и менюшки нет. Как там чо работает-то, а?
Так я ж написал - билд НУЛЕВОЙ!!!!
Чего там может БЫТЬ????
Впрочем, вот 4 билд. Тама уже кой-чего имеется. ))
Уже что-то. А что такое "монитор событий"?
Монитор событий - это типа админское средство, для отлова глюка в программе, или шкодства юзверя. %)
Кто-нить захочит повредничать, а админ - бац! - и команду на четние логов пользователя. или у юзверя просто баг - логи полезно почитать чтобы выяснить, что за глюк прога поймала.
Потому как, юзверь зачастую сам объяснить что произошло не в состоянии. %)))
Прикладваю 5 билд.
Пока неплохо. А command 1 и т.д. - это что будет?
Все эти "комманды" будут кнопки видимых форм. Если они не будут умещаться - будет работать "кнопочная" прокрутка влево и в право.
6 билд традиционно прилагается.
А что ещё за данные пользователя? Куда эта инфа вообще идёт? И зачем?
Инфа о себе заполняется самим юзверем. А выбрав из списка нужного - можно загрузить инфу о выбранном юзвере.
Кроме того, сейчас буду встраивать браузер на движке от ослика. Простенький. Но приятный.
Значит мое присутствие здесь не требуется. =/ Ну что ж... Мне по барабану.
Только я не понимаю зачем выкладывать первые билды? Они все равно не рабочие.
Достаточнопросто написать, мол "добавлено то-то и то-то". А вот когда прога бкдет более-менее стабильно работать, можо выкладывать все подряд.
Есть категория людей, которым надо. %)
Впрочем, скоро клиент вырастет до таких размеров, что только держись.
Думаю, а чего народ как-то приутих?
Что, никто протокол обмена обсуждать не собирается? :0
До августа ещё пилить и пилить.
Процесс тормозить не нада.
Ох и поноварочано в Си.
Как буд-то нарочно. В асм всё пнросто.
И даже разделение на функции и процедуры условно - всё зависит от возвращаемых значений. ))
Да зачем физическое присутствие? А договориться о командах не судьба???
#000 - запрос клиента
$000 - подтверждение запроса сервера и т. п. Для ЭТОГО физическое присутствие нужно????
Мля, ну давайте тада с Айсом, работайте. Айс, за исходниками к Шнапсу обращайся.
Ну что? Сходняк прошёл нормуль.
Теперь о птичках.
Порт админ открыл для изуверств?
Макс, я на выходных к тебе зарулю, обсудим.
Насчет порта, чувствую, даже не спрашивали еще )))
Зашибись ребятки.
Если так с америкосами в третьей мировой бороться будем - дооолгооо придётся супостатов побеждать. )))
А инет у меня тупил очень долго - видать порт инфракрасный подыхает.
Ура!
Качаю MinGWStudioFullInstall! (GNU MinGW C++ for Windows and IDE)
Даёшь бесплатный софт во всём мире!!!
---Придётся мне новый топик разруливать!!!!!---
На просторах интернета обитает такой зверь - Python [Питон] 2.4.1
Написал его Гуидо ван Россум - по всему видать - не слабый череп.
Язык полностью GPL. Существуют порты под Win, Linux, Unix, Solaris, Mac OS, идёт работа над портом под QNX.
Кое какие технические подробности:
1. Интерпретатор. Но не совсем. Исходный текст динамически компилируется в байт-код, что даёт ускорение примерно в 10...12 раз. Скомпилированный файл байт-кода сохраняется и видо-изменяется при изменении исходного файла.
2. Имеет библиотеки графического интерфейса!!!!! Модуль Tk\Tcl - родной для Линуха.
3. Имеет поддержку звука/видео/графики - стандартный модуль.
4. Поддерживает МУЛЬТИТРЕЙДИНГ(!!!!!!). В РЕЖИМЕ ИНТЕРПРЕТАТОРА!!!! Это просто праздник какой-то!!! Вижл Бейсик - такого не могёт. (а то, что можно сделать, по сути, потоком не является, т. е. не может часть программы выполняться на другом процессоре системы).
5. Встроенная поддержка http/CGI. Это на Бейсике можно сделать, но ГЕЕММООРРОЙЙ!!!.... А здесь бери, и валяй скрипты. Более того, на Питоне сделан ввв-сервер "Зопи" (Zope). Не полностью GPL, но для коммерческого использования - бесплатен полностью. Может работать сам, а может и из-под Апача. Ни в чём ему не уступает.
6. Встроенна поддержка e-mail. Спам-робота на Питоне написать - что два пальца об асфальт!...
7. Встроенная поддержка работы с базами данных - Oracle, MySQL, Samba.
8. Встроенная поддержка XML - кто знает тот поймёт. %)
9. Поддержка классов. Должен заметить - своеобразная, но наследование и полиморфизм - рулит.
10. КУЧА сторонних модулей для расширения языка.
Привожу код для создания окна на Питоне:
------------------------
# -*- coding: utf-8 -*-
import sys
from Tkinter import *
def btnCl(event):
sys.exit(0)
root=Tk(className="Проверка")
btn=Button(root)
btn["text"]="123"
btn["command"]=btnCl
btn.pack(ipadx=100,ipady=100)
root.mainloop()
----------------------
И ЭТО - ВСЁ!!!!!!!
Размер файла - 253 байта!!!!
На ассемблере - минимум 3500 байт!!!
И на закуску, как я уже ранее отмечал, Маст-Дай - не поддерживает gzip. Так вот, Питон ЗНАЕТ как работать с zip, gzip, 7zip. Написать на Питоне архиватор - это даже не два пальца об асфальт!!!!
Короче, активно изучаю Питон, и пишу интерфейс.
Давай...
А я пока с серверной частью разбираюсь...
Хреново как-то получается, надо сказать, но кое-какие наработки уже есть.
Позже расскажу, ща времени нет
Алё алё, Фантом, какой порт просить и как мне так поподробнее объяснить зачем он нужен?
АйсМану привет.
Творческих узбеков. ))
Мне тоже в Питоне не совсем ясно, как например обозначить статические члены в классе, хотя по извратному статические члены реализовать можно.
По поводу порта.
Прову нужно вежливо впарить, что нужен выделенный порт под специализированный клиент под форум. Ответная часть(серверная) будет в виде скриптов отдельно от форума. И работать будет по TCP\IP. Протокол стандартный - файрволлы его любят, поэтому проблем не будет. Также объясни, что данные будут качатся в протоколе PCF\IP - protocol chernychovsk forum over IP - то бишь собственный проткол команд и ответов. А это, как Samba анализировать - вуй его знает что за данные такие - подобраться будет сложно. Намекни, что если надо, даже шифрование применяться будет с завязкой на логин форума, время начала сеанса, и IP машины - пробиться будет ОЧЕНЬ сложно. Разве что, скачать исходный код. А я его кому попало - не дам. ))
Что касается номера порта - то любой. Желательно непревилигоравнный, с адресом старше 45000. Пока сканер портов до него доберётся (особенно по модему) - много времени пройдёт. Если не жалко - пусть портов 40...60 даёт. 5 портов сразу как стандартные порты сервера пойдут (1 для тестирования системы), ещё 15 - будут открываться закрываться в зависимости от расписания - на его основе тоже будет генериться ключ к дешифрации (время&номер порта), остальные - 25...45 - юзверьские. Больше вряд ли людей на форуме будет. Вплоть до того, что на вход файрволла по портам может пароли вешать - для надёжности. Дави на безопасность и профессионализм разработчиков PCF. %)))
Написал хостеру, ждемс ответа.
Причем с нетерпением.
А теперь о том, как реализовать это все на ПХП...
COF/IP звучит конечно ооочень гордо, но я слабо представляю себе картину шифрования передаваемых данных... ну и хрен с ней с ней
Теперь о нашей баранине...
Не смог я по дампу (Шнапс, сноси его к чертовой матери.... он там больше не нужен) восстановить базу. Но я буду стараться
Предлагаю начать с аутентификации пользователей.
Это самое простое и, по сути, самое начало.
Вот...
Пока все... разбираюсь с базами.
Фантом, хостеры сказали, что у них порты открыты и типа мы можем все сделать самостоятельно
Хм... А неужели еще нет подобной проги? Или вы первые, кто решил ее сделать? Может, и бабла заработаете... )))
АйсМан!!!!
Ты кого COFом обозвал????? >:(
Докладаю - COFF - это шизанутый формат Мастдая для линковки файлов!!!!
Ты CPF/IP с тухлятиной не мешай!!!
Шнапс!!!
Про хостеров могу сказать - или они очень умные, или очень глупые.
Принимаю волевое решение:
Для сервера будут порты -
1. 45700
2. 45701
3. 45702
4. 45703
5. 45704 (для тестирования)
В ПХП надо искать искать событие Request (или похожее, может быть AczeptRequest) - запрос на соединение.
Первая команда от сервера будет такая:
#001 [запрос логина]
Ответ клиента:
^001[логин - 40 символов]
#002[запрос пароля]
^002[пароль - до 40 символов]
Пока хотя бы так.
На счёт папочки - это грамотное замечание. Скрипты все, следует в одном месте складировать. Кроме того, я подумал, может пригодиться в конфигах АПАЧА на сервере, прописать виртуальный хост, с путём напрямую к папке. Ну это правда, обычно, не бесплатно бывает, а нет - так и фиг с ним. К порту обращаться буду, типа <www.chernyachovsk.com:45700>
Продолжаю мучать Питона. Ну я просто тащусь!!!!
Интерфейс можно создавать "с заполнением" как в Делфях, но при этом в режиме интерпретатора - Питон ни разу не тормозит.
И самый большой прикол - написал "Блокнот" в виде класса!!!!
Сколько захочу, столько раз и создам!!! )))
И где я раньше был???
Фантом, данные по папке клиента исчи в ПМе. А насчёт виртуального хоста - конфигов сервера у меня конечно нету, но могу спросить у хостеров, как и чо.
Скоро
Корпоративный заказ допишу и буду тут
Ну нафиг такую халтуру...
Вторую неделю насилую ПХП
Или наоборот... скорее даже наоборот... ((
Ну а что ж поделать, денежки всем нужны
У меня на работе завал - сервер с базой данных - чуть не помер. То что, шеф меня до сих пор не расстерял - это просто чудо.
Но с другой стороны, на Питоне освоил графический интерфейс, и в консольном режиме написал пару клиент-сервер. Есть только одна команда - выход из сервера, но и это уже хорошо. Принцип один и тот же. Есть кое какие вещи, которых я пока не понимаю, но это тоже вопрос времени.
Оказывается Питон - жирный зверёк - куча всяких утилиток, вплоть до компилятора Питона в экзешники. А уж про всякие среды - глаза разбегаются, что оказывается в комплекте к Питону не поставляется, но моогло бы.
Короче, качаю, качаю, и ещё раз качаю. Надеюсь, что это перспективная трата денег.
Прикольно. Полновесные приложения для Питона весят максимум по 60 кило.
Чтобы я так жил. ))
Например, writer.exe - на Питоне всего 40 кило, со всеми картинками!!!!
Это все чудно, конечно... но давайте, пока у мя и-нета есть немножко, с клиентом че-нить думать, а?
А чё тут думать? Без инета жизни нету.
У мя вот тоже вишь какая заминка вышла.... ;-(
И то на счёте - центов 90 лежит.
Сказать по правде, с пылу жару по Питону угар прошёл.
Документации мало, особенно по графическому модулю TCL\TK. Нашёл книгу по Перлу с описанием модуля - однозначно Перл слабее. А ради одной графики (в Перле оно же используеся) - 350 р. тратить как то неохота.
И вапще....
Давайте думать. Предпочтительно вместе.
Чот я вижу мало кто горит желанием думать. Так будет у нас клиент или нет?
ЗЫ Фантом, у меня есть 10 метров доков по Питону, тока я ваще х.з. как тебе их переслать.
У меня тепеь АйДиЭсЭл на работе. Так что вылез наконец. Что касается доки по Питону - 10 метров это не слабо.
Ещё бы знать, что именно, ты мне пытаешься впарить.
У меня её тоже не мало.
Кое что меня в Питоне напрягло, например - графика. А вообще, усё довольно мило.
Ои клиента я оторвался капитально - работа не позволяла заниматься.
Но теперь пошуршим.
Похоже у меня опять пруха. %)
На работе седня нет никого - я один инет имею. %)))
ВериКул!
Думается, буду я дома клиент дальше насиловать. А чё делать? Водку я не пю, котёнок на мои любимые кросовки банку солидола вылил, печку протопить нада. Работать на удице уже доаольно прохладно.
Питон зверёк хорош, да только графика у него прихрамывает. Придётся дальше ВжикБейсик мучать, как самый мне известный.
Вот такая песня.
Нашёл порт графичиеской библиотеки Qt под Вынь!!!!!
Вот это песня. Эти портки заточены специально под Питон!!!
Ищу доку про эту термоядерную смесь. Линух на Выньдовс наступает по всем фронтам!!!! :-)
Ёхороный бабай!
Вот это я юный мальчик!
Скачал среду разработки boa-constructor!
Я ещё до конца не понял что делать то можно, но то что меня контузило - это факт!
Вот и у Фантома появился ЖЖ на нашем форуме
А что таки делать?
Главное не командирским языком пишу.
-*-*-*-*-*-
На одном из Омских фтп-серваков откопал софт под версию Питона 2.4 - сплошное новьё (собственно, я всё предыдущее оттуда и качал).
Что особенно премило - универсальный сервер Зопи(Zope) обновился!
Апач по любому отдыхает! Есть вариации под любую платформу.
Сажусь ковырять эту весьма(!!!) грамотную конструкцию.
Пока время есть.
Вах! Последняя версия универсального сервера Зопи - ТУПИТ! Мля!.... :-/
Ну ничё....
Не таких ломал....
А пока вот помаленьку сайтой своей занимаюсь.
У Апача нет Веб-интерфейса.
У Апача нет целевого языка.
У Апача нет режима выполнения скриптов "Бастион".
У Апача нет брокера объектов, и он не имеет встроенной поддержки баз данных!
Апач vs Зопи - как чукча против танка!
Ты фишку не понял - Зопи - это ОБЕЪКТНО-ОРИЕНТИРОВАННАЯ Веб-программа, выполняющая функции брокера объектов, CGI-сервера, mail-сервера, Веб-приложений, и все того, что только можно запихнуть туда, благодаря только своей фантазии. ПОД ЛЮБОЙ осью.
---------------
Пытаюсь прошарить как работает прокся. Мене рут-кит нада на глав-буха повесить. ))
Рискнул своей головой, поставил на сервак Зопи 2.8.
Поработал, присмотрелся, и аж на глаза загорелись - форум бы на движок Зопи - была бы сказка! И ООП, и http, и база данных!
кстати у MSAccess есть "страница доступа к данным", с помошью которой вполне можно работать с базами как акцесса так и оракла, 1С, MSSQL ...
Уважаемый fantom, нечего метаться как продукт дефекации в проруби, решили писать клиент на питоне, но не с тикеем, а с wxWindows/wxWidgets значит пишем, и не надо отвекаться на письки и жопы, постановка задачи была совершенно иная - форум есть и работает и к нему нужно написать клиент. Участвуешь или будешь в жопе ковыряться?
Фантом, а где ты так программированию научился? я тоже так хочу.. как програмка-то называется? В чем специализируешься - по серверу или вообще?
А вы откуда знаете? Вроде он показал какие-то знания в постах.. Я бы так не придумала
А откуда он тогда все эти коды взял если не может программировать?
Ок Ок И не спорю, так ка в этом деле не соображаю. А вы?
А каким программированием ковыряетесь
Ну под ником "Гость" конечно, круто наезды кидать, особенно "знаком лично".
Ну хоть один билд, с кнопочками накидать ГДЕ?????
---------------------
Честное слово, сделал бы, да теперь то инета нет, то времени. Как никак я теперь железнодорожник. Да ещё на 2 месяца в Москву могу попасть на обучение. Так что, не фиг тама из прохладной тени лиан выкрикивать!
-----------------
Теперь по поводу Зопи.
Пока под Зопи неизвестно НИ ОДНОЙ уязвимости. На серваке Зопи сделан сайт банка "Менатеп" и фонда "Общественное мнение".
И преимуществ могу дополнить - контроль версий, платформонезависимая база данных (разумеется переносимая). Раздельный доступ для админа, директора, главбуха, продавца, залютного юзьверя. Контроль прав на уровне "объект". Вот сколько у объекта свойств/методов есть, вот столько и прав. Права разумеется, наследуются. Причём также как права объектов, также присутсвуют права "файлов" и "каталогов". Почемку в кавычках, потому что фаловая система - виртуальная, в единой базе данных в виде одного файла.
Кроме того, постоянно в фирмах наблюдаю склоки между дизайнерами и программёрами - а тут на те вам - раздельный доступ для дизайнера, и для программёра. Дизайнер ВООБЩЕ не видит код. А программёр имеет дело с объектом Х, который на самом деле может оказаться чем угодно, и где угодно. Программист не отвечает за размещение объекта на веб-странице.
---------------------
Что на счёт серьёзных проектов, думаю, вытяну. Не для того 5 лет в институте гранит науки долбил, и два года программистом работал, что бы лохой от программирования быть.
Кстат, где так можно научиться. По поводу Питона могу предложить начать с моего сайта: http://www.fantom-lab.narod.ru
P. S.
Кстати, о птичках последнюю версию Zope 3.2 я всё-таки запустил. Я ошалел!!!!
Веб-интерфейс на русском языке!!!! Даже шкодить можно не отходя от кассы!!!
Часть справки на русском, но буржуйского, как водится, мы не боимся!
И всё-таки я за клиент к форуму, понятна позиция отдельных товарищей по поводу приведённого мною сервера.
Но так поставлен процесс - соответственно и результат. Как говорил один из моих командиров - под лежачий камень и моча не течёт.
Надо же как-то согласовывать, обсуждать, намечать. Тестирование, ОДНОЗНАЧНО, на живом форуме это начло тихого ужаса. Значит нужна копия форума на болванке, сдвижком. Дабы посмотреть что да как. А потом мнение пользователей ведь не самое последние требование в соданиипроекта.
А то что анонимнщик тут заявил, что серьёзный проект не потяну - речь не идёт о глобальном проекте. Так, довесочек для удобства всех. Готов пожертоватвь один вечер в неделю для обсуждения данного вопроса в реале. По моему, вполне разумный шаг для воплощения мысли в реальность.
ГЫ. Анонимщик так и не ответил на вопрос, каким из языков занимается. %)
----------
Мож правокация всё это была? Попытка развести как пацана?
Недаром я погранец. Всюду заговоры вижу.
Подозреваю что аноним прав, утверждения фантома о серверной части клиента и своём протоколе говорят о том, что он не совсем понимает, что нужно сделать. А ситуция такова: есть сервер баз данных (mysql) к нему соединяются пользователи под своими именами и паролями, выполняют sql запросы (не сами конечно, а посредством движка форума) нужно написать софтину которая будет выполнять соединение с mysql и запрашивать свежие сообщения из базы данных, а после в человеческом виде позволять просматривать старые и готовить к отправке новые, после одним махом заливать новые в базу.
Да, Баламут прав.
Нужно серверную часть писать наподобие скрипта логина форума
а потом через этот же скрипт передача данных
http://forums.realcoding.net/topic1334.html
ВорлдМинд.
Странный ты парень ....
Неопнятно на каком основании ты решил, что я не знаю, о чём идёт речь????
Я прекрасно в курсе, что форум есть Sql-база и всё висит на запросах. запросы исполняют скрипты, как уже было описано выше.
Всё это уже ОБСУЖДАЛОСЬ, РАССМАТРИВАЛОСЬ, ОЦЕНИВАЛОСЬ, и т.д., и т.п., Чтобы не соврать, Баламут даже предоставил мне паролю для доступа на сервак. но я так им и не воспользовался, благо мозгов у мнея хватает улучшать то, что и так хорошо.
Речь шла именно отом, что Винда декларирует поддержку gzip, но реально её не осуществляет. 90% инфы страницы - шаблон, который можно формировать локально. Посты, на 99% - не меняются, новые сливать и заливать можно быстро и эффективно - "выстрелы". Это ит раффик сэкономит, и время, и нервы, и деньги. И всегда можно будет в оф-лайне посты почитать, поржать, повздыхать и т.д. и т.п.
Вопрос заключается ТОЛЬКО В ОРГАНИЗАЦИИ ПРОЦЕССА.
Положа руку на сердце, я не сильно пинаю здесь кого-либо в этом направлении, но тем не менее - пниаю. Иногда. Если это нужно только мне одному - я пожалуй выпаду ещё месяца на 4. Мне сайт оформлять надо.
Если нет - как тут один таврищ говорит, жду ну хоть позёрское телодвижение.
Дело- только в этом. Я билды кнопочные (и кстати далеко не пустые кнопочки) не зря здесь выкладывал: вопрос стоял - что дальше? Все поскачивали, похмыкали и усё. Поезд встал.
Как думаешь, "мировой мозг", стоит после этого овчинка выделки или нет?
Нет
За клиент уже прилично народу высказалось "за" Фантом, билды твои видели, но они ж по большей части нерабочие, а просто как заготовка. Поэтому ничего и не поняли Делай на свое усмотрение, главное чтоб народ без проблем мог разобраться куда мышкой тыкать и зачем.
Ёхоронный бабай.
Подписи на кнопочках и картинки, при необходимости - это не сложно.
Это важно, только для пользователя. Можно так нарисовать код, что все кнопки на подоконнике, по желанию юзверя, будут строиться.
На счёт пароля - ТОЧНО кто-то высылал в личку.
Народ БУДЕТ без проблем нажимать кнопки, и красных кнопок там не будет.
Я уже про это говорил - прежде всего нужен товарищ, который ответную часть будет на серванте шкодить.
А так - далеко не уехать.
Кстати, Дельфи сильно похож по синтаксису и построению программ на Паскаль? Фирма вроде бы одна и та же... Я с одной софтиной дельфятской разбирался в том семестре - кажись похож. А сегодня видел сам Делфи - основное отличие от паскаля состоит в том, что он сделан на основе форм и надо делать всякие кнопочки, окошки и их уже обрабатывать в программе и всяких модулях. Похожее я видел в VBA.
Шнапс, Дельфи - это и есть Паскаль, тока визуальный. Отличия те же, что и у Borland C от Visual C++: появились всякие формочки/менюшки/кнопочки, поянтие "классы" и т.д.
Последнее замечание справедливо. Добавлю, имхо, главное отличие.
Если в Паскале программист ожидал пользователя (диктовал ему последовательность действий) то в Visual-версиях - парадигма иная - СОБЫТИЙНАЯ модель. Т.е. пользователь может нажать кнопку по принципу "как моча в голову ударила". Классы, как были в Паскале, так же они и в Делфях остались. (Есть упёртое мнение, что Делфи - это не язык программирования, а среда, но у меня на столе лежит книженция по Делфям, где чёрным по белому написано: "Делфи - язык программирования,....").
Хоть я и сторонник всё больше Visual Basic, за его относительную простоту и прозрачность, но тем не менее признаю его кособочность и ощутимую ограниченность в инструментарии. С другой стороны, Делфи, не смотря на всю своё поддержку частенько реализовывает мытнуй код. Это меняв нём отталкивает.
Как суперская замена Бнйсику -уже многократно-упомянутый Питон. И классы, и события, и исключения - многое из того, чего так зверски не хватало мастдайному Барсику. Плюс, СМЕШНЫЕ по размеру файлы, в отличии от Бейсика, и совсем уж неприличные размеры прог на Делфях.
Опять же - портабельность не последний вопрос. Если Бейсик в этом смысле отдыхает, Делфи со скрипом но под эмулятором среды под Линуксом работает, то Питон без всяких извращений ЛЕГКО работает ПОД ЛЮБОЙ ЮСЬЮ. И это не может не радовать.
Сообщение оф-топовое. Но всё таки сообщу. Мож кому нада.
Программа traffic compresor.
http://www.TCompressor.com
Скачивается легко. Требует бесплатной регистрации.
Вот небольшая статистика:
------------------------------------
Всего сохранено даных - 12,05 МБ
-------Не сжатые----Сжатые----Выйгрыш----Степнь сжатия
веб-----13,47---------3,85---------9,63------------71,4%
почта----4,27---------1,97---------2,30------------53,9%
ICQ------0,24---------0,11---------0,13------------52,4%
---------------------------------------
Впечатляет.
ИМХО.
А Питона этого мона где-нить скачать?
Открытая система, естественно можно скачать, хоть с исходниками python.org python.ru
Ответ вполне разумный.
Что более всего приятно - глюков - меньше малого в коде Питона.
Вес - 10 метров. А возможностей - как слона. %)
Привет народ.
Я тоже программист.
Пишу в основном на Delphi, HTML, CSS, PHP, MySQL, JavaScript и т.д.
Кому что надо.......может помогу
А где учился?
В нашем дурдоме прибыло.
Совсем не дурные варианты названы из программирования.
Вчера зовут меняв отдел кадров, типа программа косячит.
Смотрю на моник и вижу с пяток ссылок - свинг, Джава РанТайм, несколько аплетов. Весьма сипатично подобрана цветовая схема.
Стало интересно.
Начинаю ковыряться и понимаю, что прога выполнена на Джаве, в виде клиент-серверного приложения. Думаю, не совру, если скажу, что сервак расположен в Москве. И всё так грамотно разведено и форомлено, что аж удивился - неужели наши программёры начали серьёзные программы делать???
Ну я тамошней тётке об этом вслух и заикнулся. Она посмотрела на меня как на идиота. Оказалось. что эту программу по заказу РЖД написала одна солидная немецкая контора.
Немая сцена.
Хм. Что характерно, учился не во 2-ой большую часть времени. Хотелось бы верить, что не пожалел о переходе. Но как-то сомневаюсь.
-----------
Что касается MySQL - это весьма гут. Базы данных ворочать, это не конфиги ковырять. ))
Вот только в домашнихъ условиях применить подобные знания не просто.
Надо изобретать.
на мой взгляд с MySQL и дома можно лугко разобраться.. главное сервак настроить....... а там помеленьку разбираться
Без проблем дома ставил MySQL и консольным клиентов запросы слал на создание таблиц и на выборку - очень увлекательно, жаль ща компа нормального нет
А локальному Мискулю много от компа и не надо. Ты же не веб-сервант делаешь
В настоящее время у меня дома стоит вот такая вот система:
Сервисы: Apache2 + PHP5 + MySQL 3.23
Соответственно, ПО: Apache Monitor + PHP Expert Editor + MySQL Control Center
И кто бы что ни говорил, что ПХП5 и Апач2 биологически несовместимы, у меня всё работает без сбоев.
Не знаю, не знаю. Апач2 юзал, Мюсклю юзал, пхп (курсы президентской академии) - тожа юзал.
И в конечном итоге Python со своими производными победил.Кстати буквально вчера было сообщение на лента.ру о том, чт овпервые создана игра ДЛЯ ПРОГРАММИСТОВ. Сейчас в виртуальном городе существует около 15 тысяч кабинетов. Реально пишутся модули к ядру и динамически исполяются.
А можна поподробнее?
Да нет проблем. Привожу перепечатку, для подтверждения того, что Python - RULEZzzzzz......!
--------------------------------------
Программирование наперегонки
Британский программист создал игру для отладки кода
В начале марта 2006 года в программистском сообществе произошла тихая революция. Ее совершил британский программист Мэтт Уэбб (Matt Webb), который при помощи своей программы playsh (Playful Shell), написанной на популярном языке Python, впервые создал игровую вселенную, предназначенную для проведения сеансов совместного программирования. Когда же о программе написали сайты Slashdot и Wired, тихая революция превратилась в громкую.
До начала описываемой истории Мэтт Уэбб был известен в основном в двух ипостасях – в качестве партнера консалтинговой компании Schulze & Webb Ltd и в качестве соавтора книги Mind Hacks, где в популярной форме рассказывается о принципах работы человеческого мозга.
Для того чтобы разобраться, что придумал Мэтт, нам надо немного окунуться в историю вопроса.
Вы стоите на дороге...
В семидесятых годах прошлого века, когда вычислительные мощности стоили дорого, программисты в университетах США и Европы использовали ночное машинное время для многопользовательских текстовых игр. Этот вид развлечений получил название MUD (Multi User Dungeon, "многопользовательские подземелья") и оказался чрезвычайно популярен.
Десятки программистов и лаборантов собирались в группы, которые шли походом на драконов, орков, кобольдов и гоблинов, или блуждали по подземным лабиринтам. В однопользовательском варианте это выглядело примерно так:
«Вы стоите на дороге перед небольшим кирпичным зданием.
> войти в здание
Вы находитесь в здании. Перед вами лежит рюкзак. Выходы: юг.
> взять рюкзак
Взят.
> юг
Вы стоите на дороге перед небольшим кирпичным зданием».
Со временем значительная часть таких игр получила графические оболочки. Некоторые обзавелись трехмерной графикой и звуковыми эффектами, а игроки могли побывать не в сотнях, а в тысячах и десятках тысяч мест. Однако архитектурно все эти программы были фактически обычными коммуникаторами, которые позволяют игрокам обмениваться сообщениями, блуждая по «комнатам» и подбирая лежащие в них предметы.
Войти в здание
Университетские программисты использовали MUD для развлечения. Новизна идеи британца Мэтта Уэбба заключалась в том, чтобы использовать текстовые игры для работы.
Уэбб работал программистом, а это занятие предполагает многочасовое бдение с целью структурировать и модернизировать некий текст. Интересно и то, что программы обычно можно разделить на отдельные части – модули, процедуры, функции, циклы. Внутри этих частей находятся переменные, вызовы других функций и выходы из программы.
Вполне вероятно, что однажды Уэбб увидел в этом своеобразный фэнтези-мир, в котором роль комнат играют функции, а роль предметов – переменные. В таких комнатах на стенах будут висеть константы, в полу будут зиять бездонные дырки-выходы, а вместо дверей будут вызовы других функций.
Так или иначе, на свет появилась playsh, позволяющая воспринимать пишущуюся программу как лабиринт. Игрок ходит из комнаты в комнату, создавая новые выходы, закрывая старые, перемещая предметы и обсуждая все это с другими игроками.
Потенциал этой простой идеи оказался чрезвычайно велик. Во-первых, к процессу программирования может присоединиться сколько угодно участников. При этом, зайдя в какую-либо комнату, игрок видит, что именно его коллега меняет в коде.
Во-вторых, playsh не требует долгого освоения. Для большинства программистов интерфейс MUD не является чем-то незнакомым. Более того, этот интерфейс не требует отрывать руки от клавиатуры и максимально приближен к естественному языку, так как все действия производятся при помощи обычных глаголов.
В-третьих, playsh позволяет проводить обучение программистов прямо «на поле боя», выгодно отличаясь от традиционных методов тем, что ученики постоянно работают с текстом программы, не отвлекаясь на то, чтобы превратить схемы и диаграммы в реальный код.
Убить ошибку
Похоже, пока филологи рассуждали о тексте как лабиринте, программисты создали такой лабиринт. Мир в представлении playsh схож с нашим – вы можете идти на север, запад, юг, восток. Предметы, с которыми вы работаете, имеют свою структуру и свойства.
За основу для перемещений и работы с объектами в playsh был взят стоящий особняком среди MUD проект LambdaMOO. В «лямбде» нет фантастического мира как такового – скорее она представляет собой набор комнат, где встречаются игроки, пришедшие просто пообщаться. Социальная направленность LambdaMOO и является тем стержнем, на котором держится весь проект, состоящий из более чем 15 тысяч комнат.
Создаваемая playsh-вселенная полностью динамична – по утверждению автора, игрок А может наблюдать за тем, как игрок Б меняет одну из функций препарируемой программы и тут же использовать эту функцию.
Кроме того, программа позволяет то, о чем и не мечтали вышеупомянутые филологи – управлять компьютером игрока из виртуального мира. Таким образом, созданный ради удобства представления текстовый лабиринт становится мощным средством управления реальным миром.
Но самое интересное даже не в этом. По словам Мэтта Уэбба, каждый игрок может видеть мир по-своему благодаря набору "актуализаторов". Это неуклюжее слово означает очень простую вещь – к примеру, один программист может видеть только двери, а другой – только окна в комнатах. Таким образом, они смогут настроить систему под себя и не будут мешать друг другу в процессе блуждания по свежесозданному подземелью. Естественно, что и набор действий с объектами у них будет различным.
Открыть браузер
Мэтт говорит, что на этом концепция playsh себя не исчерпывает. По его словам, ничто не мешает заставить эту программу работать с веб, связывая при помощи уже знакомого нам лабиринта различные источники данных.
В своем блоге он пишет, что, например, rss-поток можно представить в виде комнаты со множеством дверей. При этом заголовки новостей будут написаны на дверных табличках. Можно пойти и дальше – например, программа телепередач будет оформлена в виде телевизора. Все это легко оформляется в виде веб-страницы.
Уэбб также уточняет, что нет никаких препятствий к тому, чтобы использовать этот интерфейс, например, для передвижения по страницам своего электронного календаря.
Особую гибкость playsh придает реализованная идея определяемых пользователями глаголов. Предполагается, что каждый пользователь выберет те, которые ему понравятся, и сможет создать собственный мирок с любимыми источниками информации.
Just for fun
Не стоит думать, что это первая попытка превратить программирование в развлечение. Например, книга Линуса Торвальдса, отца ядра операционной системы Linux, так и называлась – Just for fun ("По приколу").
Программисты вообще часто занимаются тем, что придумывают различного рода лингвистические забавы. Достаточно, например, упомянуть о существовании понятия literate programming, которое подразумевает написание программы таким образом, чтобы ее исходный текст можно было читать как литературное произведение. Есть и противоположное течение – на сайте ioccc.org уже не первый год проводится конкурс на написание самой непонятной программы. Если же говорить об играх, то для понимания духа вольного программистского сообщества достаточно упомянуть Progress Quest – программу, которая проходит ролевую игру за пользователя.
Если же говорить серьезно, то модная среди интернет-программистов концепция Semantic web подразумевает создание некоторого языка, который могли бы читать как машины, так и пользователи. Таким образом, закладывается почва для создания социально-ориентированных систем, стимулирующих пользователей к добавлению новых возможностей.
Playsh в перспективе и является той программой, которая не только может оформить информационные потоки в понятной пользователю форме, но и воспринимать язык, достаточно близкий к естественному.
Ближе всех к playsh в этом плане подошел сайт YubNub, который создатели позиционируют как "командную строку для веба". Любой желающий может создать свою команду для YubNub, чтобы облегчить себе блуждание по интернету.
Например, чтобы найти фотографии кошек, достаточно написать "gim cat", чтобы открылось окно Google Images с результатами поиска по запросу "cat". Playsh – это просто следующий шаг, позволяющий оформить каждую команду в виде отдельной программы на Python, который активно используют веб-разработчики, и получить результаты в заданной пользователем форме.
К сожалению, пока playsh еще очень сырой продукт. Кроме того, по словам автора, его использование небезопасно, так как программа позволяет кому угодно подключиться к вашему сеансу.
Похоже, в лабиринте Мэтта скоро заведутся монстры.
Александр Амзин
Ссылки по теме
Программирование превратили в многопользовательскую игру - Lenta.ru, 16.03.2006
Сайты по теме
playsh
yubnub
Python
Progress Quest
Mind Hacks
Да, нет ни одного нормального программиста (даже сейчас), который не был бы знаком с понятием MUD
Хм. АйсМАнн!
Ты не понял главной мысли!
playsh открыл новую эпоху в мире программирования!!!
То что используется стиль MUD - это только начало.
Python позволяет сверху навесить 3D-интерфейс без особых напрягов. "30 фрейм пер секонд" будет обеспечено даже на не мощных машинах. Вот оно, грядущее VR!!!!!
Сомневаюсь, что это может говорить о зарождении виртуальной реальности.
Хотя... время покажет.
Насчет питона могу сказать только одно: Если проект будет развиваться, разработчики откажутся от Питона такого, каким он есть сейчас.
Для таких глобальных целей нужен динамичный, способный быстро меняться как в лексике, так и в принципах действия язык программирования.
Так что вполне разумно ожидать выхода навого языка программирования - полусреды, который будет разработан на базе нескольких языков (Скорее всего Си, Дэльфи, Перл(ПХП), Питон) и будет вбирать только лучшее из каждого из них.
ИМХО.
Слегка подумав, дописывает:
А я пойду, пожалуй, в любимый MUD пока зайду. Давненько я там не был...
Я сомневаюсь, что Си, или его родственнечик С++, способен хоть как то составить хорошую конкуренцию.
Современная технология программостроения идёт в область разрешения НАТУРАЛЬНОГО языка. Способность максимально приближенно к миру описывать процессы, свойства, события и взаимосвязи. У вышеназванных языков сильный СТИЛИСТИЧЕСКИЙ аппарат, но никак не программисткий, ИМХО.
Для динамки, подвижности, замены, отладки, оперативной замены и выполнения - Python, как раз - ОЧЕНЬ подходит для этих целей.
Стоило ли Гуидо ван Россуму создавать ещё один клон Делфей?
Мужик весьма силён в таких вопросах. ПО крайней мере за 12 лет открытого существования языка - его внедрили в производство ВСЕ серьёзные фирмы, как IBM, Intel, Sun, так и кто бы поверил - MicroSoft!!!!!! IronPython зовётся их корявое детище, работает под окружением .NET . Я думаю, Билл не стал бы заморачиваться на каких то там шнурков кожанных, если бы не видел в ЭТОМ возможности подзаработать бабла.
любой си-программер не знает для чего нужно было придумывать остальные языки программирования.
Я Си-программер, и чо?
Прекрасно понимаю для чего были созданы другие языки, просто они не лежат в плоскости поих действий.
Сейчас вапще на ПХП пишу, кстати...
Чё, чё.
Сила гигагерцев и гигабайтов, по сути, сняла вопрос о быстродействии и по ставила вопрос о скорости разработки.
Об максимально эффективном соотношении код/качество.
Это как раз то, чего не хватает Си. Более того, ссыласясь на справочник по трудозатратам по языкам программирования:
1. Ассемблер - 320
2. Ада - 240
3. Си - 180
4. Вжик Си++(МастДай) - 145
5. Вжик Барсик(МастДай) - 125
6. ПХП - 86
7. Руби - 44
8. Питон - 32
Вот и ответ на вопрос почему Си в пролёте.
А если надо, средствами того же Python - можно и компилятор нарисовать.
Собственно, такой проект есть - перевод скриптов в исполняемые модули.
Ну и флаг в руки.
Немного подумав, добавляет:
Только здесь статистика по тредозатратам...
А можно привести сравнительную характеристику по "мощности" языка т.е. по его возможностям
З.Ы. Нет Дельфей и Си# кста
Между прочим Си# - не такой уж и колхоз... довольно мощный язык, но немного сложный (лично для меня) в понимании....
Си"Шарп" - я и за язык то не считаю.
Явная передалка Джавы на мастдайный манер.
По краней мер в игру "Найди 10 отличий" я с удовольствием/возмущением проиграл.
Что касается мощности языка - на Python никак не не проигрывает, напримре Дельфям. В дистрибутив в 10 метров влазит и графика, и интернет, и базы данных, и мультимедиа, и многопоточные веб-приложения. ИМХО, Python делает Delphi процентов на 30%. Положа руку на сердце - я не ас в Delphi? далее чем клиент-клиент прикладнухи с перкачкой иоконок каждую секунду по таймеру - днло не пошло. )) Но зато у меня есть фолиант по Делфям 7, страниц так на 1200.
Что касается понимания, это, ИМХО, архиважнейший из наиважнейших параметров. Толку от мощи ассемблера, если к 20-му килобайту текста (без мощных инструментов и соотвествующей сноровки) уже сам непонимаешь о чём речь идёт. %)
Питон в этом смысле, даёт фору Си++ (и уж тем более Си) - раза 4. Как впрочем и указано в книге по разработке больших проектов.
--------------
Привожу полную и точную таблицу.
Орлов. "Технологии разработки программного обеспечения" 2-е издание, 2003 год, стр. 46.
Ассемблер - 320
Си - 128
Кобол - 106
Фортран - 106
Паскаль - 90
С++ - 64
LISP -64
Prolog - 64
Java - 53
Ada 95 - 49
Miranda - 40
Haskel - 38
Visual C++ - 34
Visual Basic - 32
Delphi Pascal - 29
SmalTalk - 22
Perl - 21
HTML3 - 15
---------------
Моё личное ИМХО:
С# - 30...32
Python -19...20
Хыыы
Повезло мне, походу, ибо работаю сейчас с Перлом и ХТМЛом
А я и не подозревал насколько я должен быть счастлив
А что такое HTML3?
Перла - один из самых мощных извратов. Традиционно считается он наиболее подходит для обработки регулярных выражений. Питон, в первых своих инкарнациях не пытался оторвать лавры Перла, но на момент сейчас - в 1,5 раза таки делает Перлу - спасибо компилированному ядру. Но это несущественно. Существенно то, что Перл ИЗВРАТНО поддерживает классы. А Питон - имеет встроенную поддержку, как классов, так и пакетов. Причём классы имеют специальные методы - __init__, __del__, __add__, __mod__ и т. д.
Так что, ты должен быть счастлив.
Что касается ХТМЛ3 - Бруталл, ты шутишь наверно???
Это стандарт на ХТМЛ установленный консорциумом WWW. Один из его вариантов.
А что насчет PHP?
И классы нормально обрабатываются, и методы в поряде... и вапще...
Интересно какие требования у Питона к жлезу и ПО на серваке.
Каковы нагрузки на сервак при одноврменном подключении сотни-другой пользователей....
Со скриптами cgi и формируемыми страницами HTML всё ясно. Всё это счастье прикручивается к вэб-серваку двумя строчками кода.
С PHP, как модулем срвера, траблов немного больше. Хотя если руки из правильных мест растут, тоже прикручиватся бз проблем. Стабильность работы такой связки проврена временем.
А что можт прдложить Питон обычному среднестатистическому программеру и, как частный случай, web-разработчику.
Перл не чморите, тексты обрабатывать перлом с регулярными выражениями одно удовольствие - практически божественная власть над информацией
Да, кстати...
Balamut прав. Приложения на Си довольно шустрые. А рабочих приложений Питона я что-то ни разу не встречал... Или я даун, или на нем ничего серьезного не писалось.
Кроме того, фантом...
Скажи мне как обстоят дела у Питона с разработкой крупных проектов? Не всяких там калькуляторов и "Hello, world!", а реально полноценных программных продуктов.
Как реализуется поддержка классов и обработка ризличного рода процедур?
Всё это делатся через мозг или через Ж..?
Пока вопросов больше нет.
З.Ы. Мануалы и толстые талмуды о замечательности языка читать впадлу. Проверять же опытным путём - просто лень. Потому и интересуюсь у тебя.
Собсна говоря, передо мной в скором будущем встанет кирпичной стеной небольшой проект, который, возможно, придёцца реальзовывать силами PHP, что в перспективе - боооольшой геморрой. Вот я и ищу альтернативу.
У меня пока всё.
Не чморите ПЕРЛ - это прямо истерический крик какой-то. %)
Я не против Перла. Я против программёров у которых элементарное чувство прекрасного железобетонно заменено многочисленными нулями в глазах. )) Думаю, намёк ясен.
Любое компилированное приложение - это 4...50 интерпретаторов по скорости.
Хоть на чём пиши (Вжик Бейски не в счёт, как я вся типа платформа .NET)
И если крут в Си - тру и респект. НО когда вопрос касается оперативной разработки о бокатки - вот тут игрушечные языки - полный вперёд!
На вопрос "какие крутые проги есть на Питоне" могу привести пару примеров: под Линуксом известна прога mailman - поддерживает массовые рассылки подписных листов, аудит и управление - мало не покажется. Также под Линуксом есть несколько карточных игр написанных на Питон, типа солитёр.
Есть интерактивная игра 3D-шуттер также написанный на Питоне, и предназначенный для одновременной игры в интернете (ответ на вопрос как быстро).
Также под различными платформами есть масса приложений для администрирования, архивирования, оповещения, сканирования на предмет искажения вирусами. У меня на сайте есть ссылка на сайт parnassus - там более 3 тысяч программ на Питоне во всех областях применения компьютеров - от текстовых редакторов, до плагинов к графическому пакету Майя. Пакет ОупенОфис содержит в себе интегрированный дистрибутив Питона для выполнения множества макросов, кои на себя берут до 30% нагрузки этого пакета.
Главный гвоздь, убеждающий меня в правильности Питона - Гугл. Движок этой поисковой системы (да и сервисы тоже) - ПОЛНОСТЬЮ сделаны на Питоне.
Когда решался вопрос о том какой язык выбрать, выбор пал в пользу Питона, так как он поддерживает распределённые вычисления стандартными средствами, а количество ошибок в нём значительно меньше, по сравнению с другими аналогами.
Те мануалы, которые я мог бы предложить - исключительно на аглицком буржуйском, поэтому не буду.
Что касается именно классов и процедур (объектно-ориентированного подхода и функционального программирования), ИМХО, процедуры - реализованы с исчерпывающим извратом. Классы - в лучших традициях С++, но гораздо прозрачнее, читабельнее, и до смешного просто.
Вот тебе примерчик с классом, типа хелло, ворлд.
-------------------
class Hello():
def Hi(self, Name='Wasja'):
print 'Hello, '+Name
a=Hello(Name='IceMann')
a.Hi
----------------------------
Для заметки - ключевой параметр SELF в Питоне имеет тот же смысл, что и в С++ this.Но Питон более открыт и не имеет шаманского кода. Для обращения экземпляра объекта к своим методам, в теле класса явно указывается что метод принадлежит к классу.
Если класс следует использовать многократно, то его можно вынести в отдельный файл и импортировать примерно так:
-----------
from MyClass import Hello
-------------
После этого класс можно юзать спокойно. Вообще мне известно по крайней мере о 5 варинатах импортирования переменных, процедур, классов, модулей и пакетов.
То есть ты признаешь что для крупного, многообещающего проекта предпочтительнее Си, нежели Питон
Согласен, на "игрушечных" языках можно реализовать средней руки проекты типа Гугла, не привлекая все возможности работы с классами и процедурами таких гигантов как Си или той же платформы .NET.
Кстати, про .NET...
Вполне мощный и перспективный продукт. Но. Как всегда есть одно НО.
Он слишком громоздкий.
И вообще.
Каждый язык программирования занимает свою нишу в разработке различного рода программных продуктов.
Другой вопрос, каким языком будет пользоваться бородатый дядька-программер в той или иной ситуации.
ИМХО, хороший программист не только тот, кто знает несколько языков...
Хороший программист - это человек, который выберет под свой проект оптимально подходящий язык программирования и сможет через него максимально реализовать все полученые им знания.
Может быть сказал немножко криво... вы уж извините... последние пару месяцев сплю по часу-два в сутки
На питоне настрочен векторный редактор инскейп
Интересно, именно поэтому он не получил широкого распространения?
Не поэтому, просто проект открытый, дорабатывают
GNU GPL?
УГУ см.
http://www.inkscape.org/
Продукт сыроват...
До Корела ему, конечно, как до Магадана в тапочках...
Хотя... Если над ним работают грамотные кодеры, может и получится что-то стоящее.
Ты сам им пользовался?
Значиццо, у меня трабл.
Есть, допустим, следующий код:
Инскайпом не пользовался, юзаю OpenOffice Draw. А твой трабл не понятен, попробуй сформированные запросы вывести в лог или в браузер, может что проясниться, Удаляется то нормально или тоже три строки? :-)
а почему ты так запись добавляешь
попоробуй так
$query3 = "INSERT INTO arh_troubles VALUES ('$data[dn]', '$data[model]', '$data[uname]', '$data[ugcode]', '$data[ugroup]', '$data[sysplace]', '$data[place]', '$data[ptype]', '$data[comments]', '$data[getdate]', '$data[gettime]', '$tshootdate', '$tshoottime', '$data[tshooter]', '$data[complete]')";
хотя твой вариант может быть правильней ......... ведь я не знаю всели тут поля перечислены
Там в некоторых строках должны в определенных ситуациях присутствовать NULL... и это не все строки...
Пробовал так же как и ты. Чего-то накосячил, плюнул и поставил такой вид запроса. Кроме того там куча дополнительных полей ещё, слишком огромный запрос получается.
Ладно. Ещё раз попробую составить длинный запрос. Хоть бы получилось ... запарился уже... если даже в этом случае не получится, придётся искать другие методы... Кроме того, ошибки могут быть в других функциях. Надо ещё раз код пересмотреть внимательно. Я умру...
INSERT вставляет одну запись в таблицу ........ поэтому мне кажется у тебя скорее всего идёт обращение к этому скрипту ещё откудато
Вот и я о том же. На самом деле это всего лишь маленький кусочек одной функции. Буду пересматривать.
Я, конечно, могу выложить сюда весь скрипт, но вы запаритесь его читать... там что-то порядка 800 строф
Немного подумав, добавляет:
Хм... Меня терзают смутные сомнения.
На самом деле запрос по занесению данных в таблицу arh_troubles во всём файле встречается всего один раз - здесь.
Боюсь что эта функция где-то неявно вызывается. Или повторное обращение происходит по лишней итерации.
Вот жеж блин написал блок... чёрт ногу сломит
Немного подумав, добавляет:
Ай, блин... ну его нафиг.
В понедельник продолжу. С работы скоро уже уходить. Наконец то выходные...
Balamut,
Только вот эта строчка отвечает за внесение значения в таблицу troubles, а лишняя строчка появляется в arh_troubles
На рабочем серваке отключены все уведомления.
Попробую завтра конструкцией or die(mysql_error()); чего нить добицца...
Пока дошёл до последнего поста - аж мозг закипел.
ПО поводу вставления пустой строки, имхо, где-то в конце скрипта нет команды завершения транзакции (?), и мускуль думает, что сейчас будет ещё раз обращение, и поэтому ЗАРАНЕЕ готовит ещё одну строку в базе данных. (а иногда и 10 сразу )
В любом случае надо смотреть логи, что творит код. Допускаю такую мысль, что и транзакции там не причём.
-------------------
Что касается предпочтительности языка для создания супер-пупер проекта - всё зависит от того, каким языком в совокупности лучше всего владеет группа кодеров. Если Си - то пусть будет Си. Если Перл - да запросто.
А вот что касается всей мощи использования классов, вот тут как раз Питон Перл делает, и ощутимо подвигает Си++ для покурить.
Я бы не стал утверждать, что Гугл - это частный случай использования Питона. Это одна из самых крупных компаний в интернете по капиталу, и крупнейший спонсор проекта Питон - ежегодные отчисления на добровольной основе в фонд Питона составляют более 5 млн. долларов. Общие отчисления в фонд Питона каждый год составляют более 20 млн. долларов от таких контор как IBM, AMD, Sun, NEC, Samsung, Oracle(sic!!!), Intel насколько я помню принципиально не отчисляет никаких денег )). Можно сказать - жмоты.
Что касается главного преимущества Питона - РЕКОРДСМЕН по портабельности. Программа написанная один раз - будет выполняться ВЕЗДЕ. Главный мысль клёвый чел Гуидо ван Россам.
И кстати, Питон поддерживает (встроенными средставми) в виде классов Bercli DB, cookie, socet Server, HTTP_Server, Server_Proxy, XML-RPC, CGI-XML_RPC, email, MIME, rfc822, csv, HTML-Parser, audio-oop, image-oop, wav, AU, md5, sha, ..... И ещё около 250 встроенных модулей со всякой всячиной. Почему я именно эти привёл - да потому что на них сделать движок - самое милое дело.
И кстати, и логирование встроенными средствами тоже поддерживается.
Немного подумав, добавляет:
--------------
Гугл в Питере собрается открыть толи 200, толи 500 рабочих мест. Делайте выводы, господа хорошие.
Ура, товарищи!
Python 2.5 alfa доступен для скачивания! ))
Уже больше недели.
Сам пока его только качаю, но по отзывам нововведений вполне хватает.
Будем посмотреть.
Так. Вставлю свои пять копеек по поводу написания софтины, которая бы забирала только новые посты и позволяла постить новые мессаги без жуткого html траффика. К сожалению, все распространенные форумные движки страдают этой х***й.
Единственный правильный шаг в этом направлении - это использование веб-сервисов, а именно написание серверной компоненты (в данной ситуации - плагина к форуму), которая будет xml-rpc или soap сервером.
Этот плагин будет отвечать за авторизацию и за предоставление доступа к данным (в чистом виде, без html, css траффика).
Клиентские приложения при таком подходе можно будет писать на чем угодно. Можно даже написать на XUL плагин к gecko браузерам (см http://xpoint.ru)
2alexweb
Ты абсолютно прав.
2SunOfABeach
Я в принципе и имел в виду скрипт(ы), а не сервер
В общем целом нужно всего лишь отработать алгоритм синцхронизации БД форума (вернее его части - мы не заватываем закрытую информацию, недоступную на форуме, только паблик.) с БД на локальной машине. Можно для простоты решения даже структуру БД не менять.
Кроме того, нужно написать сервлет для авторизации.
Сам же клиент предполагается как оболочка для локальной БД у юзера, которая будет отвечать за:
- начало авторизации
- обработка куки
- поддержка сессии
- синхронизация с серверной БД автоматически/по требованию
- формы ответа+цитирования, изменения персональных данных
Может быть что-то упустил...
Почитал на предыдущей странице по поводу SOAP-XML.
Вот мля не согласен! %)
Ниже были приведены хмл-тексты, ну вы меня хоть растреляйте - ГДЕ ЭКОНОМИЯ ТРАФФИКА?
Не проще ли делать примерно так:
#001А мне пофигу!#00CДа кто тебя спрашивать будет. #0A1 Да не ты уж видимо.
Коды будут обозначать теги типа, <messages>, <errors> - всяк короче будет.
Ну и опять же. gzip, ау, где ты???
Подскажите кто-нить, тут такая проблема возникла. Надо написать прогу на простом СИ:
Скопировать содержимое всех найденных директориев с именем ТМР в корневой директорий, переименовав их ТМР1, ТМР2, …
Написал почти всю, проблема осталась в том, чтобы скопировать файлы из найденных каталогов с именем TMP в нужный. Как сделать? А то чот затупил. Вот сама прога:
Вооо!!! Наконецто я добрался до этой темы!!! Всё я поселяюсь в ней!!! )))
html,css,javascript,php+mysql - Моя стихия...
2 Тошик
Даффай насчот С++
2Бруталл,
Честно, мне влом лезть в мануалы. Попробуй разобрацца сам. Но насколько я помню в С++ нет полного копирования файта, только в потоке. Хотя, быть модет я ошибаюсь...
О! Нашёл. Думал уже посимвольно файл копировать, или по строкам, но откопал там функцию, которая вызывает досовские команды:
system(argum);
а там в аргументе можно указать "copy c:\\1.txt G:\\shit\2.txt"
Ну вот и всё
Представляю себе что бы было при использовании последовательности
1 fopen...
2 ferror...
3 feof...
4 fgets...
5 fputs...
6 fclose...
Найден рецепт LDAP-авторизации, проблемой которого я занимаюсь уже пять месяцев.
Скрипт может определить имя пользователя, зашедшего на страницу, и домен, в котором он находится.
Если кому понадобится - пишите.
А я пару дней назад вычислил как в Python можно генерировать звуки системной бикалкой и воспроизводить звук более чем 50 форматов.
Неплохая, кстати, идея
Решил я как-то на досуге (а именно сегодня) заняться таки оптимизацией кода, сокращением, а то и удалением неиспользуемых участков программы да и вообще... короче оптимизацией.
Уж больно всё как-то кривовато передается, причем чёрт знает откуда чёрт знает куда... левые переменные, которые пооставались то тут, то там в процессе отладки...
Короче так как проект почти завершен и скоро будет проходить обкатку на рядовых юзерах, решил почистить мусор и разложить всё по полочкам....
Но, господа, не все оказалось так просто. Несмотря на то, что проект полностью лежит на моих плечах, разобраться в трёх метрах чистого кода оказалось не так то просто!
Уже через полчаса я погряз в месиве из PHP, HTML и Javascript кода, который, в итоге, все-таки удалось кое-как распихать в более-менее читаемый текст. Но остается одно НО. Если система претерпит какие-либо глобальные изменения, боюсь на её отладку может уйти неделя, если не больше.
Сейчас занялся вплотную этим вопросом, потихоньку переписываю код, придавая ему человеческий вид. Кой-какие комментарии... Ну в общем делаю как надо. А всё почему так получилось. Проект писался буквально на коленке. Времени мало, работы много. Естественно составлением серьёзного ТЗ никто не занимался. Решено было все доделывать в процессе. Первое тестирование состоялось уже через неделю со дня старта. И потом уже на кривой движок начали налипать функции и классы, которые писались под этот же движок. Когда же стало понятно, что ещё немного и все рухнет к чертовой матери, сначала была изменена структура БД, приведена таки к третьей НФ, после чего ещё две недели переписывался весь движок и ещё пара дней ушла на его отладку и отладку прилежащих модулей. Такая вот страшная картина.
Так вот, к чему я это всё...
Рекомендация от дедушки Айса.
Если вы хотите создать хороший, стабильно работающий и гибкий продукт, как можно серьезнее отнеситесь к составлению ТЗ и описанию ВСЕХ функций, связей, структур и т.п. Если этого не сделать, проект будет обречен на не очень приятные нештатные ситуации. Пусть мелкие, но поедающие ваше время.
Вот.
сё что ты описал есть суть курса "Технологии разработки программного обеспечения".
1. Организация.
2. Анализ.
3. Структура.
4. Статическая/динамическая модель.
5. Тестирование.
6. Сопровождение.
7. Модернизация.
---------------
Всё это не просто.
В любом случае, опыт программирования на смежных языках и в смежных областях - необходим.
По поводу тестирования. В Python имеется модуль profile - предназначен как раз для процессов оптимизации. После несложной проработки можно ускорить процесс примерно в 1,5 1,7 раза.
Но не стоит увлекаться.
Так сказать, 80% времени занимает 20% кода
К сожалению, вынужден признать тот факт, что дела огородные и родильные меня полностью оторвали от написания кода. Кроме того, занимаюсь паралелльно переводом официальной документации по Python. Как многие могли заметить. Смежные занятия спортом носят характер откровенного косячества. Но всё-таки буду потихоньку топтаться в указанном направлении.
На вопросе решение проблемы: перевод символов Юникода в раскладки koi-8r и cp1251, т.к. сам Python - этого делать не умеет. А это - напряг.
AlexWeb:
_>> На вопросе решение проблемы: перевод символов Юникода в раскладки koi-8r и cp1251, т.к. сам
_>> Python - этого делать не умеет. А это - напряг.
_>Не гони
"Я тебе не гоню". (с) "Терминатор-3"
Если говорить о переводе из локальных кодировок в Юникод - Python справляется блестяще. А вот из Юникода, в обрат - это знаешь ли пока проблема. В сути конвертации кодировок ничего сложного нет, так что процесс идёт. Если говорить более строго, koi-84, cp1251 и cp866 - взаимно конвертируются без проблем.
http://www.fantom-lab.narod.ru/files/Client.zip здесь.
Общий вес архива - 20 кило.
Можно сказать, первая попытка встаривания плагинов.
В папке "Template" желающие могут обнаружить шаблон плагина.
Поповоду того, что Python не может конверитровать кодировки, к счастью, - я оказывается всё-таки прогнал.
Не совсем логично это у Python'а получается, но тем не менее - работает!!!!
-------------------------
"Как молоды мы были...."
На Python, кроме мульти-сервера Zope(Зоуп) есть несколько вполне милых вещей. Например, Spyce (текущая версия 2.1) - гораздо легче стартует, по объёму - смешной, по функционалу - весьма похож на IIS, но сделан специально для Python. Кроме того, в нете можно свободно скачать SmallHTTP Server - порядка 120 кило - ftp, http, DNS, proxy, gzip, smtp - ВСЁ в одном флаконе.
Под Python есть все средства чтобы сделать аналогичные вещи.
Люди,я вот щас в новостях слышал,что вышел обновлённый Ford Focus, системы которого управляются голосом. А в компьютерном деле с этим,как известно,напряг. Так я подумал: форд дерьмо на свою тачку не поставит,нельзя ли ту прогу выдрать с компа Форда Фокуса?
А с чего ты решил что это прога?
Скорее всего это аппаратно-программный комплекс
Про нормализацию ... не надо, если не делать потом жопа, я гомельской автошколе простой учёт делал из-за того что задача в процессе написания расширялась - нормализация кончилась, это жопа, на диплом полностью структуру переделывал
Денормализация иногда необходима. У меня был частный случай.
Всё хорошо в меру.
Люди кто хорошо знает delphi отзовитесь.Есть вопросы.
Рядом со мной три чела пишут на нем серьёзно. Что конкретно тебе нужно узнать?
Я злой Дельфин! В меру - Сишник, Явер, Яваскриптер, неплохо знаю ActionScript(встроеный во Flash)... а больше помоему ничего и не надо для счастья)))...
программирование - рулёза! программируя - развиваем мозги...
Ок. Кидай ссылки сюды.
Тока на рапиду не заливай
Привет программерам.Я вот тоже начинаю свой путь в большое программирование.Но вот не хватает общения с грамотными людьми.Сейчас в основном пишу на Delphi.Те кто реально в нем шарит прошу написать на аську 407902909.Есть вопросы.Заодно и опытом сможем обменятся.А то у меня знакомых толковых программистов маловато и иногда даже совета спорить не у кого...
Ну это вопрос кто из нас лентяй...Скорее это ты.Ты меня за дурака та не считай.Знаю я про эти форумы.Если тебе не охота на пару моих вопросов по аське ответить так бы и сказал...Я хотел сказать что просто ищу программеров с которыми можно нормально пообщаться.И почему я не могу найти их здесь как на любом нормальном форуме...Лучше бы сначала поговорил со мной а потом делал выводы.Торопишься ты слишком...
Шнапс, сказал то что сказал бы и любой в ответ на твой пост, есть вопросы задавай, почему тебе именно ася нужна, чего стыдишся?
И что значит "Знаю я эти форумы", чем тебя не устраивают специализированные ресурсы с документацией и форумом?
Дело в том,что мы с Максом сидим в инете с телефонов, а это неудобно по форумам лазать...
Пара книг, как и обещал:
Спасибо, сегодня закачаю.
Пороюсь еще у себя, если какую документацию найду - тож выложу.
Люди,подскажите, как сэмулировать игру со стар форс 3? Есть алкоголь 120%, демон туулз, неро и ещё какая-то прожка "StarFuckerRevolution". У меня опыта и мозгов не хватило, как ни пытался. И можно ли сделать полноценный образ,чтоб его на болванку потом?
И ещё: есть такая старая игрушка "Петька и Василий Иванович 2", так её тоже не получается сэмулировать. Такого никогда не бывало: ставлю в алкоголе скорость чтения субканальных данных на 1x,ставлю "измерять позиционную хрень",и всё прочее,и мне пишет "невозможно получить правильную [какую-то, забыл какую] инф. с диска",образ не работает.Эта хрень и с "П и В.И. спасают галактику", и с "П и В.И.: судный день".Оба диска же древние, почему последняя версия алкоголя не помогает? А так диски нулячие, без царапин.
Debian Project participates in Google's Summer of Code
...
Pavel Vinogradov will develop a status monitoring system for
security management of clusters of Debian systems. It is based on
the OVAL language, which provides a uniform mechanism to report on
and control security centrally.
...
http://wiki.debian.org/SummerOfCode2007
Наши тоже в Гугловском Кодирующем лете участвуют
CloneCD уж точно со старФорсом справиться не поможет, Алкоголь иногда помогает, но:
1. Дравера СтарФорс НЕ ДОЛЖНЫ стоять в системе.
2. Игра должна устанавливаться с виртуального CD.
3. Драйвера Алкоголя должны бвть сказёвые. Иначе не проканает.
----------------------------
Могу помаленьку подкзать в программировании на Python. Delphi никак принципиально. Если уж на то разговор пошёл - юзай Компонентный Паскаль (Оберон-2). Привет Вирту.
На днях, одному товарищу закончу писать систему тестирования знаний работников колёсно-роликового цеха вагонного депо Черняховск.
Ржач заключается в том, что Выньдовс позволяет выполнить операцию типа:
Некоторое время тому назад активно решил заняться разработкой программ в стиле MVC (Model-Viewer-Controller).
Такой подход обещает ряд заманчивых возможностей.
Так, например, Питон по умолчанию работает с Tcl/Tk. Но с точки зрения эргономики эти графические элементы мрачноваты. wxWidgets обладает на порядок большими возможностями, а qt - вообще родной для KDE.
И в каком-то смысле можно скомбинировать и то и другое. Но что делать если вдруг - wx или qt окажется диковинным зверем на машине?
Вот тут-то MVC будет в самый раз. Логика выносится отдельно, графика - отдельно. Вызовы перенаправялются в контроллере. Т. е. не меняя логику - можно менять графику. Это жесть.
Но хочу предостеречь тех кто решит заняться подобной ерундой - я начинал делать калькулятор на Питоне с помощью MVC через один глобальный контроллер (да и графику в том числе). Ничем хорошим, увы, это не закончилось.
ЛЮДИ! Не забывайте про факторизацию!
Упаковывайте ваши данные и процедуры в логически увязанные структуры - классы.
Скрывайте на разных уровнях элементарную логику от глобальной.
Иначе каши - не избежать. Привет поклонникам перловки.
Я не спорю, что сделать можно. Но то как это сделано в Перле - а ну бы его нафиг.
Если в Питоне класс определяется - то это культурно и красиво:
да нет рефакторинг, это другое http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D1%84%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3
его суть в пересмотре кода, улучшение модульности, читаемости и единообразия именований, причём это не привязано к языку, это общепрограммерский термин
Цитата:
На днях вренулся к вопросу изучения привязки библиотеки wx к Python`у - wxWidgets. В целом библиотека меня и раньше радовала, но теперь вижу ряд принципиальных возможностей по сравнению с Tcl\Tk - например, нехватает до ужоса метода Show()\Hide(). А тутась - можно скрыть фрейм Show(False). Ко всему прочему не могу сказать что стиль Set[Property]/Get[Property] плох - задание свойств явным образом привносит читаемость и прозрачность. Кроме того, куча виджетов+такие вещи, как диалог вывода на печать. Tcl\Tk таким похвалиться не может. Я догадываюсь почему - печать в стиле Unix позволяет сделать всё что угодно. Но про виндецовых пользователей тожа забывать не нада. Программа, которую я сейчас колбасю имеет возможность запускать везде, при наличии связки Python+wxWidgets. Раздельные версии не требуются.
Переходи на Qt4 (PyQt) она теперь тоже кроссплатформенная
Да всё это понятно.
Но не следует забывать, что для коммерческого использования требуется отдельная лицензия.
Деньги можно брать только за работу.
Впрочем, поверхностно знаком - весьма приличная вещь.
А компоновщик форм - вещь вообще волшебная.
Со временем - будем посмотреть.
Мужики! я в веб-программировании новичек... я подвис на Microsoft... под веб...
АСП.НЕТ - предоставляет богатейшие возможности для разработки сервеной части...
но беда в другом... меня забибикали эти постбаки, с постоянным обновлением всей страницы...
появились инструменты "типа AJAX"... но они внатуре только типа...
писать что-то AJAX подобное в Visual Studio - это писец.
скачал GWT... идея очень нравится. буду пробовать на нем разрабатывать клиентскую часть...
может кто еще что-нить посоветует? кто лично с чем то похожим работал...
Подсел тута на Application Google Engine. В текущей версии доступны Python 2.5 и Java (ограничения на сокеты, файловые операции, обращения к ОС - предоставляются собственные решения). Дисковое пространство - 500 МБ, 2 млн. тиков процессора за одно обращение (не обрывается процесс а зомбируется), одновременный возврат из GQL(аналог SQL, продвинутый) до 1000 объектов одним махом, разрешается на сервант заливать до 10 приложений одновременно. +с десяток АПИ на регистрацию пользователя, кеширование в памяти, фреймворк webapp+шаблоны +Django с мелкими ограничениями (шаблоны вертятся) +Python Imaging Library (извращения над графикой в широком диапазоне). Файлы хранятся как объекты в базе данных Google (масштабируется и балансируется).
------------------------
ИМХО, с этим стоит поработать.
Спасибо халявскому трафику - практически под завязку укомплектован пакетами для Python 2.6
В развёрнутом виде Python занимает 250 МБ. Отдельно считатю Eclipse, c его 130 МБ в zip-архиве.
В тоже время стокнулся с неприятным моментом. Мой pyStarter под Python 2.6 (после Python 2.4) не запускает программы..
И, похоже я нашёл причину:
Сегодня чего-то вспомнил старую фишку - прикол про Вконтакте. Там же типа такая хрень, что на главной странице работает Java Script, который через случайные промежутки времени рандомно увеличивает счёткик зарегистрированных пользователей Контакта, типа там на уже 140 миллионов, вся фигня. Как-то видел у Павла Дурова на странице (ну он кагбэ типа создатель контактов вроде как) такую занимательную заметку:
Дуров пацан не идейный, я помню его пост о том, что Вконтакте был и останется некоммерческой социальной сетью без рекламы. Кто сейчас хозяин этой овощебазы, я хз, но трендеть они могут что угодно. А Яваскрипт действительно присутствует...
Да можно просто число регистраций считать, хоть триггером, хоть кодом и складировать его в кеш, кстати сейчас льётся в myisam таблицу 36 миллионов записей для эксперимента, льётся медленно, завтра скажу за сколько count отрабатывает
Ещё льётся, но
mysql> select count(*) from vkontakte_count_test;
+----------+
| count(*) |
+----------+
| 21022718 |
+----------+
1 row in set (0.00 sec)
А вот если делать count по конкретному полю, то ждать долго, но понятное дело count тут не причём (при большой нагрузке он может быть не таким быстрым) - просто надо считать число регистраций и хранить его в кеше
Легче последний ID зарегистрированного юзера выводить, если там простой increment, то примерно правильное число и будет выходить, и запрос будет выполняться в н-раз быстрее каунта, все равно точно считать никто не будет.
select top 1 id from ContactVegetables order by ID desc
что-то типа того, если top есть в твоей СУБД.
А сколько такой запрос будет выполнятся, в mysql top вроде нет
mysql> select count(*) from vkontakte_count_test;
+----------+
| count(*) |
+----------+
| 36278013 |
+----------+
1 row in set (0.00 sec)
mysql> select id from vkontakte_count_test order by id desc limit 1;
+----------+
| id |
+----------+
| 36278013 |
+----------+
1 row in set (0.00 sec)
С виду разницы нет
Вот! Что и требовалось доказать! Даже если это высоконагруженная система, count(*) выполняется мгновенно, и никак её не засрёт. ИМХО.
Даже если Дуров писал базу сам, получить ответ сколько юзверей в базе, используя единственную переменную - ну это точно не проблема.
--------------
А теперь оприятном: в тырнете нашёл Python 2.4, Python 2.5, Python 2.6 - портируемые версии (в смысле, можно с флехи запускать). Решил остановить свой выбор на Python 2.5. Зипованный комплект (вместе с кучей компонентов) - 64 метра. Распакованный - 248. Пакеты добавляется к базовой версии методом укладывания в питоновскую папку C:\Python2.5\lib\site-package\... Создаётся папка-пакет и туда заваливается усё. Без компонентов питон весит 24 метра. Вот чего мне не хватало для моего мега-комбайна тотал-коламбур объёмом 1,4 гектара (в 7zip 480 мегабайт). Там есть всё: ОпенОфис, 7зип, ИнфраРекордер, СеаМонкей, Опера@УСБ и т. д. Кророче - это праздник!
Решил себе облегчить задачу отладки написуемых программ.
Но вот незадача: в консоли венды и никсов разные кодировки сплошь и рядом.
Решение дебаггера очевидно: нарисовал окно с выводом отладки в другом потоке, и другой сессии Tk. Ел уважает только юникод. Не могу сказать что это плохо, хотя требует некоторого напряжения мозга для перекодировки. Ко всему прочему теперь я логи могу сохранять и оценивать скорость выполнения тех или иных команд. (хотя в профилировщике питона для этого имеются собственные средства)
Замечательная вещь - элемент из Tkinter - Text и ScrolledText - позволяет тэгами размечать шрифт - цвет, размер, гарнитура. Ко всему прочему - можно внедрять изображения, кнопки и списки и всякую шняжку. Короче, сила. На базе текстого виджета на Питоне написан браузер Грааль. Во, мля! Пошёл качать сие чудо!
Под MOPS Linux из коробки правильно настроена русская локаль+железобетонные вещи свежайшего разлива. Порадовал дистр.
Увидел на днях два примера калькулятора. На Питоне, естессна.
Более сложный пример калькулятора понравился словарём со списком функций-обработчиков и указанием типов кнопок. Не понравилось: функция eval тупо считает всё, что ей скормят. Потенциально опасно.
Пишу тут одну программку:
И кого вы собрались подобрать? Блондинку с готовым паролем? Нафига?
Да так, ни о чём.
2 Brutall что-то не нравится мне твой код, сильно индюшатиной пахнет, какие-то бессмысленные циклы, я думаю надо было выделить осмысленные блоки в функции /методы, типо
сформироватьСтрокуЗапроса
выделитьВремяРазблокировки
и т.д.
worldmind тут прав.
Индюшатина не конченная, но на полпути - это да.
Брутфорс лучше, чем тупой перебор, но хуже чем SQL инъекция. Элементарно, нет пары скобок в запросе, и мюскля выпадает в осадок. Потроши, пока тёпленькая. НО! Не забываем и чтим уголовный кодекс. )))
Месяц назад достал меня на рабочем ноуте косяк венды с автозапуском. Сел я за дженни и поймал себя на мысли: этот редактор поддерживает по умолчанию utf8. Запускаю скрипт под линем, и что я вижу? Каким-то чудом, тандербирд (виндовый) запустился из-под вайна (хотя в скрипте я не указывал, что вайн потребуется). Через три минуты я забыл, что виндовый тандербирд работает из-под вайна, так зараза вписался в систему.
Я над этим работаю. Поскольку тандербирд портируемый, я могу через скрипт копировать базу туда-сюда-обратно до и после запуска. А так получается, конечно садо-мазо с вазелином.
А не проще в одной папке все оставить? Одни и те же пути прописать для виндового ТБ и для линуксового?
Объясняю. Как мысль - предложение верно.
Но фишка в том, что относительные пути под вендой работают косячно (зависит от версии венды). Пытался через системные переменные - UNC пути бывает также не катит (не все dll понимают (!!!???)). А в лине в этом плане проблем нет, если есть баш. Системную переменную создал, и вперёд. Вот и приходится извращаться. Тут ещё момент есть. Не все программы понимают разницу \r \r\n \n. Тоже приходится мудрить. Кодировки в меньшей степени, но тоже иногда заставляют поволноваться.
Как я понял приход в том, что ковыряя ТБ из под линукса, получаем проблему в путях из-за того, что пути в линуксе немного не в дисках начинаются. Ммм... ну окей кэп)) А если ковырять наоборот? В виннде ставим какой-нибудь софт, чтобы ТБ в винде видела раздел линукса, при этом в линуксе получается ничего ковырять не надо.
))) Таки, шаришь. Именно такую программу на питоне для автозапуска я и написал. ))) Тандербирд, Мозилла, ТинВНС, ПунтоСвичер, Смалл ШТТП сервер, Атомик лаярм клок и т. д. Надо - запустил. Не надо - убил. Но и в моём мегасборничке порядка 300 программ не требующих инсталляциия (гимп, опен офис, скрибус и т. д.) - очень удобно из одной проги пускать. Два файлика - main.bat и main.sh. Впрочем, у меня bash и под венду есть. Так что линь потихоньку вытесняет даже с рабочего ноута вынь.
Пример того, как Python на счёт раз работает с сетью. Официальная приблуда от промышленных весов, хоть тресни не принимает данные с весов старого образца. Пришлось допилить свой вариант. Ну, практически, уже работает. )))
Весы от Metller Toledo - побеждены. Осталось мелкие косячки прибрать - но уже программа работает как надо.
Даже справку мелкую встроил. Может в меню "О разработчиках" свою морду запихнуть?
Это гут, откроешь под свободной лицензией или продавать будешь?
Софт продаваться не должен! Сегодня же прямо здесь и выложу. Килобайт этак 20-40... Питон, сётаки.
Если бы начальство чего-то заплатило, и то не уверен, что был бы смысл закрывать прогу. Наверняка, у кого-нибудь тоже есть подобные проблемы. Мало кто решится расковыривать базу PostgreeSQL, чтобы выяснить внутреннюю структуру передаваемых данных. Кстати, сетевой сканер X-Spider зараза мне неправильно данные выдавал. Надо сбе свой сканер написать. Заготовочку как-то себе делал, когда в ж. д. сети хосты искал. Допилить до 100 потоков - как нефиг делать.
Выкладываю архивчег питоновских файлов для весов.
Запускать main.pyw!!!!
Есть там пару безобразных моментов, нет (пока лицензии ГПЛ в.2). Как допилю в более божеский вид - выложу.
В комплекте файл Imit_wes.py - имитирует работу весов. Тестовые, что называется - виртуальные.
Допилил окно помощи, и таки похулиганил - воткнул морду своего лица. Иконки окон поменял.
Дальше, конечно, GPL воткнуть надо.
Выкладывать надо на github, как например делал я со своим набором перловых тестов https://github.com/worldmind, заодно современную систему контроля версий освоишь - git
http://habrahabr.ru/blogs/Git/104198/
Не вижу смысла связываться с git. С одной стороны, я видимо, единственный человек, кто шкодит на Питоне в Черняховске. Во-вторых, у меня тощий инет - замучаюсь ждать, когда загрузится страница. Даже от этого форума. Ну и в-третьих, мне быстро надоедае текущая задача. Особенно, когда понятно, что близок финал. Хотя и нередки случаи, когда приходится бросать проект из-за туманных перспектив, нехватки времени, или просто потери мысли - "чего хотел сделать". Зачастую, проще начать заново, чем вспомнить, что нужно сделать. Ну, вот, весы например - сразу начал делать не в MVC, развивать дальше - будет тяжко. Хотя, конечно, я постараюсь привести клиент в божеский вид. Есть идея сделать единый воркспейс для кулькулятора, почтового клиента, удалённого логина и т. д. Но идея на столько объёмна, что здесь и подход совсем иной потребуется. Вплоть до того, что я на гугле завёл рабочий проект по проектированию ИДЕ на Питоне. Меня просто бесит невозможность в венде перемещать кнопки управления окном на заголовке. Вот этот моментик, я таки сделал в этом ИДЕ. )))) Дальше дело стопорнулось в полузародышевом виде, хотя шкода было уже прилично. Ладно, это всё планы. Надо GPL долепить. )))
Форум глючит. Почему-то открылось цитирование из другой темы в этом ответе.
Похоже, пора форуму переезжать на другой движок.
Выкладываю с GPL v.2
Так что, OpenSource сегодня обогатился очередной приблудой. )))
Надо бы дописать процедуру отсечения быстрых колебаний веса. Это повысит надёжность измерения ещё процентов на 15-20%. Ну, и будет уже практически потолок. )
Похоже, это уже близко к финальной версии тулзы.
Исправил пару косяков, кое-где зашлифовал нестыковки.
Таки добавил фильтр быстрых колебаний, что даёт правильность детектирования веса точно, ровно на столько, на сколько это может потребоваться на практике. Здесь главное самому правильно поставить пороговый вес, и пороговое время измерения. Тогда вероятность правильной работы я бы оценил 90-95%.
Ниже скрин программы.
Быстрый фильтр отсекает колебания веса, если это колебание зафиксировано за время меньшее, чем 7% от порога времени измерения, но не менее 20 секунд. Думаю, на практике этого будет достаточно. Так например вагон нагружается удобрениями порядка 40 минут. Реально, вагон туда-сюда передвигается. Поэтому пороговое время я беру 600 секунд (10 минут). 7% от этого времени составит 42 секунды. Что, по моему, вполне достаточно для отсечения случайных колебаний. Имитатор весов настроен на несколько секунд выдать массу в 4 раза больше, чем установившийся максимум на несколько секунд. Эта помеха не прокатывает.
Если считать, что помеха больше чем 100 кг на вагон действует 2-3 секунды с интервалом 10-15 секунд, то чтобы она была учтена потребуется в общей сложности от 2 до 5 минут. Если учесть, что толчки вагона распределяются по закона Гаусса, то уровень помехи будет зафиксирован где-то 0,7 от максимума помехи. Хотя, тут конечно не факт, и ещё над этим вопросом стоит подумать, так как характер помех для автомобильных весов, и ж. д. весов - очевидно отличается.
Доделал монитор. Вызвана необходимость из-за редких странных падений клиента. Теперь клиент весов завалить - надо постараться. Монитор в тихую перезапускает клиент, если нет ответа в течении 15 секунд.
Встроил в клиент веб-сервер. Висит на порту 1751, и каждые 5 секунд выкидывает страницу с состоянием весов. Пока оператор логи не очистит - все логи будут высвечиваться. Соответственно, обновлена справка.
Веб-сервер нужен, чтобы не нагружать выходы весов. Да и информация с них - неперевариваемая.
Кроме того, один пакет графики я не включал в архив, наивно полагая, что он у всех есть. А как он у всех будет, если я сам его написал!!! ))) Короче, исправляюсь.
Да тут размещать такой узкоспециализированный пакет не очень эффективно - скорее всего ни одному форумцу он не нужен, а для того чтобы нашли поиском может не хватить описания, может отдельную тему с подробным описанием сделай, хотя понятное дело есть есть желание его распространять и получать патчи и предложения, то надо и git и sourceforge юзать и пакеты для дистров делать
Да это дело - до ближашего паука. Ты попробуй погуглить на тему "mettler toledo ind310 программа для просмотра веса на ПК" Хрен чё есть. А то что есть - в виде com-драйвера за хорошую денюжку. Обломится юношам, которые этот драйвер написали. )))
Строго говоря, встраивать мыльный клиент в программу я уже не намерен. Дальше "АРВИ" эти данные всё-равно никому не нужны. Того, что есть - достаточно.
А вообще, я признаю, что я не самый дисциплинированный программист. Профессиональный спортсмен во мне, по сути не родился. В армии отслужил 9 лет и капитаном благополучно ушёл (вот это был, пожалуй акт осознанной личной и честной воли). Может депутат облдумы из меня получится лучше? )))))
Небольшой допил. Автовесы хитрым образом выдают информацию. В результате работы, общий алгоритм получения данных для автовесов даёт результат ноль. Пришлось ввести исключительную ситуацию. Плохо, что обработка зашита намертво, с другой стороны - код Питона - плоский текст. Имеющий руки да допилит. )))
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)