Pull to refresh

Коридор

Reading time3 min
Views563
imageПривет Хабр, пользуясь ситуацией не упущу момент поздравить тебя с днем знаний, и спешу представить на суд Линча наш новый тестируемый проект связанный с этим праздником.

Что такое?


Начну с разъяснения названия — Итак, что же такое коридор?! В соответствии со словарём Ожегова одно из значений этого слова – «узкое, длинное пространство, соединяющее собой что-либо». Что же соединяет наш коридор? И почему в его конце, как и в конце всем известного туннеля, горит свет? Этот коридор предназначен для того, чтобы соединить тех, у кого есть проблемы с обучением в университете, и тех, кто может помочь в преодолении таких проблем. Если Вы по каким-либо причинам не можете или не хотите выполнить курсовую работу, типовой расчёт, реферат и т.п. Или наоборот, вы можете предложить свои услуги в их выполнении, то Вам в наш коридор!


Как нам кажется проект должен быть востребован, т.к. учась на далеком 1 курсе я практически не закрывал ближе к сессии синее окно TC делая курсовые и лабораторные сокурсникам, думаю многие из нас могут похвастаться таким опытом.
За избежанием недоразумений, сразу оговорюсь, надеюсь среди хабровчан не будет «заказчиков» в нашем проекте.

Коротко о главном


На проекте (как на большинстве фриланс-бирж) есть два вида пользователей: заказчики и исполнители. Первые могут добавлять заказы (проекты) комментировать исполнителей и голосовать за них, вторые — отвечать на заказы, «специализироваться» на какой то области знаний, и, собственно эти заказы выполнять).
Так же по URLу заказа и исполнителя привязана картинка с QR-кодом, для того чтобы можно было пиарить свои услуги крутого физика/математика/химика/биолога/ит.д. еще и в оффлайне, где пока вся учеба в ВУЗе и происходит.

Интересности


Еще есть маленькая — фишка, с помощью который можно взять интеграл (символьное интегрирование при помощи вольфрама), однако, получить API-key для использование полноценных api в вольфраме мне так и не удалось, поэтому сейчас все работает через самизнаетекак (исходя из подынтегрального выражения в код динамически подключается js скрипт, который представляет собой объект, созданный по строкам ответа вольфрама на этот запрос (т.к. послать запрос на прямую вольфраму не позволяет политика безопасности браузера), далее мы просто парсим этот вывод и рисуем картинку с интегралом). Дабы то, что написано сверху было более понятно:
подключаем js скрипт с помощью вот этой функции
function include_rpc(script_filename){
  var html_doc = document.getElementsByTagName('head').item(0);
  var js = document.createElement('script');
  js.setAttribute('language', 'javascript');
  js.setAttribute('type', 'text/javascript');
  js.setAttribute('src', script_filename);
  html_doc.appendChild(js);
  js.onload = function(){
    //тут парсим выводим и т.д.
    InterView();
    }
  return false;
}


* This source code was highlighted with Source Code Highlighter.


с таким URLом

include_rpc('http://gopnikam.net/cgi-bin/ACD.js?headers=(Content-Type=text/xml)&uri=(http://www.wolframalpha.com/input/?i=Integrate[' + func + '%2C' + def + '])');

по этому адресу наш ждет файл библиотеки AJAX Cross Domain
Это скрипт на perl, который обращается к серверу вольфрама по http передает все параметры нашего интеграла и формирует вывод в виде объекта js. Для того чтобы работать нормально с несколькими URLами надо немного подточить напильником, и изменить время ожидания ответа. Вывод примерно такой

var ACD = new Object();
// ----------------------------------------------------------------
// ACD.request - FULL REQUEST THAT WAS SENT
// ----------------------------------------------------------------
ACD.request = '';
ACD.request += 'GET http:\/\/www.wolframalpha.com\/input\/?i=Integrate[%27%20+%20func%20+%20%27%2C%27%20+%20def%20+%20%27]\r\n';
ACD.request += 'Range: bytes=0-10239999\r\n';
ACD.request += 'User-Agent: Mozilla\/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.3pre) Gecko\/20090822 Ubuntu\/9.04 (jaunty) Shiretoko\/3.5.3pre FirePHP\/0.3\r\n';
ACD.request += 'Content-Type: text\/xml\r\n';
......

* This source code was highlighted with Source Code Highlighter.

Далее думаю понятно что с этим делать.

И что с того?


Идея приходят не по расписанию, и идея написать что-то подобное пришла в конце августа, ну естественно хотелось успеть к 1 сентября, поэтому вероятность появления мерзких багов ненулевая, для этого собственно и обратился за помощью к вам, уважаемые хаброколлеги.
Tags:
Hubs:
Total votes 19: ↑9 and ↓10-1
Comments11

Articles