Wolfram Language, Mathematica, Wolfram Alpha и др.
96,93
рейтинг
28 июня 2014 в 21:04

Разработка → Подробный обзор Wolfram Programming Cloud (Облака Программирования Wolfram) tutorial



23 июня 2014 г., менее недели назад, после долгой разработки, вышел в свет новый продукт от компании Wolfram Research, который называется Wolfram Programming Cloud (Облако Программирования Wolfram). Об этом своем блоге написал Стивен Вольфрам и его пост был переведен на Хабрахабре.

Wolfram Programming Cloud позволяет вам программировать на языке Wolfram в любом браузере и с любого устройства, а также создавать готовые приложения (веб-формы ввода и скоро мобильные приложения), работать с прямым API, создавать автоматически генерируемые отчеты, отсроченные задания, веб-страницы, CDF и многое другое. При этом у всех желающих есть возможность попробовать и использовать Wolfram Programming Cloud бесплатно.

Мне бы хотелось поделиться с вами первым подробным видео-обзором на русском языке этого продукта, а также его реализации для обычного рабочего стола — Wolfram Desktop.



Из обзора вы узнаете о том, как работать с Wolfram Programming Cloud, создавать формы ввода и API, использовать Wolfram Desktop и пр.

В видео рассмотрены конкретные примеры работы в Облаке с географическими данными, API ВКонтакте, отправкой сообщений на e-mail из Облака, обработкой и подгрузкой изображений (как с устройств пользователя, так и из сети Интернет), применение встроенных функций Wolfram Language и др.

Основные коды на языке Wolfram, использованные в видео-обзоре:

График рельефа местности
CloudDeploy@FormFunction[
{"city" -> "ComputedCity"},
Module[{data},
data = GeoElevationData[GeoBoundingBox[GeoDisk[#city, Quantity[10, "Kilometers"]]]];
Grid[{{#city},
{ListPlot3D[data, MeshFunctions -> {#3 &}, Mesh -> {{1, 0}}, MeshStyle -> Thick,
ColorFunction -> ColorData["HypsometricTints"], ColorFunctionScaling -> False,ImageSize -> 600]}},
Alignment -> {Center,Center}]]&,
"HTML"]

Приложение для обработки изображений
im1=Import["путь к файлу или веб-ссылка"];

im2=Import["путь к файлу или веб-ссылка"];

images =RemoveAlphaChannel[ColorConvert[#, "RGB"] ,White]&/@{im1, im2};

webString[str_]:=StringReplace[ExportString[Cell[str], "HTML", "FullDocument" -> False],"<span>"|"</span>" -> ""]

CloudDeploy[
FormFunction[
{{"im1","Первая картинка"} -> "Image",
{"im2",webString@"Вторая картинка"} -> "Image"},
Module[{images,imDims,minX,minY,image,head},
images = RemoveAlphaChannel[ColorConvert[#, "RGB"] ,White]&/@{#im1, #im2};
imDims = ImageDimensions /@ images;
minX = Min[imDims[[;; , 1]]];
images = ImageResize[#, minX] & /@ images;
imDims = ImageDimensions /@ images;
minY = Min[imDims[[;; , 2]]];
Table[image[i] = ImageData[ImageCrop[images[[i]], {minX, minY}]], {i, 1, Length[images]}];
head = 1;
Image@Table[head = Replace[head, {1 -> 2, 2 -> 1}];image[head][[i, j]], {i, 1, minY}, {j, 1, minX}]]&,
"PNG",
AppearanceRules -> <|"Title" -> webString@"СМЕШИВАТЕЛЬ ИЗОБРАЖЕНИЙ",
"Description" -> webString@ "Выберите два изображения, смесь которых вы хотите получить.",
"SubmitLabel" -> webString@"Готово"|>]]

Работа с API ВКонтакте
$VkAPIAccessToken ="ваш accesstoken";

VkAPIMethod[method_, {options___}] := Module[{response},
"response" /.ImportString[URLFetch["https://api.vk.com/method/" <> method, "Parameters" -> {"access_token" -> $VkAPIAccessToken, options}], "JSON"]];

message :=
Module[{fromId, date, text, Body, Subject,password}, 
{currentId, fromId, date,text} = {"id", "from_id", "date", "text"} /.VkAPIMethod["wall.get", {"owner_id" -> "-1172233", "offset" -> "0","count" -> "1"}][[2]];
Body = ToString[TableForm@{Row[{"От пользователя: ","http://vk.com/id" <> ToString@fromId}],
DateString[AbsoluteTime[{1970, 1, 1, 0, 0, 0}] + date, {"Hour", ":","Minute", ":", "Second", " ", "Day", ".", "Month", ".","Year"}], text}];
Subject ="Новое сообщение в группе Русскоязычной поддержки Wolfram Mathematica ВКонтакте";
password = CloudSymbol["pass"];
If[currentId === lastId, Null,
SendMail["To" -> "r.a.osipov@gmail.com", "Subject" -> Subject,"Body" -> Body, "Password" -> password];
lastId = currentId]]

message;


Надеюсь, что этот видео-обзор заинтересует вас и позволит вам быстрее начать работать с Wolfram Programming Cloud!
Автор: @OsipovRoman
Wolfram Research
рейтинг 96,93
Wolfram Language, Mathematica, Wolfram Alpha и др.

Комментарии (5)

  • 0
    Вопрос быть может несколько не в тему, но я попробую: Вы выкладываете безо всяких проблем исходный код. Когда же речь идёт об исходных данных вот тут, то авторы этого не делают.
    Можно пояснить, в чём разница?
    • 0
      В официальном блоге почти всегда выкладывается исходный код (он прикладывается обычно в конце поста в виде документа CDF или NB). К тому же большие куски исходного кода там доступны (правда в виде картинок). Почему обычно посты о Wolfram сопровождаются кодом с картинками? — все дело в том, что исходный код (его FullForm или InputForm) чаще всего выглядит немного и сильно иначе, чем то, что отображается для удобства и естественности интерфейса у пользователя, скажем в Mathematica. Поэтому делается картинка, при нажатии на которую вы можете скопировать в открывшемся меню код, котырый при копировании в Mathematica или другой продукт Wolfram автоматически становится «красивым». Это все следствие символьной парадигмы языка.

      Думаю в конкретно этой статье код не приложен по нескольким соображениям: 1) он написан в Mathematica 10, а она еще не вышла, следовательно простое копирование приведет к тому, что ничего не заработает. Другое дело, что уже сейчас все это будет работать в Wolfram Programming Cloud; 2) он может использоваться букмейкерами или мошенниками; 3) возможно там есть интеллектуальная собственность Этьена. Но вообще, почти всегда код в оф. блоге, повторюсь, прикладывается.
      • +3
        Ну там речь заходила о том, что у букмекеров (как у людей, которые на этом зарабатывают), прогнозы поточнее будут :)

        А в чём в данном случае может выражаться интеллектуальная собственность? Это же алгоритм?
  • 0
    Печально что некоторые интересные примеры из галереи не работают «из коробки».
  • 0
    Не могли бы Вы рассказать об ограничениях бесплатного использования.

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

Самое читаемое Разработка