<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="https://community.wolfram.com">
    <title>Community RSS Feed</title>
    <link>https://community.wolfram.com</link>
    <description>RSS Feed for Wolfram Community showing ideas tagged with Product Set Up sorted by active.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3201543" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3254456" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1266184" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3103515" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1290781" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2167291" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2570909" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2565612" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2561290" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2396714" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1951871" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/157340" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1855244" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1028536" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1717637" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1315124" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1280603" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/930559" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/871482" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/828333" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3201543">
    <title>Setup local AI with Ollama and Wolfram: A step-by-step guide for configuring on Windows systems</title>
    <link>https://community.wolfram.com/groups/-/m/t/3201543</link>
    <description>![Setup local AI with Ollama and Wolfram: A step-by-step guide for configuring on Windows systems][1]&#xD;
&#xD;
# Ollama setup (post-it note instructions)&#xD;
&#xD;
Set a Windows User Environment Variable OLLAMA_ORIGINS with a value of * (Start -&amp;gt; Settings -&amp;gt; System -&amp;gt; About -&amp;gt; Advanced System Settings (on the right) -&amp;gt; Advanced (tab) -&amp;gt; Environment Variables -&amp;gt; Add a new one on top)&#xD;
&#xD;
Here&amp;#039;s your HTTP request. The &amp;#034;ExportString&amp;#034; is the magic:&#xD;
&#xD;
    ollamaHttpRequest[model_, contextSize_, context_, seed_, streaming_, &#xD;
           prompt_] := HTTPRequest[&amp;#034;http://127.0.0.1:11434/api/generate&amp;#034;,&#xD;
           &amp;lt;|&amp;#034;Method&amp;#034; -&amp;gt; &amp;#034;POST&amp;#034;,&#xD;
            &amp;#034;Headers&amp;#034; -&amp;gt;&#xD;
             &amp;lt;|&amp;#034;Content-Type&amp;#034; -&amp;gt; &amp;#034;application/json&amp;#034;|&amp;gt;,&#xD;
            &amp;#034;Body&amp;#034; -&amp;gt; ExportString[&#xD;
              &amp;lt;|&amp;#034;model&amp;#034; -&amp;gt; model,&#xD;
               &amp;#034;prompt&amp;#034; -&amp;gt; prompt,&#xD;
               &amp;#034;context&amp;#034; -&amp;gt; context,&#xD;
               &amp;#034;stream&amp;#034; -&amp;gt; streaming,&#xD;
               &amp;#034;options&amp;#034; -&amp;gt;&#xD;
                &amp;lt;|&amp;#034;seed&amp;#034; -&amp;gt; seed,&#xD;
                 &amp;#034;num_ctx&amp;#034; -&amp;gt; contextSize|&amp;gt;|&amp;gt;,&#xD;
              &amp;#034;JSON&amp;#034;]|&amp;gt;];&#xD;
&#xD;
Do a URLRead on that to send it to Ollama and you get an object from Ollama you can parse (should give you a &amp;#039;200&amp;#039; status server code).&#xD;
&#xD;
Here&amp;#039;s how you parse a non-streaming response:&#xD;
&#xD;
    ollamaReadSingle[ollamaHttpResponse_] := &#xD;
      Association[ImportString[ollamaHttpResponse[&amp;#034;Body&amp;#034;], &amp;#034;JSON&amp;#034;]];&#xD;
&#xD;
And here&amp;#039;s how you parse a streaming one:&#xD;
&#xD;
    ollamaReadStreaming[ollamaHttpResponse_] := &#xD;
      Association[#] &amp;amp;@ImportString[#, &amp;#034;JSON&amp;#034;] &amp;amp; /@ &#xD;
       StringSplit[ollamaHttpResponse[&amp;#034;Body&amp;#034;], &amp;#034;\n&amp;#034;];&#xD;
&#xD;
Confirming this doesn&amp;#039;t to async responses yet (so you will wait even if you put in &amp;#034;streaming&amp;#034; unless you figure that part out).&#xD;
Didn&amp;#039;t see this anywhere else. As much fun as it is being the only person in the world with a barely-working prototype...&#xD;
&#xD;
# Streaming Chat Setup&#xD;
&#xD;
I am under the impression there is more interest in using Ollama with Mathematica. I&amp;#039;ve got quite a few features working, and would like to share. The idea with this is if you&amp;#039;re a grad student or armchair researcher, you can get up and running with Ollama and start experimenting today.&#xD;
&#xD;
If you&amp;#039;re not using Ollama, it is available at [ollama.com][2]. It is a free and runs AIs locally on your computer (with extensive use of your graphics card to generate responses).&#xD;
&#xD;
Attached is a notebook with an extensible framework that I hope will permit further experimentation with GPTs. Some features are included already. It&amp;#039;s tested, but not extensively. **Instructions are for Windows**, however there are parallel functions and features for Mac and Linux (and these instructions are also much more extensively covered online).&#xD;
&#xD;
All this model does is stream chat requests - it does not pull additional models, list what models you have, or run any other commands besides sending a streaming chat request (though it should be relatively easy to extend these features).&#xD;
&#xD;
**Crash Course**&#xD;
&#xD;
If you&amp;#039;re already using Ollama, the crash course is to run the commands to load the model names, variables, and functions in the &amp;#034;Run Once&amp;#034; section, then scroll down to the bottom and enjoy. You may need to add an &amp;#034;OLLAMA_ORIGINS&amp;#034; environment variable (detailed below).&#xD;
&#xD;
If this is your first time using Ollama, you will want to use Powershell to download at least one model file (this contains all the weights [the &amp;#034;brains&amp;#034;] of the AI). You should also attempt to start a Powershell chat session with the model to make sure it is returning responses, and there is no issue with Ollama failing to run.&#xD;
&#xD;
If you are having issues running Ollama commands from Powershell, see if you can navigate to the installation folder, typically %AppData%\Local\Programs\Ollama, and attempt to run the commands there. If commands work from the Ollama installation folder, then the Ollama path is likely missing from your &amp;#034;Path&amp;#034; environment variable.&#xD;
&#xD;
**Ollama Environment Variables**&#xD;
&#xD;
Unless you do application configuration for a living, this is probably your first time hearing about environment variables. There are a few that you&amp;#039;ll want to set / unset / know what they do.&#xD;
&#xD;
To get into these (on Windows 10), go to Start -&amp;gt; Settings -&amp;gt; System -&amp;gt; About, and click &amp;#034;Advanced system settings&amp;#034; on the right. On the &amp;#034;System Properties&amp;#034; window, go to the &amp;#034;Advanced&amp;#034; tab and click &amp;#034;Environment Variables&amp;#034;. You should get the following window:&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
(I removed my system irrelevant variables for obvious security reasons, but you should have a lot.)&#xD;
&#xD;
You may click &amp;#034;New&amp;#034; to add further variables. You will need to add &amp;#034;OLLAMA_ORIGINS&amp;#034; and set the value to &amp;#034;*://localhost&amp;#034; as in the example so that Ollama is allowed to receive connections from your own computer.&#xD;
&#xD;
If you click on &amp;#034;Path&amp;#034; and click &amp;#034;Edit&amp;#034;, you may have the path to the Ollama install directory in here. This allows Powershell, the Run dialog, and other things to run Ollama without needing to reference the entire folder path in the command line.&#xD;
&#xD;
&amp;#034;OLLAMA_MODELS&amp;#034; will let you specify a different directory to download models into.&#xD;
&#xD;
Lastly, please confirm that Mathematica is allowed to access the Internet (on version 12, this option is under Edit -&amp;gt; Preferences -&amp;gt; Internet &amp;amp; Mail).&#xD;
&#xD;
**Building Ollama HTTP Requests**&#xD;
&#xD;
Most of the HTTP request is built using Mathematica association datatypes - this is mostly just a list where values are assigned to a named &amp;#034;key&amp;#034; as well as maintaining an array position, and can be called by the name of the key.&#xD;
&#xD;
Same as I&amp;#039;ve mentioned in an earlier post, the secret to getting the HTTP requests to work is to export *just the body* of the HTTP request association to JSON:&#xD;
&#xD;
    ollamaHttpRequest[bodyAssociation_] :=&#xD;
      HTTPRequest[&amp;#034;http://127.0.0.1:11434/api/generate&amp;#034;,&#xD;
       &amp;lt;|&amp;#034;Method&amp;#034; -&amp;gt; &amp;#034;POST&amp;#034;,&#xD;
        &amp;#034;Headers&amp;#034; -&amp;gt; &amp;lt;|&amp;#034;Content-Type&amp;#034; -&amp;gt; &amp;#034;application/json&amp;#034;|&amp;gt;,&#xD;
        &amp;#034;Body&amp;#034; -&amp;gt; ExportString[bodyAssociation, &amp;#034;JSON&amp;#034;]|&amp;gt;];&#xD;
&#xD;
This portion works for streaming responses as well as single-body responses.&#xD;
&#xD;
The notebook attached builds the request in phases using a temporary association variable, beginning with a basic request saved to a temporary variable, and **appending** further body tags to that temporary variable before returning it as the result of the function:&#xD;
&#xD;
    ollamaHttpRequestBody[ollamaOptions_] :=&#xD;
    (&#xD;
        ollamaTempHttpRequestBody =&#xD;
            &amp;lt;|&amp;#034;model&amp;#034; -&amp;gt; ollamaInputModelString,&#xD;
                &amp;#034;prompt&amp;#034; -&amp;gt; ollamaInputFuncUserPromptString,&#xD;
                &amp;#034;stream&amp;#034; -&amp;gt; True,&#xD;
                &amp;#034;keep_alive&amp;#034; -&amp;gt; ollamaInputKeepAliveString,&#xD;
                &amp;#034;options&amp;#034; -&amp;gt; ollamaOptions|&amp;gt;;&#xD;
            &#xD;
            (* Context - Included if not empty *)&#xD;
            If[ollamaUseContext &amp;amp;&amp;amp; (ollamaVarCurrentConversationList != {}),&#xD;
                ollamaTempHttpRequestBody = &#xD;
                Append[ollamaTempHttpRequestBody, &#xD;
                &amp;#034;context&amp;#034; -&amp;gt; ollamaInputFuncSelectedContext]];&#xD;
            &#xD;
            (* Template *)&#xD;
            If[ollamaUseTemplate,&#xD;
                ollamaTempHttpRequestBody = &#xD;
                Append[ollamaTempHttpRequestBody, &#xD;
                &amp;#034;template&amp;#034; -&amp;gt; ollamaInputTemplateString]];&#xD;
            &#xD;
            (* System Prompt *)&#xD;
            If[ollamaUseSystem,&#xD;
                ollamaTempHttpRequestBody = &#xD;
                Append[ollamaTempHttpRequestBody, &#xD;
                &amp;#034;system&amp;#034; -&amp;gt; ollamaInputSystemPromptString]];&#xD;
            &#xD;
            (* Image - Included if this model is a vision model *)&#xD;
            If[ollamaUseImage &amp;amp;&amp;amp; &#xD;
                ollamaFuncIsBoolVision[ollamaInputModelString], &#xD;
                ollamaTempHttpRequestBody = &#xD;
                Append[ollamaTempHttpRequestBody, &#xD;
                &amp;#034;images&amp;#034; -&amp;gt; ollamaInputFuncImageList]];&#xD;
            &#xD;
            (* Include further body tags in here *)&#xD;
            &#xD;
            (* This returns just the temporary HTTP request body association \&#xD;
            variable as the result of the function *)&#xD;
            ollamaTempHttpRequestBody&#xD;
    );&#xD;
&#xD;
The &amp;#034;Options&amp;#034; portion of the request is built much the same way, as are the image and prompt parsing functions. This is done to allow easy extensibility - simply include an additional Boolean flag and pass the prompt or image to a manipulation function.&#xD;
&#xD;
**Saving Information**&#xD;
&#xD;
The notebook will save the contents of each query, and can be further extended to save further information by passing variables to Current Query Association variable (such as image sizes and CRC32 file hashes), as demonstrated below in the image builder.&#xD;
&#xD;
This function will take an input of a list of paths of images, and first import the files so the files can have information saved (such as the size and hash), and then are converted into raw images so they can be manipulated, resized and the like, and then re-exported into JPG format for use as input into Ollama:&#xD;
&#xD;
    ollamaInputFuncImageList := (&#xD;
       (* Appends the image paths to the query *)&#xD;
       ollamaVarCurrentQueryAssociation = &#xD;
        Append[ollamaVarCurrentQueryAssociation, &#xD;
         &amp;#034;imagePaths&amp;#034; -&amp;gt; ollamaVarImagePathsString];&#xD;
       &#xD;
       (* Splits the single string list of files up at the semicolons \&#xD;
    into a list of file paths *)&#xD;
       ollamaTempFilePathsList = &#xD;
        ollamaFuncGetImagePathsStringList[ollamaVarImagePathsString];&#xD;
       &#xD;
       (* Entire image files are imported as binary objects *)&#xD;
       ollamaTempImageFileList = &#xD;
        ByteArray /@ (Import[#, &amp;#034;Byte&amp;#034;] &amp;amp; /@ ollamaTempFilePathsList);&#xD;
       &#xD;
       (* Appends the size of the images to the current query association \&#xD;
    *)&#xD;
       ollamaVarCurrentQueryAssociation = &#xD;
        Append[ollamaVarCurrentQueryAssociation,&#xD;
         &amp;#034;imageFileSizes&amp;#034; -&amp;gt; (Length[#] &amp;amp; /@ ollamaTempImageFileList)];&#xD;
       &#xD;
       (* Also appends a list of file hashes *)&#xD;
       ollamaVarCurrentQueryAssociation = &#xD;
        Append[ollamaVarCurrentQueryAssociation,&#xD;
         &amp;#034;imageHashesCRC32&amp;#034; -&amp;gt; (ollamaFuncImageFileHashString[#, &#xD;
              &amp;#034;CRC32&amp;#034;] &amp;amp; /@ ollamaTempImageFileList)];&#xD;
       &#xD;
       (* The binary object image files are imported again in the image \&#xD;
    format, so it is now editable by image functions *)&#xD;
       ollamaTempImagesList = &#xD;
        ImportByteArray[#] &amp;amp; /@ ollamaTempImageFileList;&#xD;
       &#xD;
       (* This runs all the edits we want to apply to our images *)&#xD;
       ollamaTempImagesList = &#xD;
        ollamaFuncAlterImage[#] &amp;amp; /@ ollamaTempImagesList;&#xD;
       &#xD;
       (* Returns the list of images for inclusion in the HTTP request *)&#xD;
    &#xD;
       &#xD;
       ToCharacterCode[ExportString[#, &amp;#034;JPG&amp;#034;]] &amp;amp; /@ ollamaTempImagesList);&#xD;
&#xD;
**Receiving Streaming Responses**&#xD;
&#xD;
On URL submission, the Ollama server will begin returning responses. HTTP requests can be manually submitted via the use of the URL Submit function (however this notebook will call the URL Submit function with a number of other helper functions):&#xD;
&#xD;
    ollamaVarResponseTask = URLSubmit[&#xD;
       ollamaHttpRequest[ollamaTempHttpRequestBody],&#xD;
       HandlerFunctions -&amp;gt; &amp;lt;|&#xD;
         &amp;#034;HeadersReceived&amp;#034; -&amp;gt; (ollamaFuncHandlerHeaders[#Headers] &amp;amp;),&#xD;
         &amp;#034;BodyChunkReceived&amp;#034; -&amp;gt; (ollamaFuncHandlerBodyChunks[#BodyChunk] \&#xD;
    &amp;amp;),&#xD;
         &amp;#034;ConnectionFailed&amp;#034; -&amp;gt; (Print[&#xD;
             &amp;#034;Connection Failed: Ollama is probably not running.&amp;#034;] &amp;amp;),&#xD;
         &amp;#034;TaskFinished&amp;#034; -&amp;gt; (ollamaFuncHandlerTaskFinished &amp;amp;),&#xD;
         &amp;#034;TaskStatusChanged&amp;#034; -&amp;gt; (ollamaFuncHandlerTaskInterrupt[#Task, \&#xD;
    #TaskStatus] &amp;amp;)&#xD;
         |&amp;gt;,&#xD;
       HandlerFunctionsKeys -&amp;gt; {&amp;#034;BodyChunk&amp;#034;, &amp;#034;Headers&amp;#034;, &amp;#034;Task&amp;#034;, &#xD;
         &amp;#034;TaskStatus&amp;#034;}];&#xD;
&#xD;
&#xD;
When setting up the URL Submit, you will *want* to save the URLSubmit command to a variable to keep track of the &amp;#034;task&amp;#034;. This task variable may be used later to interrupt the query by the use of the &amp;#034;TaskRemove&amp;#034; function.&#xD;
&#xD;
For a streaming response, URL Submit will need to be provided with &amp;#034;handler functions&amp;#034;, and &amp;#034;handler function keys&amp;#034;.&#xD;
&#xD;
Handler functions are called when certain HTTP events take place, such as a body chunk is received (usually containing a single token), when the response is finished, interrupted, when headers are received, etc.. Handler function keys are values passed with the event.&#xD;
&#xD;
A simple example is the headers handler, which just saves the returned headers into the current query association under the &amp;#034;headers&amp;#034; key:&#xD;
&#xD;
    ollamaFuncHandlerHeaders[&#xD;
       headers_] := (ollamaVarCurrentQueryAssociation = &#xD;
         Append[ollamaVarCurrentQueryAssociation, &amp;#034;headers&amp;#034; -&amp;gt; headers];);&#xD;
&#xD;
It is okay to receive responses just as a string without attempting to import them from JSON into an association, especially when debugging.&#xD;
&#xD;
**Issues &amp;amp; Future Work**&#xD;
&#xD;
There may be some issues with the body chunks received. Some may be sent back empty, and some may be sent back incomplete (with the completed portions sent in subsequent body chunk responses). The notebook attached will parse some of these issues, but it seems like some new models can introduce new issues.&#xD;
&#xD;
There are further notes within the notebook detailing how to tell if it&amp;#039;s running, how to handle crashes and the like. Mostly you&amp;#039;ll want to check your graphics usage, specifically the &amp;#034;Cuda&amp;#034; usage, but there are other signs things are working or not.&#xD;
&#xD;
&#xD;
Please feel free to extend &amp;amp; upload the attached notebook at will. I won&amp;#039;t be adding features, but if there are errors or bugs I may fix them &amp;amp; reupload (it&amp;#039;s a lot of code, I&amp;#039;m sure I&amp;#039;ve missed some things, but I feel like this is good enough to publish at present).&#xD;
&#xD;
# Setup and usage details&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][4]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=Image20241018183644.jpg&amp;amp;userId=20103&#xD;
  [2]: http://ollama.com&#xD;
  [3]: https://community.wolfram.com//c/portal/getImageAttachment?filename=EnvironmentVariables.png&amp;amp;userId=2392475&#xD;
  [4]: https://www.wolframcloud.com/obj/68e4cc4b-ea49-495f-8540-215467295fc6</description>
    <dc:creator>Cameron Kosina</dc:creator>
    <dc:date>2024-06-29T06:07:36Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3254456">
    <title>Wolfram Prerelease is open to new beta testers</title>
    <link>https://community.wolfram.com/groups/-/m/t/3254456</link>
    <description>**Wolfram Prerelease** is open to new beta testers! Your feedback will be very useful and will improve future releases of Wolfram products.&#xD;
&#xD;
If you&amp;#039;re interested in participating in this program and receive the latest builds, please apply by sending an email to prerelease@wolfram.com with a self-intro and license number if you&amp;#039;re an existing customer.</description>
    <dc:creator>Jay Yao</dc:creator>
    <dc:date>2024-08-23T19:30:12Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1266184">
    <title>Solved: Linux Interface Toolbar and Font Size</title>
    <link>https://community.wolfram.com/groups/-/m/t/1266184</link>
    <description>Thought I&amp;#039;d post something I was struggling with in order to get Mathematica (and any sub-menus it might launch) to display correctly on high resolution monitors in Linux.&#xD;
&#xD;
The default ScreenResolution is 72dpi in a newly installed Mathematica. My monitor (and almost all modern monitors) use a higher resolution. In my case 96dpi. This means that everything rendered is tiny (it renders to 72/96 of what it was intended to run at). Controlling some fonts fails to control sizes in menus, icons, and tool bars in general. Bits and pieces of Mathematica can be enlarged through font or ScreenResolution changes, but it is difficult at best to get even part of what is too small back to a normal size. So here is how to fix this with a single step...&#xD;
&#xD;
Setting environment variables like this will fix the issue...note that 96/72, the dpi of actual monitor versus what seems to sometimes be hard coded into Mathematica, is about 1.33. This will correct the issue if starting on command line:&#xD;
&#xD;
    QT_AUTO_SCREEN_SCALE_FACTOR=1 QT_SCALE_FACTOR=1.33 Mathematica &amp;amp;&#xD;
&#xD;
Starting Mathematica like this will allow the palettes, icons, buttons, and window frames to enlarge uniformly.</description>
    <dc:creator>Dan Stimits</dc:creator>
    <dc:date>2018-01-16T02:04:25Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3103515">
    <title>Installing ARM Mathematica Version with GUI on  Android Devices using Termux-x11</title>
    <link>https://community.wolfram.com/groups/-/m/t/3103515</link>
    <description>This is a guide for installing Mathematica ARM Version (Raspberry Pi) on Android devices with a full GUI. The guide assumes that one has Termux-x11 and proot-distro working in order to have a GUI. You are required to have a Mathematica key for Linux to activate.&#xD;
&#xD;
[Termux][1] and [Termux-x11][2] are a terminal and x11-forwarding implementation for Android devices. There is no root requirement, thus the security of your device will not be compromised. Please refer to these guides in order to install and get them working.&#xD;
&#xD;
[Proot-distro][3] is a quick way to get a linux distro to work on Android devices. It is not a virtual machine because all installed distros are the ARM64 version to work with most phones/tablets&amp;#039; processors. Rather, proot-distro is a container environment manager, handling/hijacking system IO and storage to emulate chroot and mount for non-rooted devices, thus if your device is rooted, you do not need to install proot-distro. Because it is not a virtual machine, you have almost full processing speed except for the IO hijacking, giving a minor hit to the performance. However, as long as the calculation in Mathematica does not involve a lot of IOs, performance is very decent. Please follow the guide and install the debian (for rooted device, install debian using whatever you want). &#xD;
&#xD;
Here, we need debian because the ARM version of Mathematica is built for Raspbian originally, which is debian-based, thus using debian via proot-distro helps to handle some system dependents that native Termux does not have. It is my goal in the future to have Mathematica working natively on Termux to get native performance. Inputs/helps are needed and welcome!&#xD;
&#xD;
**How to Install Wolfram Kernel (back end):**&#xD;
&#xD;
- Start proot-distro debian by&#xD;
&#xD;
        proot-distro login debian&#xD;
&#xD;
- Allow a multi-architecture (64+32-bit) and install 32-bit libraries because Mathematica uses some of these (the latter is optional, but it might help in case you see some error related to 32-bit instruction)&#xD;
&#xD;
        dpkg --add-architecture armhf&#xD;
        apt install libatomic1:armhf libgl1:armhf&#xD;
&#xD;
- Download the [Raspberry Pi installation script][4] from Wolfram and put it in the root folder of debian. You should have access to your usual Android &amp;#034;Download&amp;#034; folder through &#xD;
&#xD;
        cd //sdcard/Download/&#xD;
&#xD;
- Execute the official installation script (Current version is 13.3.1, but this might change when they release new version)&#xD;
&#xD;
        bash ./install-wolfram-engine-13.3.1.sh&#xD;
&#xD;
- At this point, everything should be set. You can activate Mathematica by starting its Kernel and follow the instruction (I activate sucessfully using a Linux Mathematica Key provided by my institution)&#xD;
&#xD;
        wolfram&#xD;
&#xD;
- After activation, you should have been forwarded to the Wolfram CLI Kernel, where we have full access to the Kernel (back end). To quit, execute&#xD;
&#xD;
        Quit[]&#xD;
&#xD;
&#xD;
**How to run Mathematica GUI (front end):**&#xD;
&#xD;
- Start the Termux-x11 app on your Android device and a termux terminal. Then, start an x11 instance by executing in Termux terminal&#xD;
&#xD;
        termux-x11 :1 &amp;amp;&#xD;
&#xD;
    If Termux and Termux-x11 have been installed correctly, you should see the x11 app window black and the mouse cursor is an x.&#xD;
&#xD;
&#xD;
- Start debian with x-11 forwarding&#xD;
&#xD;
        proot-distro login debian --shared-tmp&#xD;
&#xD;
- Set display to the previously started (1 in this case)&#xD;
&#xD;
        export DISPLAY=:1&#xD;
&#xD;
- Optional step: Install xfce4 desktop environment to have full multi-window desktop experience (otherwise you cannot control fullscreen window in x11 window)&#xD;
&#xD;
        apt install xfce4&#xD;
    To start the desktop environment (you should see the x11 app with full desktop interface now)&#xD;
&#xD;
        xfce4-session &amp;amp;&#xD;
&#xD;
- Start Mathematica from command line&#xD;
&#xD;
        mathematica &amp;amp;&#xD;
    and you should see the Raspberry Pi Mathematica window pop-up! &#xD;
&#xD;
Tested device: Samsung Tab S9 with Snapdragon 8 gen 2 runnning Android 14 + One UI 6.&#xD;
&#xD;
&#xD;
&#xD;
  [1]: https://github.com/termux/termux-app&#xD;
  [2]: https://github.com/termux/termux-x11&#xD;
  [3]: https://github.com/termux/proot-distro&#xD;
  [4]: https://www.wolfram.com/raspberry-pi/</description>
    <dc:creator>Quan Le Thien</dc:creator>
    <dc:date>2024-01-15T18:07:20Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1290781">
    <title>Keyboard shortcut for &amp;#034;Evaluate Notebook&amp;#034;</title>
    <link>https://community.wolfram.com/groups/-/m/t/1290781</link>
    <description>I recently upgraded to Mathematica 11 for some side projects. I love the program, but I was annoyed to see that there is no keyboard shortcut for the Evaluate Notebook command. F8 appears to be unused in the normal configuration on Linux. So Im posting a solution for adding F8 as a keyboard shortcut for Evaluate Notebook:&#xD;
&#xD;
If you are on Linux, all you have to do is edit /usr/local/Wolfram/Mathematica/11.2/SystemFiles/FrontEnd/TextResources/X/MenuSetup.tr&#xD;
&#xD;
1. Make a backup of MenuSetup.tr&#xD;
2. Open MenuSetup.tr&#xD;
2. Search for Evaluate Notebook&#xD;
3. Youll find the correct line (there is only one). Add , MenuKey[F8, Modifiers-&amp;gt;{}] after EvaluateNotebook&#xD;
4. The revised line should read MenuItem[Evaluate N&amp;amp;otebook, EvaluateNotebook, MenuKey[F8, Modifiers-&amp;gt;{}]],&#xD;
5. Re-launch Mathematica, and you should see F8 next to the Evaluate Notebook command.  Try it out.&#xD;
6. Success!&#xD;
&#xD;
Is there some reason why there is no keyboard shortcut for Evaluate Notebook?  I am at a loss because it is simple to add one.</description>
    <dc:creator>Andrew Watters</dc:creator>
    <dc:date>2018-02-23T17:03:02Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2167291">
    <title>Installing Mathematica under 64-bit Kali Linux on a Raspberry Pi</title>
    <link>https://community.wolfram.com/groups/-/m/t/2167291</link>
    <description>Since, from what I understand the bundle license for personal use of Mathematica is tied to the Raspberry hardware and not to the Raspian OS, and since I prefer the 64-bit version of Kali Linux to Raspian, here the steps I took to get Mathematica working on my RasPi under Kali Linux:&#xD;
&#xD;
- In case you haven’t done so, make an attempt of making your installation a 32/64-bit multi-architecture system:&#xD;
&#xD;
        dpkg --add-architecture armhf&#xD;
        apt -y update&#xD;
&#xD;
- download the Raspberry Pi Mathematica Installer from Wolfram Research&#xD;
&#xD;
        wget https://wolfr.am/wolfram-engine-raspi-install&#xD;
&#xD;
- run whatever script the above link downloads, currently that’s: (and this may take a while, as it downloads the bulk of the install)&#xD;
&#xD;
        bash ./install-wolfram-engine-13.1.0.sh&#xD;
&#xD;
- as Mathematica installs 32-bit binaries, it may have overlooked some following dependencies, the 64-bit versions of these libraries were already on my system and may have been taken for granted (although it might have been installed as a dependency for something else...) As new releases come, this may resolve itself, you&amp;#039;ll just have to watch the error messages and act accordingly...&#xD;
&#xD;
        apt install libatomic1:armhf libgl1:armhf&#xD;
&#xD;
- Mathematica requires rather questionable access to `/dev/vchiq` and `/dev/fb0` the latter of which is already group `video` with group read-write access. For `/dev/vchiq` we need to do this manually. Not sure I’m happy about the security implications of this… (In case future versions of Kali have different default permissions, commented out the otherwise required steps for `/dev/fb0` )&#xD;
&#xD;
        #chgrp video /dev/fb0&#xD;
        chgrp video /dev/vchiq&#xD;
        #chmod g+rw /dev/fb0&#xD;
        chmod g+rw /dev/vchiq&#xD;
&#xD;
- for each non-root user who wants to successfully use Mathematica, the following is required:&#xD;
&#xD;
        sudo usermod -a -G video $(whoami)&#xD;
&#xD;
That should do it, things work, etc.&#xD;
&#xD;
There are however a few issues, to summarize:&#xD;
&#xD;
1) I’m not sure how comfortable anyone should be with non-privileged users getting access to `/dev/fb0` and `/dev/vchiq` just to run Mathematica. If access to such resources is required, then that should be something handled in a privileged task and not require giving users wholesale access to devices.&#xD;
&#xD;
2) As pointed out elsewhere in this forum, Mathematica failing with a seemingly totally unrelated licensing failure when access to these devices isn’t granted, is less than ideal. Unless one happens to stumble across this thread here [On Raspberry Pi 2, how do I get beyond the &amp;#039;Product Activation&amp;#039; dialog?][1] good luck figuring out what’s the actual problem...&#xD;
&#xD;
3) The install script, while otherwise rather good at installing dependencies, missed the dependency on `libatomic1` and `libgl1` which consequently had to be installed manually, which is only in so far a problem as it’s another failure point, and, in case of a future de-installation of Mathematica, will linger as ghost, unless equally manually removed.&#xD;
&#xD;
4) Of course, we’d all be even happier, if we could finally see an `arm64` rather than the `armhf` version of Mathematica, so the higher-end Raspberry Pi can effectively use their CPU and RAM most efficiently. But this is a good bridge solution for the time being, at least I won’t have to run a 32-bit kernel or OS anymore.&#xD;
&#xD;
Anyway, enjoy! Hope this is helpful for someone...&#xD;
&#xD;
  [1]: https://community.wolfram.com/groups/-/m/t/444854</description>
    <dc:creator>Ronald Antony</dc:creator>
    <dc:date>2021-01-19T18:19:52Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2570909">
    <title>⚠️ Critical Linux Installer Alert - RESOLVED</title>
    <link>https://community.wolfram.com/groups/-/m/t/2570909</link>
    <description>**Technical Support advisory**: RESOLVED. The updated installer is now available in the **Wolfram User Portal** and **Wolfram Account**.&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
**Original advisory**: The original Wolfram Language 13.1 documentation installer for Linux has a serious bug. If the installation is stopped before completing, files in the user directory may be deleted. We are actively working on a fix, but note that this issue is not triggered if the documentation installs successfully.&#xD;
&#xD;
If you have already installed the Wolfram Language 13.1 documentation, there is no reason to uninstall. Please discard any copies of the original installer. A new installer will be available in the Wolfram User Portal and Wolfram Account as soon as testing concludes.</description>
    <dc:creator>EDITORIAL BOARD</dc:creator>
    <dc:date>2022-07-15T01:33:56Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2565612">
    <title>Upgrade 13.1 on Win10: does not uninstall 13.0.1 Documentation</title>
    <link>https://community.wolfram.com/groups/-/m/t/2565612</link>
    <description>This is to let you know:&#xD;
&#xD;
I just recognized that the Mathematica Upgrade 13.1 on Windows does not uninstall the 13.0.1 Documentation. The old documentation can be easily uninstalled via the Windows System. Otherwise, 7.72 GB will remain unused on your system.</description>
    <dc:creator>Jürgen Kanz</dc:creator>
    <dc:date>2022-07-07T09:29:14Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2561290">
    <title>Mathematica 13.1 in the house - Linux installation</title>
    <link>https://community.wolfram.com/groups/-/m/t/2561290</link>
    <description>&amp;amp;[Wolfram Notebook][1]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolframcloud.com/obj/e16ff341-02a9-4ecb-a7b3-58912885f4af</description>
    <dc:creator>Daniel Carvalho</dc:creator>
    <dc:date>2022-07-01T03:54:11Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2396714">
    <title>Mathematica running fine on MacOS Monterey</title>
    <link>https://community.wolfram.com/groups/-/m/t/2396714</link>
    <description>Just wanted to report that I installed MacOS Monterey yesterday and have had no problems so far running any of my Mathematica applications. Your mileage may vary of course, so be careful.&#xD;
&#xD;
I am running a 2018 Mac Mini 3 GHz 6-Core Intel Core i5 with 32 GB 2667 MHz DDR4. No Apple silicon yet, but Christmas is just around the corner.</description>
    <dc:creator>John Shonder</dc:creator>
    <dc:date>2021-10-30T12:45:34Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1951871">
    <title>Mathematica on the iPad</title>
    <link>https://community.wolfram.com/groups/-/m/t/1951871</link>
    <description>The iPad Pro is already way more powerful than a lot of notebooks so it makes a lot of sense now to have a full version of Mathematica running locally instead of just the Wolfram Cloud app.&#xD;
This would also be a good excuse to provide full Metal support so GPUs in the Apple ecosystem would be supported for computation as well and not just graphics.</description>
    <dc:creator>maxscience n</dc:creator>
    <dc:date>2020-04-23T12:31:14Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/157340">
    <title>Installing the Wolfram Language and Mathematica on your Raspberry Pi</title>
    <link>https://community.wolfram.com/groups/-/m/t/157340</link>
    <description>[i]Mathematica [/i]and The Wolfram Language are now available from ours and the Raspberry Pi foundation&amp;#039;s software repositories for the default Raspbian Linux distribution for the Pi. If you&amp;#039;re running a Raspbian image provided by the Raspberry Pi foundation, you can now install the software with the following steps:&#xD;
[list=1]&#xD;
[*]Ensure that you have at least [b]600[/b] megabytes of free storage on your Raspberry Pi&amp;#039;s SD card. The package itself will take up 429 megabytes of disk space when installed.&#xD;
[*][code]$ sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install wolfram-engine[/code]&#xD;
[*]Agree to the licensing terms displayed (Use tab to move between fields in the license window. You will only need to do this once).&#xD;
[*]Wait for the installation to complete. &#xD;
[/list]You should now find Mathematica and the Wolfram Language installed on the LXDE desktop under the [b]Education[/b] menu and the Wolfram Language under the [b]Programming [/b]&#xD;
menu.&#xD;
&#xD;
In order to start the application from the Linux command line, type:[code]$ wolfram[/code]To start Mathematica, type:[code]$ mathematica[/code]&#xD;
If you have any questions about installing the application on your Raspberry Pi, feel free to ask! </description>
    <dc:creator>Alex Newman</dc:creator>
    <dc:date>2013-11-21T17:12:50Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1855244">
    <title>The Most Convenient Keyboard Shortcuts Ever</title>
    <link>https://community.wolfram.com/groups/-/m/t/1855244</link>
    <description>Here are two simple but extremely convenient keyboard shortcuts that I&amp;#039;ve used for years. &#xD;
&#xD;
 - This post is a favor to all my friends who type slowly (like me)&#xD;
 - These shortcuts simply create a pair of brackets containing a template placeholder as the current new selection&#xD;
 - Essentially, it&amp;#039;s just a stripped-down version of the bulky (Command + Shift + K + Up/Down Arrow + Enter) completion&#xD;
&#xD;
**Favorite Shortcut #1:** &#xD;
Autocomplete single brackets by pressing `CommandKey + [`&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
**Favorite Shortcut #2:** Autocomplete part brackets by pressing `CommandKey + ]`&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
## How to set them up ##&#xD;
&#xD;
On MacOS, first make a backup of the following file, in case you break it:&#xD;
&#xD;
    FileNameJoin[{$InstallationDirectory, &amp;#034;SystemFiles/FrontEnd/TextResources/Macintosh/KeyEventTranslations.tr&amp;#034;}];&#xD;
&#xD;
On my machine this path resolves to: *&amp;#034;/Applications/Mathematica.app/Contents/SystemFiles/FrontEnd/TextResources/Macintosh/KeyEventTranslations.tr&amp;#034;*&#xD;
&#xD;
Then, preferably in a non-Mathematica editor (e.g. Sublime), open the above file and copy-and-paste these following code into the list inside `EventTranslations`. For the first shortcut:&#xD;
&#xD;
    Item[KeyEvent[&amp;#034;[&amp;#034;,Modifiers-&amp;gt;{Command}],FrontEndExecute[{FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],&amp;#034;[\[SelectionPlaceholder]]&amp;#034;],FrontEndToken[&amp;#034;MovePreviousPlaceHolder&amp;#034;]}]]&#xD;
    &#xD;
And for the second (of course making sure they are separated by a comma):&#xD;
&#xD;
    Item[KeyEvent[&amp;#034;]&amp;#034;,Modifiers-&amp;gt;{Command}],FrontEndExecute[{FrontEnd`NotebookWrite[FrontEnd`InputNotebook[],&amp;#034;\[LeftDoubleBracket]\[SelectionPlaceholder]\[RightDoubleBracket]&amp;#034;],FrontEndToken[&amp;#034;MovePreviousPlaceHolder&amp;#034;],FrontEndToken[&amp;#034;MovePreviousPlaceHolder&amp;#034;]}]]&#xD;
    &#xD;
Finally, restart Mathematica, and presto, they should both be working. And to remove the shortcuts, simply remove those items or replace the .tr file with the backup.&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=own.gif&amp;amp;userId=900170&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=part.gif&amp;amp;userId=900170</description>
    <dc:creator>Michael Sollami</dc:creator>
    <dc:date>2020-01-08T20:42:08Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1028536">
    <title>Mathematica 11.0.1 now available for the Raspberry Pi</title>
    <link>https://community.wolfram.com/groups/-/m/t/1028536</link>
    <description>Hi all,&#xD;
&#xD;
Mathematica 11.0.1 is now available for the Raspberry Pi on Raspbian. If you already have Mathematica installed on your Raspberry Pi, you can update with the following:&#xD;
&#xD;
    sudo apt-get update &amp;amp;&amp;amp; sudo apt-get upgrade wolfram-engine&#xD;
&#xD;
If you don&amp;#039;t already have Mathematica installed you can run the following commands to install it:&#xD;
&#xD;
    sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install wolfram-engine&#xD;
&#xD;
New features for the Raspberry Pi include :&#xD;
&#xD;
 - Neural Network features including constructing custom nets : http://reference.wolfram.com/language/guide/NeuralNetworks.html&#xD;
 - Audio processing features including out of core streaming of large sounds as well as advanced audio processing : http://reference.wolfram.com/language/guide/AudioProcessing.html&#xD;
 - Travel based path plan functions including path finding from one city to another : http://reference.wolfram.com/language/guide/LocationsPathsAndRouting.html&#xD;
 - Channel based communication for sending and receiving messages : http://reference.wolfram.com/language/guide/Channel-BasedCommunication.html&#xD;
 - Powerful and easy scripting through WolframScript : http://reference.wolfram.com/language/ref/program/wolframscript.html&#xD;
 - And many more : http://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn11.html&#xD;
&#xD;
Additionally, with the new release of WolframScript on the Raspberry Pi, you can install WolframScript standalone and run it without a local kernel against the cloud using the `-cloud` option. This means you can use the Wolfram Language through WolframScript on the Raspberry Pi without having wolfram-engine installed by running it against the cloud. See the documentation page for WolframScript for more details.</description>
    <dc:creator>Ian Johnson</dc:creator>
    <dc:date>2017-03-09T21:02:49Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1717637">
    <title>More Instructions on Installing a Wolfram Engine Kernel for Jupyter</title>
    <link>https://community.wolfram.com/groups/-/m/t/1717637</link>
    <description>The attached notebook is the product of a lot of errors on my part. And I hear that even very sophisticated Wolfram Language users are having difficulty with the installation. Here&amp;#039;s my effort to clarify some of the hidden steps you may need to take. If you like it, let people know. If it has errors or incompleteness, let people know. I think the ability to access the Wolfram Language through Jupyter is a great thing for the Wolfram Ecosystem. The more people who can take advantage of the opportunity without a soul gutting out-of-box experience, the better.&#xD;
&#xD;
##Step 1 : Figure out where the heck Jupyter is installed on your system##&#xD;
&#xD;
You might as well do this first. If you don&amp;#039; t where Jupyter is, all of this is unlikely to work. On my Mac I use Jupyter through Anaconda. So I kind of thought it was there. I ultimately found a command called jupyter_mac.command in this directory where /Users/sethchandler is my &amp;#034;home&amp;#034; directory.&#xD;
&#xD;
    jupyterLocation = &amp;#034;/Users/sethchandler/anaconda3/bin&amp;#034;;&#xD;
&#xD;
Now we have to fiddle with the &amp;#034;Path Environment&amp;#034; for this session. Here&amp;#039;s my current environment.&#xD;
&#xD;
    initialEnvironment = GetEnvironment[&amp;#034;PATH&amp;#034;]&#xD;
&#xD;
&amp;gt; &amp;#034;PATH&amp;#034; -&amp;gt; &amp;#034;/usr/bin:/bin:/usr/sbin:/sbin&amp;#034;&#xD;
&#xD;
It&amp;#039; s a bunch of directory paths separated by colons.&#xD;
&#xD;
Now let&amp;#039; s change it.&#xD;
&#xD;
    SetEnvironment[&amp;#034;PATH&amp;#034; -&amp;gt; StringJoin[&amp;#034;PATH&amp;#034; /. initialEnvironment, &amp;#034;:&amp;#034;, jupyterLocation]]&#xD;
&#xD;
Check if it worked&#xD;
&#xD;
    GetEnvironment[&amp;#034;PATH&amp;#034;]&#xD;
&#xD;
&amp;gt; &amp;#034;PATH&amp;#034; -&amp;gt;&#xD;
&amp;gt; &amp;#034;/usr/bin:/bin:/usr/sbin:/sbin:/Users/sethchandler/anaconda3/bin&amp;#034;&#xD;
&#xD;
##Step 2 : Get the Wolfram Language code you will need; it&amp;#039; s in a file##&#xD;
&#xD;
 1. Browse to here: https://github.com/WolframResearch/WolframLanguageForJupyter/blob/master/configure-jupyter.wls&#xD;
 2. Press the Raw button.&#xD;
 3. Go the browser menu and click Save Page As or whatever saves files.  Put the file somewhere you will remember it. Now a bunch of Wolfram Language code is on your local machine. &#xD;
&#xD;
##Step 3 : Get the Paclet##&#xD;
&#xD;
 1. Browse to here : https : // github.com/WolframResearch/WolframLanguageForJupyter/releases&#xD;
 2. Click on Assets&#xD;
 3. Click on WolframLanguageForJupyter-0.9 .1.paclet or whatever the current number is. This should start a standard download process. Stick the file somewhere on your machine where you will remember it.&#xD;
&#xD;
##Step 4 : Install the Paclet##&#xD;
&#xD;
I stuck my paclet in the Downloads directory of my user directory.&#xD;
&#xD;
    PacletInstall[&amp;#034;/Users/sethchandler/Downloads/WolframLanguageForJupyter-0.9.1.paclet&amp;#034;]&#xD;
&#xD;
##Step 5: Load up the Package that was in the Paclet##&#xD;
&#xD;
    Needs[&amp;#034;WolframLanguageForJupyter`&amp;#034;]&#xD;
&#xD;
##Step 6 : Do it!##&#xD;
&#xD;
Invoke whatever form of secular of divine imprecations work best for you and run this :&#xD;
&#xD;
    ConfigureJupyter[&amp;#034;Add&amp;#034;]&#xD;
&#xD;
If nothing happens after about 5 seconds, that&amp;#039; s perfect. Look below to &amp;#034;prove&amp;#034; that it worked.&#xD;
![enter image description here][1]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=73441.png&amp;amp;userId=20103</description>
    <dc:creator>Seth Chandler</dc:creator>
    <dc:date>2019-07-02T14:23:25Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1315124">
    <title>TwoString: Using ToString for  Interpreter[&amp;#034;TexExpression&amp;#034;][string]</title>
    <link>https://community.wolfram.com/groups/-/m/t/1315124</link>
    <description>**ToString** is a routine in *Mathematica*, that has default FormatType -&amp;gt; OutputForm and that has no attribute HoldFirst. For applications for the Interpreter for TEX it makes more sense to have attribute HoldFirst. When this is used, then other forms may get HoldForm in the output string. It is easy to remove the latter again for InputForm. Since this works fine, it makes sense to make the latter the new default. Since ToString is such a core routine, this new functionality can better be provided by a new routine **TwoString** that builds around ToString. Alternative names are **TooString** or **MakeString**. It is suggested to the makers of *Mathematica* that ToString is adapted with options HoldFirst -&amp;gt; True and HoldForm -&amp;gt; False for this particular use just like TwoString (with default InputForm and the removal of HoldForm from the output string). It would be useful to have some TeXString[*expr*] object with HoldFirst such that *expr* would be readable by a TEX interpreter. PM. I regard all of this as a minor issue, but it just crossed my path.&#xD;
&#xD;
https://www.wolframcloud.com/objects/thomas-cool/Utilities/2018-04-05-TwoString.nb</description>
    <dc:creator>Thomas Colignatus</dc:creator>
    <dc:date>2018-04-05T17:44:28Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1280603">
    <title>Video tutorials made using MIT&amp;#039;s LightBoard video capture setup</title>
    <link>https://community.wolfram.com/groups/-/m/t/1280603</link>
    <description>Let&amp;#039;s get right to it, Anna Musser and I spent some time this weekend experimenting with the LightBoard setup at MIT to see if we could make some engaging video tutorials for complete Mathematica novices. I know my acting needs some work, but we would love to hear any thoughts about the use of this type of system to produce video tutorials for coding in Wolfram Language using Mathematica. Also Let us know if you have any tools you use to produce videos and teach in more engaging ways! &#xD;
&#xD;
There are two videos linked below, the first is a video about opening Mathematica for the first time and below that is a video about completing assignments using the [CodeSeal computational curriculum framework][1]&#xD;
&#xD;
[Intro to Mathematica][2]&#xD;
&#xD;
[![screen shot of a video lecture showing Kyle Keane][3]][7]&#xD;
&#xD;
[Overview of CodeSeal][4]&#xD;
&#xD;
[![screen shot of video lecture showing Kyle Keane and CodeSeal][5]][6]&#xD;
&#xD;
&#xD;
  [1]: http://www.codeseal.org&#xD;
  [2]: https://www.youtube.com/watch?v=LzKcFYlw_5A&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=IntrotoMathematica.00_07_26_12.Still001.png&amp;amp;userId=26311&#xD;
  [4]: https://www.youtube.com/watch?v=aNMRA_7ojws&amp;amp;t=6s&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=IntrotoMathematica.00_23_25_27.Still002.png&amp;amp;userId=26311&#xD;
  [6]: https://www.youtube.com/watch?v=aNMRA_7ojws&amp;amp;t=6s&#xD;
  [7]: https://www.youtube.com/watch?v=LzKcFYlw_5A</description>
    <dc:creator>Kyle Keane</dc:creator>
    <dc:date>2018-02-07T05:43:28Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/930559">
    <title>SystemModeler 4.2 on macOS Sierra (10.12)</title>
    <link>https://community.wolfram.com/groups/-/m/t/930559</link>
    <description>Once again Apple change the requirements checked by Gatekeeper so if you try to start SystemModeler you will be presented with this dialog:&#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
To get around that you can right click (or Ctrl click) and select open&#xD;
![enter image description here][2]&#xD;
&#xD;
You will then get a new dialog with the option to start SystemModeler anyway.&#xD;
![enter image description here][3]&#xD;
&#xD;
This will always allow SystemModeler to start so you only need to follow this procedure the first time you start SystemModeler on macOS Sierra.&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=CannotOpenDialog.png&amp;amp;userId=23166&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=OpenContext.png&amp;amp;userId=23166&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=OpenDialog.png&amp;amp;userId=23166</description>
    <dc:creator>Otto Tronarp</dc:creator>
    <dc:date>2016-09-27T09:11:16Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/871482">
    <title>Package-X installation documentation system</title>
    <link>https://community.wolfram.com/groups/-/m/t/871482</link>
    <description>I am the author of Package-X (http://packagex.hepforge.org) the documentation for which I used Wolfram Workbench extensively.  An update to Wolfram Workbench would be welcome by me.</description>
    <dc:creator>Hiren Patel</dc:creator>
    <dc:date>2016-06-12T14:43:21Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/828333">
    <title>Advisory: Mathematica 10.4 failing to launch on OS X 10.11.4</title>
    <link>https://community.wolfram.com/groups/-/m/t/828333</link>
    <description>If you upgrade your Macintosh to MacOSX 10.11.4 and then install Mathematica 10.4.0, &#xD;
this installation will be blocked from running by the operating system. &#xD;
We are working to resolving this issue. &#xD;
&#xD;
The suggested workaround is, &#xD;
&#xD;
- locate the Mathematica.app bundle in Finder  (Applications folder), &#xD;
&#xD;
- control-click   (or right-click)  to get the context menu, and  &#xD;
&#xD;
   ![Control-/right-click popup menu][1]&#xD;
&#xD;
- select Open from the context menu. &#xD;
&#xD;
- There will still be a warning message.  Click Open to approve running the new Mathematica. &#xD;
&#xD;
![identity-of-developer message][2]&#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ScreenShot2016-03-23at2.25.48PM.png&amp;amp;userId=17902&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=16668449.535.png&amp;amp;userId=17902</description>
    <dc:creator>Bruce Miller</dc:creator>
    <dc:date>2016-03-23T18:46:20Z</dc:date>
  </item>
</rdf:RDF>

