7
$\begingroup$

I have:

Fence[content_, length_] := Column[{
   Grid[Partition[Characters[content], UpTo[length]]],
   Grid[{Select[
      Flatten[Transpose[
        PadRight[
         Partition[Characters[content], 
          UpTo[length]], {Ceiling[Length[Characters[content]]/length],
           length}, "@@"]]], # != "@@" &]}]
   }]
Mani[content_] := 
 Manipulate[Fence[content, x], {x, 1, Length[Characters[content]], 1}]

Then test it in my desktop Mathematica and everything goes well:

enter image description here

So I deploy:

CloudDeploy[Mani["0123456789"], Permissions -> "Public"]
CloudObject["https://www.wolframcloud.com/objects/ea1707d8-8c50-4926-bfad-207c5c1c1430"]

But it seems doesn't evaluate my function(Fence):

enter image description here

$\endgroup$

1 Answer 1

8
$\begingroup$

Documentation and Details ans Options section for CloudDeploy are saying:

CloudDeploy[expr,...] automatically deploys all definitions needed to evaluate expr, much like CloudSave.

and as we can see, it's not the case here. Or, it's a feature of Manipulate which boxes definitions are got by FrontEnd so maybe evaluation doesn't apply here.

At the end, you can force them to be remembered by using SaveDefinitions:

Mani[content_] :=  Manipulate[
  Column@{Fence[content, x], DownValues@Fence}, 
  {x, 1, Length[Characters[content]], 1}, 
  SaveDefinitions -> True
]

enter image description here

$\endgroup$
7
  • $\begingroup$ Thanks! I find you changed my code a little(Looks cleaner than mine). Could you please post it in your answer? $\endgroup$
    – Sayalic
    Commented Jan 24, 2016 at 9:11
  • $\begingroup$ @Sayakiss I only added Column with Fence definitions for preview. $\endgroup$
    – Kuba
    Commented Jan 24, 2016 at 9:16
  • $\begingroup$ I find my cloud app is very slow, how to optimize my code to get an more fluent app? $\endgroup$
    – Sayalic
    Commented Jan 24, 2016 at 9:16
  • $\begingroup$ @Sayakiss You can't, each time something is meant to be updated it has to call cloud and send results to you. $\endgroup$
    – Kuba
    Commented Jan 24, 2016 at 9:16
  • 1
    $\begingroup$ It's really disappointing... I think I should deploy a simple HTML page with a single JavaScript to do that task.. $\endgroup$
    – Sayalic
    Commented Jan 24, 2016 at 9:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.